Eigenbau Bodenfeuchtesensor wireless, < 20€, v2

Begonnen von tante ju, 07 September 2016, 13:57:27

Vorheriges Thema - Nächstes Thema

kleinerDrache

#105
Zitat von: tante ju am 07 September 2016, 13:57:27
Dies ist eine Fortsetzung des Threads https://forum.fhem.de/index.php/topic,49800.0.html, um hier im ersten Thread die Bestellungen und Updates zu sammeln.

Liste für Bestellungen erstmal geschlossen!

Der Sensor wird eine kapazitive Messung der Bodenfeuchte machen, und somit erfolgt kein Eintrag von Metallen in den Boden.
Er wird mit einem ATmega328P laufen und als Funkmodul ist z.Zt. ein NRF24L01+ vorgesehen.
Einbau in ein Gehäuse Typ G201 o.ä.
Batteriebetrieb mit 1*AA oder, bei anderem Gehäuse, auch 2*AA
erwartete Laufzeit mit 1*AA ca. 400 Tage
Akkus sind zur Zeit nicht möglich, weil kein Tiefentladeschutz vorgesehen ist. Dafür wird die Batterie wirklich bis zum letzten "leergelutscht".
1*Onewire ist auch drauf (für DS18B20 o.ä.)
Sketch wird für MySensors sein, aber eigene Software ist ohne weiteres möglich

Da die Version 1 bei mir läuft und dieses Projekt durch das Forum ein Selbstläufer wurde, ist das Version 2. :-)

Deswegen Frag ich oder hat da einer 2 Tröts gemischt ?

Und nein Stört mich nicht ganz im gegenteil finde das Interessant zu sehen wie sich so ein Projekt entwickelt. Auch wenndann Erweiterungen GAAAAAAANZ anders funktionieren sowas nennt man dann "gewachsen" ;-)
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

PeMue

Zitat von: juergs am 19 Oktober 2016, 22:52:41
Hoffe Deine Frage richtig verstanden zu haben ...
Ok, da habe ich mich nicht sauber ausgedrückt. Bezüglich der Simulation des NE555 habe ich den Unterschied Deiner Simulation zu Tante Ju's Schaltung noch nicht angeschaut ...

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

juergs

#107
Habe nur eine bestehende Simulation mit den Werten abgeändert um das analoge "Geschehen" für mich verständlich zu machen.
Nach genauerem Hinschauen habe ich dann den Unterschied entdeckt: Diode im Rückzweig..

Es ist nur eine andere Art den Disable Eingang zu setzen. Von Dauer-High(Vcc) auf Output-High.
Aber so tief wollte ich nicht einsteigen, sondern nur aufzeigen ...  ;) (Falls es überhaupt jemand interessiert...)

Nur Interessehalber: Das Ergebnis scheint das gleiche zu sein, ohne es wirklich ausprobiert zu haben....

juergs


tante ju

Interessante Entwicklung hier.
Ich hatte auch schon mal an den ATTiny für MySesnors gedacht (kann man machen), aber dann fehlen mir die IOs an anderer Stelle.

@kleinerdrache:
Das sind alles Eigenentwicklungen. Ganz ursprünglich ging es nur darum, einen Sensor zu haben, der mit Batterie läuft und günstig selbst herzustellen ist.
Wenn juergs eine eigene Variante vorschlägt für 433 MHz finde ich das klasse.

@juergs:
Für die Beschaltung des 555 gibt es etliche Varianten, da es hier ja lediglich darauf ankommt, bei ausreichend kleiner zu messender Kapazität ein Signal zu erzeugen mit ausreichender Impulslänge/Duty-Cycle und Frequenz im messbaren Bereich, so daß ein IRQ basierter Zähler im Prozessor mitkommt.
Meine ersten Varianten versuchten noch ein symmetrisches Rechteck zu erzeugen, so daß man leicht die gemessene Kapazität ermitteln kann. Aber letztlich ist das ja unnötig.

tante ju

Kleine Statusmeldung:
War beruflich unterwegs, daher konnte ich mich nicht viel kümmern.
Ich warte noch auf die finalen Bauteilkosten um dann anfangen zu können Geld einzusammeln und zu bestellen.

juergs

#111
ZitatFür die Beschaltung des 555 gibt es etliche Varianten, da es hier ja lediglich darauf ankommt, bei ausreichend kleiner zu messender Kapazität ein Signal zu erzeugen mit ausreichender Impulslänge/Duty-Cycle und Frequenz im messbaren Bereich, so daß ein IRQ basierter Zähler im Prozessor mitkommt.
Meine ersten Varianten versuchten noch ein symmetrisches Rechteck zu erzeugen, so daß man leicht die gemessene Kapazität ermitteln kann. Aber letztlich ist das ja unnötig.

