NEWS
Beispiel: Füllstandsmessung mit Pegelsonde
-
Hallo,
viele Wege führen nach Rom, da aber Wege mühselig sein können, möchte ich Interessierten an meiner Umsetzung teilhaben lassen und so auch den Helfern durch aktive Unterstützung oder Ihren Tips in Ihren Berichten danken.Also nach einer Ultraschallfüllstandsmessung für einen "Heizöltank" der nur mit Wasser für die Gartenbewässerung genutzt wird, brauchte ich eine Lösung für 2 IBC Container, die im Garten verbuddelt sind. Die Umsetzung mittels Ultraschall hat mich hierfür nicht überzeugt, da zwar extrem günstig (<10€) aber auch Probleme durch Einbauten (Schallreflexionen) oder auch bei Montage an Orten wo der Sensor länger unter Wasser steht, zu erwarten sind. Also habe ich mich entschlossen hier Mittels Pegelsonde die Füllstandsmessung durchzuführen. Da es um Regenwasser/Gartenbewässerung geht war es mir wichtig auch eine möglichst Kosten/Nutzen optimierte Lösung zu wählen und habe entsprechende Bezugsquellen aus Asien gewählt, auch wenn hier lange Lieferzeiten und teils abenteuerliche technische Angaben zu Tage treten. Also generell alles hier nur im Sinn "Jugend forscht" und insbesondere Arbeiten am 230V-Netz nur von entsprechend authorisierten Personen und entsprechendes Equipment.
Als Übersicht sieht mein Aufbau wie folgt aus:
Sonde:
https://de.aliexpress.com/item/4001031191182.htmlHierbei war mir wichtig eine 4-20mA Sonde zu verwenden, da dadurch der Kabelweg/Kabellänge die Messung nicht beeinflußt anders als bei einer Sonde in der Spannungsausführung.
Ergänzend gibt es die Sonde in verschieden Ausführungen (0-1m,0-2m,0-3m,....). Nach meinem Verständnis beschreibt dies die Umsetzung des Sensors auf 4-20mA für den entsprechend zu erwartenden Druck bzw. Differenzdruck. Leider gibt es zu diesen Sonden kein Datenblatt, ich gehe aber davon aus, das sie den normalen Umgebungsluftdruck ermitteln und den Druck der unten an der Sonde anliegt. Diese Differenz spiegelt den Wasserstand wieder. Passt der Hersteller den zu erwartenden Füllstand optimal auf die Umrechnung der 4-20mA an, ist der Fehler hier möglichst gering. Geliefert wird immer 5m Kabel aber wie ist der Sensor justiert 0-1m, 0-2m,0-3m etc etc das macht einen Unterschied und sollte möglichst nah oberhalb dem zu erwartenden Maximum gewählt werden. Wie gerade erwähnt misst die Sonde auch dem normalen Umgebungsdruck. Hierzu sieht man ein kleines rotes Röhrchen am Ende des Kabels. Dieses Röhrchen sollte entsprechend nicht verschlossen werden und in der Lage sein normale Umgebungsbedigungen zu erfassen.Konverter 4-20mA zu 0-3,3V:
https://de.aliexpress.com/item/32823522400.htmlDiese Konvertierung lässt sich natürlich auch über Widerstände realisieren. Ich finde jedoch über diese Potis hat man eine schöne Möglichkeit Feinjustierungen komfortabel vorzunehmen. Insbesondere auch die vollen 3,3V zu verwenden, wenn das Sondenmodell nicht 100% zum Pegelbereich zB 0-2,7m passt. Der Konverter sollte natürlich möglichst nah am ESP-Spannungseingang sitzen.
Die Sonde braucht 24V dazu ein 5V zu 24V Booster (24VDC über das Poti sind genau einzustellen):
https://de.aliexpress.com/item/32833505298.htmlDas ganze am D1 Mini mit 0-3,3V Analog Eingang:
https://de.aliexpress.com/item/32651747570.htmlEin 5V Netzteil (5V USB Steckernetzteil >1A sollte auch funktionieren)(Das Netzteil hat ein kleines Poti um die 5VDC genau einzustellen):
https://de.aliexpress.com/item/4000016289453.htmlMit kleinem Gehäuse landet man also ca. bei 40€ für den gesamten Aufbau. Um hier alles in Betrieb zu nehmen ist ein Multimeter (Spannungsmesser) dringend zu empfehlen. Wüßte nicht wie man sonst genau Feinjustieren sollte.
Für die Justierung des Nullpunktus lässt sich die Sonde zB einfach neben den Tank/Zisterne legen und die 4mA bzw. 0V am Konvertausgang einstellen.
Der 100% Füllstand kann bei vollem Tank oder evtl auch per Dreisatz ermittelt werden. Vor der Justierung der 100%/Maximalgrenze würde ich den D1 Mini nicht anschließen um so sicher zu stellen, dass wirklich 3,3V das Maximum sind und der D1 Mini keinen Schaden nimmt.Als Software habe ich ESPEasy genutzt und hier den Analogeingang per 2-Punkt Kalibrierung auf die 0-3,3V eingestellt. Sicher man kann auch mit der 0-1024 Auflösung des Speicherbereichs arbeiten. So bin ich aber extrem schnell in der Lage die Spannung am D1 Mini abzulesen und mit dem Multimeter zu prüfen. Da mich im IObroker erstmal nur 0-100% interessieren habe ich dann per Formel in ESPEasy die 0-3,3V in 0-100% umgewandelt und lasse mir dies per MQTT zum IObroker schicken:
Wie auch schon bei der Ultraschallmessung hat sich gezeigt, dass Messfehler durch Komponenten oder auch Spannungsschwankungen das Resultat sehr wechselhaft halten und mich stört es, wenn nichts am Füllstand passiert aber die Messung teilweise im 1/2% Bereich des Füllstandes schwankt je Messung( sind immerhin 40 Liter die hier rauf und runter gehen). Da merkt man wie wenig Sinn es macht hier mit Nachkommastelle zu arbeiten/messen.Entsprechend habe ich einen Softwarefilter in ESPEasy hinterlegt der die Differenz 2er Messungen ermittelt und einen Quotienten aus der Differenz als neuen Messwert mit dem alten Messwert berechnet und so einen neuen Messwert bildet. Diesen Messwert schicke ich ebenfalls per MQTT zum IObroker. Der Divisor 16 hat sich bei mir als ausgewogene Größe zur Beruhigung der Messung aber hinreichend sensibel für Füll und Leerungen ergeben. Das sollte je Bedarf angepasst werden. So sieht meine Regel dazu aus:
On LevelTank2#Analog do if [var#1]=0 Let 1,[LevelTank2#Analog] endif Let 2,[LevelTank2#Analog]-[var#1] // store difference Let 3,%v2%/16 // determines filter speed Let 1,%v1%+%v3% // add fraction of difference 7dn,[var#1] // nur für eine 7 Segmentanzeige sonst löschen Publish %sysname%/LevelTank2/Level,[var#1] // sent/publish var1 by MQTT EndOn
Ergänzend noch das Blockly um den MQTT String im IObroker in Prozent zu nutzen und eine Umrechnung des Füllstandes für ein Tankvolumen von 2000Litern:
Viel Freude und gute Füllstände
P.S.: Mit ein Grund für die ESPEasy Auswahl war die einfache Nutzung einer 7 Segment Anzeige um mir lokal am D1 Mini den Füllstand anzeigen zu lassen. Optional und nice to have zB: ein TM1637. Achtung hier gibt es 2 Versionen. Eins für die Anzeige von Uhrzeiten (Doppelpunkt in der Mitte) und eine Version die Kommas darstellen kann. Wobei bei der geschilderten Genauigkeit die Darstellung hinterm Komma sehr fraglich ist....