Bewässerungssteuerung DIY

Tylon

Habanerolecker
Beiträge
508
Hallo Leute,
mein Gewächshaus ist bisher mit einem Gartenschlauch und einem Kanal der Gardena-Steuerung Multicontrol Duo an die Wasserleitung angeschlossen. Feuchtesensor ist nicht verlegt. Jetzt ist das aber funktionell aber nicht optimal.
1. Mein Wasser hier 18dH
2. kostet es Geld
3. ist es mit einem Kanal nicht individuell steuerbar pro Seite (Gurke möchte vielleicht mehr wie Tomate mehr wie Chili)

Ich hätte gerne
1. Regenwasser (+ggf. Düngung)
2. autark (solar)
3. individuell mehrere Kanäle mit Erweiterbarkeit
4. Gießen nach Bedarf
4. Reporting+Charting, ggf. auch von anderen Sensorwerten

Im Job hab ich hier und da mit IT zu tun und mir gedacht, machste halt was selber. Anspruch ist aber -> muss funktionieren.
Also gut, alles über Wasserfälle, Scrum und Entwicklungsmodelle aus der Mottenkiste rausgekramt und mal Brainstorming gemacht. Und das Spiel beginnt...
Die Entwicklung möchte ich soweit kurz beschreiben, um ggf. noch Einfälle einfließen zu lassen oder zum eigenen Basteln anzuregen.
Ich bin kein Held in Elektronik und kein Freund von Objekten bei kurzem Code, daher nehme ich Verbesserungsvorschläge auch gerne an wenn sie mir taugen.

Phase 1: wir brauchen Hardware
Was brauchen wir fürs Erste?
Arduino (in meinem Fall vorhandener Nano wegen Breadboardkompatibilität)
TIP120 Darlington Transistoren https://www.exp-tech.de/zubehoer/halbleiter/6498/tip120-power-darlington-transistors-3-pack
1N4001 Dioden https://www.exp-tech.de/zubehoer/halbleiter/6499/1n4001-diode-10-stueck
Adafruit Solenoid Valves https://www.exp-tech.de/sensoren/wa.../plastic-water-solenoid-valve-12v-1/2-nominal
Widerstände 1kOhm
Durchfluss-Sensor https://www.exp-tech.de/sensoren/wa...seeed-studio-g1-2-water-flow-sensor-enclosure lag eh noch rum
Eine induktive Gleichstrom-Last zum Testen -> PC-Lüfter

Ergebnis war dann das hier:


160004


Google ist Dein Freund, daher Infos zu den Komponenten gesucht und nen Quellcode gebaut. U.a.
https://www.bc-robotics.com/tutorials/controlling-a-solenoid-valve-with-arduino/
https://www.electroschematics.com/12145/working-with-water-flow-sensors-arduino/

-> Ich kann mittels serieller Verbindung über USB Ventile Steuern und denn Wasserdurchfluß messen.

Phase 2: wir benötigen Infrastruktur
Das schalten über Quellcode klappt gut. Aber es soll ja mal autark laufen mit einem Reporting.
Daher brauchen wir nen Algorithmus und ein Konzept bzw. Datenstrukturen für den Austausch.
Überlegung: VM auf dem vorhandenen HyperV-Server mit nem fertigen LAMP-ISO.
Grund: kein Stress beim Einrichten. VM kann ich einfach als Datei komplett backupen und läuft wieder woanders wenn notwendig. ISO gibts fertig irgendwo. Mit NodeJS usw. kenn ich mich nicht aus, Javascript is nicht mein Ding. PHP und MySQL (Maria) sind mir aus der Historie bekannt.
Das ist ein Turnkey Linux geworden. Schöne Sache. https://www.turnkeylinux.org/
Installiert, bissl konfiguriert und los gehts damit.

Phase 3: wir benötigen Strukturen (Teil1)
Und schon haben wir auch ein Austauschformat -> ein PHP-Serialize-String läd zum weiterverarbeiten ein und ist simpel erzeugt.
Was brauchen wir denn erstmal um universell alles loggen zu können.......
Eine Tabelle für Events mit ID, Timestamp, Name, Werte, "Legende" (Name für Chart später) und die Laufzeit des Microcontrollers zum Eventzeitpunkt wäre schön um durchgehende LAufzeiten erkennen zu können.
Das gibt dann folgendes
160005


Spalte 5,6,7 sind dazu da, mit ner Chart-Library direkt an MySQL zu können, ohne erst rumzukonvertieren, sondern direkt den passenden Datentyp zu kriegen. Das gestaltet sich sonst eher schwierig. Gibt ja schöne Libraries inzwischen. Jemand Tips dafür? Ich hatte z.B. an Zingchart gedacht.

Phase 4: wir benötigen Strukturen (Teil 2)
Erzeugen wir mal bisschen Output vom Arduino, den wir nutzen können um später eine HTTP-Anfrage damit zu erzeugen....
a:2:{s:7:"Startup";i:1;s:7:"runtime";i:0;}
a:2:{s:10:"LiterTotal";d:0.00;s:7:"runtime";i:1;}
a:2:{s:11:"LiterAVG(5)";d:0.00;s:7:"runtime";i:1;}
a:2:{s:10:"LiterTotal";d:0.00;s:7:"runtime";i:2;}
a:2:{s:11:"LiterAVG(5)";d:0.00;s:7:"runtime";i:2;}
a:2:{s:10:"LiterTotal";d:0.00;s:7:"runtime";i:3;}
a:2:{s:11:"LiterAVG(5)";d:0.00;s:7:"runtime";i:3;}
a:2:{s:10:"LiterTotal";d:0.00;s:7:"runtime";i:4;}
a:2:{s:11:"LiterAVG(5)";d:0.00;s:7:"runtime";i:4;}


