Bewässerung

Ob in der Wohnung, auf dem Balkon, Gewächshaus oder Garten, ist man nicht zu Hause und möchte man ausgewählte Pflanzen über die Ferne mit Gießwasser versorgen, macht sich eine automatische Vorrichtung gut. So haben wir wieder einen RPi eingespannt, der als zuverlässiger Helfer zur Steuerung der Bewässerung dienen soll.

Der Automat

Bewässerungsautomaten sind nicht neu, sie gibt es 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 im Projekt hier nicht tun, sondern aus einem Vorratsbehälter schöpfen, daheim ein 200L-Behälter mit genug Reserve für trockene Tage. Ein „Fasseinhänger“ ergibt den Vorteil, dass man es nicht mit einer Druckleitung zu tun hat und im Havariefall nicht unkontrolliert viel Wasser verloren geht. Unser Ziel dabei war eine robuste Lösung, die mittels der Flexibilität des Pi und eigener Soft- wie Hardware ganz auf die eigenen Bedürfnisse abgestimmt ist.


Abb.1: Steuereinheit und Zuleitung am Vorratsfass

Für den Wohnbereich kann der Vorratsbehälter natürlich ein viel kleinerer sein, wie ein Wassereimer zum Beispiel. Im Behälter wird eine isolierte Pumpe eingetaucht, die über eine Steigleitung das Gießwasser fördert. Über eine Verzweigung versorgen zwei Wege die zu bewässernden Pflanzen, je nach Bedarf mit Magnetventilen steuerbar. Um zu kontrollieren, ob auch wirklich Wasser an den Plätzen angekommen ist, sollen noch zwei Feuchtesensoren zum Einsatz kommen.

Den RPi in Betrieb nehmen

Um den Pi in Betrieb zu nehmen, laden Sie wie gewohnt ein neues PiOS-Image herunter und bringen es auf eine MicroSD-Karte. Mit angestecktem Bildschirm und Tastatur lassen sich Boot-Optionen und Netzwerkeinstellungen konfigurieren. Ein Desktop wird nicht gebraucht, so wählen Sie die automatische Anmeldung per CLI bei aktiviertem ssh. Von einem Netzwerkrechner lassen sich im Terminal dann alle weiteren Einstellungen vornehmen. Unser Pi soll einen der Aufgabe entsprechenden Hostnamen bekommen. Bei uns heißt er nun „watering“. Für die Dateien im Projekt legen Sie im Homeverzeichnis am besten ein eigenes Unterverzeichnis an.

Aufbau

Die wesentliche Elektronik unserer Steuerung findet in einem fertigen Gehäuse mit Gummidichtung im Deckel und Anschlussleiste Platz, auf die alle äußeren Leitungen gelegt sind. Um alle Module sicher befestigen zu können, sind im Inneren noch zwei kleine Trägerplatten verschraubt worden.Im Gehäuse unserer Steuereinheit sind nun Pi, A/D-Wandler-Baustein und drei Relais untergebracht. Über drei Vierfachleitungen kommen von unten Stromversorgung per externem Netzteil, Anschlüsse für zwei Bodenfeuchtesensoren, zweier Magnetventile und Pumpe. Nach oben ist später noch eine LED zur Anzeige der Betriebsbereitschaft zu sehen, wo wir die nicht benötigte Verschraubungsöffnung mit transparentem Material verklebt haben.


Abb.2: Einbau der Hardware

Am Pi werden für die Steuer-PINs der Relaisplatinen und der Signal-LED insgesamt vier GPIOs benötigt, der ADC ist per I2C-Bus verbunden. Über die interne Anschlussleiste verknüpfen wir nun die analogen Eingänge des Wandlers zu 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 (1 oder 2)
– Kreiselpumpe mit 1.2m Förderhöhe
– Magnetventile (2x)
– Relaismodule (3x)
– A/D-Wandler wie ADS1115
– Moisture Sensor v1.2 (2x)
– Steckernetzteil 5V
– Gehäuse, Verkabelung
– verschiedene Schläuche, Schellen
– Adapter, Regelventile, Erdspieße

Jetzt heißt es, die externe Hardware, Pumpe und Magnetventile, mit Schlauchmaterial zu verbinden. Wie das schematisch realisiert worden ist, zeigt der Versuchsaufbau in der Abbildung. Da kein passender Verteiler nach der Pumpe zur Verfügung stand, haben wir einen aus Messingmaterial selbst gelötet. Per Zweiwegesystem wir es durch die beiden Steuerventile möglich, zwei Gruppen von Pflanzen mit unterschiedlichem Wasserbedarf zu versorgen. Mittels der Ventile werden außerdem beide Hauptstränge zuverlässig gegen Aussaugen des Vorratsbehälters im Ruhezustand gesperrt.


Abb.3: Anschlussschema Wasserversorgung

Die danach folgende Verteilung kann mit kleinerem Leitungsdurchmesser geschehen und mit T-Stücken weiter verzweigen. Damit an allen Pflanzstellen auch gleichmäßig Wasser ankommt, sind kleine Regler vorgesehen, bei deren Einstellung man etwas probieren muss. Für einen ersten Test bekam zuerst die Kreiselpumpe eine längere Verbindung, um sie unter Wasser setzen zu können. Funktioniert alles zufriedenstellend, kann man daran gehen, 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 sind eine gute Idee, damit in Abwesenheit nichts von den Anschlüssen abrutscht.

Steuerung

