Winterprojekt: Diy Feuchtesensor für Hydrawise

  • Über den Winter möchte ich einen DIY Feuchtesensor in die Hausautomatisierung einbauen und mit dem Hydrawisecontroller verbinden.


    Dafür soll einer der billigen kapazitiven Sensoren herhalten, den ich mit einem Wemos D1 mini verbinde. Wemos D1 Mini ist ein Computer in Streichholzschachtelgröße, der schon ein Wlanradio mitbringt. 4MB Flash, wenig Ram, ganz einfacher ESP32-Prozessor. Der kann nicht viel, aber er kann monatelang mit 3-4 AA Batterien einen Sensor abfragen, die Daten per elan wegschicken und sich wieder 20 Minuten schlafen legen.


    Die Daten gehen an meinen Raspberry Pi mit Iobroker über das MQTT Protokoll. Der iobroker kann darauf basierend Hydrawise ansteuern,


    Hier mal ein Bild, alle Teile sind lose zusammengesteckt, es ist noch nichts verlötet. Für den Sensor brauche ich noch ein Gehäuse das den Kopf wasserdicht verschließt. Ein Kollege hat einen 3D-Drucker und im Netz gibt es eine Konstruktionsdatei die geeignet sein sollte. Ein günstiges 3-poliges Kabel fehlt noch, da werde ich improvisieren.


    Das Gehäuse für den Wemosist zigarettenschachtrlgroß, den meisten Platz schluckt der Batteriehalter. 4x AAA. Eine 18650 hat leider zuwenig Spannung für den Sensor.


    0D0B36EC-1E79-4120-822F-43751057DBFF.jpeg

  • So, gestern abend wure gelötet, und auf dem Server kommen Daten an. Was noch fehlt, ist ein für draußen geeignetes Kabel zum Anschluss des eigentlichen Sensors am Sender. So gab es erst einmal Trockentest im Esszimmer. :)


    Der Sensor gibt einfach einen Spannungspegel zurück, der vom Analogeingang des Mikrocontrollers in eine Zahl umgewandelt wird. Daten kommen alle 30 Minuten, um Strom zu sparen. Sensor in Luft gibt etwa 500, Sensor in einem Glas Wasser gibt etwa 80-90. Welchen Wert ausgetrocknete Erde hat, bestimme ich wenn ich Kabel und Sensor schmutzdicht habe.


    Der Screenshot zeigt die Daten im ioBroker-Server. Übersichtlich :) Dazu kommt dann noch ein Script, das einmal täglich den Wert prüft und je nach Wert die Beregnung freigibt oder blockiert. Hydrawise kann ich entweder über ein Script über die Cloud steuern oder klassisch über Sensorkontakte am Controller. Für letzteres müsste noch ein Relais an den Computer das ich vom Raspi aus steuere.


    30AB2672-FFAB-4266-8810-B82686600044.jpeg


    Einen Rückschlag gab es: Es gibt keine Info zur Batteriespannung. Der ESP8266 hat laut Doku nur einen Analogmesseingang. Was ich nicht wusste: Wenn man die Überwachung der Betriebsspannung nutzt, ist der Eingang nicht mehr für Anwendungszwecke verfügbar. Da der Feuchtesensor analog arbeitet, muss ich auf die Betriebsspannungsdaten verzichten. Das ist blöd, weil man vier AAA-Batterien am ESP8266 bis zur Tiefentladung nutzen kann. Entweder baue ich auf 3xAAA um und nehme weniger Laufzeit in Kauf, oder ich baue den Sender mit einem anderen Mikrocontroller noch einmal. Mal sehen :)

  • Das ist blöd, weil man vier AAA-Batterien am ESP8266 bis zur Tiefentladung nutzen kann. Entweder baue ich auf 3xAAA um und nehme weniger Laufzeit in Kauf

    helf mir mal - und was bringt das bzgl. "nur einem Analogeingang"?


    VB BR

    Rasenmäher:

       Gardena smart Sileno+ | seit Juli 2018 | 380 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

       Gardena smart Sileno+ | seit April 2019| 350 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

    Bewässerung:

       Gardena smart Power Socket für die Pumpe

       Gardena smart irrigation control

       Hunter PGV 101 + div. Hunter MP Rotatoren

  • top_gun_de

    ach so, du nutzt Akkus - ich bin von Batterien ausgegangen und da wär das dann vollkommen egal gewesen


    Danke und Gruß

    BR

    Rasenmäher:

       Gardena smart Sileno+ | seit Juli 2018 | 380 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

       Gardena smart Sileno+ | seit April 2019| 350 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

    Bewässerung:

       Gardena smart Power Socket für die Pumpe

       Gardena smart irrigation control

       Hunter PGV 101 + div. Hunter MP Rotatoren

  • kannst du einen Multiplexer dazwischen schalten?



    VG BR

    Rasenmäher:

       Gardena smart Sileno+ | seit Juli 2018 | 380 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

       Gardena smart Sileno+ | seit April 2019| 350 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

    Bewässerung:

       Gardena smart Power Socket für die Pumpe

       Gardena smart irrigation control

       Hunter PGV 101 + div. Hunter MP Rotatoren

  • top_gun_de

    Dann habe ich aber noch ein paar Fragen an dich: du nutzt doch ioBroker

    Was für eine HW nutzt du für den ioBroker Server? ich habe vor ein paar Wochen ioBroker mal zum Testen auf meinem lokalen Notebook (zugegeben, ist nicht mehr der schnellste) installiert. Der Notebook war dann nicht mehr zu benutzen, wenn ioBroker gestartet war. Wenn ich mir nun überlege, dass ich ioBroker auf einem Raspi installiere, dann hab ich mich gefragt, ob das dann wirklich funktioniert. Dazu will ich eigentlich keinen Raspi nur für ioBroker abstellen, sondern ein paar andere Tasks auch noch drauf laufen lassen.

    Kannst du/Willst du dein Setup mal beschreiben? Vielleicht wäre das sogar einen eigenen Thread im Forum wert. :-)


    Danke und viele Grüße

    BR

    Rasenmäher:

       Gardena smart Sileno+ | seit Juli 2018 | 380 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

       Gardena smart Sileno+ | seit April 2019| 350 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

    Bewässerung:

       Gardena smart Power Socket für die Pumpe

       Gardena smart irrigation control

       Hunter PGV 101 + div. Hunter MP Rotatoren

  • Das ist eine simple Installation auf einem Raspberry Pi 3B. Raspbian in der vorletzten Version (Update geht nur per Neuinstallation), darauf habe ich installiert:


    node.Js in der aktuellen Version (braucht man für iobroker)

    IoBroker in der aktuellen Version

    Python3

    Hydrawiser (pythonscript für Hydrawisesteuerung)


    Viel mehr würde das Gerät nicht mehr leisten. Primär weil der Ram mit iobroker schnell knapp wird. Die CPU-Belastung ist nicht sehr hoch,


    Nennenswerte Adapter:


    Vis

    Netatmo

    Husqvarna-Connect (unzuverlässig)

    Wunderground

    Tuya (chinesische Steckdosen, lassen sich damit auch im Lan managem)

    Mqtt Broker

    Backitup

    Max!Cul


    Was ich damit mache: Bischen Heizkörpersteuerung, viel rund um die Bewässerung. Beispielsweise habe ich kein Pumpenstartrelais montiert, sondern nehme zwei Tuyasteckdosen. An einer hängt der Hydrawisecontroller, an einer die Pumpe. Öffnet der Controller ein Ventil, geht sein Stromverbrauch hoch. Ein Script schaltet die Steckdose der Pumpe an wenn der Controller 7W oder mehr verbraucht, und schaltet wieder aus wenn der Verbrauch unter 6W geht.

  • Ok, das hört sich ja ansich gut an. Schade, dass vmtl. nichts anderes mehr auf dem Raspi laufen wird.

    Ich werde das dann mal testen.


    Die Idee mit dem "Pumpenstartrelais" ist gut :thumbup: - ich habe auch keines, nur meine Pumpe versorgt auch noch normale Wasserhähne mit. Mal überlegen :/


    VG

    BR (am besorgen eines weiteren Raspi's - hab schon fast einen Zoo)

    Rasenmäher:

       Gardena smart Sileno+ | seit Juli 2018 | 380 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

       Gardena smart Sileno+ | seit April 2019| 350 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

    Bewässerung:

       Gardena smart Power Socket für die Pumpe

       Gardena smart irrigation control

       Hunter PGV 101 + div. Hunter MP Rotatoren

  • Hm, bevor Du einen Zoo hinstellst, wäre da nicht ein Low power-Rechner mit Hypervisor sinnvoll?

    ja - nein - vielleicht - bestimmt - oder doch nicht - hat alles Vor- und Nachteile

    ist halt gewachsen


    VG BR

    Rasenmäher:

       Gardena smart Sileno+ | seit Juli 2018 | 380 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

       Gardena smart Sileno+ | seit April 2019| 350 qm Rasenfläche | smart Gateway per Kabel am Router angeschlossen

    Bewässerung:

       Gardena smart Power Socket für die Pumpe

       Gardena smart irrigation control

       Hunter PGV 101 + div. Hunter MP Rotatoren

  • Ich bin mit dem Witterungsschutz des Sensorkopfes nicht so zufrieden.


    Als Alternative habe ich jetzt einen anderen Sensor auf dem Schirm:


    https://smile.amazon.de/gp/product/B07PY3X1NS


    Der funktioniert auch mit den 3,3V aus einem ESP-Sensor, und liefert ebenfalls ein analoges Signal zurück. Effektiv könnte man ihn einfach im bestehenden Design an die Platine anschließen. Die Bewertung "trocken"/"feucht genug" erfolgt ohnehin hintenraus im ioBroker.


    Vorteil: Das Kabel ist mit dem Sensor vergossen, das hält hoffentlich länger als eine Abdichtung mit Panzerband oder Epoxydharz. Der Sensor bringt noch ein sehr kleines Logikboard mit, das kommt mit in die Kiste für den Sender.


    Mittlerweile liegen hier auch zwei ESP32-Module rum, deshalb mache ich bei Gelegenheit einen frischen Aufbau mit neuer Platine :-)

  • So. Nachdem ich mich in den ESP32 eingearbeitet habe, war das Ergebnis: Lieber beim ESP8266 bleiben. Der Stromverbrauch der Fertigmodule im "Deep Sleep" ist so hoch, dass die 4xAAA nicht lange halten würden. Dann bleibe ich lieber beim 8266 und wechsle die Batterien wenn sie ausfallen. 8 AAA-Primärzellen von Varta kosten keine 2 Euro.


    Der neue Sensor sieht ein bischen anders aus - vor allem bringt er noch eine kleine Platine mit Signalaufbereitung mit. Deshalb wird es im Gehäuse sehr eng:


    pasted-from-clipboard.png


    Das Foto täuscht - der Sensor ist nur gut daumenlang, und das Platinchen ist gut 2cm lang. Aber das Gehäuse ist schon ohne Zweitplatine voll - man kann das reinstauchen und hoffen, dass man beim Batteriewechsel nichts abrupft.


    Ein größeres Gehäuse ist geordert, Dann gibt es ein neues Foto vom Gesamtaufbau.


    Hier mal ein paar Bilder, wie die Daten im ioBroker ankommen und am Handy visualisiert werden können. Logik um den Hydrawisecontroller anzusteuern ist noch nicht erstellt. Es ist ja noch nicht mal Winter :)


    Handyansicht - da habe ich mir alles zusammengeschoben, was ich für den Rasen wichtig finde:


    pasted-from-clipboard.png


    (Feuchte Keller ist zugegebenermaßen etwas deplaziert, aber so schaue ich gelegentlich drauf ;)


    Historische Daten in der Adminkonsole:


    pasted-from-clipboard.png


    Die Rohdaten sind noch keine Feuchtigkeitsprozente! Der Wert um die 110 kommt zustande wenn der Sensor in gesättigter Erde steckt, die 34-36 ergeben sich wenn ich den Sensor säubere und in die Erde lege. Immerhin sind die Daten über Stunden sehr stabil ohne "Rauschen". Spannend wird, wie klar sich Zwischenwerte differenzieren, um dann einen guten Schwellwert für "Beregnung freigeben" zu finden.


    Der Code für den ESP8266 ist schon ziemlich fertig. Programme für den ESP8266 zur Messdatenerfassung funktionieren immer nach einem ähnlichen Schema:


    1.) Sensorstrom anschalten

    2.) kurz warten damit der Sensor sich stabilisieren kann

    3.) WLAN aktivieren

    4.) Verbindung zum Server aufbauen

    5.) Daten lesen

    6.) Daten an den Server schicken

    7.) Sensor für 30-60 Minuten schlafenlegen um Strom zu sparen

    und wieder von vorne


    Hier mal der Code für die Sensorseite (wer was zu verbessern findet, immer her damit - ich bin Neuling in der Mikrocontrollerprogrammierung). Zudem ist C die übliche Sprache auf dem Controller - kann ich so gut wie gar nicht.


    Der Code für einen ESP8266 hat zwei Pflichtprozeduren: setup() und loop().


    setup() wird immer direkt nach dem Neustart aufgerufen. Bei Geräten die mit Batteriestrom immer nur kurz arbeiten wird hier die gesamte Arbeit erledigt, danach geht der Prozessor gleich wieder aus.


    Falls ihr euch wundert, dass ich hier für den Sensor eine feste IP-Adresse konfiguriere: Das soll beim Starten des WLAN ein paar Sekunden sparen. WLAN-Betrieb ist der größte Energiefresser bei dem Prozessor. Wenn man hier ein paar Sekunden sparen kann, halten die Batterien wieder ein paar Wochen länger. Mal in Zahlen: Der Prozessor geht einmal pro Stunde für ca. 5s an, davon sind ca. 3s WLAN-Betrieb. Wenn man den Sensor 2s länger laufen lässt, wären das 7s Laufzeit mit 5s WLAN. Das läppert sich.


    loop() ist eine Schleife die im Dauerbetrieb permanent abgearbeitet wird. Da steht Code drin bei Geräten, die dauernd an sind. Der Prozessor wird z.B. viel in billigen WLAN-Steckdosen, Funkklingeln usw. eingesetzt - da wird dann in dieser Schleife der ganze Steuer- und Regelbetrieb erledigt.


    Wer sich ähnliches bauen möchte - einen Fehler unbedingt vermeiden: Die Sensoren brauchen meist 3,3 oder 5V. Bitte NICHT die Plus-Leitung am 3,3V-Anschluss des ESP anschließen. Der bleibt unter Spannung auch wenn der Prozessor selbst sich abschaltet. Und damit nuckelt der Sensor immer fleißig an der Batterie, egal wieviel Arbeit man sich mit dem Energiesparen am Prozessor macht. Stattdessen kommen diese Minisensoren an einen schaltbaren Anschluss des Controllers. Bei mir ist das "D7" geworden - wer genau hinsieht sieht, dass der in der Setuproutine auf HIGH geschaltet wird. Erst dann geht Versorgungsspannung an den Sensor. Den Fehler sieht man auf ganz vielen Bauanleitungen im Internet. Da wird immer nur gezeigt dass man es "überhaupt" hinbekommen hat.


    Also: Es geht weiter :-)

  • So. Läuft, überzeugt aber nicht. Ich habe den in einer Dessertschale mit Sand ein paar Tage laufen lassen. Der war schräg in denSand gesteckt, so dass oberhalb wie unterhalb noch feuchter Sand war. Nach oben vielleicht 3cm, nach unten etwas mehr. letzte Woche wurde einmal ordentlich durchfeuchtet, seitdem stand das Gefäß und trocknete vor sich hin.


    In den ersten Tagen tat sich fast nichts, dann ging es binnen 24h rasant in den Keller.


    Der Sand sollte gleichmäßig von oben nach unten getrocknet sein. Das findet sich im Diagramm nicht wieder.


    Ich habe jetzt doch Geld in die Hand genommen und bei DVS einen Truebner SMT 50 bestellt, Ein professioneller Sensor der in der Hydrologieforschung eingesetzt wird. Baulich dem "kapazitiven Sensor 1.2" ähnlich, aber mit abgedichtetem Gehäuse, frostbeständig und laut Herrn Maurer gut für 5 Jahre. Da sind 69€ ok.