Heißt z.B. bei runtime 1 (1 Sekunde vergangen) sind gesamt 0.00 Liter Wasser durchgeflossen und gemittelt auf die letzten 5 Messzeiträume auch 0.00. Welch Zufall... hab auch nicht ins Röhrchen (Waterflow Sensor) gepustet.
Bei der Gelegenheit bau ich auch gleich noch ein Skript zum Einlesen in die Datenbank mit PHP.

Phase 5: wir brauchen Schleifen
Jetzt klappen die Einzelteile für die Basisfunktion schon mal gut. Aber wir brauchen einen Algorithmus um zumindest mal regelmäßig zu gießen, zu zählen und zu loggen.
Der Waterflow ist zum Glück über einen Interrupt realisiert und lässt sich dadurch nicht stören :D
Um später mal Strom sparen zu können für einen Solarbetrieb möcht ich das Teil bei Nicht-Betrieb schlafen legen. Daher auch Schleifen und später mal ein Interrupt zum Aufwachen.

Daher 1. Schleife jede Sekunde
if (currentTime >= (secondloopTime + 1000UL)) // every second do...
Durchfluß zählen wenn Durchfluß da, Laufzeit erhöhen.
2. Schleife jede Minute (ich brauch nicht jede Sekunde prüfen, ob ich gießen muss)
if (currentTime >= (minloopTime + 1000UL*60)) // every minute do...
Wässern der Ventile nacheinander
3. Schleife Einstellbare Zeit zum Logging
if (currentTime >= (logtime + logduration * 1000UL)) // every logduration do
Ein ESP8266 (billigste WLAN-Möglichkeit) braucht viel Strom für WLAN, daher nicht jede Minute notwendig.

Die wichtige Schleife ist Nummer 2, daher mal kurz im Detail was da passiert:
Wenn Zeit zum gießen,
Wasserdurchflußmesser an,
Pumpe an,
Alle Ventile nach der Reihe auf, wenn die entsprechenden Ventile zum gießen genutzt werden sollen. Sequentiell braucht weniger Strom und der Durchfluß ist einzeln planbar. Hier kann man später einen bzw. mehrere Sensoren hinzufügen um wirklich individuell zu gießen. Dies ist aktuell über ein Array regelbar um nicht im Code ändern zu müssen, wenn ich nen Kanal mal nicht brauchen sollte
Pumpe aus,
Durchflussmesser aus

Phase 6: Alles ist besser mit WLAN
Alles läuft soweit. Ich kann über Seriell sehen, was passiert bzw. am PC-Lüfter auch feststellen, was sich schaltet. Aber ich will ja wissen, was passiert und was passiert ist, also muss das über WLAN zum Server.
Was brauchen wir hierfür...
Einen bereits erwähnten ESP. Dumm nur, dass der kleine Wunderchip äußerst wiederborstig mit dem Arduino kommuniziert. Sprich: Ohne passende Stromquelle und Voltwandelung gar nicht bzw. genau einmal (und dann tot).
Daher brauchen wir einen Logic Level Converter, denn der ESP möchte 3,3V an den Eingängen, der Arduino spuckt aber 5V aus. Ein 3,3V Arduino kam übrigens nicht in Frage, da die Sensoren meist 5V möchten.
https://www.voelkner.de/products/1082896/MAKERFACTORY-3.3V-5V-TTL-Logic-Level-Umwandler-Modul.html
Weiterhin brauchen wir Strom. Da das ganze später mit nem Solarwandler und Batterie betrieben werden soll, haben wir später genau eine Spannung zur Verfügung. Diese wird wohl 9V (realisiert durch ein Stepdown-Modul) werden. Ladespannung sollte >12V liegen und das mögen die billigen Arduinos nicht, weil die Wandler sehr heiß werden.
Daher müssen wir von den 9V die der Arduino und die Ventile und die Pumpe bekommen auf 3,3V runter. Wie gut, dass der Arduino auch 5V mit hoffentlich genug Milliampere ausspuckt und ich ein Stepdown mit 5V -> 3,3V da hab. Damit verteilt sich etwas Hitzelast. Im warmen Gewächshaus sicher nicht verkehrt.
https://www.amazon.de/1117-3-3-Converter-Step-down-Regulator-Stromversorgung/dp/B07C1WSBL8
Und natürlich nen ESP8266. Ich nutze das ESP01-Modul, da ich nicht mehr brauche als seriellen Input und WLAN und das mit einen passenden Breakout-Modul mit aufs Breadboard geht.
https://www.amazon.de/esp8266-esp-01-esp-01s-Breakout-Breadboard-Transceiver-Netzwerk/dp/B01G6H46UK