Hallo TanteJu,
danke für die Rückmeldung + die super Vorarbeit.

... wie gesagt ich wollte die Schaltung für mich "ergründen" ... da ich normalerweise eher auf der digitalen Seite "agiere"  ;)
Zumindest habe ich das Prinzip jetzt verstanden. Gleiche reproduzierbare Ergebnisse wären vielleicht noch anzuvisieren ...
Ebenso z.B.: Wie verhält sich der Einfluss des Abstandes der Sonden zu gemessenen Kapazität? (Ebenso die Länge der Sonden)
Da der gemessene Impulwert an FHEM übermittelt wird, müßte man selbst die Kalibrierung mit seinen eigenen Gegebenheiten
(unterschiedliche Erdbeschaffenheit und -Verdichtung) durchführen. Also heißt es auch, erst mal Erfahrungen sammeln.

Ob mein Aufbau mit einer Kupfer-Zink-Legierung als Sonde wirklich Pflanzenfreundlich ist, wage ich zu bezweifeln  ;)
Da wäre Edelstahl oder ein höherwertigeres Metall wohl eher besser geeignet.
Aber als Prototyp zum Testen geht das durch.

Bin gerade dabei die Software zurechtzubiegen, damit ich morgen Testen kann.
Dann kann ich Weiteres berichten.

Grüße,
Jürgen 

Edit: sieht doch schon ganz annehmbar aus (mit 470 nF-Test) :

Start Bodenfeuchte-Sensor.
VCC = 4790
===============================================
Bodenfeuchte = 2095.00
VCC = 4790
===============================================
Bodenfeuchte = 2097.00
VCC = 4790
===============================================
Bodenfeuchte = 2101.00
VCC = 4790
===============================================
Bodenfeuchte = 2099.00
VCC = 4790
===============================================
Bodenfeuchte = 2098.00
VCC = 4790
===============================================
Bodenfeuchte = 2099.00
VCC = 4790
===============================================
Bodenfeuchte = 2100.00
VCC = 4790
===============================================





tante ju

Zitat von: juergs am 21 Oktober 2016, 21:21:17
... wie gesagt ich wollte die Schaltung für mich "ergründen" ... da ich normalerweise eher auf der digitalen Seite "agiere"  ;)
Zumindest habe ich das Prinzip jetzt verstanden. Gleiche reproduzierbare Ergebnisse wären vielleicht noch anzuvisieren ...
Ebenso z.B.: Wie verhält sich der Einfluss des Abstandes der Sonden zu gemessenen Kapazität? (Ebenso die Länge der Sonden)
Da der gemessene Impulwert an FHEM übermittelt wird, müßte man selbst die Kalibrierung mit seinen eigenen Gegebenheiten
(unterschiedliche Erdbeschaffenheit und -Verdichtung) durchführen. Also heißt es auch, erst mal Erfahrungen sammeln.

Ob mein Aufbau mit einer Kupfer-Zink-Legierung als Sonde wirklich Pflanzenfreundlich ist, wage ich zu bezweifeln  ;)
Da wäre Edelstahl oder ein höherwertigeres Metall wohl eher besser geeignet.
Aber als Prototyp zum Testen geht das durch.

Der zweite Absatz verwirrt mich etwas. Die Metallteile des Sensors sollten nicht mit dem Boden in Berührung kommen. Deswegen sollte es auch den Pflanzen nichts ausmachen. Ansonsten würdest Du einen ohmschen Widerstand reinbekommen, wodurch die Schaltung nicht mehr wie gedacht funktioniert.

Und damit dann zum ersten Absatz. Ich meine, das habe ich schonmal der irgendwo erklärt.
Das System aus Metallflächen und der umgebenden Erde ist ein Kondensator.
Habe jetzt keine Ahnung, wie ich hier Formeln tippen soll. Die TeX-Notation scheint nicht zu funktionieren. Daher mit Worten:
Die Kapazität eines Kondensators hängt variabel von der zugewandten Oberfläche der Elektroden, dem Abstand der Elektroden voneinander und der Permittivität des isolierenden (!) Dielektrikums zwischen den Platten ab.

Wenn nun zwei Leiterbahnen auf der Platine nebeneinander liegen, dann ist die Kapazität durch die Dicke des Kupfers (das ist die kürzeste Strecke) und der Länge der Leiterbahnen bestimmt, was die Fläche ergibt. Der Abstand ist wichtig und die Permittivität ergibt sich entweder aus dem Luftwert oder dem Wert der Lötstoppmaske oder ähnlicher Beschichtungen.

