Beetbewässerung – Gieskanne des Teufels – Phase 1
Ein Anspruch an meine Projekte ist das es ein Ergebnis gibt, das in irgend einer Weise praktischen Nutzen bringt (oder einfach Laune macht). Da am Haus mehrere Hochbeete beständig nach Wasser brüllen war eine automatische Bewässerung ein naheliegendes Thema für einen Eigenbau.
Projekt: Beetbewässerung
Kontakt: Boris Dirnfeldner
Link: – eigenes Projekt –
Leider ist hier eine Menge Grundlagenarbeit in die Basissteuerung geflossen und auch in den Aufbau bzw. der Peripherie, was den Produktivbetrieb am Ende doch empfindlich verzögert hat. Dazu aber später mehr.
Basis ist ein Arduino Mega 2560 board mit RTC-Modul, SD-Card-Modul, OLED Display, WLAN-Modul und ein 8-fach Relais-Modul.
Über die Relais werden derzeit 5 Magnetventile angesteuert (3 Relais in Reserve).
Die Stromversorgung ist gelöst über ein 230V Schaltnetzteil auf 12V (Spannung für die Magnetventile) und ein Konverter auf 5V. Das Arduino-Board liefert noch 3,3V.
Aufgebaut ist das ganze auf einer per 3D-Druck aufgebauten Trägerplatte aus PLA, montiert in einen IP65 Gehäuse am ersten Beet.
Der Wasserkreislauf besteht auch einer Wasserzuführung (1/2″-Gartenschlauch), die über Rohrfittinge in die 5 Magnetventile geleitet wird (parallel) und von dort für jedes Beet wieder per 1/2″ Gartenschlauch und Y-Adapter an 5/8mm Schlauch mit Tropfern weiterverteilt wird. Pro Beet sind je 10 Tropferstellen an 2 Strängen vorgesehen.
Vorgesehen sind 2 Betriebsmodis:
o Zeitbasierende Bewässerung: Pro Beet wir eine feste Zeit das Magnetventil geöffnet und dann wieder geschlossen.
o Mengenbasierende Bewässerung: Am Eingang befindet sich ein Mengenzähler, der Betrieb erfolgt statt über Zeit über Ticks des Zählers.
Für beide Modis sind Maximalwerte implementiert und mit dem Mengenzähler auch Plausibilitätsprüfungen.
Im System sind pro Tag 24 Slots vorgesehen, die jeweils eine Bewässerung auslösen können. Dabei wird immer nur ein Magnetventil geöffnet um einen Abfall des Wasserdrucks zu unterbinden.
Weiterhin sind pro Beet 2 kapazitive Feuchtigkeitsmesser vorgesehen, die Bewässerungen anteilig zum Feuchtegrad im Beet reduzieren oder unterbinden können.
Seitlich ist ein Netzschalter für 230V vorgesehen und auf der anderen Seite 2 Taster zur Benutzerführung (Switch der Anzeige, Manuelle Auslösung der Bewässerung).
Intern ist die Software in Tasks organisiert, die über einen Scheduler zeitbasiert angesteuert wird und sich über Variablen aussteuert (ähnlich einer SPS).
Per USB ist auch noch eine Kommandozeilensteuerung eingebaut, die manuelle Steuerung der Relais und ein Paar andere Kommandos unterstützt.
Probleme und Herausforderungen:
Das Projekt war gleichzeitig an vielen Stellen Erfahrungsgewinn.
Zum einen wurde hier meine Basisumgebung zur Ansteuerung diverser Sensoren, der Aktoren, der Scheduler und allem anderen aufgebaut und mehrfach überarbeitet. Obgleich die Basislogik schnell definiert ist, war die Implementierung dann im Detail recht umfangreich und brauchte mehrere Runden von Idee – Konzept – Entwicklung – Test – Kopfschmerz – Heureka – Nochmaal!
Vor allen, da ich From-the-Scratch nur auf Libs aufgesetzt habe mit dem Ziel für mich hier eine allgemeine Code-Basis zu schaffen.
Der Aufbau im Gehäuse hat wiederum seine Zeit gefordert. Zum einen soll das Ding ja auch länger arbeiten und Leben und zum anderen, weil mit 230V gearbeitet wird. Sorgfalt war hier angesagt und einige Stunden Arbeit damit.
Der Wasserkreislauf ist im Bereich Lebenserfahrung besonders wertvoll. Ich habe noch nie so ausgeprägte und vielfältige Schimpfwörter beim dichten von Leitungen und Anschlüssen benötigt und verwendet. Besonders die tollen Adapter von 1/2″ auf 5/8mm für die Endverschlauchung waren eine echte Freude (Kombiadapter 1/2″ – 8/11mm – 5/8mm, letztere Verbindung ging bei Druck öfter mal auf und hatte Badespaß zur Folge). Zumindest konnte ich mich so von der Dichtigkeit des Gehäuses überzeugen, das war mehr als einmal mit erheblichen Wassermengen und direkten Wasserstrahl begossen worden.
Insgesamt war auch die Auslegung des Systems ein Problem. Wenig Druck führte dazu, das an den letzten Dripperköpfen kein Wasser mehr angekommen ist. Zuviel Druck belastete die Kupplungen (und vor allen den Adapter) derart, das Undichtigkeiten oder Ausfall die Folge war.
Auch waren die Dripperköpfe auf Bodenniveau „gelegt“. Nachdem da einige Pflanzen drum rum und drüber gewachsen waren und ein Paar gärtnerische Aktivitäten gelaufen sind, waren einige unter der Erde vergraben und damit nicht mehr effektiv. Die nächste Generation wird oberirdisch auf Plastikpfählen das Problem lösen.
Die Elektroniker unter Euch haben beim Schaltnetzteil (chinesisches Fabrikat) sicher schon in sich hinein gelächelt. Lustigerweise ist das Netzteil offenbar so unsauber in der Ausgangsseite, das der Mengensensor damit ständig Bewegung im Wasserkreislauf detektiert hat (mit USB als Versorgung läuft der einwandfrei). Da wird wohl ein Glättkondensator und/oder ein besseres Netzteil fällig.
Ursprünglich war ich auch mit einem Arduino Uno gestartet, bis das SD-Modul dazu gekommen ist. Der Zugriff auf die Karte erfolgt in 512 Byte-Blöcken, wovon einer komplett ins RAM geladen werden muss. Da der Uno nur 2K in Summe hat, wird es da sehr eng (zu eng). Mit den kapazitiven Sensoren (die Analog-Input brauchen), wäre es auf dem Uno ohnehin zu eng geworden.
Das RTC-Modul wurde auch ausgetauscht. Die erste Version (DS1307) ist tatsächlich erheblich weggedriftet und faktisch unbrauchbar. Der Effekt war umso stärker, je öfter auf das Modul zugegriffen wurde. Das neue Modul hat das Problem nicht mehr und dazu eine aufladbare Batterie.
Beim WLAN war’s auch nicht langweilig. Gestartet mit einem (ESP8266) und der dazu passenden Library musste ich nach einigen Versuchen feststellen, das die Stabilität erheblich zu mies war um damit irgendwas zu machen, schon gar nicht per MQTT zu übertragen. Der Speicherverbrauch der Library war ebenfalls inakzeptabel.
Der Umstieg auf ESP-Link und El-Client war hier eine erhebliche Verbesserung, so das Senden nun sicher funktioniert. Leider hat die Lösung beim Empfang von großen MQTT-Messages auch einen Bug, was den Teil wieder unbrauchbar macht.
Wenn das wirklich mal komplett laufen muss, wird hier wohl eine eigene Version erforderlich oder ein Umstieg auf eine andere Plattform. z.B. ESP32.
Da die vielen Themen erheblich mehr Zeit als ursprünglich geplant gefressen haben, wurde die Funktionalität erst mal auf reinen Zeitbetrieb ohne Feuchtesensoren und Mengenmesser verkleinert (im Code, Verkabelung und Gehäusedesign aber schon vorhanden).
Das alles zusammen brauchte der Aufbau des System derart viel meiner (Teil-)Zeit, das ich erst im Spätherbst damit final ans Beet gekommen bin und außer ein Paar Testläufen nicht mehr viel Betrieb drin war.
Komponenten:
Rechner: Arduino Mega 2560
SD: Micro SD Card Module SPI
RTC: DS3231
WLAN: ESP-01S
OLED: SSD1306 0,96″ IIC
SW: Arduino UI
Überlegungen:
Arduino Mega:
Günstige Nachbauten verfügbar, stabil und massig I/O Leistungen. Im Vergleich zum Uno auch ausreichend Speicher
Schäden:
– Mehrmals Nass geworden weil wieder mal ein Schlauch abgegangen ist.
– Rücken beim Verlegen der Schläuche und Kabel (im Zuge einer generellen Umgestaltung der Beetumrandung).
Nachtrag zum Saisonende 2019:
Wie gesagt ist das Teil nicht in Regelbetrieb gegangen. Für den Winter ist das System wieder abgebaut und geprüft worden. Ich kann weiterhin die Dichte des Gehäuses positiv bewerten (keine Feuchtigkeit oder Kondenswasser im System). Auch gegen Erde und anderen Dreck ist das Teil immun.
Das Schlauchmaterial hat auch kein Problem und ist weiterhin dicht.
Die Dripperköpfe sind wohl nicht besonders sonnenfest und deutlich ausgebleicht.
Das wird wohl als Verbrauchsmaterial zu werten sein. In der nächsten Saison sind ohnehin andere geplant.
Die Kabel zu den Magnetventilen waren nicht extra verpackt bzw. geschützt und haben auch etwas Farbe verloren. Ansonsten zwar ok, werden aber in der nächsten Saison vor Sonne geschützt.