Arduino Mega 2550 Garten-Steuerung (07.06.2016)

Schon seit geraumer Zeit ärgert es mich, daß ich es nicht schaffe Tomatenkübel und das Hochbeet einigermaßen mit Wasser zu versorgen. Da musste Hilfe her. Im Netz findet sich einiges zu automatischer Gartenbewässerung. Nachdem mich mein großer Sohn dazu genötigt hat mich endlich mit C zu befassen, hab ich als Entwicklungsumgebung die Arduino-Umgebung für mich ausgesucht. Nach einigem Fluchen und Kopfschütteln wie unstrukturiert das im Besonderen und Allgemeinen ist, hab ich mich einigermaßen dran gewöhnt und mich da durchgefressen.

Die Komponenten die zur Verwendung kommen sind alles Module die bei China-Ebay-Angeboten zu finden sind, und hier nötig waren. Folgende Komponenten standen auf der Wunschliste:

Anfangs sollte eigentlich ein DCF-77 Empfänger für die Uhrzeit zuständig sein, was sich aber hier mit schwierigen Empfangsbedingungen erledigt hat. Durch das Spielen mit dem ESP8266-Modul als Wlan-Steckdose im weitesten Sinne hat sich das als guter Ersatz herausgestellt.

Ein Bodenfeuchtesensor steht noch aus. Der einzig brauchbare wetterfeste Sensor, der so auf dem Markt zu finden ist kostet weit über 50€, und das ist mir zum Spielen zu teuer. Ein paar Sensoren habe ich schon ausprobiert, zum Teil auch mit brauchbarem Erfolg, nur die Anbindung an die Steuerung ist noch nicht geglückt.

Der Garten wird hier über mehrere Hauptstränge mit Wasser versorgt. Diese sind einzeln schaltbar und werden mit einer "Jet-Pumpe" aus der Zisterne versorgt. Es gibt Bereiche wie die Tomatenkübel und Fensterbrettkästen, die nicht vom Regen erreicht werden, diese müssen immer gegossen werden, der Rest wird wenn es nicht Regnet gegossen. Der Regensensor ist vom Hersteller der meisten Komponenten der Bewässerung. Er funktioniert mit einer Art Schwämmchen. Wenn dieser durch den Regen nach einer Zeit nass geworden ist, wird ein Schalter betätigt und signalisiert "es ist NASS". Nach einer längeren Zeit, wenn es zu Regnen aufgehört hat, trocknet das Material wieder und gibt den Schalter wieder frei, somit "es ist Trocken".

Der Füllungsgrad der Zisterne wird über einen Ultraschall-Sensor erfasst und in Liter umgerechnet. Der Durchflußmengenzähler ist gerade so an der Grenze von dem was hier benötigt wird: 60l/min. Hatte mich bei den ersten Messungen ziemlich Überrascht was denn da so an Wasser durch die Leitungen flieẞt. Da aber nicht alles zu jeder Zeit gegossen wird, reicht der Zähler gut aus.

Zum Einstieg hab ich nur das Board und das Display versucht in den Griff zu bekommen:

Das Mega2550 Board ist schnell genug um das Display flott mit Daten zu versorgen, damit auch eine einigermaẞen flieẞende Bedienung möglich ist.

Nach einer Zeit sind die ersten Versuche mit den auf ein Brett geschraubten Komponenten ganz gut verlaufen:

Das wanderte dann in einen Kleinen Kasten in der Nähe der Wasserverteilung:

Die Schaltuhr die zuvor das mit der Steuerung übernommen hatte ist noch zu sehen. Auf dem Steckbrett sind die einzelnen Module noch aufgesteckt, und die 4-fach Relaiskarte ist inzwischen mit einer zusätzlichen doppel-Relaiskarte erweitert worden. Hierbei ist noch zu sagen, daß die interne Spannungsversorgung aus dem Arduino-Board nicht ausreicht um alle Komponenten zu versorgen ohne irgendwann aufzugeben. Es empfiehlt sich ein extra 5V-Netzteil zu verwenden.

Hier der Blick auf Wasserverteilung (blaues Häusl) und Stromverteilung (weisses Häusl)

Unterhalb des LED-Strahlers hängt das Wetterschutzgehäuse aus dem 3D-Drucker mit dem Temperatur- und Luftfeuchte-Sensor.

Nach zufriedenstellenden Ergebnissen musste eine Platine her, die alle Module, bis auf die Relaiskarte beheimatet. Da nur zwei dieser Platinen grad notwendig waren (ein Freund wollte das unbedingt auch so wie ich mir das eingebildet hatte), sind die einfach nur mit der Tonertransfer-Methode hergestellt worden:

Hier das geätzte Ergebnis:

... und so ist das ganze in Betrieb:

Ein Blick auf das Display:

Dem Fehler auf die Schliche gekommen (10.06.2022)

Seit langem war ich am kämpfen Schalter und Timer über einen MQTT-Server zu verschicken Server von aussen zu bedienen. Das Problem war nicht die Software, der ESP8266 war wohl am Ende seiner Flash-Beschreibbarkeit. Was sich so äusserte, daß der ESP immer wieder neu startet, eine Zeitlang lief und dann wieder neu startet. Nur fiel das im Testbetrieb leider nicht weiter auf. Nachdem ich das dann entdeckt hatte, sind erst die ganzen Fehler die ich mir dann hinein programmiert hatte zu beseitigen gewesen, und der Weg vom MQTT-Server zur Gartensteuerung hatte auch noch einiges gefehlt. Das sollte jetzt behoben sein. Das was eigentlich noch hinein soll, hab ich jetzt noch nicht hinbekommen. Die Werte der Feuchtesensoren sollten ja eigentlich auch zum tragen kommen, aber das muß jetzt einfach noch ein wenig warten. Auch das letzte Platinenlayout bin ich mir nicht sicher ob das genau zur Soft passt muss ich noch sehen. ich hab bis jetzt noch die uralte Experimetierplatine im Einsatz. An der Steuerung selbst hat sich nichts geändert, eben auch die Feuchtesensoren sind noch nicht mit den Werten eingebunden. Der ESP12F auf der Platine überträgt jetzt die Button-Zustände bei Änderung und die Timer-Daten von und zu einem MQTT-Server.

Es gibt natürlich auch eine Bauanleitung und das .INO File, sowie das Gehäuse für den Sensor

Für den ESP8266 (ESP-12F) gibt es auch ein .INO-File.

... viel Erfolg beim Nachbaun !!!...

73 de Tomtom

Home