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.

 

Smartclock – dem die Stunde schlägt.

Im Zuge der Konzeptarbeiten an der Heimautomatisierung zeigt sich immer wieder der Bedarf an einem Display bzw. einer Signalisierung allgemein. Da ich gerade Bock drauf hatte eine Uhr zu bauen, muss diese auch für den ersten Versuch dazu herhalten. 

Projekt: Smartclock

Kontakt: Boris Dirnfeldner

Link: – eigenes Projekt –

Mir haben diese Leuchtanzeigen auf Basis von WS2812 schon immer gefallen, zumal die Dinger ja auch mit so wenig Drahtverhau auskommen (VCC, GND und Signal). Die Ansteuerung erfolgt über ein serielles Protokoll (Eindraht) und fertige Libs für Arduino gibt es dazu auch. Nachdem ich einen Leuchtring mit 60 LEDs gefunden hatte, war klar das dies eine Uhr werden musste.

Anforderungen:

o Anzeige der Uhrzeit analog über den Leuchtring.
o Anzeige von Datum und Uhrzeit über LED-Segmentanzeigen digital
o Signalisierung von Zählerständen, über MQTT-Nachrichten im System zentral verteilt und von dort auch bezogen. Rückwärtszähler sollten bei <60 Sekunden am Ring präsent angezeigt werden.
o Signalisierung von Events über MQTT, die über “Flashen” am Ring dargestellt werden. Dabei soll es verschiedene Kritikalitäten geben, z.B. Rot für Alarme, Gelb z.B. für Türklingel etc.

Design:

Der Zeitgeber ist ein RTC vom Typ DS3231. Als Controller wird ein Arduino verwendet, der Analogring besteht aus 60 x WS2812 auf vier Platinen (je ein Viertelkreis). Die Digitalanzeigen sind mit TM1637 Display-Modulen aufgebaut die auch mit einer 2-Drahtverbindung seriell angesteuert werden (Signal + CLK).
Die Anbindung an den MQTT-Server erfolgt über einen ESP-01S und ESP-Link.

Aufbau und Inbetriebnahme:

Der RTC-Code ist kein Problem, auch die Ansteuerung eines TM1637 nicht. Nachdem die ersten Teile richtig funktionieren wird alles mal fliegend verdrahtet.
Und siehe da, es geht gar nix mehr.

Es zeigt sich recht schnell das die Stromversorgung mit Arduino für die Anzeige nicht mehr reicht, also die Stromversorgung separat aufbauen und schon ist alles gut.

Der Ring erfordert erstmal Lötarbeit damit aus den vier Teilen auch ein Ring wird (und das kann ich so gar nicht gut). Naja, irgendwie halten die Teile (mehr aus Mitleid) zusammen.
Die Ansteuerung ist ziemlich einfach, nur die Leuchtkraft der Module hat mich überrascht. Beim ersten Versuch (mit externer Stromversorgung, ich habe mit den TMs gelernt) war ich erst mal blind und hatte den Ring wortwörtlich im Auge eingebrannt am nachleuchten. Die Lib startet per Default alles in voller Leistung in Weiß, und das ist dann Abends im Zimmer hell!
Bei den nächsten Versuchen (mit erheblich weniger Leistung per Parameter) ist dann auch alles gut. Nach etwas Kodierarbeit zeigt sich auch eine uhrenähnliche Anzeige.

Jetzt kommen die TMs wieder dran und bekommen auch Code zur Anzeige von Datum und Zeit. Auch die Module lassen sich in der Helligkeit parametrisieren (was dann auch passiert).

Nachdem das alles läuft (die Uhr an sich ist damit fertig) geht es an die Netzwerkverbindung und die Signalisierung. Mit dem Ring sind einfache Blinksignale kein Problem, ein Satz von Funktionen habe ich schnell fertig.

Der ESP-01s ist auch schnell verbunden und die ESP-Link Firmware in Verbindung mit EL-Client Library bietet mir eine komfortable Anbindung an den MQTT-Server.
Leider zeigt sich hier ein übler Bug in der Firmware des ESP, der beim Empfang längerer MQTT-Nachrichten leider versagt und die Meldung verschluckt.
Das Problem hat leider auch ein anderes Problem erwischt (Beetbewässerung) und kann nicht zeitnah gelöst werden. Damit bekomme ich leider die Anbindung nicht zuverlässig hin.

Ich spiele mich noch etwas mit der Anzeige (mache z.B. Leuchtpunkte für die 5-Minuten-Markierung) und baue den Code für meine Library um, will aber das Teil so nicht fertigmachen.
Da ich etwas Zeitdruck an anderen Baustellen habe, bleibt der fertige Aufbau noch aus.

Fazit:

Die Uhr an sich läuft, der Aufbau in ein ansehnliches Gehäuse ist erstmal noch vertagt bis ich das Netzwerkthema unter Kontrolle habe. Sieht sehr danach aus als würde ich den Arduino ersetzen gegen was mit integrierten WLAN (z.B. ESP32).
Dann kommt auch die Zähleranzeige dazu und vermutlich ein Drehgeber zu Eingaben am Gerät. Vielleicht kommt ja noch ein “richtiges” Display rein, mal sehen. Vorerst geht es erst mal mit anderen Dingen weiter und dem Design vom Gehäuse.

Komponenten:
RTC DS3231 Echtzeituhr
TM1637 Display Module
WS2812 RGB-Ring (60)
Arduino Uno (Clone)
ESP01S WLAN-Modul
Schaltnetzteil 230V/5V
MQTT-Server im Netz

Überlegungen:
Da im Haus keine Alexa wohnt, aber ständig langlaufende Timer gebraucht werden, wäre doch eine relativ intelligente Uhr gar nicht so doof.

Schäden:
– Einmal Geblitzdingst beim ersten Start des Leuchtrings.
– Wegen MQTT-Problem ist die Uhr noch nicht smart.

Wir benutzen Cookies und Logs mit personenbezogenen Daten ausschließlich für essentielle Funktionen wie z.B. bei der Benutzeranmeldung oder der Fehlersuche. Für Videos werden weitere Cookies von Drittanbietern benötigt. Details finden sie unter dem Link "Weitere Informationen".