Eigenbau Bodenfeuchte-Sensor | Wireless | Batterie | < 20€

Begonnen von Ekkehard, 23 Februar 2016, 21:02:08

Vorheriges Thema - Nächstes Thema

Ekkehard

Hallo,

habe seit zwei Wochen einen Raspi mit FHEM am laufen und steuere ein gutes Dutzend Lampen und Stedo-Schalter. Nun ist mir die Idee gekommen, etwas richtig sinnvolles mit FHEM anzufangen, eine Gartenbewässerung  8). Herzstück ist natürlich ein (oder besser mehrere) Bodenfeuchte-Sensoren. Diese sollten natürlich gut funktionieren (=kapazitiv), schnurlos sein (=Batterie + z.B. 433 MHz) und auch erschwinglich sein (<20 €).
Bin auf diese Chirp-Sensoren gestoßen: https://www.tindie.com/products/miceuz/chirp-plant-watering-alarm/, ein kapazitiver Sensor mit ATTiny 44, entweder mit Piepser oder I2C Anschluss.
Kombiniert mit einem 433 MHz-Sender http://www.ebay.de/itm/Sendemodul-Sender-Sendeeinheit-433Mhz-Funk-Modul-Funkschalter-Funkmodul-MG-/172023980361 und einem guten Akku sendet das Teil einen Sommer lang jede Stunde einen Messwert.

Folgende Fragen stellen sich mir:
1. Gibt es diese Kombination schon irgendwo fertig zu kaufen? Man muss das Rad ja nicht zweimal erfinden
2. Vom Stromverbrauch her sollte es doch machbar sein? Die Batterien in den FBs zu den Funkstedos halten ja auch ewig.
3. Reicht ein ATTiny 44 für das Sendeprotokoll
4. Welches Protokoll würdet Ihr vorschlagen für die Integration in FHEM? Könnte man nicht eine Wetterstation emulieren?

Floca

Ich würde dir vorschlagen einen Blick auf mysensors.org zu werfen ;)

Das ist genau das was du vor hast, im eigenbau sehr günstig und auf Batteriebetrieb sehr leicht umzusetzen. Fhem unterstützt die Gateways dazu auch einwandfrei.

sash.sc

Hat jemand schon den Sensor gebaut und erste erfahrungen gesammelt ?

Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

MadMax-FHEM

Hi,

ich bin grad dabei den hier umzusetzen:

http://www.stall.biz/project/robuster-bodenfeuchtesensor-fur-den-ausseneinsatz

