
DIY-Projekt: Intelligente Gartenbewässerung mit Echtzeit-Bodenfeuchtigkeitsmessung und Wetterdatenintegration via OpenWeatherMap API mit einem Raspberry Pi und Node-RED und Python mit der Bibliothek RPi.GPIO selber bauen
Dieser Artikel beschreibt die detaillierte Umsetzung einer intelligenten Gartenbewässerung, die Echtzeit-Bodenfeuchtigkeitsmessungen mit Wetterdaten von der OpenWeatherMap API kombiniert. Das System wird mit einem Raspberry Pi, Node-RED und Python gesteuert. Wir gehen dabei tief in die technischen Details, bieten umfassende Code-Beispiele und geben Expertentipps für eine erfolgreiche Implementierung.
1. Materialauswahl: Technische Daten & Eigenschaften
Die Auswahl der richtigen Materialien ist essentiell. Hier eine detaillierte Übersicht:
Klassische Baustoffe:
- Holz: Ideal für Gehäuse und Trägerkonstruktionen. Technische Daten: Dichte 500–900 kg/m³; Quell-/Schrumpfverhalten beachten.
- Metall (z. B. Aluminium): Für stabile Gehäuse, Trägerplatten oder Kühlkörper. Technische Daten: Hohe Wärmeleitfähigkeit, elektrische Leitfähigkeit, gutes Verhältnis von Gewicht zu Festigkeit.
- Kunststoffe: Plexiglas (PMMA), PVC, ABS oder EVA-Foam (für Leichtbau und Modelling). Technische Daten: Geringes Gewicht, vielfältige Verarbeitungsmöglichkeiten (Lasercut, Fräsen, 3D-Druck).
Moderne Hightech-Materialien:
- PLA-Filament: Für 3D-Druck, biologisch abbaubar, Verarbeitungstemperatur ca. 190–220 °C.
- Thermoplaste (z. B. Worbla): Formbar durch Hitze, ideal für Einhausungen und individuelle Bauteile.
Experten-Tipp: Prüfen Sie vor der Auswahl die Eigenschaften wie Entflammbarkeit, Wärmeleitfähigkeit oder Tragfähigkeit hinsichtlich des Einsatzzwecks.
2. Schritt-für-Schritt-Anleitung zur Projektvorbereitung
- Projektplanung & Zieldefinition: Skizzen, Funktionsdiagramme und Materiallisten anfertigen. Zeitrahmen abschätzen und Risiken analysieren.
- Material- und Werkzeugbeschaffung: Einkauf hochwertiger Materialien. Benötigte Werkzeuge: Cuttermesser, Lötkolben, Multimeter, Schraubendreher, ggf. 3D-Drucker oder Lasercutter.
- Arbeitsplatzorganisation: Sauber, gut belüftet und elektrisch sicher einrichten. Schutzbrille, Handschuhe und ggf. Atemschutz verwenden.
- Vorbereitung der Hardware: Einzelteile zuschneiden, bohren oder drucken. Komponenten prüfen (Stichprobe).
- Software-Konfiguration: Firmware/Software auf notwendige Version prüfen und ggf. vorbereiten (siehe unten).
3. Hardware: Must-have-Komponenten für Open-Source-Projekte
- Raspberry Pi (z.B. Modell 4): Als Steuerzentrale.
- Bodenfeuchtigkeitssensor: z.B. capacitive soil moisture sensor.
- Relais-Modul: Zum Schalten der Bewässerungspumpe.
- Wasserpumpe: Geeignet für den Garteneinsatz, mit entsprechendem Wasserdruck.
- Netzteil: Für den Raspberry Pi und die Pumpe.
- Jumperkabel: Für den Anschluss der Komponenten.
- Gehäuse: Zum Schutz der Elektronik (Holz, Plastik, 3D-gedruckt).
- Optional: Display zur Anzeige der Daten.
Experten-Tipp: Ein Breadboard für erste Schaltungen vereinfacht den Testaufbau und die Fehlersuche erheblich.
4. Software-Konfiguration und Code-Beispiele
4.1 Vorbereitung der Entwicklungsumgebung
Installieren Sie Raspberry Pi OS auf Ihrem Raspberry Pi. Dann installieren Sie:
- Node-RED: Folgen Sie den Anweisungen auf der offiziellen Node-RED Website.
- Python 3: Standardmäßig auf Raspberry Pi OS enthalten.
- Bibliotheken: `RPi.GPIO` für GPIO-Steuerung, `requests` für die OpenWeatherMap API.
4.2 Beispiel: Python – Sensor auslesen und Wert an Node-RED senden
import RPi.GPIO as GPIO
import time
import requests
#GPIO Pin des Sensors
sensorPin = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(sensorPin, GPIO.IN)
while True:
if GPIO.input(sensorPin) == GPIO.LOW:
# Sensor liefert LOW: trocken
print("Boden trocken")
# Senden an Node-RED über MQTT (Beispiel)
# ...
else:
# Sensor liefert HIGH: feucht
print("Boden feucht")
# ...
time.sleep(60)
4.3 Node-RED Flow: Wetterdaten abrufen und mit Sensordaten verarbeiten
Erstellen Sie in Node-RED einen Flow, der Wetterdaten von OpenWeatherMap abruft und diese mit den Sensordaten kombiniert, um die Bewässerungsentscheidung zu treffen.
[ {
"id": "openweathermap",
"type": "http request",
"name": "OpenWeatherMap",
"url": "https://api.openweathermap.org/data/2.5/weather?q=Berlin&appid=YOUR_API_KEY&units=metric",
"method": "GET",
"wires": [["function"]]
}, {
"id": "function",
"type": "function",
"name": "Wetterdaten verarbeiten",
"func": "msg.payload = msg.payload.main.humidity; return msg;",
"wires": [["join"]]
}, {
"id": "join",
"type": "join",
"name": "Join Node",
"wires": [["decision"]]
}, {
"id": "decision",
"type": "switch",
"name": "Bewässerungsentscheidung",
"rules": [{
"t": "eq",
"v": 0,
"vt": "num",
"v": 0,
"vt": "num"
}],
"wires": [["pumpOn"], ["pumpOff"]]
} ]
5. Hardware-Aufbau und Verkabelung
Verbinden Sie den Bodenfeuchtigkeitssensor mit einem GPIO-Pin des Raspberry Pi. Verbinden Sie das Relais-Modul mit dem Raspberry Pi und der Wasserpumpe. Stellen Sie sicher, dass die Verkabelung korrekt ist und alle Verbindungen stabil sind. Verwenden Sie ein geeignetes Gehäuse, um die Elektronik vor Witterungseinflüssen zu schützen.
6. Datenintegration mit OpenWeatherMap API
Sie benötigen einen API-Key von OpenWeatherMap. Setzen Sie diesen in Ihrem Node-RED Flow und Ihrem Python-Skript ein (im obigen Code-Beispiel durch „YOUR_API_KEY“ ersetzt). Die API liefert JSON-Daten, die Sie in Ihrem Code verarbeiten können.
7. Testen und Optimieren
Testen Sie Ihr System gründlich. Beginnen Sie mit einfachen Tests und erweitern Sie schrittweise die Komplexität. Überwachen Sie die Datenströme, um sicherzustellen, dass alle Komponenten korrekt funktionieren. Verwenden Sie ein Multimeter, um Spannungen und Ströme zu messen. Nutzen Sie Logging-Mechanismen, um Fehler zu identifizieren und zu beheben. Dokumentation ist entscheidend, um den Überblick zu behalten.
Dieser detaillierte Guide ermöglicht es Ihnen, eine robuste und zuverlässige intelligente Gartenbewässerung zu bauen. Denken Sie immer daran, Sicherheit und sorgfältiges Arbeiten zu priorisieren.