Das ist jetzt, wie die grundsätzliche Berechnung eines Kondensators, eine vereinfachte Darstellung. Wenn Leiterbahnen nebeneinander liegen, dann zählt nicht nur die zueinander zugewandte Fläche (über die Dicke des Kupfers), sondern auch die Breite der Leiterbahnen, weil "Feldlinien" auch "seitlich austreten", wenn bestimmte Areale gesättigt sind. Das ist nur dann für unsere Zwecke wichtig, wenn, diese zusätzlichen Areale wesentlich größer sind als die des kürzesten Abstandes. Wenn Du also eine zweiadrige Leitung in den Boden verbuddelst (natürlich vom Boden isoliert), dann ist dieser Effekt vernachlässigbar. Ebenso, wenn Du zwei dicke Metallplatten nebeneinander nimmst. Bei den geringen Spannungen und Strömungen würden die zugewandten Areale nicht gesättigt werden und der gewünschte Effekt (für uns) nicht messbar sein.

Da Kupferauftrag auf Platinen in der Regel nur wenige Mü ist (<100), ist bei breiten Leiterbahnen eine Unmenge von "kleinen Kondensatoren" am Werk. Eine gewisse Zahl ist direkt vom Abstand der Leiterbahnen abhängig und entsteht über die Dicke des Kupfers. Eine viel größere Zahl entsteht bei entsprechender Breite der Leiterbahnen (viel Breiter als parallele Länge) über die Länge durch das umgebende Medium. Sowohl bei Luft als auch beim Erdreich hängt die Permittivität aber von der Feuchtigkeitssättigung ab (und beim Erdreich auch noch von Mineralien, Metallen und anderen Stoffen).

Deswegen ist die über den Sensor gemessene Kapazität ein relatives Abbild der Feuchtigkeit des umgebenden Bodens. Da die Bodenbeschaffenheit überall leicht anders sein wird, wäre es müssig sich über absolute Werte zu unterhalten. Der Boden verändert ja auch übers Jahr und ständig seine Zusammensetzung. Wenn Du mal düngst, wirst Du anschließend andere Werte messen. Regen trägt auch Stoffe ein oder wäscht welche aus und so weiter.

Den größten messbaren Effekt würde man haben, wenn man zwei isolierte Metallplatten im geringen Abstand voneinander (so ca. 5mm) befestigen würde und in den Boden eingräbt. Hier gibt es dann viel zugewandte Flächen und eine sehr starke Abhängigkeit von der Bodenfeuchtigkeit und Beschaffenheit. Allerdings wäre das dazwischen befindliche Erdmaterial nicht mehr ein gutes Abbild der allgemeinen Bodenfeuchte, weil es quasi "abgeschlossen" ist.

juergs

#113
Hallo TanteJu,

Jetzt habe ich mein Mißverständnis entdeckt, gut dass wir darüber geredet haben:
ZitatDie Metallteile des Sensors sollten nicht mit dem Boden in Berührung kommen. Deswegen sollte es auch den Pflanzen nichts ausmachen. Ansonsten würdest Du einen ohmschen Widerstand reinbekommen, wodurch die Schaltung nicht mehr wie gedacht funktioniert.

Ok, als Prototyp lässt sich die Isolation leicht mit etwas Schrumpfschlauch und Kleber bewerkstelligen.
Bemerkt hatte ich den negativen resitiven Einfluss ebenfalls, wenn man beide Sonden mit den Fingern anfaßt.  ;D

ZitatDa die Bodenbeschaffenheit überall leicht anders sein wird, wäre es müssig sich über absolute Werte zu unterhalten.
Das wäre mein nächster Gedanke.

Es gäbe meiner Meinung nach, ja zwei Methoden wie man in FHEM reagieren könnte:




1. Kontinuierlich nur die Veränderung der Counts anzeigen und dann mit Aktionen aus den absoluten Werten reagieren.
2. Der Controller ordnet die Counts selbst in Bereiche ein (Anzahl wäre Geschmackssache z.B. 10) und sendet pro Bereich eine "magic number" .

Wenn ich auf ISP-Fähigkeit des ATtiny verzichte, zugunsten Miniaturisierung, hätte ich noch Pin(s) frei um den Modus per Jumper einstellen zu können.

ZitatHier gibt es dann viel zugewandte Flächen und eine sehr starke Abhängigkeit von der Bodenfeuchtigkeit und Beschaffenheit.
Das kann ich dann beim möglichen Platinen-Erstellen berücksichtigen.