Der ESP wurde von AT-Firmware auf NodeMCU umgestellt, weil ich die Firmware gleich mal mit Baudraten-Einstellungen gekillt hab (Achtung dabei, falsches Kommando IPR und keine Kommunikation mehr) und das das einzige war, was geholfen hat. (also neuaufspielen einer Firmware)
Jetzt ein kleines Programm erstellt und hochgeladen ala folgendes...
Ab ins WLAN
Schleife
Wenn Input von Seriell -> HTTP-Anfrage mit Input als Parameter absetzen und quittieren.
und zurück zu Schleifenanfang.

Phase 7 all together now...
Die Komplettschaltung sieht dann so aus
160006


Statt der 9V Batterie kommt wie oben beschrieben, ein 30W Solar-Modul (schon da) + Charger (noch nicht da) zum Einsatz. Die hab ich zwar als Bildchen, macht das ganze aber unnötig groß.
Und statt der 3V-Batterie links kommt ein Stepdown an Arduino 5V Pin + Ground zum Einsatz. Aber der Rest ist soweit 1 zu 1 umgesetzt.

Phase 8: wir brauchen Wasser...
Mal weg von der IT brauchen wir auch noch etwas Wasser und ne Platte. Da bin ich dran.
Bisher sieht es so aus. Das kommt auf ne Platte und das Breadboard drüber. Durchfluss durch Gewächshausscheibe ist auch schon da. Pumpe auch. Daher demnächst gehts an den Praxistest. Bin gespannt, wieviel da nicht funktioniert... ;)
160007



Hier gehts demnächst weiter. Fragen und Kommentare sind gerne gesehen. Quellcode zeig ich auch gerne, sofern mich keiner wegen Oldschool-Prozeduralität veräppelt. Arduino bzw. C/C++ist in Sachen Stringhandling oder OOP viel zu altertümlich für mich. Eine wirklich moderne Hochsprache wäre da eine Wucht.

Soweit sogut und erstmal gute Nacht
Tylon
 
Schönes Projekt!

Wie misst du die Erdfeuchtigkeit?
Nimm unbedingt einen "Capacitive Soil Moisture Sensor" und kein "Soil Moisture Module" das mit Widerstandsmessung arbeitet. Das Metall im Sensor korrodiert schnell + Elektrolyse und Schwermetalle werden an die Erde abgegeben.


Wenn schon Logging, dann auch:
  • Digital DHT22/AM2302 Temperature Humidity Sensor
  • Luxmeter um zu loggen ob die Sonne scheint. Oder Solarzelle dafür verwenden.
  • Zwei Sensoren für die Erdtemperatur in 10 und 20 cm Tiefe
Super für viele sinnlose? Auswertungen.


Falls du eine kabellose Kommunikation zwischen Adruino und ESP8266 wünscht. Sehr große Entfernungen möglich.
315/433 Mhz RF Sender Empfänger Receiver Modul Arduino Wireless Transmitter


WLAN und langfristige Verbindung (über Monate) kann problematisch werden. Investiere genügend Code für die Kontrolle der Verbindung und den Wiederaufbau der Verbindung. Ich nehme für so etwas gerne LAN.


Vorsicht bei Wasser und Fehlfunktionen. Da können schnell mal 1.000 Liter Wasser fließen. Wasser kann große Schäden anrichten!
Ich habe auch schon einmal so etwas geplant, aber noch nicht umgesetzt. Ich wollte damals einen zweiten Arduino einsetzten, der nur die Pumpdauer je Tag kontrolliert und darauf achtet, dass die Pumpdauer in einem logischen Rahmen bleibt. Ansonsten unterbricht der Arduino die Stomversorgung und gibt Alarm (E-Mail an mich). Dieser Arduino sollte auch den Wasserstand im Regenfass überprüfen. Die meisten Pumpen gehen schnell kaputt, wenn sie Luft anstatt Wasser pumpen.

Denke daran, irgendwann vom Beadboard zu einer ordentlich gelöteten Schaltung zu wechseln. Irgendwann kommt es sonnst unweigerlich zu Kontaktproblemen. Spreche aus Erfahrung.

Schleife jede Minute (ich brauch nicht jede Sekunde prüfen, ob ich gießen muss)
Alle 10/15 Minuten reicht. Und immer zwei Werte vor Aktion oder Logik mit den letzten Werten überprüfen.
Zu viel Daten lassen jede Datenbank explodieren.

Ist diese Gartenschlauchverbindung langfristig zuverlässig genug? Wenn die Sonne auf die Kupplung scheint und das Plastik erwärmt, dann kann schnell der Schlauch herausrutschen. Würde da eine Lösung aus dem Sanitärbereich bevorzugen.

Die Pumpe und ein 30W Solarpannel willst du doch nicht direkt an das Breadboard anschließen?
Die Pumpe benötigt bestimmt einige Watt.

Danke für die hervorragende Dokumentation!
Der finale Quellcode und die finale Schaltung würde mich sehr interessieren.

Ich wünsche dir viel Erfolg!
 
Zuletzt bearbeitet:
Wow, ich bin beeindruckt! Toll beschrieben, leider verstehe ich fast nur Bahnhof. :laugh:

Vielen Dank fürs Teilen und viel Erfolg mit Deinem Projekt. Lass mich wissen wenn Du in die Serienproduktion gehst. ;)
 
