Mit einem Pi Zero und wenigen Bauteilen bauen Sie im Handumdrehen eine preiswerte und zuverlässige automatische Bewässerung für Ihre Pflanzen auf.
Bewässerungsautomaten sind nicht neu. Es gibt sie nicht nur im Großen in Landwirtschaft und Gartenbau, sondern auch schon länger für den Heimbereich. Einige Anbieter operieren gleich an der Wasserleitung. Das wollen wir bei unserem Projekt nicht tun, sondern aus einem Vorratsbehälter schöpfen, einem 200-Liter-Behälter mit genug Reserve für trockene Tage (Abbildung 1). Ein Fasseinhänger hat den Vorteil, dass man es nicht mit einer Druckleitung zu tun hat und im Havariefall nicht unkontrolliert viel Wasser verloren geht. Als Ziel peilen wir eine robuste Lösung an, die wir dank der Flexibilität des Raspberry Pi sowie eigener Soft- und Hardware ganz auf die eigenen Bedürfnisse abstimmen.
Für den Wohnbereich kann der Vorratsbehälter freilich viel kleiner ausfallen, hier genügt schon ein Wassereimer. In den Behälter taucht eine isolierte Pumpe ein, die über eine Steigleitung das Gießwasser fördert. Über eine Verzweigung versorgen zwei Leitungen die zu bewässernden Pflanzen, das Ganze lässt sich je nach Bedarf mit Magnetventilen steuern. Um zu kontrollieren, ob das Wasser die Pflanzen auch wirklich erreicht, kommen noch zwei Feuchtesensoren zum Einsatz.
Inbetriebnahme
Um den RasPi in Betrieb zu nehmen, laden wir wie gewohnt ein neues Pi-OS-Image herunter und übertragen es auf eine MicroSD-Karte. Mit angestecktem Bildschirm und Tastatur lassen sich Boot-Optionen und Netzwerkeinstellungen konfigurieren. Eine Desktop-Umgebung braucht es nicht; wir wählen also die automatische Anmeldung per CLI bei aktiviertem SSH. Von einem Rechner im Netzwerk aus lassen sich dann im Terminal alle weiteren Einstellungen vornehmen. Der RasPi soll einen der Aufgabe entsprechenden Host-Namen bekommen und heißt daher watering. Für die Dateien im Projekt legen wir im Home-Verzeichnis einen eigenen Ordner an.
Aufbau
Die wesentliche Elektronik der Steuerung findet in einem fertigen Gehäuse mit Gummidichtung im Deckel und Anschlussleiste Platz, auf die wir alle äußeren Leitungen legen (Abbildung 2). Um alle Module sicher befestigen zu können, haben wir im Inneren noch zwei kleine Trägerplatten verschraubt.
Das Gehäuse der Steuereinheit nimmt den RasPi, einen A/D-Wandlerbaustein sowie drei Relais auf. Über drei Vierfachleitungen kommen von unten die Stromversorgung per externem Netzteil, Anschlüsse für zwei Bodenfeuchtesensoren, zwei Magnetventile und die Pumpe. Von oben ist später noch eine LED zur Anzeige der Betriebsbereitschaft an der Stelle zu sehen, an der wir die nicht benötigte Verschraubungsöffnung mit transparentem Material verklebt haben.
Am RasPi benötigen wir für die Steuer-PINs der Relaisplatinen und der Signal-LED insgesamt vier GPIO-Pins, der ADC ist per I2C-Bus verbunden. Über die interne Anschlussleiste verknüpfen wir nun die analogen Eingänge des Wandlers mit den Feuchtesensoren und die Schaltausgänge der Relais für Pumpe und Magnetventile nach außen. Den Schaltplan dafür finden Sie im Github-Projekt unseres Automaten.
Bauteilliste
- Raspberry Pi Zero W (Modell 1 oder 2)
- Kreiselpumpe mit 1,2 Meter Förderhöhe
- 2 Magnetventile
- 3 Relaismodule
- A/D-Wandler (etwa ADS1115)
- 2 Feuchtesensoren
- Steckernetzteil (5 Volt)
- Gehäuse, Verkabelung
- verschiedene Schläuche und Schellen
- Adapter, Regelventile, Erdspieße
Jetzt heißt es, die externe Hardware, die Pumpe und die Magnetventile mit Schlauchmaterial zu verbinden. Wie wir das realisiert haben, zeigt schematisch der Versuchsaufbau in Abbildung 3. Da nach der Pumpe kein passender Verteiler zur Verfügung stand, haben wir einen aus Messingmaterial selbst gelötet. Die beiden Steuerventile ermöglichen ein Zweiwegesystem, das zwei Gruppen von Pflanzen mit unterschiedlichem Wasserbedarf versorgen kann.
Mittels der Ventile lassen sich außerdem beide Hauptstränge zuverlässig gegen ein Aussaugen des Vorratsbehälters im Ruhezustand sperren. Die danach folgende Verteilung kann mit kleinerem Leitungsdurchmesser erfolgen, T-Stücke übernehmen die weitere Verzweigung. Damit an allen Pflanzstellen gleichmäßig Wasser ankommt, haben wir kleine Regler vorgesehen, bei deren Einstellung man etwas probieren muss. Für einen ersten Test versahen wir zuerst die Kreiselpumpe mit einer längeren Verbindung, um sie unter Wasser setzen zu können.
Funktioniert alles zufriedenstellend, kann man darangehen, Schläuche und Kabel auf die erforderliche Länge zu bringen und, mit Erdspießen befestigt, an Ort und Stelle zu verlegen. Schlauchschellen um die dickeren Leitungen verhindern zuverlässig, dass während unserer Abwesenheit etwas von den Anschlüssen abrutscht.
Steuerung
Sieht man sich käufliche Automaten an, so erscheinen sie in der Bedienung oft relativ kompliziert. Im Unterschied dazu soll unser Bewässerungsautomat möglichst einfach agieren, sodass der Eigenbau gut beherrschbar bleibt und in Abwesenheit sicher funktioniert. Dennoch hat unser Bewässerungsautomat noch ein besonderes Feature in petto: Er kann die Bewässerungszeit so verlängern, dass zuverlässig ein gewisser Feuchtegrad im Erdboden erreicht wird. Dafür nutzen wir Sensoren an zwei verschiedenen Pflanzstellen, die entsprechende Rückmeldung geben.
Die Wahl fiel auf kapazitive Sensoren, die weniger korrosionsanfällig sind als Widerstandsmesser. Obwohl es sich bei uns um Modelle mit analogem Ausgang handelt, lassen sie sich über einen ADC recht leicht an den RasPi in der Steuerzentrale anbinden. Um vorab diverse Grenzwerte zu bestimmen, tauchen wir sie im Test in Wasser (Abbildung 4) und stecken sie in feuchte Erde. Als A/D-Wandler fungiert in unserem Aufbau ein ADS1115, den wir in Python 3 über eine Library von Adafruit ansprechen. Die lässt sich am einfachsten per Pip mittels des Kommandos pip3 install Adafruit_ADS1x15 installieren.
Für den Betrieb unserer Lösung nutzen wir das zentrale Steuerskript watering.py, das resident im Speicher des RasPi läuft und neben der Abfrage der Feuchtesensoren die komplette Ablaufsteuerung übernimmt. Dort sind auch alle zeitlichen Einstellungen hinterlegt. So bewässert der Automat in der ersten sparsamen Strecke nun jeden Tag um 17 Uhr zwei Minuten lang. Über das zweite Magnetventil gesteuert, macht er das etwas länger, für fünf Minuten. Die Werte lassen sich je nach Bedarf anpassen.
Zum Bewässern öffnet der RasPi immer zuerst beide Magnetventile, danach startet der Pumpvorgang aus dem Vorratsbehälter. Ist die Zeit für die erste Gießwasserförderung abgelaufen, kontrolliert das System über den ersten Feuchtesensor, ob der Zustand “nass” für die Erdfeuchte am Pflanzplatz bereits erreicht ist. Bei Bedarf wird nachgefördert. Danach schließt das erste Ventil. Der zweite Strang bleibt längere Zeit offen und wird nach gleichem Schema kontrolliert, bis das Skript zuerst die Pumpe stoppt und zu guter Letzt auch das zweite Ventil schließt.
Das Python-Skript liegt in einem eigenen Ordner im Home-Verzeichnis. In der rc.local aufgerufen, startet es beim Hochfahren des Rechners automatisch. Wer mag, kann auch einen ordentlichen Dienst daraus machen. Alles wurde recht einfach gehalten, genügt aber für den täglichen Betrieb und lässt sich im Bedarfsfall jederzeit ausbauen. Das Skript und die im Folgenden beschriebene PHP-Website für die Fernbedienung finden Sie im Github-Projekt [1] des Autors. Von dort laden Sie bei Interesse auch den Schalt- und Verlegungsplan der Wasserversorgung herunter.
Da der RasPi im lokalen Netz hängt, kann man ihn von dort aus auch per SSH erreichen und warten. Dazu genügt eine Anmeldung in einem Terminal mittels ssh pi@watering. Im Unterschied zu vergleichbaren Projekten haben wir dem Bewässerungsautomaten jedoch kein separates Menü im Terminal spendiert. Es handelt sich ja um ein einfaches Arbeitstier, das jeden Tag dem immer gleichen Ablauf folgt. Was ansonsten an Bedienung anfällt, wollen wir im Webbrowser erledigen.
Fernbedienung per Web
Der Bewässerungsautomat funktioniert auch ohne Internet-Zugang zuverlässig. Wenigstens einen Remote-Zugang sollte er aber schon bekommen, um nicht alles am Gerät ablesen zu müssen und sich Taster oder Touchscreen am Gehäuse zu sparen. Alles soll ja auch gut wasserdicht sein.
Steht der Automat im Garten außer Reichweite des eigenen Routers, kann ein Repeater auf halber Strecke helfen. Ersatzweise stöpselt man in der Testphase die Steuereinheit an den Verbindungssteckern einfach ab und programmiert den RasPi drahtlos in der Wohnung neu. Für den Fernzugriff braucht es jedoch immer eine Netzwerkverbindung, sodass man auch im Urlaub bei Bedarf eingreifen kann.
Käufliche Automaten kommen da heutzutage mitunter schon mit einer Smartphone-App daher. Wir haben eine Weboberfläche zur Bedienung entworfen, die auch auf dem Handy funktioniert. Da wir keine Hersteller-Cloud zur Verfügung haben, müsste unser RasPi samt HTTP-Server über eine feste IP-Adresse im Internet erreichbar sein.
Wir haben uns jedoch für eine einfachere Variante entschieden und die Bedienoberfläche (Abbildung 5) auf dem eigenen Webspace in einer PHP-Datei platziert. Nach Aufruf der entsprechenden URL sendet dieses Interface auf Knopfdruck vordefinierte Befehle an den Automaten. Derzeit sind die fünf Aktionen aus der Tabelle “Funktionen im Web-Interface” implementiert. Der Raspberry Pi fragt im Steuerskript die entsprechenden Befehle in kurzen Zeitintervallen ab und löst gegebenenfalls die entsprechenden Aktionen aus.
|
Name |
Funktion |
|---|---|
|
Aktiv |
Zeitschaltung der Bewässerung aktivieren (Standard: ein). |
|
Aus |
Zeitschaltung deaktivieren. Automat bleibt eingeschaltet. |
|
Wasser |
Gesonderte Wassergabe, unverzüglich für 10 Sekunden und über beide Leitungen. |
|
Neustart |
Automat neu starten. Nach dem Neustart des RasPi ist das Web-Interface wieder aktiv. |
|
Down |
Herunterfahren des RasPi. Danach ist ein manuelles Aus- und Einschalten notwendig. |
Als Basis für unsere Umsetzung dient eine Entwicklung von Christian Grieger [2]. Der Vorteil seiner Methode: Sie erfordert keine aufwendigen Vorkehrungen wie dynamisches DNS. Der Nachteil: Rückmeldungen kommen etwas zeitverzögert an, was aber im konkreten Fall wenig stört. Die Webseite zur Fernsteuerung sollte man aber unbedingt mit einem Login absichern.
Fazit
Unsere Pflanzenbewässerung tut genau, was sie soll, im besten Sinn. Als wir sie bei sonnigem Wetter die letzten Sommertage am Haus in Betrieb hatten, war die Kontrolle der Funktionalität kein Problem (Abbildung 6).
So darf sie nächstes Jahr die Urlaubsvertretung übernehmen. Zwar kann sie nicht den ganzen Garten versorgen, das wäre wohl übers Ziel hinausgeschossen. Für die wichtigsten Pflanzen in einem abgegrenzten Bereich, wie im Gewächshaus, im Wintergarten oder dem Wohnzimmer, kann unsere Steuerung aber ein echter Helfer sein. (jlu)
Der Autor
Swen Hopfe arbeitet bei einem mittelständischen Unternehmen mit Schwerpunkt Chipkarte und NFC. Wenn er nicht gerade beim Fotografieren, in der Natur oder im Garten unterwegs ist, beschäftigt er sich mit Themen rund um den RasPi, IoT und Hausautomation.
Infos
-
Projekt auf Github: https://github.com/swenae/watering
-
Elektronik-Projekte von Christian Grieger: https://elektro.turanis.de











