Meine Zisterne sollte Füllstandsanzeige erhalten, die mittels ESP8266 über mein Wlan abrufbar ist. Analog meines Beitrags Öltanküberwachung Mqtt ESP8266 Ultraschall, habe ich mit selbem Prinzip eine Füllstandanzeige für die Zisterne konstruiert. Der Aufbau ist prinzipiell identisch. Allerdings gab es bei diesem Anwendungsfall einige Besonderheiten.
Das WLAN Signal des ESP8266 ist aus einer 3 m tief im Erdreich vergrabenen Betonzisterne nicht mehr zu messen. Eine Montage neben der Zisterne im Freien wäre möglich gewesen, wollte ich für mich aber vermeiden.
Ich setzte das Ultraschall-Modul AJ-SR04M ein. In der Anleitung steht, dass der Sensor eine Temperaturabhängigkeit besitzt und die analoge Messleitung ist definitiv zu kurz für die Strecke ins Haus. So muss die Messung in der Nähe des Sensors erfolgen.
Daraus ergaben sich folgende Probleme für mich
Wie bekomme die Stromversorgung in die Zisterne
Wie bekomme ich die Messdaten aus der Zisterne.
Lösungsansatz
Mein Lösungsansatz ist es, den ESP8266 im Haus zu installieren und den Sensor mit Ultraschall-Modul AJ-SR04M im Einstiegsschacht der Zisterne anzubringen. Zusätzlich habe ich hier noch eine Steckdose für eine spätere Tauchpumpe angebracht.
Signal und Spannungsversorgung AJ-SR04M zu ESP8266
In meinem Fall sind es vom Haus bis zur Zisterne 5 m Kabelweg. Ich verwende ein geschirmtes 4 x 0,22 mm² Kabel, dass ich im Erdreich, geschützt mit Wellrohr, zusammen mit der Spannungsversorgung für die Steckdose, eingebracht habe. Bei dieser Länge von Leitung ist der Spannungsabfall sehr gering. Sodass ich keine Bedenken hatte, dass der Sensor unter einer zu geringen Spannungsversorgung zu leiden hat. Der AJ-SR04M kann in einem Spannungsbereich von 3,0V bis 5,5V betrieben werden.
Das gilt aber nur für die Spannungsversorgung. Das Signal der Messleitung von AJ-SR04M zu ESP8266 kann hier recht schnell an seine Grenzen kommen. In meinem Fall erhielt ich für meine Entfernung nach einem Testlauf verlässliche Daten.
Das muss aber nicht immer klappen und vielleicht ist zu überlegen, ob die Entfernung eine andere Art der Kommunikation benötigt. RS-232 oder MAX323 zum Beispiel. Dabei könnte dann auch eine höhere Versorgungsspannung genutzt werden, die dann auf die benötigten 3,0V bis 5,5V verringert werden.
Je nach Projekt lässt sich die Leitung und die einzelnen Komponenten außerhalb des Erdreichs testen. Das wäre zu empfehlen.
Ich habe einen Graben zwischen Haus und Zisterne ausgehoben und das Wellrohr mit beiden Leitungen in 60 cm Tiefe vergraben. Für die Einführung in die Zisterne konnte ich einen Ziegel entfernen. Mit einer Bohrung durch die Hauswand waren die Kabel schnell ins Innere gebracht. Der Durchbruch wieder ordnungsgemäß verschlossen werden.
Anbringung Ultraschall-Sensor
Den Ultraschallsensor des AJ-SR04M habe ich in einem ca. 1,20 m langen Aluminiumrohr eingesteckt und das Kabel am anderen Ende herausgeführt. Damit konnte ich die Distanz zwischen Schachtwand und Wasseroberfläche so verkürzen, dass mein Sensor ca. 20 cm über der Wasseroberfläche hängt. Der AJ-SR04M benötigt einen Mindestabstand von ca. 20 cm. Das ist dem Datenblatt zu entnehmen. Auch die Abstrahlung der Signale gilt es zu berücksichtigen. Ist der Sensor zu weit an der Schachtwand, wird das Signal von der Schachtwand reflektiert. Bei der Auswahl des Aluminiumrohrs habe ich den Durchmesser des Sensors berücksichtigt. Zwei Schellen halten das Rohr an Ort und Stelle.
Zisterne-Ultraschall-Fuellstand-Sensor-Rohr
Anbringung AJ-SR04M Messplatine
Die Messplatine habe ich im wasserdichten Steckdosengehäuse untergebracht. So könnte ich den Sensor austauschen, falls dieser irgendwann erneuert werden müsste. Die zusätzliche Steckdose habe ich für eine spätere Tauchpumpe vorgesehen. Da die AJ-SR04M Messplatine von beiden Seiten angeschlossen wird, konnte ich die feste Verkabelung zum Haus im Inneren des Gehäuses unterbringen und den steckbaren Sensor von der Vorderseite anbringen.
Die Spannungsversorgung habe ich direkt an den ESP8266 angeschlossen. Die Datenleitungen sind an PIN D6 und D7 angeschlossen. Bei meinem ESP möchte ich den externen Antennenanschluss verwenden. Mein Kellerraum schirmt sehr gut Wlan Signale ab. Die zusätzliche Antenne verbessert den Empfang und die Sendeleistung. Diese Komponenten habe ich in einer Aufputzdose neben dem Durchbruch angebracht. Die Stromversorgung habe ich über ein handelsübliches Microusb Ladekabel hergestellt.
Ich sammle die Sensordaten meiner verschiedenen Projekte auf einem zentralen Server. Dafür übertrage ich die Messergebnisse per WLAN und MQTT. Den Source dazu habe ich auch im Projekt Öltanküberwachung Mqtt ESP8266 Ultraschall angefügt.
Aussicht
Ich verwende die Messdaten aus meiner Zisterne aktuell nur zur Anzeige und speichere die Daten für mögliche „historische“ Rückschlüsse.
Möglich wäre natürlich auch, die Daten direkt als Webseite vom ESP8266 abzurufen.
Als Trockenlaufschutz für eine Tauchpumpe
Als Leckageschutz, um Undichtigkeiten der Zisterne zu erkennen
Kann ich mit LDR Widerständen einen Solartracker Sensor erstellen, der mir hilft meine Solarmodule kontinuierlich dem Stand der Sonne nachzuführen?
Prinzip
LDR (Light Dependent Resistor) Sensoren sind elektronische Bauteile, die den Widerstand in Abhängigkeit von der Lichtintensität ändern. Das Prinzip, wie LDR Sensoren die Sonne verfolgen können, beruht daher auf dem Schattenwurf von Stangen oder anderen Gegenständen, die so positioniert sind, dass sie den Lichteinfall auf die Sensoren beeinflussen. Wenn die Sonne über den Himmel wandert, bewegt sich auch der Schatten dieser Stangen und Gegenstände, was dazu führt, dass die LDR Sensoren unterschiedliche Lichtintensitäten messen.
In meinem Fall möchte ich, dass der fertige Solartracker Sensor das Wandern der Sonne erkennt und die unterschiedlichen Widerstandswerte dazu verwendet zwei Motoren anzusteuern, die den LDR Sensor samt Solarmodulen neu ausrichtet.
Um unterschiede in der Lichtintensität festzustellen, verwende ich 4 LDR Sensoren. 2 LDR Widerstände für hoch und runter und 2 LDR Widerstände für links und recht. Bei mir sind die Sensoren später wie ein Kreuz auf dem PCB angebracht.
Schaltplan
Schaltplan LDR Solartracker Sensor
Es gibt auch Ansätze die mit weniger LDR Widerstände auskommen oder eine andere Anordnung der Widerstände verwenden. Mein Senor arbeite sehr gut mit den 4 Sensoren.
Platine
Layout Platine LDR Solartracker Sensor
Ich mag es sehr gerne meine elektrischen Komponenten auf einer Platine zu verbauen. Es hätte aber auch mit einer Lochplatte, einer Kunststoffplatte, Lot und Kabeln funktioniert. Die fixe Position macht den Sensor für mich fehlerunanfälliger.
Platine LDR Solartracker
Auf der Platine sind absichtlich wenig Komponenten verbaut. Der Solartracker Sensor wird am Ende dauerhaft der Sonne ausgesetzt sein bei Wind und Wetter. Da könnten weiter Komponenten zum Ausfall des Sensors führen, wenn sie diesen Widrichkeiten nicht standhalten.
Gehäuse
In der Regel benötige ich Gehäuse um eine Technik sicher aufzubewahren. Die einzelnen Bestandteile sind in einem Gehäuse gut aufgehoben, befestigt und zum Schutz aller verschlossen.
In diesem Fall muss das Gehäuse mehr leisten. Es ist sogar Teil der Funktion. Über ein Sichtfenster soll das Sonnenlicht einfallen. Die Platine sollte etwas tiefer unten im Gehäuse Platz finden. Durch die tiefere Platzierung entsteht durch das Gehäuse ein Schacht durch den das Sonnenlicht auf die Platine Fällt.
Es wäre auch ein Einmachglas oder etwas ähnliches gegangen. Auf dieses Gehäuse bin ich eher zufällig gestoßen. Funktioniert tadellos.
Funktionsweise
Fällt das Licht nicht senkrecht von oben auf die Scheibe des Sensors entsteht durch den Gehäuseschacht ein Schatten auf einem Teil der Platine. Wird ein LDR beschattet, verändert sich der Widerstandswert, wonach die spätere Steuerelektronik darauf reagieren soll. Die Motoren sollen sich lange bewegen, bis die Sensoren wieder vollem Licht ausgesetzt sind. Dadurch steht der Sensor zusammen mit dem Solarmodul wieder vollständig im Licht.
Drehen nach links
LDR links (R2) hat höheren Wert als LDR recht (R4). Rechts ist im schatten, daher der kleinere Widerstandswert.
Sonne links Solartracker LDR Sensor
Drehen nach rechts
LDR links (R2) hat einen kleineren Wert als LDR rechts (R4). Der linke LDR ist beschattet und hat somit den kleineren Widerstand.
Sonne rechts Solartracker LDR Sensor
Drehen nach oben
LDR oben (R1) hat einen kleineren Widerstandswerte als der LDR unten (R3).
Sonne oben Solartracker LDR Sensor
Drehen nach unten
Solartracker LDR unten (R4) hat einen kleineren Widerstandswert als LDR oben (R1).
Sonne unten Solartracker LDR Sensor
Ausschnitt aus der Steuerprogramm
Ich habe noch eine Schwelle oder Grenze eingebaut, damit der Motor bei schwankenden Werten nicht gleich hin und her taktet.
Als einzelnes Teilprojekt ist der Sensor nicht sonderlich imposant. In der Kombination der Folgeprojekte ergibt sich aber ein großes Ganzes. In der Fertigen Anwendung ist der LDR Solartracker Sensor für meine Bedürfnisse super. Ein Langzeittest muss noch folgen. Ich erwarte aber auch hier keine großen Überraschungen, da der Sensor zusammen mit Gehäuse sehr robust ist.
In diesem Beitrag zeige ich wie ich meine Öltanküberwachung mit Hilfe von Ultraschall und dem Mikrocontroller ESP8266 umgesetzt habe. Ultraschall wird genutzt, um den Füllstand des Öltanks zu messen, während der ESP8266 die Daten erfasst und via MQTT (Message Queuing Telemetry Transport) an einen Empfänger überträgt.
Durch die Verwendung von MQTT können die Daten problemlos an einen Empfänger, Server oder IoT Device übertragen werden, wo die Daten in Echtzeit überwacht und / oder gespeichert werden können.
Achtung: Der Umgang mit brennbaren Flüssigkeiten ist gefährlich. Ich weise auf den Haftungsausschluss am Ende meines Berichts hin. Die ist ein rein informativer Beitrag. Keine Nachbauanleitung.
Prinzip
Ultraschallsensor
Das Prinzip der Messung mit Ultraschall im Öltank beruht auf der Laufzeitmessung von Schallwellen. Der Ultraschallsensor AJ-SR04M sendet dabei Schallwellen aus, die an der Oberfläche des Öls reflektiert werden. Die reflektierten Schallwellen werden vom Sensor erfasst und die Laufzeit der Schallwellen wird gemessen. Aus dieser Laufzeit kann dann der Abstand zwischen Sensor und Öl-Oberfläche berechnet werden. Da sich der Füllstand im Tank ändert, ändert sich auch der Abstand zwischen Sensor und Öl-Oberfläche, was zur Folge hat, dass sich die Laufzeit der Schallwellen verändert. Daraus ergibt sich eine Änderung des Abstandes und somit des Füllstandes im Tank.
Ultraschall Sensor AJ-SR04M
Mikrocontroller ESP8266 und MQTT
Der ESP8266 ist ein Mikrocontroller, der die Daten des Ultraschallsensors empfangen und verarbeiten kann. Dazu wird der Mikrocontroller mit dem Ultraschallsensor verbunden und es wird ein Programm erstellt, das die Daten des Sensors auswertet und in eine für den Empfänger lesbare Form bringt. Hierbei können zum Beispiel Messwerte oder ein Status-Update übertragen werden.
Die Auswertung der Daten im ESP8266 erfolgt dann in der Regel über ein Programm, das auf dem Mikrocontroller ausgeführt wird. In diesem Programm werden die Daten des Sensors ausgelesen, verarbeitet und ggf. auch gespeichert. Hierbei können verschiedene Methoden zur Datenverarbeitung genutzt werden, wie zum Beispiel die Berechnung von Durchschnittswerten oder die Überwachung von Schwellwerten. Anschließend können die Daten über das Wi-Fi-Modul des ESP8266 an einen Empfänger via MQTT übertragen werden, um sie zu visualisieren oder weitere Aktionen auszulösen.
Der Schaltplan zeigt die verwendeten Komponenten. Hauptsächlich ist der ESP8266 und der Ultraschallsensor AJ-SR04M wichtig. Der ESP ist durch die Pin Header J1 und J2 dargestellt. Die Pin Header J3 stellen den AJ-SR04M dar.
Ich erstelle meine Platinen und Schaltpläne gerne mit Pin Headern, da ich auf den fertigen Platinen, dann die Komponenten auswechseln oder wiederverwenden kann.
Zusätzlich verwende ich hier einen 5V Spannungsregler U1, da die Energieversorgung und deren Spannung zum Zeitpunkt der konzeption noch nicht fest lag. Die Spannungsversorgung (Batteriefach, Netzteil) wird hier an die Pin Header J5 angeschlossen.
Der Widerstand R1 470 Ohm dient der Spannungsüberwachung der Energieversorgung an J5. Je nach Energiequelle muss dieser gegebenenfalls angepasst werden. Die Spannungsüberwachung kann auch vernachlässigt werden, wenn das Projekt an einer festen Spannungsquelle wie einem Netzteil versorgt wird oder beim Ausbleiben der Messwerte die Öltanküberwachung überprüft wird. In meinem Fall verwende ich später möglicherweise eine Batteriebox. Da ist es für mich interessant die sinkende Spannung der Batterien zu überwachen um abzuschätzen, wann die Öltanküberwachung ausfallen wird.
Über den Pin Header J4 steuere ich, dass der ESP8266 aus dem Deep Sleep wieder erwachen kann. Soll die Software angepasst werden, muss hier nur ein USB Stecker für das Update eingesteckt werden und der Jumper vom Pin Header J4 entfernt werden.
Platine Ultraschall Sensor mit ESP8266
Platine ESP8266 AJ-SR04M Ultraschall Sensor
Aus dem Schaltplan, den ich mithilfe von Fritzing erstellt habe, layoutete ich meine Platine. Dabei versuche ich auf eine platzsparendes Layout zu setzten. Dies ist nicht immer leicht, da die Bedienbarkeit oder Erreichbarkeit der Schnittstellen, Jumper oder Buttons für mich auch eine wichtige Rolle spielt. Kreuzungen der Leiterbahnen sind nur durch weitere Schichten auf der Leiterplatte PCB möglich. Im heutigen Produktionsprozess nicht mehr unbedingt ein Kostenfaktor, dennoch möchte ich gerne darauf verzichten. Zu komplex ist das Projekt nun aus meiner Sicht auch nicht.
So wurde hier der Ultraschallsensor AJ-SR04M, der mit einem abgewinkelten Pin Header angeliefert wurde, senkrecht auf die Platine gestellt. Die Besonderheit bei der Platine des Ultraschallsensors ist, dass die Komponenten der Platine beidseitig angebracht sind. Der Anschluss des Ultraschallmesskopfs ist auf der Unterseite.
Beim ESP8366 war es mir wichtig den USB Anschluss und den Reset-Button gut zugänglich zu haben.
Hergestellt wurde meine Platine von Aisler, die praktischerweise direkt in der Fritzing Software angeknüpft sind.
Zuerst erstellte ich mit Hilfe von Foren und anderen Bloggern eine Funktion um die Messung der Entfernung über den Ultraschallsensor AJ-SR04M zu bewerkstelligung. Ich baue eine Serielle Kommunikation zwischen ESP8266 und dem Ultraschallmodul auf.
Das oben beschriebene Messprinzip wird mit folgenden Funktionen durchgeführt. Ich wiederhole meine Messungen und berechne den Mittelwert der plausiblen Messwerte, um Schwankungen oder Messfehlern vorzubeugen. Es ist darauf zu achten, dass die Laufzeiten der Schallwellen jeder Messung sich nicht überschneiden.
Wenn die Entfernung zwischen Ultraschallsensor und Öloberfläche bestimmt wurde, sende ich die Daten mittels ESP8266 -> MQTT -> WIFI an meinen Server. Dieser nimmt die Daten entgegen, speichert diese ab und errechnet Füllmengen.
Die Ermittlung der Daten und das übertragen der Daten ist für mich ausreichend als Aufgabe für den ESP8266. Diese Aufgabe überlasse ich absichtlich dem Server. Der ESP8266 kann natürlich deutlich mehr. Es wäre auch möglich die Füllmengen direkt ausrechnen zu lassen oder die Daten über einen installierten Webserver direkt im Lan oder WAN anzuzeigen.
In meinem Fall wollte ich wenig energieraubende Aufgaben an den ESP8266 abgeben. Dieser ist schon mit WLAN und Ultraschallsensor beschäftigt. Nach erfolgreicher Messung und übertragung der Daten mittels MQTT geht der ESP8266 für 30 Minuten in den Deep Sleep um Energie zu sparen. Die Loop-Funktion bleibt in diesem Fall leer.
Zusammengebaut
Zusammengebaut und mit einem Batteriefach als Spannungsversorgung habe ich das Projekt bei mir im Heizraum aufgebaut. Bei der Anbringung des Sensors sollte die Beschreibung des Herstellers berücksichtigt werden. Es kann Sein, dass Reflektionen der Tankwände die Messwerte verfälschen oder unbrauchbar machen. In meinem Fall ist der Sensor z.B. für kurze Distanzen ungeeignet und misst erst ab einer Entfernung von 20 cm mit einer Genauigkeit von 1-2 cm. In meinem Fall aber ausreichend.
ChrisBue Öltanküberwachung Ultraschall im EinsatzChrisBue Öltanküberwachung Ultraschall HeizraumChrisBue Öltanküberwachung Ultraschall mit BatterieboxUltraschall Sensor Öltank
Resümee
Ich muss hier anmerken, dass der Öltank schon älter ist und auch diese Öffnung sowie die „Sensorbefestigung“ nicht optimal sind. Dennoch sind die Messergebnisse doch sehr beeindruckend.
Die Energieversorgung möchte ich noch einmal überarbeiten und auch ein dauerhaft geschlossenes Gehäuse wäre sinnvoll.
Ein weiteres Projekt, bei dem der Ultraschallsensor AJ-SR04M und ein ESP8266 zum Einsatz kommen habe ich hier verlinkt. Beide Projekte sind vergleichbar. Jedes hatte aber kleine, unterschiedliche Herausforderungen.
Achtung: Ich weise hier ausdrücklich darauf hin, dass der Nachbau und/oder Einbau auf eigene Gefahr geschieht. Ich weise ebenfalls ausdrücklich darauf hin, dass ich für durch den Nach- und/oder Einbau der beschriebenen Projekte entstandene Personen oder Sachschäden keine Haftung übernehme.