Schaut man sich käufliche Automaten an, so erscheinen solche in der Bedienung oft relativ kompliziert. Im Unterschied dazu sollte unser Bewässerungsautomat möglichst einfach agieren, so dass der Eigenbau gut beherrschbar bleibt und in Abwesenheit sicher funktioniert. Dennoch hat unser Bewässerungsautomat noch ein besonderes Feature im Petto. So kann er die Bewässerungszeit verlängern, wenn ein gewisser Feuchtegrad im Erdboden noch nicht erreicht ist. Dafür nutzen wir Sensoren an zwei verschiedenen Pflanzstellen, die Rückmeldung darüber geben.


Abb.4: Feuchtesensoren am A/D-Wandler

Die Wahl fiel auf kapazitive Sensoren, welche gegenüber Widerstandsmessern weniger Korrosion unterworfen sind. Obwohl bei uns Modelle mit analogem Ausgang, lassen sie sich über einen ADC recht leicht an den Pi in unserer Steuerzentrale anbinden. Um vorab diverse Grenzwerte zu bestimmen, kann man sie im Test in Wasser oder feuchte Erde eintauchen. Der A/D-Wandler ist bei uns ein ADS1115, wir sprechen ihn in Python3 über seine Library von Adafruit an, am einfachsten per pip mittels

$ pip3 install Adafruit_ADS1x15

installiert.
Für den Betrieb unserer Lösung nutzen wir ein zentrales Steuerskript (watering.py), was resident im Speicher des Pi 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:00 Uhr und zwei Minuten lang. Über das zweite Magnetventil gesteuert, macht er das etwas länger für fünf Minuten. Und natürlich kann angepasst werden, je nachdem was man für seine eigenen Zwecke benötigt.

Dabei werden immer zuerst beide Magnetventile geöffnet, danach startet der Pumpvorgang aus dem Vorratsbehälter. Ist die erste Zeit für die Gießwasserförderung abgelaufen, wird über den ersten Feuchtesensor kontrolliert, ob der Zustand „nass“ für die Erdfeuchte vom Pflanzplatz 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 zuerst Pumpe und letztendlich auch das zweite Ventil geschlossen werden.

Man platziert das Pythonskript am besten in einem eigenen Ordner im Homeverzeichnis. 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, reicht uns aber für den täglichen Betrieb und ist natürlich jeder Zeit ausbaubar. Skript und die im Folgenden beschriebene PHP-Website für die Fernbedienung finden sich im Github-Projekt auf https://github.com/swenae/ watering . Dort finden sich auch Schaltplan und Verlegungsplan der Wasserversorgung. Da der Pi im lokalen Netz hängt, kann man ihn von dort aus auch per ssh erreichen und warten. Dazu melden Sie sich wie gewohnt in einem Netzwerk-Terminal, bei uns hier mittels

$ ssh pi@watering

an. Im Unterschied zu vergleichbaren Projekten von uns, haben wir ihm an dieser Stelle jedoch kein separates Menü im Terminal spendiert, wo der Bewässerungsautomat doch ein einfaches „Arbeitstier“ ist, was jeden Tag der Woche den immer gleichen Ablauf gewährleisten soll. Was ansonsten an Bedienung gebraucht wird, soll wie folgt im Browser gemacht werden.

Fernbedienung per Web

Der Bewässerungsautomat funktioniert zuverlässig offline. 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. Ist der Automat im Garten außer Reichweite des eigenen Routers platziert, kann ein Repeater auf halber Strecke helfen. Wer das nicht bewerkstelligen kann, stöpselt in der Testphase die Steuereinheit an den Verbindungssteckern einfach ab und programmiert den Pi drahtlos in der Wohnung neu. Für den Fernzugriff, wo man etwa auch im Urlaub eingreifen möchte, braucht es jedoch immer eine Netzwerkverbindung. 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 Pi samt HTTP-Server über eine feste IP-Adresse im Internet
erreichbar sein.


Abb.5: Steuerung per Web

So haben wir uns für eine einfachere Variante entschieden und die Bedienoberfläche auf dem eigenen Webspace in einer PHP-Datei platziert. Nach Aufruf der entsprechenden URL sendet die nun vordefinierte Befehle per Button. Derzeit implementiert sind:

Aktiv – Zeitschaltung der Bewässerung aktivieren (Standard ein)
Aus – Zeitschaltung deaktivieren (Automat bleibt eingeschalten)
Wasser – extra Wassergabe, unverzüglich für 10s und an beide Leitungen
Neustart – Automat neu starten (Pi rebooten, Webinterface danach wieder aktiv)
Down – Automat/Pi herunterfahren (danach aus- und einschalten notwendig)

Der Raspberry Pi fragt im Steuerskript oben genannte Befehle in kurzem Zeitintervall ab und löst die entsprechenden Aktionen aus. Basis für diese Umsetzung war die Entwicklung von Christian Grieger (elektro.turanis.de). Der Vorteil seiner Methode ist, dass keine aufwändigen Vorkehrungen wie dynamisches DNS notwendig sind. Was uns wenig stört, Rückmeldungen kommen etwas zeitverzögert an. Die Webseite zur Fernsteuerung sollte man aber unbedingt mit einem Login absichern.

Fazit

Unsere Pflanzenbewässerung tut was sie soll, im besten Sinne. Wo wir sie bei sonnigem Wetter die letzten Sommertage am Haus in Betrieb hatten, war die Kontrolle der Funktionalität kein Problem.


Abb.6: Wasserauslass und Sensorspieß im Beet

So darf sie nächstes Jahr die Urlaubsvertretung übernehmen. Natürlich können Sie damit nicht den ganzen Garten versorgen, das wäre wohl am Ziel vorbei. Für die wichtigsten Pflanzen in einem abgegrenzten Bereich, wie im Gewächshaus, Wintergarten oder Wohnzimmer, kann unsere Steuerung aber ein echter Helfer sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert