Autor Thema: LevelSender - Tankfüllstand mit JeeLink empfangen  (Gelesen 36266 mal)

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2826
LevelSender - Tankfüllstand mit JeeLink empfangen
« am: 04 Mai 2014, 12:03:46 »
Falls jemand gerne den Füllstand in z.B. seinen Regenwassertanks erfassen möchte, hätte ich hier ein "Bastel-Projekt".

Da ich LaCrosse IT+ Sensoren im Einsatz habe, habe ich das Ganze so implementiert, dass es mit dem dafür eh schon verwendeten JeeLink und dem Modul 36_JeeLink.pm zusammen arbeitet. Für den Füllstand gibt es ein neues Modul 36_Level.pm

Eine genaue Beschreibung findet sich in dem angehängten ZIP, im Ordner Documentation, hier einige Eckdaten:
- Batteriebetrieben, eine Laufzeit von zwei Jahren sollte möglich sein
- Sendet Pegel, Temperature und die Batteriespannung
- Messung wahlweise mit "low cost" Ultraschall Sensor HC-SR04 oder SRF02
- Basis ist ein JeeNode
- Mit etwas Löt- und Elektronik-Erfahrung machbar

Das 36_JeeLink.pm muss nicht geändert werden, ich verwende das neue Attribut "Clients".

Das komplette Projekt als ZIP, mit Beschreibung, Schaltplan, Layout, ... findet man hier:
https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/36_LevelSender.zip

Inzwischen ist das Modul 36_Level.pm im trunk von FHEM eigecheckt, es muss also nicht mehr manuell zur FHEM-Installation hinzugefügt werden.

Das angehängte Beispiel (LevelSender3.jpg) sagt: 510 Liter im Tank, es hat 15 °C und die Batterie hat 6,3 Volt

Letzte Aktualisierung: 25.07.2014 -> Das komplette Projekt ist in FHEM eingecheckt.
« Letzte Änderung: 27 Mai 2017, 18:04:25 von HCS »

Offline Billy

  • Sr. Member
  • ****
  • Beiträge: 948
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #1 am: 05 Mai 2014, 08:44:02 »
Tolle Arbeit, leider habe ich für meine Zisterne schon seit 2 jahren den KFM100 im Einsatz.

Noch ein Hinweis. Beim dauerhaften Einsatz in einer Zisterne würde ich den feuchtigkeitsdichten Einbau empfehlen.

Gruss Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink 13x PCA 301;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 1x KFM100, 3x HM-LC-SW1-PL2, ESP8266, Sonoff

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2826
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #2 am: 05 Mai 2014, 22:48:39 »
Ja, gegen Feuchtigkeit sollte man es schützen. Ich habe einen Sensor einfach auf einen Schraubdeckel vom Tank gepackt, da dieser Tank im Trockenen steht.

Der im Garten vergrabene Tank ist schwer zugänglich, hier bietet es sich an, nur den HC-SR04 in den Tank zu setzen und mit einem vieradrigen Kabel an eine trockene und zugängliche Stelle zu fahren, wo die Elektronik sitz. Dann hat man es auch leichter, wenn man mal Batterien wechseln oder Firmware aufspielen will.

Noch kurz zur Genauigkeit: der HC-SR04 misst auf ca. 0,5cm genau, was bei meinem 1000l Tank ca. 5 Liter sind.

Online tpm88

  • Full Member
  • ***
  • Beiträge: 334
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #3 am: 11 Mai 2014, 16:17:11 »
sehr, sehr cool - auch sehr schön dokumentiert.

Ich freue mich schon auf den Nachbau - vor allem wenn ich den Preis mit dem eines KFM100 vergleiche... Zuerst muss aber der georderte Wandwassertank geliefert und aufgestellt werden.

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on CubieTruck, HM-USB, JeeLink
DB Logging FHEM Server on QNAP NAS
Devices: diverse HM, IT1500, 1wire via AVR NetIO, LaCrosse

Online tpm88

  • Full Member
  • ***
  • Beiträge: 334
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #4 am: 10 Juli 2014, 22:08:58 »
Hallo HCS,

inzwischen habe ich den LevelSender nachgebaut, hat auf Anhieb funktioniert. Danke nochmal für das tolle Projekt.

