Einleitung

Das giess*bert-System überwacht in periodischen Abständen die Feuchtigkeit der Erde und startet bei Überschreitung eines individuell definierbaren Trockenheits-Levels die entsprechende Pumpe für eine definierbare Zeit. 

Die periodischen Messergebnisse, sowie die Pump-Vorgänge werden per WLAN an ein PHP-Script übergeben und dort in eine CSV-Datei protokolliert. 

Wird ein leerer Wassertank erkannt, wird die Pumpfunktion ausgesetzt. 

Eine kleine Website informiert über den aktuellen Status des Gießsystems. 

Durch die geringe Anzahl an IO-Leitungen des Mikrocontroller-Moduls können maximal drei Sensoren und Pumpen angesprochen werden.

Logik

In periodischen Abständen - in unserem Fall alle 2 Minuten - werden die Werte der Feuchtigkeits-Sensoren abgefragt.

Danach greifen die hinterlegten maximalen Trockenheits-Level - werden diese überschritten, wird die jeweilige Pumpe aktiviert. Um zu verhindern, dass zuviel Strom benötigt wird, wird immer nur 1 Pumpe pro Mess-Durchlauf aktiviert.

Beispiel: Messung um 10:00h ergibt: alle 3 Erden sind zu trocken, um 10:00h wird Erde 1 gegossen. Um 10:02h wird Erde 2 gegossen und um 10:04h ist Erde 3 dran.

Nach dem giessen einer Erde, also nach dem Lauf einer spezifischen Pumpe, wird diese für 5 Messzyklen NICHT mehr aktiviert, unabhängig vom Trockenheits-Level. So soll gewährleistet werden, dass das eingepumpte Wasser sich erst einmal verteilt (und ggfls den Sensor erreicht) bevor zu viel nachgegossen wird. Außerdem hat so, selbst bei einer Fehlfunktion, auch noch jede andere Pumpe eine Chance zeitnah aktiviert zu werden.

Wenn eine größere Anzahl an Pumpvorgängen hintereinander zu keiner Änderung beim Trockenheits-Level führen, wird erkannt, dass der Wasser-Tank leer ist - die Pumpen werden dann nicht mehr angesteuert um ein trocken-laufen zu verhindern. Auf der Status-Website wird ein entsprechender Hinweis angezeigt. Ein Neustart (nach dem Auffüllen des Wassertanks) ist erforderlich, um das System wieder in den Normalbetrieb zu versetzen. 

Learnings

  • Unsere Tests zeigen: es können keine übergreifenden, allgemeingültigen Trockenheits-Werte genannt werden! Jede Erde verhält sich anders und ändert sich auch über die Zeit, je nach Aussentemperatur, Durchwurzelung etc - hier muss man sich nach dem trial-on-error-Prinzip an die eigenen Max-Werte rantasten und sie ggfls von Zeit zu Zeit anpassen.
    D.h. man definiert erste Werte und beobachtet die Erde - ist diese zu trocken oder zu feucht, müssen die Werte entsprechend korrigiert werden.
  • Wir haben festgestellt, dass die Sensoren so platziert sein sollten, dass sie auch direkt begossen werden. So funktionieren Messung und Ablauf am zuverlässigsten.
  • Bei uns laufen die Pumpen pro Durchgang für 40 Sekunden, was einem Pumpen-Durchsatz von cirka 1 Liter entsprechen würde - durch den Widerstand im Schlauch- und Sprenkelsystem wird aber effektiv nur eine Menge von cirka 500 ml gefördert.
  • die Wasserschläuche sollten jeweils nicht länger als 2 Meter sein

Status-Website

Material / Komponenten

Aufbau

Vorbereitend müssen:

Die Feuchtigkeits-Sensoren in den Analog-Modus geschalten werden (kleiner Schalter am Sensor auf "A"). Dann muss ein 3-adriges Kabel an die Kontakte G, V und A angelötet werden. Dabei steht G für ground (Masse), V für voltage (Versorgungsspannung) und A für analog (Analogausgang). Wichtig ist dabei, dass man sich die Farben der Adern und die dazugehörigen Buchstaben notiert, da man sie später nicht mehr sehen kann. Nach dem löten wird der obere Teil des Sensors (der Teil, der nicht gegabelt ist), mit dem 3cm Schrumpfschlauch und Heißkleber versiegelt, so dass keine Feuchtigkeit zur Schaltung vordringen kann und man den Sensor komplett in die Erde stecken kann.

Die Pumpen müssen mit Anschlußkabeln versehen werden und in den Pumpenhalter geschraubt werden. Der Pumpenhalter verhindert ein loses rumfliegen der Pumpen im Gehäuse. Bei der Verkabelung der Pumpen auf die Polarität achten, damit später auch gepumpt und nicht gesaugt wird.

Die Beschaltung des Mikrocontrollers sieht wie folgt aus:

  • verbunden wird VCC mit CH_PD
  • und GPIO15 über einen 10k Widerstand mit GND
  • VCC und GND wird mit 3,3V und Masse vom 3,3V Festspannungsregler verbunden
  • an TXD, RXD und GPIO0 werden Kabel angeschlossen, zur späteren Programmierung
  • GPIO12, GPIO13 und GPIO14 werden mit den Eingängen der Relais-Karte verbunden
  • GPIO4, GPIO5 und GPIO15 werden mit den Versorgungsspannungs-Eingängen der Feuchtigkeits-Sensoren verbunden (die Sensoren werden nur mit Spannung versorgt, während die Messung läuft, da sonst - bei Dauerversorgung - ein Elektrolyse auftreten würde)
  • die Analog-Ausgänge der Sensoren werden über 10k Widerstände an den ADC-Pin des Mikrocontrollers angeschlossen

Die Relais-Platine wird mit 5V aus dem 5V-Festspannungsregler versorgt. An die Relais-Karte werden auch die Pumpen angeschlossen, so dass sie bei jeweils aktiviertem Relais mit 6V aus dem Netzteil bestromt werden.

 

Schaltplan

Gehäuse

Pumpenhalter

Software / Code

 

 

Bilder

 

 

giess*bert - an automated, sensor-controlled plant-watering-system with pump-control