Wie misst du die Erdfeuchtigkeit?
Nimm unbedingt einen "Capacitive Soil Moisture Sensor" und kein "Soil Moisture Module" das mit Widerstandsmessung arbeitet. Das Metall im Sensor korrodiert schnell + Elektrolyse und Schwermetalle werden an die Erde abgegeben.
Genau so war die Überlegung. Die "Alten" hab ich schon vor Jahren getestet und aus dem Grund als recht unzureichend empfunden. Gut, die Kosten auch nur nen Euro und um Schwermetalle selbst hab ich mir keine Gedanken gemacht aber um "ständigen" Defekt.
Wenn schon Logging, dann auch:
  • Digital DHT22/AM2302 Temperature Humidity Sensor
  • Luxmeter um zu loggen ob die Sonne scheint. Oder Solarzelle dafür verwenden.
DHT auf jeden Fall. Hier war die Frage, ob ich da nicht mehrere mache um ne 3D-Karte des Gewächshaus hinzukriegen. Kost ja nix. Ggf. aber einzeln über ähnlichen Mechanismus, also selbes Reporting/Backend aber eigener Chip, damit der Code fürs wichtige gießen schlank und fehlerfrei bleibt. Hierfür wäre aber auch ein einzelner ESP denkbar, da die Pins dann reichen.
Lux ist ja fürs gießen egal. Wenns trocken ist, ists trocken, Licht hin oder her. Zudem ist die Ausrichtung in meinen Augen mehr als kritisch. 10 Grad abweichung geben 50% Unterschied. Also höchstens um eine Ahnung zu bekommen.

Falls du eine kabellose Kommunikation zwischen Adruino und ESP8266 wünscht. Sehr große Entfernungen möglich.
315/433 Mhz RF Sender Empfänger Receiver Modul Arduino Wireless Transmitter
433 mag ich nicht. Ist immer nur "UDP" und ich muss mich um TCP selbst kümmern. Der kann neben dem Arduino bleiben mit Kabel.
Ggf. sind aber Sensoren drahtlos denkbar. Sowohl die fertigen Xiaomi Mija, als auch Higrow sind da sehr interessant. Erspart das Kabel. Nachteil: ich brauch da ne Logik. Bluetooth ist nicht schön, WLAN braucht zuviel Strom für Drahtlos-Betrieb. Daher ggf. die Mija, die ziemlich optimiert sind.

WLAN und langfristige Verbindung (über Monate) kann problematisch werden. Investiere genügend Code für die Kontrolle der Verbindung und den Wiederaufbau der Verbindung. Ich nehme für so etwas gerne LAN.
Ich mag Kabel auch gerne. Steht aber nicht zur Debatte, weil ich in der Mietswohnung nicht durch ne Außenwand kann. Adaptierungen gefallen mir auch nicht. Das ist aber ein Grund, wieso die Gießlogik unabhängig vom Reporting ist. Ob der Sensorwerte weitergibt ist nur unschön aber nicht kritisch.
Wiolink o.ä. mit Cloud-Steuerung sind daher ausgeschieden.

Vorsicht bei Wasser und Fehlfunktionen. Da können schnell mal 1.000 Liter Wasser fließen. Wasser kann große Schäden anrichten!
Ich habe auch schon einmal so etwas geplant, aber noch nicht umgesetzt. Ich wollte damals einen zweiten Arduino einsetzten, der nur die Pumpdauer je Tag kontrolliert und darauf achtet, dass die Pumpdauer in einem logischen Rahmen bleibt. Ansonsten unterbricht der Arduino die Stomversorgung und gibt Alarm (E-Mail an mich). Dieser Arduino sollte auch den Wasserstand im Regenfass überprüfen. Die meisten Pumpen gehen schnell kaputt, wenn sie Luft anstatt Wasser pumpen.
Hier sind viele Überlegungen rein geflossen.
1. erstmal nur 300 Liter Regenfass. Keine Wasserleitung (unbegrenzt Wasser)
2. Closed Valves, daher wenn kein Strom -> zu.
3. Im Kontrollkreislauf immer nur eines auf, dass ggf. jede Minute geschlossen würde, wenn Bedingung unzutreffend.
4. Kontrollkreislauf maximal simpel
5. Perlschlauch, daher mehr als paar Liter pro Minute gehen nicht durch
6. Perlschlauch in Erde verbuddelt, daher oberirdische Pflanzenschädigung -> nein
6. 300 Liter sind noch kein Problem. Regnet auch mal im Freiland. Wasser kann wegsickern.
7. Durchfluss-Sensor checkt ob was fließt. Wenn nicht -> "Notabschaltung + Reporting"
Eigener Arduino ist nicht geplant. Auch der kann nicht gehen wollen und macht die Sache komplizierter.
Schaltung wird aber dieses Jahr erstmal langzeitbeobachtet. Wasserstandsmesser weiß ich noch nicht, wie zu realisieren, damit es auf Dauer klappt. Kaufbar ist teuer und "windig". Vielleicht bau ich ne Waage drunter wenn günstig.

Denke daran, irgendwann vom Beadboard zu einer ordentlich gelöteten Schaltung zu wechseln. Irgendwann kommt es sonnst unweigerlich zu Kontaktproblemen. Spreche aus Erfahrung.
Später angedacht. Wenn ich schon am Anfang Probleme bekommen sollte (eigentlich nicht vorstellbar, Luftfeuchte liegt bei 25 trotz feuchter Erde, mit Pflanzen sicher höher, aber selten außer abends über 50. Schläuche liegen unter der Erde.) tauch ich das ganze Ding in PlastiDip.