Zwei Kleinigkeiten sind mir aufgefallen:

- im Configuration Teil des Sketches wird der VOLTAGE_DIVIDER definiert - im Abschnitt "Globals" bei der Deklaration von Voltage steht aber noch hartverdrahtet 10.8 drin - sollte also durch VOLTAGE_DIVIDER ersetzt werden

- der TMP36 misst bei mir stets ca 3 Grad Celsius zu viel. Das ist zwar gerade noch innerhalb der Herstellerspezifikation, wundert mich aber etwas. Ok - bei meinem 300l Regentank macht das auch nur ca 1 Liter Abweichung aus, also zu vernachlässigen.  Ich habe  mir mal den Quellcode zur TMP36 Messung angesehen. Was ich da nicht verstehe - warum wird die Messung mit der referenceVoltage Voltage::ReferenceVoltage11 aufgerufen? Am TMP36 liegen doch 5.0 V vom StepUp Regler an. Wäre da nicht referenceVoltage50 korrekt??

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on CubieTruck, HM-USB, JeeLink
DB Logging FHEM Server on QNAP NAS
Devices: diverse HM, IT1500, 1wire via AVR NetIO, LaCrosse

Offline T.ihmann

  • Full Member
  • ***
  • Beiträge: 163
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #5 am: 11 Juli 2014, 11:20:04 »
Ja, gegen Feuchtigkeit sollte man es schützen. Ich habe einen Sensor einfach auf einen Schraubdeckel vom Tank gepackt, da dieser Tank im Trockenen steht.
Der im Garten vergrabene Tank ist schwer zugänglich, hier bietet es sich an, nur den HC-SR04 in den Tank zu setzen und mit einem vieradrigen Kabel an eine trockene und zugängliche Stelle zu fahren, wo die Elektronik sitz. Dann hat man es auch leichter, wenn man mal Batterien wechseln oder Firmware aufspielen will.

Wie lang darf denn das Kabel zwischen HC-SR04 und Arduino / Jeelink sein ? Hat da jemand Erfahrungen ?

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2826
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #6 am: 11 Juli 2014, 11:24:06 »
Freut mich, das es funktioniert hat.

- im Configuration Teil des Sketches wird der VOLTAGE_DIVIDER definiert - im Abschnitt "Globals" bei der Deklaration von Voltage steht aber noch hartverdrahtet 10.8 drin - sollte also durch VOLTAGE_DIVIDER ersetzt werden
Ja, das ist definitiv falsch so. Werde ich korrigieren.

- der TMP36 misst bei mir stets ca 3 Grad Celsius zu viel. Das ist zwar gerade noch innerhalb der Herstellerspezifikation, wundert mich aber etwas. Ok - bei meinem 300l Regentank macht das auch nur ca 1 Liter Abweichung aus, also zu vernachlässigen.  Ich habe  mir mal den Quellcode zur TMP36 Messung angesehen. Was ich da nicht verstehe - warum wird die Messung mit der referenceVoltage Voltage::ReferenceVoltage11 aufgerufen? Am TMP36 liegen doch 5.0 V vom StepUp Regler an. Wäre da nicht referenceVoltage50 korrekt??
Das Problem beginnt damit, dass der AREF Pin auf dem JeeNode nicht herausgeführt ist.
Somit kann man AREF nicht reingeben sondern nur die interne Referenz von 1,1V verwenden.
In setup() wird diese mit analogReference(INTERNAL); gesetzt und die TMP36 Routine muss mit 1,1V arbeiten.
1,1V entspricht 60°C, mehr kann nicht gemessen werden, aber das reicht ja für diese Anwendung auch aus.
Nicht besonders schön, aber was Besseres ist mir nicht eingefallen und ich wollte keinen JeeNode voraussetzen, bei dem der AREF Pin zusätzlich irgendwie rausverdrahtet sein muss.

Ich habe auch festgestellt, dass mehrere TMP36, die ich getestet habe, zwischen 1 und 2 °C zu hoch messen.
Eventuell wäre ein Offset und/oder ein Korrekturfaktor im Sketch sinnvoll, dass man seine TMP36 "kalibrieren" kann.
Für die Schallgeschwindigkeit ist das eher undramatisch, aber wenn einem die Temperatur als solche interessiert, wäre es schon schön, wenn man sie etwas genauer bekommt.
     
Was ich auch noch einbauen will, ist eine Plausibilitätsprüfung der empfangenen Daten (auf FHEM-Seite).
Selten kommt es vor, dass trotz korrektem CRC unsinnige Werte emfangen werden (Paket auf dem HF-Weg ruiniert).
Beispiel: Temperatur muss zwischen -40 und +60 °C liegen
 
Wenn ich die nächsten Tage mal mehr Zeit habe, werde ich das angehen und dann auch das 36_Level.pm in FHEM einchecken.

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2826
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #7 am: 11 Juli 2014, 11:25:53 »
Wie lang darf denn das Kabel zwischen HC-SR04 und Arduino / Jeelink sein ? Hat da jemand Erfahrungen ?

Aktuell habe ich 2 Meter geschirmtes Kabel zwischen dem HC-SR04 und der Elektronik.

Online tpm88

  • Full Member
  • ***
  • Beiträge: 334
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #8 am: 13 Juli 2014, 19:56:45 »

Ich habe auch festgestellt, dass mehrere TMP36, die ich getestet habe, zwischen 1 und 2 °C zu hoch messen.
Eventuell wäre ein Offset und/oder ein Korrekturfaktor im Sketch sinnvoll, dass man seine TMP36 "kalibrieren" kann.
Für die Schallgeschwindigkeit ist das eher undramatisch, aber wenn einem die Temperatur als solche interessiert, wäre es schon schön, wenn man sie etwas genauer bekommt.
     
Was ich auch noch einbauen will, ist eine Plausibilitätsprüfung der empfangenen Daten (auf FHEM-Seite).
Selten kommt es vor, dass trotz korrektem CRC unsinnige Werte emfangen werden (Paket auf dem HF-Weg ruiniert).
Beispiel: Temperatur muss zwischen -40 und +60 °C liegen
 
Wenn ich die nächsten Tage mal mehr Zeit habe, werde ich das angehen und dann auch das 36_Level.pm in FHEM einchecken.
Ich habe jetzt einen Offset für die Temperaturmessung im Sketch eingetragen, obwohl ich die Temperatur ohnehin nicht weiter benötige. Das Regenfass steht nachmittags auf der Terrasse in der Sonne - da kommen schnell Temperaturen jenseits der 40 Grad zusammen.

Die weiteren Ergänzungen (Plausibiltät) und Einchecken - zumindest in contrib - wären prima.

Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on CubieTruck, HM-USB, JeeLink
DB Logging FHEM Server on QNAP NAS
Devices: diverse HM, IT1500, 1wire via AVR NetIO, LaCrosse

Online tpm88

  • Full Member
  • ***
  • Beiträge: 334
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #9 am: 19 Juli 2014, 11:34:59 »
inzwischen habe ich den LevelSender nachgebaut, hat auf Anhieb funktioniert. Danke nochmal für das tolle Projekt.

Leider zu früh gefreut. Solange der Regentank (fast) voll war, hat der LevelSender perfekt gemessen. Jetzt mit halbleeren Tank gibt er immer eine Distanz von knapp 40cm zurück. Bei Tests gegen eine Zimmerwand oder Decke misst er auch größere Entfernungen recht genau.

Offenbar verfälschen die auch innen vorstehenden Rippen meines Regentanks (siehe Abbildung) die Messung, weil laut Spezifikation wohl auch Echos bis 45 Grad ausgehend von der Messachse aufgefangen werden.

Da fürchte ich, kann ich nicht viel machen.... Sehr schade.

Tobias

Edit: PS: Eben mal Versuche mit einem 2m langen DN-100 KG Regenrohr gemacht. Senkrecht auf den Boden gestellt, LevelSender oben drauf und durch das Rohr gemessen mit 5s Messabstand. Die Messungen springen dann recht wild zwischen 100 und 150cm hin und her. Auch keine Lösung...
« Letzte Änderung: 21 Juli 2014, 11:37:51 von tpm88 »
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on CubieTruck, HM-USB, JeeLink
DB Logging FHEM Server on QNAP NAS
Devices: diverse HM, IT1500, 1wire via AVR NetIO, LaCrosse

