Benutzer-Werkzeuge

Webseiten-Werkzeuge


esp_bewaesserung

Dies ist eine alte Version des Dokuments!


Pflanzenbewässerung

Da gibt es ja verschiedene Methoden, angefangen von der Giesskanne, über Bindfaden, Tonkegel, umgedrehte Wasserflaschen bis hin zu verschiedenen elektronischen Varianten - ich habe (fast) alle ausprobiert.

Giesskanne

Meine Pflanzen kamen auch gut ohne Elektronik aus, zwei mal die Woche giessen musste reichen. Testen, ob die Pflanze Wasser braucht mit dem Finger. Erde nass, nicht giessen, Erde trocken, giessen. Aber andere Möglichkeiten mussten ausprobiert werden :o)

Bindfaden

Einen Schnürsenkel oder Baumwollfaden in ein Glas Wasser hängen und das andere in die Pflanzenerde stecken. Damit er nicht austrocknet das ganze einfach noch durch einen Plastik-Strohhalm gezogen. Ist der Wasserspiegel über der Pflanze, läuft das ganze Wasser in die Pflanze - also nicht gut. Man muss die Pflanze oberhalb des Wassers aufstellen - sieht ja optisch nicht so toll aus. Dafür gibt es dann eigene Blumentöpfe, wo das Wasser unten drin ist. Das wollte ich mir aber nicht antun.

Wasserflasche

Einfach eine kleine Flasche mit Wasser füllen, umgekehrt in die Erde. Fertig. Sieht scheußlich aus. Habe ich jetzt nur mit einer ganz kleinen Flache gemacht. Dort noch den Deckel drauf und ein paar Löcher reingebohrt. Dann kommt nicht so viel raus und auch meine Kaktee verträgt das.

Tonkegel

Davon bin ich eigentlich begeistert, wenn es auch irgendwie nur zwei Anbieter gibt [Blumat für 4€ und aus China für 2,40€ ]. Ein Tonkegel wird mit Wasser gefüllt, und ein oben angebrachter Schlauch ins Wasser gelegt. Diffundiert das Wasser über den Tonkegel in die Erde, entsteht ein Unterdruck und Wasser wird in den Tonkegel gesaugt. Wasser kann auch höher stehen, dann wird stärker 'gegossen'. An meine Hänge-Erdbeere habe ich eine Plastiktüte angebracht und das geht soweit ganz gut. Ach, ich vergass. Auch hier musste man ein ganz klein wenig nacharbeiten. Die Verbindung Schlauch, Tonkegel muss Luftdicht sein, damit der Saugeffekt funktioniert. War es nicht! Also mit Kleber oder Schrumpfschlauch nachhelfen.

ESP01 mit Light-Sleep, MOSFET-Transistor und Pumpe

Bei zwei Pflanzen liefert mir der Xiaomi Flora Monitor Daten. Um dann zu giessen habe ich an einen ESP01 über ein MOSFET eine Pumpe gehängt und frage damit über MQTT ab, ob gegossen werden muss. Da der Light-Sleep nur ein paar Minuten geht, merke ich mir im Coding, wie oft er schon aufgewacht ist, um erst nach mehreren Wachzyklen eine WLAN-Verbindung aufzubauen. Das spart eine Menge Strom. Zusätzlich wird die 18650 LiOn Zelle noch mit einem kleinen Solarkollektor aufgeladen, sodass man nur Wasser nachfüllen muss.

LilyGo mit Pumpe

Das habe ich hier beschrieben. Da der Sensor aber mit über 30€ relativ teuer ist, ich schon ein paar kaputt gemacht habe und er immer teurer wird, bin ich mir noch nicht sicher ob nicht der gleich teure XIAOMI + ESP01 mit LightSleep kleiner und genauso gut ist - und noch besser aussieht(?). Die Zeit wird es zeigen.

ESP01 mit Deep-Sleep, China-Relais und Pumpe

Nachdem ich mir eine kleine Pumpe für 3-5 Volt gekauft habe, wollte ich sie auch einbinden.

Direkt an den ESP-01 der Pflanzenüberwachung kann ich sie nicht anschliessen, da sie zu viel Strom für einen GPIO zieht. Also machte ich sie unabhängig. Ein ESP2866 mit Relais aus China musste her - ist V1.0. (inzwischen habe ich auch V4.0 und da gehts gleich - dafür muss man wegen dem Flackernden Relais was anderes machen). Ja, die funktionieren nicht gleich. Man muss erst CHPD (CHIP_EN) mit VCC verbinden. Leider waren bei meinem auch die Relais-Anschlüsse falsch herum eingelötet. Und dann wusste ich nicht dass ich '0' als GPIO angeben musste, nicht 13 oder LED oder sonst was. Damit er nicht so viel Energie verbraucht, habe ich den DeepSleep-Mod gemacht. Was hab ich gebraucht, um endlich die eine Seite des Kabels an den SMD-Baustein anzulöten. Und dann hatte ich am Reset Beinchen eine kalte Lötstelle. Problem: Als das alles ging stand ich vor dem Problem, dass beim Starten das Relais ganz kurz anzieht. Ich hab das jetzt mal ignoriert, damit ich vorwärts komme - Update April 2021: Die Eingangsspannung mit dem äußeren Pin des Relais verbunden (das mittlere über NO), dann Schaltet das Relais beim Strom anschliessen nicht mehr. Leider immer noch beim Wachwerden des ESP01. Lösung Juni 2021: 22 kOhm Widerstand zwischen GPIO0 und GND - danke an GitHub-forum

