ITECH bili-Hackathon 2024

Projekt SAMSON
Präzise Wetterdatenerhebung im
Obstbau für den Frostschutz

10.10.2024 | ITEC Hamburg | Frederick Blome
IT3K
Presenting Our Team 8
Our team is a dynamic and diverse group, each member bringing a unique skill set and personality to the table. Together, we tackle challenges head-on with creativity, leadership, and a passion for success.

Ryjan Alabed – Scrum Master & Team Leader Ryjan is the driving force behind our projects, not only as our Scrum Master but also as our Team Leader. Known for his love of adventure, Ryjan thrives in dynamic environments and is always ready to embrace challenges with enthusiasm. He ensures the team stays organized, motivated, and aligned towards achieving our goals.

Sidra Alchhabi is the Design Thinker of the team. She focuses on understanding user needs and ensuring the project is user-friendly and intuitive. By applying design thinking, Sidra helps create solutions that are both functional and aligned with user expectations

Hanane Mouhassin – Project Owner Hanane plays the crucial role of Project Owner, overseeing the project’s direction and ensuring that we meet the needs of our stakeholders. She’s no stranger to problem-solving and is adept at tackling any issues that arise, guiding the team toward success even in the face of difficulties.
Our DIY Problem Definition
What is the key issue you are trying to address and why is it important?
Improving farm efficiency through automation and IoT to handle tasks like frost protection, pest detection, and water management.
Who is it a problem for?
Farmers and plantation owners, especially those managing large-scale or remote farms, and small agricultural businesses facing high tech investment costs.
What social/cultural factors shape this problem?
- Growing demand for sustainable farming.
- Labor shortages in rural areas.
- Push for tech adoption to lower environmental impact.
What evidence do you have that this is worth the investment?
Successful case studies show improved yields, reduced resource use, and lower labor costs through automation. Research backs the efficiency gains from precision farming.
Can you think of this problem in a different way? Can you reframe it?
See it as an opportunity for collaboration between farmers, tech companies, and environmental bodies to develop sustainable, cost-effective solutions for the agricultural sector.
Our Observation AEIOU
Activities :
- Data collection and monitoring
- Water management and frost protection
- Prediction models
- Autonomous systems
Environment:
- Orchards and plantations
- Remote and rural settings
- Variable climate conditions
Interaction:
- Human-to-IoT device interaction
- Human-to-AI interaction:
- Human-to-autonomous systems
Object:
- IoT sensors and devices
- Autonomous vehicles
- Control systems
Users:
- Farm owners and managers
- Farm workers
- Agricultural technology providers
- Researchers and developers
Empathize and Define
Interviews/Surveys with Farmers
Conduct interviews or surveys with fruit farmers to understand their experiences with frost damage. Questions could include:
- How often do you experience frost damage?
- What methods do you currently use to prevent frost damage?
- What would be most helpful in an early-warning system?
Our Empathy map

Our Problem Tree

Our Ideas for solutions
Place weather and precipitation measurment arduino in different places for better forecast
Business Model Canvas



Our use-case-diagram

Tool : plantuml
https://plantuml-editor.kkeisuke.com/
@startuml
actor Farmer
actor “Temperature Sensor” as TempSensor
actor “Soil Sensor” as SoilSensor
actor “LoRa Gateway” as Gateway
actor “Server” as Server
actor “Notification System” as Notification
rectangle “Frost Protection System” {
Farmer –> (Monitor Real-Time Data)
Farmer –> (Receive Frost Alerts)
Farmer –> (Configure Alert Thresholds)
Farmer –> (View Historical Data)
Farmer –> (Add New Sensors)
Farmer –> (Access Dashboard)
TempSensor –> (Send Temperature Data)
SoilSensor –> (Send Soil Data)
Gateway –> (Transmit Data to Server)
Server –> (Process and Store Data)
Notification –> (Send Alerts)
(Send Temperature Data) –> (Monitor Real-Time Data) : << include >>
(Send Soil Data) –> (Monitor Real-Time Data) : << include >>
(Process and Store Data) –> (Monitor Real-Time Data) : << include >>
(Send Alerts) –> (Receive Frost Alerts) : << include >>
}
@enduml
Our MQTT Code

import random
import time
import math
import paho.mqtt.client as mqtt
from datetime import datetime
# Konfiguration für den MQTT-Broker
config = {
“broker_address”: “test.mosquitto.org”,
“broker_port”: 1883,
“topic”: “sensor/temperature”,
“client_id”: “Tmqttx_4c91a353”,
“qos”: 1
}
# MQTT-Client initialisieren
client = mqtt.Client(config[“client_id”])
# Fehler-Callback, falls Verbindung fehlschlägt
def on_connect(client, userdata, flags, rc):
if rc == 0:
print(“Connected to MQTT Broker!”)
else:
print(f”Failed to connect, return code {rc}”)
client.on_connect = on_connect
# Verbindung zum Broker herstellen
client.connect(config[“broker_address”], config[“broker_port”])
# Starten der MQTT-Schleife, um die Verbindung aufrechtzuerhalten
client.loop_start()
# Funktion zur Simulation realistischer Temperaturdaten
def generate_realistic_temperature(hour):
# Simuliere tageszeitliche Schwankungen mit einer Sinuskurve
# Angenommene maximale Temperatur am Tag und minimale Temperatur in der Nacht
min_temp = 10 # Minimum in der Nacht (z.B. 10°C)
max_temp = 25 # Maximum am Tag (z.B. 25°C)
# Verwende eine Sinusfunktion, um die Tageszeit zu simulieren: um 15 Uhr ist es am wärmsten, um 3 Uhr am kühlsten
temp_variation = (max_temp – min_temp) / 2
base_temp = (max_temp + min_temp) / 2
# Simuliere eine Sinuskurve für die Temperatur basierend auf der Uhrzeit
temperature = base_temp + temp_variation * math.sin(math.pi * (hour – 3) / 12)
# Kleine zufällige Abweichungen hinzufügen, um die Temperatur dynamischer zu machen
temperature += random.uniform(-1, 1)
return round(temperature, 2)
# Temperaturdaten kontinuierlich veröffentlichen
try:
while True:
# Aktuelle Stunde ermitteln (simuliert den Tagesablauf)
current_time = datetime.now()
current_hour = current_time.hour
# Realistische Temperatur basierend auf der Tageszeit berechnen
temperature = generate_realistic_temperature(current_hour)
message = f”Temperature: {temperature}°C”
# Senden der simulierten Temperaturdaten an den MQTT-Broker
client.publish(config[“topic”], message, qos=config[“qos”])
print(f”Published: {message} to topic {config[‘topic’]}”)
# Warte 15 Sekunden, bevor neue Daten gesendet werden (du kannst diesen Wert anpassen)
time.sleep(15)
except KeyboardInterrupt:
print(“Simulation beendet.”)
client.loop_stop()
client.disconnect()