Schleife jede Minute (ich brauch nicht jede Sekunde prüfen, ob ich gießen muss)
Alle 10/15 Minuten reicht. Und immer zwei Werte vor Aktion oder Logik mit den letzten Werten überprüfen.
Zu viel Daten lassen jede Datenbank explodieren.
Daher eine Logging-Schleife und eine eine Gießschleife. Aktuell ist der ESP immer an. Soll aber noch so geändert werden, dass der aus bleibt, wenn er nicht gebraucht wird. Daher in der Gießschleife, die meistens nichts tut, bleibt auch der aus.
Zuviele Daten werden nicht produziert. Die Logging-Schleife verschickt 2 Events. Die ist alle 15min vorgesehen. Und die Gießschleife verschickt nur wenn sie gießt (daher ohne Sensor alle 12 Stunden) 10 Werte, sonst nichts.
Daher 212 Werte pro Tag -> ist der Datenbank total egal.
Hatte jetzt im Test nen Fehler drin und pro Sekunde Logging -> 50.000 Werte in paar Stunden. Das schafft der Quadcore mit 16GB Ram schon. Eher die Chartlogik später macht ihre Probleme bei zuviel.

Ist diese Gartenschlauchverbindung langfristig zuverlässig genug? Wenn die Sonne auf die Kupplung scheint und das Plastik erwärmt, dann kann schnell der Schlauch herausrutschen. Würde da eine Lösung aus dem Sanitärbereich bevorzugen.
Das Gardena-Zeug ist zuverlässiger als Du vielleicht denkst. Häufig dichter als das Messing-Zeug. Schau mal in ne Gärtnerei. Ansonsten siehe Überlegungen oben. Fließen halt mal 20 Liter in die Botanik. Die Anomalie im Durchfluss sollte erkennbar sein.

Die Pumpe und ein 30W Solarpannel willst du doch nicht direkt an das Breadboard anschließen?
Indirekt. 12V Batterie (Motorrad o.ä.) + Solarcharger. Vom Charger (die haben ja 12V Ausgänge) dann ans Breadboard. Pumpe mal sehen. 1A macht auch ein Breadboard länger mit. Die Pumpe macht bei 12V 1,5 A, aber bei 9V sind es deutlich weniger. Die Valves brauchen kaum was und die µC auch nicht.
 
Wow, ich bin beeindruckt! Toll beschrieben, leider verstehe ich fast nur Bahnhof. :laugh:

Vielen Dank fürs Teilen und viel Erfolg mit Deinem Projekt. Lass mich wissen wenn Du in die Serienproduktion gehst. ;)

Danke für die Blumen. Abendbeschäftigung halt (wenn Kind pennt) die mir sinnvoller erscheint, wie Zocken oder Serien.
Fragen gerne. Ich hab versucht, IT-Sprache zu reduzieren bzw. eher in Logik statt Quellcode zu reden, aber ganz ohne gehts halt nicht.
Wenn das rockt veröffentliche ich auch entsprechend Bauplan/Quellcodes nochmal im Detail zum einfachen Nachbauen. Ich hab stark darauf geachtet, dass der Quellcode modular aufgebaut ist, um z.B. mehr oder weniger leicht erweiterbar zu sein bzw. auch für mich wiederverwendbar. Die Schaltung funktioniert für alles Motorgetrieben bei Gleichstrom, daher kann ich das sicher noch gebrauchen.
 
Lux ist ja fürs gießen egal. Wenns trocken ist, ist trocken, Licht hin oder her. Zudem ist die Ausrichtung in meinen Augen mehr als kritisch. 10 Grad abweichung geben 50% Unterschied. Also höchstens um eine Ahnung zu bekommen.
Meine Idee war eine Glaskugel auf den Sensor zu stellen.

Wasserstandsmesser weiß ich noch nicht, wie zu realisieren, damit es auf Dauer klappt.
Ultraschallentfernungsmessung bis zur Wasseroberfläche? Es gibt solche Sensoren.
https://funduino.de/nr-10-entfernung-messen
https://www.mikrocontroller.net/attachment/218122/HC-SR04_ultraschallmodul_beschreibung_3.pdf
Das Ultraschall Modul HC-SR04 eignet sich zur Entfernungsmessung im Bereich zwischen 2cm und ca. 3m mit einer Auflösung von 3mm.

Das Gardena-Zeug ist zuverlässiger als Du vielleicht denkst. Häufig dichter als das Messing-Zeug. Schau mal in ne Gärtnerei. Ansonsten siehe Überlegungen oben. Fließen halt mal 20 Liter in die Botanik. Die Anomalie im Durchfluss sollte erkennbar sein.
Es ging mir eher darum, dass du dich auch im Urlaub darauf verlassen kannst.
Evlt. Schlauch mit Konnektor verkleben. Mir ist schon mehrfach so ein Schlauch aus einer Gardenakupplung herausgerutscht. Hängt natürlich auch von der Qualität des Schlauches ab.

Die Pumpe macht bei 12V 1,5 A, aber bei 9V sind es deutlich weniger.
Welche Pumpe hat du denn genommen?
Ich suche eine mit einer zuverlässigen Förderhöhe von 3 Metern (Regenfass steht unter dem Balkon), die nicht zu viel Wasser fördert.