Man sollte seine eigene Dokumentation lesen. Im unteren Teil der Info zum Luftbefeuchtern habe ich beschrieben, dass man noch zusätzlich den R2 abkratzen muss, dann sollte es gehen. Jetzt will ich aber erst mal sehen, ob es überhaupt geht und mache es noch nicht.

Im Source code des Sketches mache ich eine Verbindung zu meinem Heimnetz, Frage den MQTT Server ab. Wenn dort 'on' gepushed wurde, wird das Relais für 5 Sekunden (ca. 20ml) betätigt. Dann wird das Retain-Flag zurückgesetzt und dann geht alles wieder für 1 Stunde in den Tiefschlaf.

Auf der Seite des RaspberryPi werden ja stündlich die Daten von LilyGo entgegengenommen. Wenn dort der Salzgehalt unter 25 fällt, wird der entsprechende MQTT Befehl gepostet, sonst zurück genommen.

Da die MQTT Nachrichten nicht gleich verarbeitet werden, werden sie als 'Retain' verschickt. Daher muss der Bewässerer mindestens so lange warten, bis LilyGo die neuesten Daten schickt und das Retain beendet, sonst würde es eine Überflutung geben. Jetzt ist es nur ein großes Glas Wasser, wäre also nicht so schlimm, aber wer weiß.

mosquitto_pub -d -r -t /home/data -m "on"
mosquitto_pub -d -r -t /home/data -n

Die Übermittlung der Spannung der Batterie hat nie funktioniert. Erst jetzt, mit

ADC_MODE(ADC_VCC);

ausserhalb aller Funktionen und

float volt=ESP.getVcc();
Serial.print(volt/1024.00f);

in einer Funktion wird es übermittelt. Dabei habe ich gleich noch den Zustand per MQTT übermittelt. Bei jedem Start aus dem Tiefschlaf die Spannung und bei anliegender MQTT-Message diese. Damit weiss ich, wie oft er aus dem Tiefschlaf erwacht, und wann gegossen wurde.

Den Tiefschlaf habe ich von den in der Dokumentation früher mal ungefähr 71 Minuten (4294967295us) auf Maximum eingestellt. Das sollten jetzt laut einer Webseite 3,5 Stunden sein. Das geht mittels

ESP.deepSleep(ESP.deepSleepMax());

Besser wäre natürlich noch länger und dann an Hand der Giesshäufigkeit zu ermitteln, wie lange er schlafen darf. Aber das kommt ein anderes Mal.

Wenn die Batterie leer ist, versucht der ESP der Pumpe nach einem „Fatal exception“ zu starten. Das ist genauer, als die Spannung von der Pflanzenüberwachung abzufragen. Da das aber gleich am Anfang in die DB geschrieben wird, bekomme ich das zeitnah mit. Ich habe die Statusabfrage jetzt mal daran angepasst.

Reset Nummern
0 = Power reboot
1 = Hardware WDT reset
2 = Fatal exception
3 = Software watchdog reset
4 = Software reset
5 = Deep-sleep
6 = Hardware reset

Da das mit der „Fatal exception“ nicht zuverlässig funktioniert, jetzt zusätzlich noch abgefragt, wann der ESP wieder aufwacht. das passiert nämlich dann nicht mehr nach 3 Stunden, sondern fast im Minutentakt. Eigentlich sollte ich dann ganz 'abschalten' - wenn ich mal weiss, wie - geht wohl nicht so ohne weiteres

Jetzt braucht die ganze Kommunikation noch 15 Sekunden, was bei 70mA dann doch etwas lang ist.

Zeit ist jetzt 4, 6 bzw. 8 Sekunden. Je nachdem ob schnelle Verbindung zum Router, normale Verbindung zum Router oder Pumpe aktiviert werden musste. Kürzere Delays und 2 Sekunden beim Connect gespart - Stand April 2021

Ruhestrom im deep-sleep ist leider immer noch 2mA Ob das daran liegt, dass die 5V auf 3.3V runter gewandelt werden oder woran es liegt ist mir unklar.

Aktuell habe ich als Stromquelle meine 'kaputten' EX4-Drohnen Akkus im Einsatz (3.8V 2.400mAh). Ein Akku an Lilygo und ESP01 mit Relais und Pumpe zur Wasserversorgung hält aktuell (Mai 2021) ziemlich genau eine Woche. Daten der Pflanze werden alle 2 Stunden gelesen und verschickt, der ESP wacht nach der Maximalzeit von je rund 3 Stunden auf. Leider zieht das Relais beim Aufwachen immer noch kurz an. Lösung Juni 2021: 22 kOhm Widerstand zwischen GPIO0 und GND - danke an GitHub-forum

Jetzt habe ich mal je einen Akku an jedes Gerät gehängt, um rauszubekommen, was mehr Energie braucht - wahrscheinlich die Pumpe.

Stand 08/2022

esp_bewaesserung.1661697211.txt.gz · Zuletzt geändert: 2022/08/28 14:33 von varnholt