ZitatIch meine, das habe ich schonmal der irgendwo erklärt.
Sorry, manchmal treibt einem der "Zeitmangel" zum oberflächlichen Lesen des Gesamtthreads.
Eigentlich wollte ich nur das Protokoll einbauen und gut ...  ;)

Deshalb großes Lob für die Ausführlichkeit, Chapeau!  :) :)

Grüße,
Jürgen


PS: es gibt ja auch kommerzielle Sensoren die hier in den Threads vertreten sind:
parrot-flower-power-pflanzensensor

oder im Signalduino-Thread "OPUS XT300"
Bilder

Das scheint doch ein beliebtes Thema zu sein. Mit dem ATtiny denke ich kämen wir deutlich unter 10€ und mit einem schönen 3D-Druck-Gehäuse ...

Noch ein Hinweis zum LaCrosse-Protokoll mit dem CUL433: LaCrosse mit CUL433

juergs

#114
Mit isolierten Sonden sie es sehr stabil aus, auch von den Readings der Impulse aus gesehen:

Zitat===============================================
Bodenfeuchte = 2603
VCC (int) = 4790
VCC (float) = 4.79
===============================================
Bodenfeuchte = 2604
VCC (int) = 4790
VCC (float) = 4.79
===============================================
Bodenfeuchte = 2604
VCC (int) = 4811
VCC (float) = 4.79
===============================================
Bodenfeuchte = 2604
VCC (int) = 4790
VCC (float) = 4.79
===============================================
Bodenfeuchte = 1815
VCC (int) = 4811
VCC (float) = 4.79
===============================================
Bodenfeuchte = 1420
VCC (int) = 4790
VCC (float) = 4.79
===============================================
Bodenfeuchte = 2008

Die Mittelwertbildung funktioniert ebenso. Obiges Beispiel ist der Test mit einmal Anfassen => Kapazitätserhöhung => Impulszahl-Erniedrigung. 

Mein Test war mit einem Nano, baue das Ganze noch für den ATTINY um/ein und füge den DS18B20 noch hinzu.

20us/2Volt:

kleinerDrache

als Isolierung der Elektroden kann ich euch Tauchlack nennen wenn da mal mehr gemacht werden soll als nur ein Prototyp. Müsste man nur schauen in wie weit der das Messergebniss beinflusst.
Raspi 2 - Hmusb2 , 2xJeeLink , EnOcean pi: Serie14 Geräte , 6xHM-Sec-Rhs , 6xHM-CC-RT-DN, verschiedene MySensor Nodes, ein bischen MQTT

juergs

#116
Super, die Tauchlack-Idee.

Anbei die erste TEST-Nano-Version V1.1 mit Dallas-Sensor.
Für den ATTiny ist ca. 9KB, damit zuviel. Deshalb muss ich den Code noch um 1K abspecken ...  :(
Evtl. vielleicht besser Nano + Tiny zu trennen. Tiny wäre eh das Zielsystem.

Wer mal Beta mittesten möchte ....  :)

===============================================
Start Bodenfeuchte-Sensor.
Sensor-ID (Bodenfeuchte): 100
Sensor-ID (Batterie): 101
===============================================
Sensor-ID (Batterie): 101
Dallas-Sensor: 12.30
VCC (int) = 4935
VCC (float) = 4.94
===============================================
Sensor-ID (Bodenfeuchte): 100
Bodenfeuchte (int) = 2574
Bodenfeuchte (float) = 2.57
Sensor-ID (Batterie): 101
Dallas-Sensor: 12.30
VCC (int) = 4913
VCC (float) = 4.91
===============================================


Pinbelegung:
DALLAS_SENSOR_PIN               10       
BODENFEUCHTE_SENSOR_PIN   2     //    muss Interrupt-fähig sein
BODENFEUCHTE_POWER_PIN    11       
TX_433_PIN                             12   

Info dazu: hatte den DS18B20 noch nicht angeschlossen.

juergs

#117
Um Mißverständnisse zu vermeiden:

Allgemeine Info zum TX2-Protokoll (LaCrosse) und Integration in FHEM:



1. LaCrosse wird eher mit JeeLink und 868 in Verbindung gesehen-> FSK (!).  Ist aber OOK/ASK + 433Mhz mit CUL433
2. LaCrosse bezieht sich hier nur auf das Protokoll(Datenstruktur) und nicht auf den Sensor und das Übertragungsmedium.
3. Die 433 MHz implizieren ja: Empfang über den 433 Mhz Cul. Mit "autocreate" funktioniert das in FHEM recht gut automatisch.
4. Es wird von FHEM ein "CUL_TX"-Device mit der entsprechenden ID angelegt. 
5. Die Daten des Devices entstammen aus dem Log, z.B. "FileLog_CUL_TX_115" 
6. Klickt man das Log in FHEM an erscheint ein kleiner Text unterhalb des "Regexp parts"-Blocks: mit "Create SVG plot"  erzeugt man die Grafik dazu.
7. Evtl. kann der Signalduino auch dieses Protokoll empfangen und dekodieren, habe es aber noch nicht ausprobiert.