Für die Sensorensammlung:
Zwei Sensoren für die Erdtemperatur in 10 und 20 cm Tiefe. Diese Werte sind für ein Gewächshaus sehr wichtig.
Habe ich nachträglich ergänzt.


Ich warte gespannt auf deine Erfahrungswerte!
 
Zuletzt bearbeitet:
Meine Idee war eine Glaskugel auf den Sensor zu stellen.
Die Idee ist sicher interessant. Nehm ich mal auf...

Ultraschallentfernungsmessung bis zur Wasseroberfläche? Es gibt solche Sensoren.
https://funduino.de/nr-10-entfernung-messen
https://www.mikrocontroller.net/attachment/218122/HC-SR04_ultraschallmodul_beschreibung_3.pdf
Das Ultraschall Modul HC-SR04 eignet sich zur Entfernungsmessung im Bereich zwischen 2cm und ca. 3m mit einer Auflösung von 3mm.
Von den Modulen hab ich welche da. Naja, aber streng genommen ist das ein Lautsprecher mit Pappmembran. Da mach ich mir Gedanken mit der Haltbarkeit bei 100% Luftfeuchte im Wasserfass. Wäre zu testen.

Es ging mir eher darum, dass du dich auch im Urlaub darauf verlassen kannst.
Evlt. Schlauch mit Konnektor verkleben. Mir ist schon mehrfach so ein Schlauch aus einer Gardenakupplung herausgerutscht. Hängt natürlich auch von der Qualität des Schlauches ab.
Mir bisher tatsächlich noch nie. Aber dann werd ich da mal ein Augenmerk drauf legen. Auch hier kann man ja mit passendem Kleber einfach vergießen.
Trotzdem gibts eine Anomalie, die auffällt (Durchfluss ist deutlich höher wie durch Perlschlauch). Das werd ich dann mittels Skript untersuchen und ggf. ne Mitteilung verschicken. Dann kann der Nachbar ggf. aushelfen.

