Vorraussetzungen
Komponenten
Nützliche Dateien
Anleitung
Um eine Automatische Bewässerung zu bauen, überlegen wir uns erstmal die Funktion des Projekts.
Ein Sensor misst die Feuchtigkeit im Boden anhand des Leitwertes und gibt diesen Wert an Home Assitant weiter. Dort liest eine Automation, die wir mit Node Red erstellen, den Wert des Sensors aus und gibt einen Zeitlichen Impuls an ein Relais aus, welches die Wasserpumpen mit Strom versorgt. So viel zur Theorie.
Alle benötigten Bauteile findet Ihr übrigens hier:
Nun Zur Praxis:
Zuerst schließen wir unseren D1 Mini per USB an das Gerät an wo wir unsere Home Assitant instanz laufen haben. Im meinem Fall ist es ein RaspberryPi3.
Wenn Ihr den D1 Mini wie beschrieben angeschlossen habt, geht es weiter.
- Geht in Home Assistant in ESPHome und wählt oben rechts bei „Over-The-Air“ „USB Serial“ aus.
- Klickt unten rechts auf das Grüne +
- Wählt jetzt den Namen wie Ihr Eure D1 Mini nennen wollte. Im meinem Fall pumpe1.
ACHTUNG! Es dürfen nur Kleinbuchstaben verwendet werden. - Klickt auf Next
- Wählt jetzt unter Device „Wemos D1 and Wemos D1 mini“ aus.
- Klickt auf Next
- Gebt bei „Wifi SSID“ den Namen Eures WLAN Netzwerkes ein. Und bei „Wifi Password“ entsprechend Euer WLAN Passwort.
- Das Feld OTA Password könnt Ihr frei lassen.
- Klickt auf „Submit“
Ihr solltet jetzt folgendes Feld sehen:
Nun Programmieren wir den D1 Mini!
- Klickt auf „edit“
- Kopiert den untenstehenden Code und fügt Ihn in ESPHome unterhalb von logger ein und ersetzt Euer API und OTA Passwort.
# Enable Home Assistant API
api:
password: "EUER API PASSWORT"
ota:
password: "EUER OTA PASSWORT"
switch:
- platform: gpio
name: "Pumpe1"
pin: "D1"
- platform: gpio
name: "Pump2"
pin: "D8"
sensor:
- platform: adc
pin: A0
filters:
- calibrate_linear:
- 0.36 -> 1.00
- 0.76 -> 0.00
name: "Pumpe1_Feuchtigkeit"
update_interval: 20s
Das ganze sollte nun so aussehen ergänzt mit Euren Daten:
- Klickt nun auf Upload.
Euer D1Mini ist nun programmiert!
Zu Erklärung des Codes:
switch: Zeigt Euch in Home Assistant einen Schalter an mit der Entität switch.pumpe1 und switch.pump2. Der Sensor wird als sensor.pumpe1_feuchtigkeit angezeigt.
Jetzt haben wir keinen Schalter aber ein Relais welches als Schalter fungiert. Dieses wird einmal an dem PIN D1 und PIN D8 an Eurem D1 Mini angeschlossen. (Siehe Schaltbild)
Verkabelung
Kommen wir zu Verdrahtung der einzelnen Komponenten. Ich habe auf dem Schaltbild eine Stromquelle eingezeichnet. Ich habe die Stromversorgung aber ausschließlich über den Ground Pin und den 5V Pin vom D1 Mini realisiert und diesen per USB an ein Netzteil angeschlossen. Um den Überblick nicht zu verlieren habe ich das Ganze auf eine Lochplatine gelötet nach folgendem Schema:
An G werden die ganzen Ground Pins der einzelnen Komponenten angeschlossen und an 5V alle VCC Pins der Komponenten. Der AOUT Pin von dem Moisture Sensor geht auf A0 und IN1 und IN2 vom Relais natürlich auf IN1 und IN2 der Platine. (siehe Schaltbild weiter oben.)
Den D1Mini habe ich von der anderen Seite an die Platine gelötet. Das sieht dann in etwa so aus: (Nicht schön, aber funktionell)
Die Pumpen werden nur mit dem Ground PIN an der Platine verbunden. Der VCC PIN muss natürlich an das Relais angeschlossen werden. (Siehe Schaltplan oben)
Wer sich nicht zutraut die Platine selbst zu löten, kann sich diese Natürlich auch bei einem PCB Hersteller anfertigen lassen. Den Link zu der Datei findet Ihr Oben links unter Nützliche Dateien. Dort findet Ihr im übrigen auch die Druckdaten für die Gehäuse.
Das D1 Mini Gehäuse habe ich auf das Relais Gehäuse geklebt. Vorher habe ich mit einem 10er Bohrer ein Loch durch das Gehäuse gebohrt, um die Kabel hindurchzuführen.
Den Sensor und die Pumpen habe ich entsprechend mit einem Kabel verlängert, um an die gewünschten stelle auf dem Balkon zu kommen. Die Pumpenkabel und Sensorkabel habe ich zusammengelötet und die Lötpunkte mit einer Heißklebepistole verschweißt, damit kein Wasser an die offenen Lötstellen dringen kann. Zusätzlich habe ich einen Schrumpfschlauch verwendet um auf Nummer sicher zu gehen.
Programmierung in Node RED
Das schlimmste haben wir jetzt hinter uns. Kommen wir zur Programmierung in Node RED.
Als ersten Punk suchen wir uns das Icon „Event State“ aus der Seitenleiste raus und ziehen es in Node RED. Mit einem Doppelklick auf das Feld könnt Ihr die Eigenschaften wie folgt bearbeiten:
Klick nun auf Fertig und sucht Euch aus der Seitenleiste das Feld „Call Service“ und zieht es ebenfalls in die Mitte. Mit einem Doppelklick auf das Feld könnt Ihr die Eigenschaften wie folgt bearbeiten:
Wiederholt den Schritt für die zweite Pumpe: (Namen in Pumpe2 ändern)
Klick nun auf Fertig und sucht Euch aus der Seitenleiste das Feld „Stop timer“ und zieht es ebenfalls in die Mitte. Mit einem Doppelklick auf das Feld könnt Ihr die Eigenschaften wie folgt bearbeiten:
Klick nun auf Fertig und sucht Euch aus der Seitenleiste das Feld „Call Service“ und zieht es ebenfalls in die Mitte. Mit einem Doppelklick auf das Feld könnt Ihr die Eigenschaften wie folgt bearbeiten:
Wiederholt den Schritt für die zweite Pumpe:
Klickt auf fertig. Jetzt müssen wir die einzelnen „Kästen“ nur noch wie im folgenden Bild verbinden und oben rechts auf „Übernahme (deploy)“ klicken.
Schon haben wir unsere Automatisierung erstellt. Jedes Mal, wenn der Sensor 1 Sekunde lang der Wert 0,30 unterschreitet, schaltet die beiden Pumpen für 30 Sekunden an und bewässern unser Pflanzen.
Ich hoffe, Ihr hatte Spaß mit dieser Anleitung. Wenn Ihr fragen haben solltet, dann schreibt mir eine Mail an info[at]smart-4u.de oder folgt mir dazu doch einfach auf Instagram.
Wenn ich Euch helfen konnte und Ihr mich unterstürtzen wollt, dann würde ich mich freuen, wenn Ihr mal bei meiner Amazon-Wunschliste vorbeischaut.
Alles kann aber nichts muss!
EIN KOMMENTAR
Hallo Herr Wolter,
ich habe mich genau an dem selben “Problem” (autom. Bewässerung) versucht und auch Ihr Beispiel
probiert. Die eingesetzte Hardware stimmt mit Ihrer überein, allerdings habe ich nur eine Pumpe angesteuert.
Eine kleine Anmerkung:
Wenn man im NodeRed -Event State- einsetzt reagiert die Steuerung nur 1x und nur von oben aus (>30%)
Wird nach dem Gießen die Bedingung z.B. 30% Feuchte nicht erreicht wird nicht ein 2tes oder 3tes mal gegossen.
Besser funktioniert es bei mir mit -poll state- und einem einstellbaren Interval, dann wird z.B. alle 5min geprüft ob die Pflanze noch mehr
Wasser benötigt. Für das Mehrfach Gießen habe ich noch eine 90% Schwelle eingebaut und schalte bei erreichen die Pumpe aus.
Danke für das Beispiel ! Hat mir sehr geholfen.
Gruß aus Berlin
Mike Fabritius