Mit dem Differenzsensor gehen ja zwei Feuchtesensoren, sofern der Abstand zueinander nicht mehr als 5 Meter sind (Kabellänge zumindest bei den Temperatursensoren jeweils so 2,8m [soweit ich's jetzt im Kopf hab])...

Mal sehen...
...Differenztempsensor hab ich bereits und auch die notwendigen Teile (bis auf die Speichen)...
Jetzt brauch ich nur noch Zeit...

Vielleicht schau ich mir die Links auch mal an...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Ekkehard

Habe mir zwei von den o.g. Bodenfeuchte-Sensoren bestellt und jeweils mit Arduino Pro Mini und Mysensors-Funkmodul ins FHEM integriert.
Fazit nach ein paar Monaten:
* ziemlich stabile Messergebnisse
* Batterie (2x AA) hält nur ein paar Wochen
* ein Sensor ist mittlerweile defekt, eine Leiterbahn ist "durchgerostet", trotz Lackierung mit Plastik-Spray.

Das kapazitive Messprinzip ist schon nicht schlecht. Nur 2 AVR sind nicht ideal. Habe nicht probiert, ob der im Feuchtesensor integrierte ATTiny direkt das Mysensors Sendemodul ansteuern kann.
Das ideale Projekt wäre ein mechanisch robuster, kapazitiver Sensor + Arduino + Sendemodul + Solarzelle + Akku.
Ich bleibe dran ...

PS: Meine Bewässerung hat bisher auch prima ohne Auswertung der Feuchtesensoren funktioniert. Wenn es regnet, kann ja trotzdem bewässert werden, das Fass läuft ja wieder voll.  :)


tante ju

Hab gerade einen selbst gebauten kapazitiven Bodenfeuchtesensor im Testbetrieb. Läuft mit einem ATMega328p über Mysensors mit Batteriebetrieb. Solarzelle hatte ich angedacht, aber nicht im Regal. Deswegen Batterien. Materialkosten unter 10EUR.
Der Teil, der im Boden steckt, ist im selbstverklebenden Schrumpfschlauch und sollte eigentlich nicht kaputt gehen.

Aber wie gesagt: Testbetrieb. Mal sehen, wie lange die Batterien halten. Rechnerisch müssten es zwei Jahre sein, was aber nur funktioniert, wenn ich den im Winter ins Warme hole.

Ekkehard

Hast Du einen Schaltplan und evtl. ein Bild von dem Sensor? Die Kapazität ist auch eine Platine?

micky0867

Ich habe mir einen Feuchtesensor gebaut auf Basis von Mysensors:
https://www.mysensors.org/build/moisture
Dabei habe ich die Kontakte durch Edelstahl ersetzt und den Sensor selbst nicht an VCC sondern einen Digitalpin (5V Arduino Pro mini) geklemmt, so dass er nur Spannung hat, wenn mein Sketch den Pin vor einer Messung auf High setzt.

Aber: der Digitalausgang drr Sensorplatine ist m.E. Mist, da man dann den Schwellwert am Sensor mit dem Schraubendreher regeln muss. Ich habe den Analogpin benutzt und setze den  Schwellwert in FHEM per eigenem Attribut.
Auch ist die Platine m.E. überflüssig (bin aber kein Profi), da der Arduino ja Analogeingänge hat.

Probier doch mal folgendes:
Arduino nehmen, A0 als Eingang  definieren und ständig per analogRead lesen und auf Serial ausgeben. Einen Draht an A0, einen Draht an VCC und beide Drähte mit deinem Finger/Haut verbinden.  Es sollte ein Wert zwischen 0-1023 angezeigt werden. Je nachdem wie feucht deine Finger sind ;)

Um später im Echtbetrieb die Oxidation zu minimieren solltest du statt VCC mit Dauer-high zu nutzen lieber einen digitalen Ausgang für die Dauer der Messung auf high schalten. Und Edelstahl benutzen.
Ich kann mal Fotos von meinen Sensoren machen.


Micky


tante ju

Zitat von: micky0867 am 03 August 2016, 08:17:26
Ich habe mir einen Feuchtesensor gebaut auf Basis von Mysensors:
https://www.mysensors.org/build/moisture
Dabei habe ich die Kontakte durch Edelstahl ersetzt und den Sensor selbst nicht an VCC sondern einen Digitalpin (5V Arduino Pro mini) geklemmt, so dass er nur Spannung hat, wenn mein Sketch den Pin vor einer Messung auf High setzt.

Aber: der Digitalausgang drr Sensorplatine ist m.E. Mist, da man dann den Schwellwert am Sensor mit dem Schraubendreher regeln muss. Ich habe den Analogpin benutzt und setze den  Schwellwert in FHEM per eigenem Attribut.
Auch ist die Platine m.E. überflüssig (bin aber kein Profi), da der Arduino ja Analogeingänge hat.

Probier doch mal folgendes:
Arduino nehmen, A0 als Eingang  definieren und ständig per analogRead lesen und auf Serial ausgeben. Einen Draht an A0, einen Draht an VCC und beide Drähte mit deinem Finger/Haut verbinden.  Es sollte ein Wert zwischen 0-1023 angezeigt werden. Je nachdem wie feucht deine Finger sind ;)

Um später im Echtbetrieb die Oxidation zu minimieren solltest du statt VCC mit Dauer-high zu nutzen lieber einen digitalen Ausgang für die Dauer der Messung auf high schalten. Und Edelstahl benutzen.
Ich kann mal Fotos von meinen Sensoren machen.


Micky

Ich könnte jetzt mal neben den galvanischen Effekten auch die Doppelschichten nach Helmholtz nennen, die Dir auf lange Sicht Probleme bereiten könnten.

