Quellcodes für Arduino, ESP8266, ESP32, (Ethernet / WiFi / LoRaWAN): Github-Projekt-Repository
Das IoT-Dashboard mit Ihrer Hardware können Sie hier ausprobieren:: HTTP IoT Dashboard HTTPS IoT Dashboard
Bei Interesse an den Quellcodes der Webanwendung kontaktieren Sie den Autor des Projekts in englischer Sprache unter: martinius96@gmail.com

Projekt zur Wasserstandsüberwachung

QR-Scanner-Unterstützung zur Visualisierung von Sensordaten
Augmented Reality – Webapp für Android, iOS, IoT-Dashboard-Daten


Steuerungshardware - kompatible Mikrocontroller AVR / ESP



Übertragungstechnik Module - Ethernet / Sigfox IoT LPWAN



Kompatible Ultraschall-Distanzsensoren



Pegelmesser - Wasserstandswächter im Brunnen


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.

Andere Arten von Wasserstandsaufzeichnungssensoren, die integriert werden können (erforderlich, um eine eigene Firmware zu erstellen):
  • Laser (LiDAR) – (DFRobot DTOF LD19 LIDAR, DFRobot ToF Laser ...)
  • Hydrostatisch (tauchbar) – (LMK307, DPT200, PT20eco, HDL300 ...)
  • Elektrostatisch (kapazitiv / induktiv) – XKC-Y25-NPN
  • Druck (Differenz / mit Atmosphärendruckkompensationssensor)
  • Optisch – (GP2Y0A02YK0F, YD-02F, FS-IR02 ...)
  • Mechanisch (Schwimmer)
  • Magnetisch (Hall) – (VCL9, Sen-Hz41wa ...)
  • Mikrowelle (Radar) – (CS476, CS475A-L, SP69, WLR 8/15/30 ...)
  • Ultraschall - (A01NYUB, URM37) oder andere, die Option eines Industriebusses für die Ausgabe (RS-485, Stromschleife 4-20 mA, Modbus RTU, M-Bus, PROFINET)
  • Hinweis: Wenn die Neuberechnung der Höhe des Wasserspiegels vom Boden auf der Seite des Mikrocontrollers durchgeführt wird, ist es notwendig, die Tiefe des Brunnens auf der Weboberfläche auf 0 cm einzustellen.

  • Videodemonstration des Webinterface - Levelmeter:



    Ultraschallsensoren sind geeignet für:


  • Ausgehobene Brunnen
  • Klärgruben und Senkgruben
  • Bäche und Seen
  • Regenwassertanks aus Kunststoff
  • Stärke (Messung der Massenfüllung)
  • Behälter (Abfallüberwachung, Sammelbehälterbefüllung)
  • Kessel (Überwachung von Holz, Pellets, Kohle, Hackschnitzel)
  • Schächte und Keller (Grundwasserüberwachung)
  • Produktion (Erkennung von Produkten, deren Höhe und Menge, Höhe des gewickelten Materials)
  • Parkplätze (Erkennung von freien und belegten Parkplätzen)

  • Ultraschallsensoren sind nicht geeignet für:


  • Gebohrte Brunnen (aufgrund von Erkennungsmerkmalen - breitstrahlend)
  • Rohre und Röhren (aufgrund von Erkennungsmerkmalen - breitstrahlend)
  • Zu Brunnen mit Nebenfluss (turbulente Oberfläche dämpft Ultraschall, Messung ist unmöglich / schrittweise)
  • An Orten mit einer plötzlichen Temperaturänderung (die Temperatur beeinflusst die Zeit der Schallausbreitung, sodass sogar der stationäre Pegel zu schwanken scheint)
  • Vakuumtanks (Messung nicht möglich)

  • Plug n play firmware - Ultra Low Power / StandBy


    Kompilierte Firmware zum sofortigen Hochladen auf den Mikrocontroller verfügbar (erfordert keine Installation der Bibliothek).
    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

    Funktionsprinzip des Füllstandsmessers - Blockschaltbild


    Hladinomer do žumpy, septiku, studne, princíp merania - ultrazvukový senzor vzdialenosti

    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.

    Softwareimplementierungen für Arduino, ESP8266, ESP32 (erfordert Bibliotheksinstallation): Hier verfügbar

    Verfügbare Bibliotheken für Mikrocontroller (Arduino / ESP)


    Bibliotheksarchiv (.zip) erweitern auf C:/Users/[User]/Documents/Arduino/libraries
    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


    Abdeckung Deutschlands durch das LPWAN IoT Sigfox Netzwerk:


    Abdeckung von Deutschland IoT LPWAN durch Sigfox-Netzwerk - Füllstandsmesser zum Brunnen Abdeckung von Austria, Switzerland IoT LPWAN durch Sigfox-Netzwerk - Füllstandsmesser zum Brunnen

    Sigfox-Backend-Callback-Setup für Webanwendungstests

    Pegelmesser:
  • Callbacks --> Custom --> New
  • In "Benutzerdefinierte Payload-Konfiguration" schreiben wir: cislo1::uint:16
  • Wir werden das "URL-Muster" hinzufügen: http://arduino.clanweb.eu/studna_s_prekladom/data.php (oder eine andere URL Ihres Webservers, auf dem das Projekt ausgeführt wird), die Möglichkeit, HTTPS zu verwenden
  • Bei der HTTP-Methode wählen wir: POST
  • Wir werden zum Body (Nachrichtentext) hinzufügen:
  • hodnota={customData#cislo1}&token=123456789
  • Bei "Content-Type" wählen wir die Option: application/x-www-form-urlencoded

  • Screenshots der Webapp zur Wasserstandsüberwachung


    Meter für Webanwendungsprojektebene. Es visualisiert den Wasserstand und das Wasservolumen im Brunnen mit automatischer Wiederherstellung der Messdaten. Meter für Webanwendungsprojektebene. Historische Daten in tabellarischer Darstellung mit der Möglichkeit, den Datensatz zu löschen. Meter für Webanwendungsprojektebene. Alarmvisualisierung des maximalen und minimalen Füllstands im Brunnen für den aktuellen Tag, Woche, Monat. Meter für Webanwendungsprojektebene. Darstellung des Wasserstands über der Zeit durch Liniendiagramme. Geschichte bis zu einem Jahr zurück. ESP32 - FreeRTOS - ESP-IDF - Ultraschallsensormessung und Datenübertragung zum Webserver über HTTP, POST-Übertragungsverfahren ESP32 - FreeRTOS - ESP-IDF - Ultraschallsensormessung und Datenübertragung zum Webserver über HTTPS, POST-Übertragungsverfahren Unterstützte Hardware für das Pegelmesserprojekt - Arduino - Ethernet - WiFi - ESP8266 - ESP32 Sensorknoten ESP32 mit PHY Ethernet Modul LAN7820 und Ultraschallsensor JSN-SR04T