Offline ext23

  • Hero Member
  • *****
  • Beiträge: 2384
    • Homepage
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #10 am: 19 Juli 2014, 12:28:04 »
Hallo,

wie ist das eigentlich mit der Feuchtigkeit bei dem Ultraschall Sensor? Ich meine wenn man sowas im Dom installiert steht das Teil ja ständig im Kondenswasser. Wird das durch den Ultraschall "Abgeschüttelt" oder wie ist das? Hat da schon einer Erfahrung mit?

Gruß
Daniel
HM, FS20, 1-Wire, PanStamp, AVR-NET-IO, SIS-PM, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2826
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #11 am: 19 Juli 2014, 17:46:14 »
Eben mal Versuche mit einem 2m langen DN-115 Regenrohr gemacht. Senkrecht auf den Boden gestellt, LevelSender oben drauf und durch das Rohr gemessen mit 5s Messabstand. Die Messungen springen dann recht wild zwischen 100 und 150cm hin und her. Auch keine Lösung...
Mit einem DN-50 HT-Rohr, das 140 cm lang ist, funktioniert das bei mir tadellos, damit steht der Sensor in einem meiner Tanks.
Die 400 Liter bis zum 7. Juli sind ca. 90cm Distanz vom HC-SR04 bis zur Wasseroberfläche.

Der Sensor ist so montiert, dass er mit der Platine auf dem Rand liegt, und somit die Schallwandler in das Rohr hineinragen.

Wie zu sehen, misst er (mit der kleinen Ausnahmen am 10. Juli) sehr konstant.

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2826
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #12 am: 19 Juli 2014, 18:00:16 »
wie ist das eigentlich mit der Feuchtigkeit bei dem Ultraschall Sensor? Ich meine wenn man sowas im Dom installiert steht das Teil ja ständig im Kondenswasser. Wird das durch den Ultraschall "Abgeschüttelt" oder wie ist das? Hat da schon einer Erfahrung mit?
Wie auch immer es geht, es geht  :)
Ich habe das nun seit Anfang Mai mit konstanten Messwerten laufen. Da war es inzwischen kühl, heiß, randvoll, fast leer.
Wie viele Jahre der HC-SR04 das mitmacht und was er im Winter bei -20°C macht, bleibt noch abzuwarten.

Für die Ölstandmessung im Keller habe ich seit ca. 6 Jahren einen HC-SR02 mit der DN-50 Rohr Methode im Öltank stehen. Dem hat das bis heute nichts ausgemacht.

Offline HCS

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2826
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #13 am: 19 Juli 2014, 18:13:31 »
Falls jemand Lust hat, kann er mal nach Sensoren mit einer stärkeren Richtcharakteristik suchen. Falls technisch kompatibel schreibe ich gerne die Ansteuerung für verschiedene optionale Sensortypen um.

Online tpm88

  • Full Member
  • ***
  • Beiträge: 334
Antw:LevelSender - Tankfüllstand mit JeeLink empfangen
« Antwort #14 am: 21 Juli 2014, 11:47:46 »
Ganz interessant ist dieser Artikel zum Thema Fokussierung:

http://www.robot-electronics.co.uk/htm/reducing_sidelobes_of_srf10.htm

Damit werde ich mal experimentieren.

Laut http://www.robot-electronics.co.uk/htm/sonar_faq.htm hat der SRF235 die beste Richtcharakteristik, kommt mit > 100 EUR aber nicht in Frage. Der SRF02 hat zwar laut Datenblatt die gleiche Charakteristik wie der SRF04, ist aber in der Praxis wohl etwas "enger".

Der SRF02 kommt mit ca 13 EUR preislich in Frage. Der würde sich bei mir im DN 100 KG Rohr auch einfach zentrieren lassen, weil er nur einen Ultraschallsender hat. Du betreibst doch bereits einen SRF02 - benötigt die Schaltung und oder die Software dann Anpassungen?

Gruss
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on CubieTruck, HM-USB, JeeLink
DB Logging FHEM Server on QNAP NAS
Devices: diverse HM, IT1500, 1wire via AVR NetIO, LaCrosse

 

decade-submarginal