In diesem Beitrag zeige ich dir, wie ich mir eine automatische Tomaten-Bewässerungsanlage gebaut habe. Grundsätzlich ist diese Methode aber für jede Pflanze anwendbar.
Urlaubszeit – Wer gießt nun die Pflanze?
Eine Tomate benötigt viel Wasser und muss regelmäßig gegossen werden. Am Besten morgens gießen, da sich die Pflanze über den Tag zusammenzieht, um sich vor der Sonne zu schützen und somit nicht beurteilt werden kann, ob die Pflanze mehr oder weniger Wasser benötigt. So weit so gut – und kinderleicht umsetzbar.
Die Tomate entwickelt sich prächtig und die ersten Früchte sind noch grün, aber deutlich erkennbar. Und genau dann, vor ungefähr drei Wochen, stand bei mir der Urlaub vor der Tür. Wer gießt nun die Tomate? Die Familie Kilometer entfernt und die Nachbarn ebenfalls im Urlaub. Was nun???
Die Idee: Automatische Bewässerung
Ganz klar! Eine automatische Bewässerung muss her. Nach kurzer Internetrecherche und Durchsicht des vorhandenen Materials ist klar, dass es auf einen NodeMCU Microkontroller hinausläuft, der bereits vorhanden ist. An diesem wird eine kleine Pumpe und ein Feuchtigkeitssensor angeschlossen. Den Wassertank bekomme ich im Baumarkt.
Problem: Mittlerweile sind es nur noch fünf Tage bis zum Verlassen der Wohnung. Grober Überschlag: Heute Teile bestellen, 2 Tage warten, einen Abend Logik programmieren und zwei Tage testen und optimieren. Muss reichen!
Die Hardware
Gesagt getan – Die Teile sind da und es geht los. Den Microkontroller mit Spannung versorgen, die Pumpe in den Tank setzen, über ein Relais an den Controller anschließen und den Schlauch von der Pumpe an den Tomaten-Stock führen. Den Sensor ebenfalls über den Analog-In Pin am Microcontroller anschließen. Das Ganze in einem Gehäuse verstauen und der Aufbau steht. Nun noch die Software.
Die Software
Das Konzept sieht vor, dass der Microcontroller zyklisch von der SmartHome Zentrale gefragt wird, wie denn der aktuelle Sensorwert ist. Dieser soll über MQTT zurückgegeben werden und bei Bedarf wird dem Controller gesagt, dass die Pumpe betätigt und die Pflanze gegossen werden soll.
Die Logik soll also in der SmartHome Zentrale liegen und der Microcontroller nur zum Senden und Empfangen von Werten und Befehlen dienen.
Den Code in Form eines PlatformIO-Projekts habe ich dir auf GitHub hochgeladen. Du kannst ihn unter folgendem Link herunterladen:
https://github.com/EngineerButStillHuman/automatischeBewaesserungsanlage
Parametereinstellung und Optimierung
Zuerst habe ich eingestellt, dass die Feuchtigkeit alle fünf Minuten ausgelesen und in einer Datenbank abgespeichert wird. Von dort können die Werte dann zu Visualisierungszwecken ausgelesen werden.
Danach habe ich die Förderleistung der Pumpe mit einem Messbecher ermittelt. Die Fördermenge entspricht 350ml innerhalb von 10 Sekunden.
Es hat sich gezeigt, dass sich die Feuchtigkeit bei zweimaligem Gießen am morgen mit jeweils 350ml also eine Pumpenansteuerung von 10 Sekunden gut hält und der Boden über den Tag nicht zu sehr austrocknet. D.h. die Pflanze wird jeden Morgen zweimal automatisch gegossen.
Den Gießvorgang habe ich auf zwei Einheiten aufgeteilt, damit der Wasserpegel nicht zu stark ansteigt und dadurch der Sensor nicht überflutet und somit zerstört wird. Das Wasser des ersten Gießvorgangs ist also bereits komplett versickert, bevor die zweite Ladung Wasser eingepumpt wird.
Zusätzlich zur automatischen Bewässerung steht noch eine Funktion zur manuellen Bewässerung zur Verfügung. Diese kann ich nutzen, falls die Feuchtigkeit in der Erde stärker abfällt als vermutet. Das wäre anhand der Sensorwerte erkennbar.
Integration in die SmartHome Visualisierung
Zur Bedienung der automatischen Bewässerung wurden einige Buttons und Schalter in meine SmartHome-Oberfläche integriert. Ein Schalter zum Ein- und Ausschalten der automatischen Bewässerung, ein Button zum Auslösen eines manuellen Gießvorgangs und ein Button zum Anzeigen der Sensorwerte.
Die Sensorwerte werden in zwei Diagrammen angezeigt. Im ersten Bodenfeuchtigkeit und das Tankvolumen über der Zeit aufgetragen. Im zweiten Diagramm ist zu erkennen, wann ein Pumpvorgang in der Vergangenheit statt gefunden hat.
Sind die Daten plausibel, dann erhöht sich der Feuchtigkeitswert nach einem Gießvorgang und das Tankvolumen nimmt etwas ab.
Ich hoffe dir hat der Beitrag gefallen und du konntest dich vielleicht sogar für dein eigenes Projekt inspirieren lassen. Über eine Rückmeldung in den Kommentaren freue ich mich!
Verwendete Hardware:
**Arduino Bewässerungs-Kit
**NodeMcu mit ESP8266
**Universal 5V Netzteil
Weitere interessante Beiträge findest du hier.