Welche Pumpe hat du denn genommen?
Ich suche eine mit einer zuverlässigen Förderhöhe von 3 Metern (Regenfass steht unter dem Balkon), die nicht zu viel Wasser fördert.
Muss ich zuhause raussuchen. Verlinke ich später. Der Pollin hat auch ne interessante drin (https://www.pollin.de/p/wasserpumpe-daypower-wp-3802-ip68-12-v-330061) weil breiter Volteinsatzbereich. Aber Nachteil 8mm Schlauchanschluß. Die Pumpe die ich jetzt hab, hat direkt 1/2 Zoll Schraubgewinde. Das wollt ich haben, weil alles 1/2 Zoll ist. Bei 12V macht sie mehr als 3m (6?), bei 9V wirds wohl nicht reichen.

Zwei Sensoren für die Erdtemperatur in 10 und 20 cm Tiefe. Diese Werte sind für ein Gewächshaus sehr wichtig.
Muss ich mal was raussuchen. Ggf. wird der reine Protokoll-Sensorik-Schaltkreis ein eigener µC. Gießen soll halt möglichst schlank (fehlerunanfällig) bleiben. Sonst müsst ich auch auf nen größeren Controller wechseln (Pins sind irgendwann aus). Der wiederum ist für die Entwicklung nur äußerst unschön mit nem Breadboard zu verheiraten. Der Nano ist da wirklich toll.
 
Muss ich mal was raussuchen.
DS18B20 gibt es in verschiedenen Längen. Sehr genau.
Viele Temperatursensoren möglich da 1-Wire Bus.


Muss ich zuhause raussuchen. Verlinke ich später. Der Pollin hat auch ne interessante drin (https://www.pollin.de/p/wasserpumpe-daypower-wp-3802-ip68-12-v-330061) weil breiter Volteinsatzbereich. Aber Nachteil 8mm Schlauchanschluß.
Danke, die sieht für meinen Zweck perfekt aus.
Für meine Balkonkästen kann ich nicht viel Wasser auf einmal gebrauchen.
 
Zuletzt bearbeitet:
Da das Wetter immer noch kalt war am Wochenende und ich unter der Woche bei Tageszeit keine Zeit erübrigen kann, hab ich mich nochmal mit dem Thema Datenlogging und Aufbereitung beschäftigt.

Das Programm ist zwar fertig, aber naja, die Visualisierung "cool" zu gestalten ohne Jahre dran zu sitzen ist doch ein schwieriges Unterfangen.
Aber auch da muss es doch was geben...
Mein Nachbar ist beruflich mal im Embedded-Bereich unterwegs gewesen und damit mein Zwerg etwas Beschäftigung hatte, sind wir am Wochenende (bei angehendem Graupel...) auf den Marktsonntag gegangen. Beim Gespräch sind wir auf das Thema MQTT als Alternative gekommen. Hatte ich schon überlegt, aber nie genutzt. Er schon. Aktuell übertrag ich mittels HTTP. Das ist ok, MQTT aber für das Thema geschaffen. Wieso? Für schwierige Bedingungen gebaut. Batteriebetrieb, WLAN hoffentlich da usw.
Zusätzlich kann ich an mehreren Zielen Sachen damit machen. Z.b. Steuerungen, Anzeigen, Heimserver-Einbindung etc.

Also... Wie läuft das Ding? Clients liefern Daten an nen Broker in einer Baumstruktur. Ein anderer Client kann Nachrichten abonnieren, die da irgendwie im Baum hängen. Also alle linken Äste, alle Äste, alle Hauptäste, alle Blätter, alle Zweige. Klingt erstmal trivial.
Übersetzt...
Gewächshaus/Sensoren/Lufttemperatur/Sensorlinks
Jetzt kann ich an nem "Client" damit z.B. alle Sensorwerte abgreifen oder alle Lufttemperaturwerte oder oder oder.

Daher muss Phase 2-4 nochmal überarbeitet werden.
Gesagt getan
Phase 2: wir brauchen Infrastruktur
MQTT ist M2M (Machine2Machine) Technik für das Internet of things.
Und genau hier gibt es viele Dienste im Netz mit Logging für Geld in der Cloud oder deutlich beschränkt auch häufig umsonst. Aber ich möcht mehr wie 30 Tage (üblich für gratis) und kein Geld zahlen.
Open Source bietet www.thingsboard.io an. Eine lokale Variante davon. Ein komplettes konfigurierbares Dashboard, also Live-Grafiken aller Werte, die ich will, gruppierbar und mit Workflow-Engine für meine Daten (um z.B. was zu ändern, wenn ein Homeserver damit etwas machen soll). Besser noch, es ist direkt ein Beispiel für Arduino+ESP+Temperatursensor auf der Seite beschrieben https://thingsboard.io/docs/samples/arduino/temperature/
Es sind da auch noch einige mehr die sehr gut für den Einsatzzweck passen.
Aber es geht wenn es sein muss auch HTTP oder jede andere Kommunikation außer MQTT und er übersetzt mir.
Mega!
Also auch hier wieder eine VM (neben der alten) mit Turnkey in der Postgres-Variante gezogen, aufgesetzt, und konfiguriert. Dauer ca. 2x1/2 Stunde (1. VM + 2. Thingsboard)

Phase 3 erledigt sich damit automatisch. Also die interne Datenstruktur in der DB ist dabei. Lediglich einen Baum muss ich mir ausdenken.

Phase 4, also umbau der übermittelten Datenstruktur wird leicht, weil in einer Funktion gekapselt.

Phase 6 kann auch überarbeitet werden, um genau zu sein, deutlich vereinfacht, da im Beispiel das Arduino dem Standard-ESP einfach direkt sagt, was zu tun ist. Kein Programmieren des ESP mehr. Klasse.

Phase 4 und 6 sind noch nicht realisiert. Am normalen Quellcode muss nichts wirkliches geändert werden, da gekapselt in Funktionen. Grundsätzlich funktioniert das dann auch mit anderen MQTT-Servern direkt. Thingsboard sollte man sich aber mal anschauen. Wirklich selten sowas passendes gefunden für den Zweck. Der Demo-Account läd ein bisschen zum Anschauen/rumspielen ein.

Todo für die kommende Woche:
Sensor bauen für irgendwelche Werte, der direkt liefert um mit dem MQTT auf Arduino/ESP zu spielen. Dashboard mit den Live-Daten testen. Wenn das klappt, wird das eingebaut in die Steuerung.

:happy:
 
Ich habe ein Projekt von jemanden gesehen, bei dem er abhängig von einer Mindesttemperatur im GH einmal, zweimal oder dreimal am Tag Pumpen laufen lässt, welche das Wasser in ein Dripper-System schicken. Die Dripper kann man für ein feineres Management dann auch noch separat einstellen. Funktioniert bestens.
 
Ich habe ein Projekt von jemanden gesehen, bei dem er abhängig von einer Mindesttemperatur im GH einmal, zweimal oder dreimal am Tag Pumpen laufen lässt, welche das Wasser in ein Dripper-System schicken. Die Dripper kann man für ein feineres Management dann auch noch separat einstellen. Funktioniert bestens.
Meine Outdoorchilis sind bisher „doof“ mit drippern per Zeitplan (ohne temperaturabhangigkeit) bewässert genau wie meine Blumenwand (naja, meiner Frau...). Hier ginge auch ein Sensor zusammen mit der gardena-Lösung.
Charme der jetzt geplanten Lösung ist aber:
Ich bau es selbst von der Pike auf. Vom Wasserverteiler bis zu Quellcode.
Es ist erweiterbar.
Ich kann mit den Daten eventuell anderes steuern. Beschattung, Belüftung, Alarm, etc.
Und ich bau es selbst. :)

Will nicht sagen, dass der Weg das Ziel ist, aber der Spaß am Basteln ist ganz weit oben. Stichwort Maker. Nur bau ich halt keinen Roboter.
Ich will halt genau wissen wieviel wie oft und so weiter.
 
So,
das Projekt kommt voran.
Um das Thingsboard zu testen hab ich mir nen kleinen Sensor gebastelt. Der macht nichts anderes, wie die aktuelle Beleuchtung auslesen und per MQTT verschicken. Zum Einsatz kommt ein ESP wie oben mit Standard AT Firmware + nem speziellen Breadboard Arduino Leonardo von Olimex (mit 3,3V) + nem eigenen Powerwandler der 3,3v bastelt, da die Arduino Wandler nicht ausreichen für den ESP. Lichtsensor ist von Grove.
161141


Dashboard zusammengeklickt. Das sieht dann so aus wie unten. Alles anpassbar. Charts, die ich möchte von der Torte über den Zeitverlauf. Hier historisch, macht er aber live im Sekundentakt.
161144


was heißt das: bastel scheinbar lange, tagsüber wenig Zeit im Büro (Keller). Klar, war im Garten. Abends Licht an weil basteln, dann Licht dunkler weil Film.

Aktuell bin ich dabei, das in die Bewässerungssteuerung einzubauen. Heute den kompletten Abend verballert. Hat nicht funktioniert. Wieso das? Die alte (aktuell gezogene) WiFiESP-Library hatte leider ein Problem. Ca nach 1,5 Stunden hab ich gemerkt, dass es ne neue Variante gibt, die in der entscheidenden Datei zwar genau gleichviel Zeilen hat, aber scheinbar doch die eine oder andere anders war.
Daher auch hier klappt jetzt WLAN mit der Bibliothek. Wegschicken tut er. Aber den Umbau von php-serialize auf JSON Syntax muss ich noch umbauen. Aktuell wird der Wert noch nicht eingelesen. Da fehlt zwar nicht viel, aber ist schon wieder spät.

Zusätzlich:
Hardwareoptimierungen:
Der Plastik-Durchflusssensor sieht neben dem Messingrohr aus wie Spielzeug. -> der Chinese schickt grad eins aus Messing.
Und: die Strombastelei mit ESP+Arduino ist viel zu kompliziert. 3 Spannungen + Logik-Level-Wandelung zwischen den Chips klappt, macht das ganze aber anfällig und unnötig kompliziert. Auch hier haben die Kollegen von Banggood ein kombiniertes Arduino/ESP-Board im Angebot. Folge davon: eine Spannung als Input. Nur zwei auf dem Board. Das machts übersichtlicher. Damit kann ich sechs Sachen durch eine ersetzen. Der Schaltkreis wird deutlich leichter zu verstehen. Auch schon auf dem Weg.
Wenn das da ist, gibts die aktuelle Variante. Aktuell nur einen Zwischenstatus.

161145
 
Ein sehr cooles Projekt mir schwirrt etwas ähnliches im Kopf herum, allerdings klappt das Zeitlich bei mir sehr wahrscheinlich nicht dieses Jahr.

Desweiteren wollte ich auf Feuchtigkeitssensoren zurückgreifen. Dazu habe ich folgendes Projekt gefunden https://wemakethings.net/chirp/ da gibt es die Platinen beim freundlichen Chinesen auch schon mal für 2$ damit kann man dann auf die ganzen analogen Sensoren verzichten und hat gleich alles digital auf einem i2c bus. Die i2c Adressen lassen sich übrigens auch in der Firmware über einen i2c Befehl ändern ohne extra neu flashen zu müssen.

Was ich recht gut finde ist die MQTT geschichte, da ich damit gerade anfangen eine Hausautomatisierung aufzubauen hätte ich von der Infrastruktur schon vieles da und die Bewässerung besteht dann nur noch aus neuen Sensoren und Aktoren die dazu kommen.
 
So,
wieder ein Schritt weiter.
Das eine Päckchen aus China war schneller wie das aus England. Daher wurde ein bisschen umgebaut.

Zum Einsatz statt einem Arduino + Logic Level Converter + ESP01 kommt nun ein https://robotdyn.com/mega-wifi-r3-atmega2560-esp8266-flash-32mb-usb-ttl-ch340g-micro-usb.html (Gibts auch bei Banggood)
Das Gerät gefällt mir. Ich benötige zwar die Pins des Mega nicht, aber das Gerät kann umgestellt werden, dass es intern über Seriell 3 direkt mit dem ESP redete und ich selbst über Seriell mit dem Arduino. Oder ich kann nur mit dem ESP reden, diesen auch direkt programmieren mit Tastendruck oder nur mit dem Arduino. Klasse weil kein Kabelwust mehr für die Anbindung des ESP. Dafür eben jetzt für den Mega ans Breadboard. Das ist aber mit ner passenden Halterung optisch brauchbar zu gestalten. Das Gerät ist für unter 10 Euro zu haben.

Es war irgendeine Firmware drauf, aber nicht AT. Daher mit dem NodeMCU-Flasher schnell die 2.2.1 geflasht, da die auch auf dem ESP01 lief und daher auf jeden Fall kompatibel ist.
Quellcode hochgeladen. DIP-Schalter gestellt. Softserial durch Serial3 getauscht. Läuft direkt. Alles klappt.

In Thingsboard hab ich mich weiter eingearbeitet. Das ist ebenso eine klasse Sache. Bau grad am Dashboard, dass er mir alle möglichen Werte anzeigt, die ausgespuckt werden. Jeweils mit der geeigneten Visualisierung. Bisher auch einfach bis auf den An/Aus-Status der Pumpe und der Ventile. Der Rest bildet schöne Diagramme ähnlich oben.

Beim Suchen dazu hab ich noch paar Libraries gefunden für den Arduino, die ich am Anfang gut hätte brauchen können und das Leben deutlich erleichtern. Also diese Woche auch eingebaut und den Quellcode dahingehend überarbeitet. Inzwischen funktioniert alles bis auf den Powerdown des ESP, der aber vorbereitet ist. Das muss ich aber mit dem Modul noch in der Verschaltung testen. Da muss ich sicher noch ein Kabel ziehen.
Daher möcht ich den Quellcode auch mal öffentlich zum Einblick stellen.
 
Zurück
Oben Unten