PeMue

Hallo Jürgen,

ich meine, auf den ATTiny geht mittlerweile auch ein (abgespeckter) Bootloader mit drauf (irgendwo in Deinen vielen Links müsste das stehen).
Mittlerweile geht wohl für MySensors auch ein OTA Update der Firmware, entweder mit EEPROM auf dem Sensor oder mit dem MySensors Bootloader (ohne EEPROM). Ich habe mal zwei Sensebender Micro Boards hier, die ich mir mal diesbezüglich anschauen werde.
Für die 433 MHz Version ist OTA vermutlich sowieso nicht geplant. Aber meine Frage wäre:
- Würde ATTiny auch für den MySensors Sketch ausreichen?
- Würde da auch ein Bootloader für OTA Update draufgehen?

Sorry, dass ich mich nicht durch die Suche schlau gemacht habe ...

@Tante Ju: Hast Du OTA geplant/im Focus?

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

juergs

#119
Hallo Peter,

ZitatATTiny geht mittlerweile auch ein (abgespeckter) Bootloader mit drauf (irgendwo in Deinen vielen Links müsste das stehen)
Ja Booloader kenne ich, Micronucleus und gerade noch diesen http://thegaragelab.com/microboot-a-simple-bootloader/ hier.
Bootloader ist gerade für mich nicht höchste Prio, da ich eh mit ISP-Programmer arbeite und dieser Platz (ver-)braucht.
Evtl könnte ich den Dallas-Sensor dafür opfern um Platz zu schaffen.
Sobald ich die ATTiny-Version fertig habe, versuche ich das auf den Digispark mit USB-Support (Micronucleus-BL) oder OTA mal zu klären.
Von denen habe ich noch ein paar rumliegen.

Zitat433 MHz Version + OTA
Gibt es schon, ob das mit dem kleinen ATTiny geht? Man braucht ja mindestens den doppelten freien Flash-Speicher
und der ATTiny hat nur 8K davon, im Gegensatz vom 328er.

ZitatWürde ATTiny auch für den MySensors Sketch ausreichen?
Kann ich mal nachschauen, meine Version ließen sich aber auch wieder auf Mysensors zurückbauen.
Allerdings weiß ich (noch) nicht: MySensors-433MHz-Gateway? oder doch: NRF
Und hier: Attiny und NRF geht doch: nrf24l01-control-with-3-attiny85-pins oder hier: nrf24l01-control-with-2-mcu-pins-using

ZitatWürde da auch ein Bootloader für OTA Update draufgehen?
Ok, sehe: OTA ist ein Thema. Mach mich mal schlau....  ;)
OTA über Bluetooth? Aber Gegenfrage: wenn der Sketch steht, was will man updaten?
Bodenfeuchte-Messer-Mesh?

Der Bodenfeuchte Sketch meckert:
Bodenfeuchte_no_5_v2.4.ino:71:22: fatal error: MyConfig.h: No such file or directory


Könnte mir jemand auf die Schnelle ein MySensors Projekt stellen?

MySensors-Sketch, müsste man daran arbeiten, evtl. wäre der ATtiny84 besser geeignet, wegen NRF:
Sketch uses 9,478 bytes (30%) of program storage space. Maximum is 30,720 bytes.
Global variables use 432 bytes (21%) of dynamic memory, leaving 1,616 bytes for local variables. Maximum is 2,048 bytes.


Zitatfür MySensors auch ein OTA Update der Firmware, entweder mit EEPROM...
Muss ich mich schlau machen, MySensors (wegen NRF24/WLAN) stand bisher nicht so in meinem Fokus. 
Aber diese Teil-Funktion könnte man noch einbauen, wenn es der Platz zulässt.
Um das zu erreichen müsste ich wahrscheinlich die C++ Objekte aufgeben und komplett zurück auf "C" gehen
um Platz zu sparen.

Der Vorteil des Tinies ist ja der Platz: zwei SOT-23 Gehäuse + Sender (z.B. diesen mit dem R433T2-Resonator) + StepUpConverter
passt ja fast in ein AAA-Batterie-Gehäuse.

Zitatirgendwo in Deinen vielen Links müsste das stehen...
Stimmt, hab den Überblick verloren ...  8)

Grüße in meine alte Heimat: Großraum HN,
Jürgen