Allerdings könnte man mit dem Arduino auch Kapazität messen (Lade-/Entladezeit eines RC-Gliedes). Das passt aber mit der Auflösung nicht so gut, wenn man auf 1 MHz (wegen Batteriebetrieb) runtergeht. Deswegen habe ich ein einfaches Frequenzglied mit 555 aufgebaut und der ATMEL misst die Frequenz, welche direkt von der Kapazität abhängt. Damit kann man ganz gut auch kleine Kapazitäten messen.

Werde heute Abend mal Schaltplan/Platine hochladen. Foto ist schlecht, da ja, wie gesagt, im Schrumpfschlauch :)

KarlHeinz2000

Ich habe auch den Chirp mit MySensor am Laufen. Geht super. Messwerte sind kaum temperaturabhängig.
Ich schalte den Sensor immer nur kurz zum Messen ein und dann gleich wieder aus (VCC schalten). Das ganze läuft mit einer AA und Stepup auf 3.3V schon seit Monaten.
Nur dran denken, dass der Sensor mit einem guten Lack gg. Feuchtigkeit geschütz wird.

Nebenbei läuft auch noch ein Giess-o-mat (https://www.mikrocontroller.net/topic/335407#3678055). Das ist wesentlich günstger, aber die MEsswerte sind arg temperaturabhängig.

Ekkehard

Welchen 1,5 V -->3,3 V Step-up hast Du verwendet? Habe nur einen billigen 1,5 V--> 5V durch Änderung eines Widerstandes auf 3,3 V umgestellt. Der Ruhestrom ist aber viel zu hoch!
Mit nur einer Zelle könnte man den gesamten Sensor in ein Gehäuse dieser 1€ Solarleuchten einbauen. Incl. Solarzelle!!! ;D

KarlHeinz2000

Ich hab den MAX1724 verwendet. Der wird oft für sowas genommen. Da komme ich auf ca. 30uA Stromverbrauch, wenn der AVR schläft. Und das tut er die meiste Zeit...

In einigen Nodes ist auch ähnliches Teil von TI verbaut. Genauen Typ  ???

tante ju

So, hier, wie versprochen, Schaltplan und Platinenlayout.
Die Platine ist großzügig, da ich gerade so ein IP66 Gehäuse rumliegen hatte. Platine kann man selber fräsen oder ätzen. Man kann es als ein Teil nehmen, ich habe es aber an der Trennlinie aufgeteilt, damit ich den Teil in der Erde in einem selbstverklebenden Schrumpfschlauch packen kann und die Elektronik etwas höher anbringen kann, der Funkreichweite wegen. Schrumpfschlauch nicht die 100% Absicherung, aber ist ja auch nur ein Test, der bislang ziemlich gut läuft. Wenn ich weitere baue, werde ich den Sensorteil wohl vergießen.

Das ganze läuft bei mir mit einer 3,6V ER14250 Batterie, funktioniert aber auch mit 2*NiMH. Der 555 ist zwar eigentlich für solch niedrige Spannungen nicht spezifiziert, funktioniert aber. Habe es mit ein paar unterschiedlichen Herstellern probiert, und alle funktionierten.

Wenn man sich ein Sketch erstellt, ist es wichtig für den ATMega ein entsprechendes Board anzulegen, damit die Brown-Out-Fuse gelöscht werden kann. Deswegen muß es auch ein 328P sein (das P nach der 8 ohne Zeichen dazwischen). Sind sie zwar meistens, aber manchmal bekommt man sehr günstig 328-PU oder so, was der älterer Typ ist.

Bastelbernd

Hallo tante ju

finde ich sehr interessant, könntest du den Sketch und die eagle Dateien auch hier einstellen ?
Würde ich gerne nachbauen.

Gruß Bastelbernd
FHEM auf Server mit Mainboard ASRock J3160B,Gehause Mini ITX E-3002+ SSD
Viessmann(optolink) HM-CFG-USB(HMLAN), PoKeys57E
Jeelik(Arduino)+LaCrosse, Nextion
Firmata+Arduino+1Wire+2xDS2423+IN+OUT
Electrolama zig-a-zig-ah!,Zigbee2MQTT

sash.sc

Hörts sich sehr interessant an, mit dem sensor von Tante Ju.

Wie hast du den Sensor den in FHEM eingebunden, bzw. wie wird der erkannt ? Welches Protokoll bzw Typ?

Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb