Das IoT-Dashboard für den Füllstandmesser bietet eine benutzerfreundliche Weboberfläche als zentrales Steuerungselement für die Visualisierung von Messdaten. Über diese Webanwendung können präzise Informationen zum Wasserspiegel in einem Brunnen gesammelt werden, indem ein Sensorknoten (Mikrocontroller) mit Ultraschallsensoren wie HC-SR04 oder der wasserdichten Variante JSN-SR04T eingesetzt wird. Die aktuelle Programmumsetzung ermöglicht auch die Verwendung anderer Sensoren wie RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™ mit Trigger-/Echosignalen. Der Sensorknoten führt alle 5 Minuten 10 Messungen mit dem Ultraschallsensor durch und sendet den gemittelten Wert über verschiedene Schnittstellen wie WiFi, Ethernet, IoT-Netzwerk (LoRaWAN, NB-IoT, Sigfox) an den Server. Das Dashboard zeigt dem Nutzer aktuelle Wasserspiegelinformationen inklusive Umrechnung auf das Brunnenvolumen und die Tendenz im Vergleich zur vorherigen Messung. Historische Daten zur Wasserspiegelhöhe sind in tabellarischer oder grafischer Form mit Liniendiagrammen verfügbar. Die responsive Weboberfläche passt sich flexibel an verschiedene Bildschirme wie Smartphones, Computer, Tablets und Smart TVs an. Im Backend werden die empfangenen Daten korrigiert, um den gemessenen Wasserstand an die tatsächliche Brunnen tiefe anzupassen, da der Sensor nur den Differenzwasserstand übermittelt. Basierend auf der tatsächlichen Wasserspiegelhöhe und dem Brunnen-Durchmesser kann die Webschnittstelle auch das Brunnenvolumen in Litern berechnen.
Das Funktionsprinzip von Ultraschallsensoren basiert darauf, ein Triggersignal mit einer Dauer von 10 μs (Mikrosekunden) auszusenden, das von der Wasseroberfläche reflektiert wird und als Echo zum Empfänger zurückkehrt. Durch die Time-of-Flight-Methode wird die Zeit zwischen dem Aussenden und Empfangen des Signals berechnet, um die Entfernung des Wasserstands vom oben auf dem Brunnen platzierten Sensor zu ermitteln. Die Umrechnungsformel berücksichtigt eine Schallgeschwindigkeit von 343 m/s bei einer Temperatur von 20 °C. Ein entscheidender Parameter für Ultraschallsensoren ist die Strahlbreite, welche die Detektionscharakteristik beeinflusst. Der HC-SR04-Sensor weist eine 15°-Erkennungscharakteristik auf und eignet sich daher auch für schmalere Brunnen und Tanks. Allerdings ist dieser Sensor nicht wasserdicht und birgt bei feuchten Bedingungen im Brunnen ein erhöhtes Korrosionsrisiko. Daher wird empfohlen, den HC-SR04-Sensor oberhalb des Brunnens zu platzieren, um die Auswirkungen der Luftfeuchtigkeit zu minimieren. Im Gegensatz dazu hat der wasserdichte Sensor JSN-SR04T eine Erfassungscharakteristik von 60°, was seine Verwendung in engen Brunnen einschränkt. Die Breite des Strahls nimmt mit zunehmender Entfernung zu, wodurch ein Brunnen mit einem Durchmesser von mehreren Metern erforderlich ist (z. B., 6 Meter Durchmesser bei einer Brunnen tiefe von 4,5 Metern für eine reflexionsfreie Messung). Ultraschallsensoren erfordern keine regelmäßige Wartung. Beachten Sie jedoch, dass der JSN-SR04T-Sensor eine Steuerelektronikplatine enthält, die nicht Feuchtigkeit und Wasser ausgesetzt werden sollte. Die maximale messbare Höhe der Wasseroberfläche (Niveau) beträgt etwa 400 bis 450 cm für diese Sensoren.
Firmware-Name | Firmware-Funktion | ESP8266 | ESP32 |
---|---|---|---|
Ultra Low Power |
Firmware für ULP-Anwendungen mit geringer Stromaufnahme (siehe Schaltplan). Die Firmware wird über das mitgelieferte ESPTOOL-Tool automatisch geladen, das mit einem .bat-Skript ausgeführt wird (im Skript ist es notwendig, den COM-Port Ihres ESP-Boards zu ändern). Nach dem Hochladen der Firmware und unter der Annahme, dass ESP nicht die SSID und das Passwort aus dem vorherigen Projekt gespeichert hat, startet WiFiManager, der zur Konfiguration des bestehenden WiFi-Netzwerks verwendet wird. ESP beginnt mit der Übertragung eines offenen WLAN-Netzwerks mit SSID im AP-Modus --> Hladinomer_AP. Nach dem Verbinden des Clients (Windows / Android / iOS) startet das Captive Portal auf 192.168.4.1 (der Client sollte automatisch umgeleitet werden). Mit WiFiManager können Sie ein WiFi-Netzwerk in Reichweite im Webinterface auswählen und ein Passwort festlegen. Nachdem ESP erfolgreich mit dem angegebenen WLAN-Netzwerk verbunden und IPv4 aus dem angegebenen Bereich zugewiesen wurde, wird das Captive Portal deaktiviert, ESP bleibt im STA-Station-Modus. Anschließend beginnt der Sensorknoten mit der Übertragung von Daten an das Webinterface Füllstandsmessgeräte . Beim nächsten Start des Sensorknotens werden Captive Portal und WiFiManager nicht mehr gestartet, da die WLAN-Netzwerkkonfiguration dauerhaft erhalten bleibt. Nach dem Senden der Daten geht der Mikrocontroller in den Tiefschlafmodus. Der Hauptprozessor des Xtens ist im Schlafmodus ausgeschaltet. ESP8266 wird per WAKE Timer geweckt (Jumper zwischen GPIO16 und RST erforderlich), ESP32 per RTC Timer. |
ESP8266 Firmware | ESP32 Firmware |
StandBy |
Firmware für den StandBy-Modus des Mikrocontrollers, der in regelmäßigen Abständen (5 min) Messwerte des Wasserstands an den Webserver sendet und gleichzeitig die Verbindung zum AP im LAN-Netzwerk aufrechterhält. Die Firmware wird über das mitgelieferte ESPTOOL-Tool automatisch geladen, das mit einem .bat-Skript ausgeführt wird (im Skript ist es notwendig, den COM-Port Ihres ESP-Boards zu ändern). Nach dem Hochladen der Firmware und unter der Annahme, dass ESP nicht die SSID und das Passwort aus dem vorherigen Projekt gespeichert hat, startet WiFiManager, der zur Konfiguration des bestehenden WiFi-Netzwerks verwendet wird. ESP beginnt mit der Übertragung eines offenen WLAN-Netzwerks mit SSID im AP-Modus --> Hladinomer_AP. Nach dem Verbinden des Clients (Windows / Android / iOS) startet das Captive Portal auf 192.168.4.1 (der Client sollte automatisch umgeleitet werden). Mit WiFiManager können Sie ein WiFi-Netzwerk in Reichweite im Webinterface auswählen und ein Passwort festlegen. Nachdem ESP erfolgreich mit dem angegebenen WLAN-Netzwerk verbunden und IPv4 aus dem angegebenen Bereich zugewiesen wurde, wird das Captive Portal deaktiviert, ESP bleibt im STA-Station-Modus. Anschließend beginnt der Sensorknoten mit der Übertragung von Daten an das Webinterface Füllstandsmesser . Beim nächsten Start des Sensorknotens werden Captive Portal und WiFiManager nicht mehr gestartet, da die WiFi-Netzwerkkonfiguration dauerhaft erhalten bleibt. |
ESP8266 Firmware | ESP32 Firmware |
Das Webinterface nutzt Trigonometrie, um die maximal messbare Tiefe eines Bohrlochs bei bekanntem Durchmesser abzuschätzen, was einen weiteren Parameter zur Berechnung des Bohrlochvolumens darstellt. Benutzer können mithilfe des Webinterfaces berechnen, bis zu welcher maximalen Tiefe jedes Sensors aufgrund seiner Eigenschaften geeignet ist. Das Projekt ist benutzerfreundlich, auch für Laien, die möglicherweise nicht wissen, welcher Sensor für ihren Brunnen am besten geeignet ist. Der Mikrocontroller spielt eine entscheidende Rolle im System. Das Projekt unterstützt die Verwendung der Arduino-Plattform (Uno/Mega) in der Revision R3 mit identischer Pinbelegung, die über ein Ethernet-Shield kommunizieren kann. Es besteht auch die Möglichkeit, Ethernet-Module direkt mit den Hardware-SPI-Pins des Mikrocontrollers zu verbinden. Unterstützte Ethernet-Module umfassen Wiznet W5100, W5500, USR-ES1 und ENC28J60 von MicroChip. Alle Ethernet-Module bieten HTTP-Konnektivität mit dem Webserver. WiFi-Mikrocontroller von Espressif Systems, wie ESP8266 und ESP32, werden ebenfalls unterstützt. Die Mikrocontroller bieten verschiedene Betriebsmodi, darunter StandBy, StandBy + OTA mit der Möglichkeit des Remote-Firmware-Uploads über das LAN-Netzwerk und den Deep-Sleep-Modus für ULP-Anwendungen. Der Schlafmodus erfordert beim ESP8266 einen physischen Jumper zwischen GPIO16 (WAKE) und RST, wie im Schaltplan dargestellt. ESP-Mikrocontroller ermöglichen auch die Implementierung von HTTPS (verschlüsselt)-Konnektivität mit dem Webserver. Der ESP32 kann mit dem PHY-Ethernet-Modul LAN8720 über die RMII-Schnittstelle verwendet werden und unterstützt HTTP- und HTTPS-Verbindungen. Beide Plattformen verwenden die Root-CA, die ein Zertifikat für die Webserverdomäne ausgestellt hat. Das Zertifikat ist im Flash-Speicher des Mikrocontrollers (PROGMEM) eingebettet, um den RAM-Speicher nicht zu belasten. Das Zertifikat der Zertifizierungsstelle hat eine Gültigkeitsdauer von 10 bis 20 Jahren, erfordert also keine häufige Erneuerung. Informationen zum aktuellen Wasserstand und Wasservolumen im Brunnen stehen im JSON-Format über das Webinterface zur Verfügung. Das Projekt kann das Level-Meter-Projekt über MQTT in die Hausautomation (Hassio, Domoticz, Loxone) integrieren, um den Wasserstand in einem eigenen Dashboard, z.B. Grafana, anzuzeigen.
Name der Bibliothek | Bibliotheksfunktion | Herunterladen |
---|---|---|
NewPing |
Bibliothek für AVR-Mikrocontroller (ATmega) Arduino Uno / Nano / Mega. Es ermöglicht Messungen mit Ultraschall-Distanzsensoren US-02X, IOE-SR0X, HC-SR0X, HY-SRF0X, JSN-SR0XT, DYP-ME007. |
Herunterladen |
NewPingESP8266 |
Bibliothek für ESP8266- und ESP32-Mikrocontroller. Es ermöglicht Messungen mit Ultraschall-Distanzsensoren US-02X, IOE-SR0X, HC-SR0X, HY-SRF0X, JSN-SR0XT, DYP-ME007. |
Herunterladen |
Ethernet2 |
Bibliothek für AVR-Mikrocontroller (ATmega) Arduino Uno / Nano / Mega. Es ermöglicht die Kommunikation mit dem Ethernet-Modul Wiznet W5200 bis W5500 über die SPI-Schnittstelle. |
Herunterladen |
Ethernet3 |
Bibliothek für AVR-Mikrocontroller (ATmega) Arduino Uno / Nano / Mega. Es ermöglicht die Kommunikation mit dem Ethernet-Modul Wiznet W5500 V2 - USR-ES1 über die SPI-Schnittstelle. |
Herunterladen |