Ukážkové zdrojové kódy pre Arduino, ESP8266, ESP32 (Ethernet / WiFi / LoRaWAN): Repozitár projektu
IoT dashboard s vašim hardvérom je možné vyskúšať tu: HTTP IoT Dashboard HTTPS IoT Dashboard
Pri záujme o zdrojové kódy webaplikácie (.php scripty) kontaktujte autora projektu na: martinius96@gmail.com

Meranie výšky hladiny vody v studni ultrazvukovou metódou

Podpora QR skenera pre vizualizáciu senzorových dát
Rozšírená realita - výpis aktuálnych dát z IoT portálu

Riadiaci hardvér - kompatibilné mikrokontroléry AVR / ESP


Riadiaci mikrokontróler Arduino UNO
Arduino UNO
Riadiaci mikrokontróler Arduino Nano
Arduino Nano
Riadiaci mikrokontróler Arduino Mega 1280/25
Arduino Mega 1280/2560
Riadiaci mikrokontróler NodeMCU v2 / v3 Lolin - ESP8266-12E / ESP8266-12F
NodeMCU 0.9 / 1.0
Riadiaci mikrokontróler Wemos D1 Mini - ESP8266-12E / ESP8266-12F
Wemos D1 Mini
Riadiaci mikrokontróler ESP32 Devkit V1 - ESP-WROOM-32 / ESP32-S
ESP32 DevKit

Moduly prenosových technológii - Ethernet


Ethernet shield Wiznet W5100
Ethernet shield Wiznet W5100
Ethernet modul Wiznet W5500
Ethernet modul Wiznet W5500
Ethernet modul LAN 8720 PHY Ethernet
Ethernet modul PHY LAN8720
Ethernet modul MicroChip ENC28J60
Ethernet modul ENC28J60

Kompatibilné ultrazvukové senzory vzdialenosti


Ultrazvukový senzor vzdialenosti HC-SR04
HC-SR04
Ultrazvukový senzor vzdialenosti HY-SRF05
HY-SRF05
Ultrazvukový vodotesný senzor vzdialenosti JSN-SR04T
JSN-SR04T
Ultrazvukový senzor vzdialenosti Parallax PING)))™
Parallax PING)))™
Ultrazvukový senzor vzdialenosti DYP-ME007
DYP-ME007

Hladinomer - monitor výšky hladiny vody v studni


IoT Dashboard Watmonitor je moderné riešenie na monitorovanie hladiny vody v kopaných studniach. Táto webová aplikácia ponúka prehľadné rozhranie na vizualizáciu údajov o výške hladiny vody. Využíva presné ultrazvukové senzory, ako napríklad HC-SR04 a vodotesnú verziu JSN-SR04T, a umožňuje integráciu ďalších senzorov, ako sú RCW, US-XXX, IOE-SR0X, SR0X, HY-SRF0X, DYP-MEXXX alebo Parallax PING)))™, podľa potreby.

Každých 5 minút vykonáva senzorový uzol 10 priemerovaných meraní, pričom namerané hodnoty sú odosielané na server prostredníctvom WiFi, Ethernet, LoRaWAN alebo NB-IoT. Tieto údaje sú okamžite spracované a prezentované v IoT dashboarde, ktorý zobrazuje aktuálnu výšku hladiny, prepočítaný objem studne a trendy zmien.

Používatelia môžu sledovať nielen aktuálne dáta, ale aj historické merania, zobrazené v prehľadných tabuľkách alebo grafickej vizualizácii pomocou čiarových grafov. Rozhranie je plne responzívne, čo znamená, že sa bez problémov prispôsobí smartfónom, tabletom, počítačom aj Smart TV.

Backend systému vykonáva korekciu nameraných údajov na základe známej hĺbky studne a priemeru, čím zabezpečuje presný výpočet objemu studne v litroch. Watmonitor je ideálny nástroj pre všetkých, ktorí potrebujú spoľahlivé a real-time monitorovanie hladiny vody v studniach s možnosťou využitia pokročilých IoT technológií.

Hladinomer - dashboard - automatická obnova aktuálne nameraných dát cez jQuery

Princíp merania ultrazvukových senzorov spočíva vo vyslaní signálu Trigger s dĺžkou 10 μs (mikrosekúnd), ktorý sa od hladiny vody odrazí a vráti do prijímača – Echo. Táto metóda, známa ako Time-of-Flight, počíta čas medzi vyslaním a prijatím signálu na určenie vzdialenosti hladiny vody od senzora, umiestneného na vrchu studne. Vzorec prepočtu používa rýchlosť zvuku 343 m/s pri teplote 20 °C.

Dôležitým parametrom ultrazvukových senzorov je šírka lúča, známa aj ako detekčná charakteristika. Senzor HC-SR04 má 15° detekčnú charakteristiku, čo znamená, že lúč je relatívne úzky. Tento senzor je vhodný pre užšie studne a nádrže, no nie je vodotesný a má vysoké riziko korózie vo vlhkých podmienkach. Preto je ideálne ho umiestniť nad studňu, aby sa minimalizovali účinky vlhkosti.

Vodotesný senzor JSN-SR04T má širšiu detekčnú charakteristiku 60°, čo obmedzuje jeho použitie v úzkych studniach. Lúč sa so vzdialenosťou veľmi rozširuje, a preto je vhodný iba pre širšie studne s priemerom aspoň 6 metrov (pri hĺbke 4,5 metra), aby sa predišlo odrazom signálu. Elektronická doska tohto senzora nie je odolná voči vode, a preto musí byť chránená pred vlhkosťou.

Ultrazvukové senzory sú však plne bezúdržbové a poskytujú spoľahlivé meranie. Maximálna merateľná výška hladiny týmito senzormi je približne 400 až 450 cm, podľa údajov uvedených v katalógových listoch (datasheetoch).

Iné typy senzorov pre záznam výšky hladiny vody, ktoré je možné integrovať (nutné vytvoriť si vlastný firmvér):
  • Laserové (LiDAR) - (DFRobot DTOF LD19 LIDAR, DFRobot ToF Laser ...)
  • Hydrostatické (ponorné) - (LMK307, DPT200, PT20eco, HDL300 ...)
  • Elektrostatické (kapacitné / indukčné) - XKC-Y25-NPN
  • Tlakové (diferenčné / s kompenzačným senzorom atmosférického tlaku)
  • Optické - (GP2Y0A02YK0F, YD-02F, FS-IR02 ...)
  • Mechanické (plavák)
  • Magnetické (Hall) - (VCL9, Sen-Hz41wa ...)
  • Mikrovlnné (radarové) - (CS476, CS475A-L, SP69, WLR 8/15/30 ...)
  • Ultrazvukové - (A01NYUB, URM37), alebo iné, možnosť aj priemyselnej zbernice pre výstup (RS-485, prúdová slučka 4-20 mA, Modbus RTU, M-bus, PROFINET)
  • Poznámka: Ak sa vykonáva prepočet výšky hladiny vody od dna na strane mikrokontroléra, je nutné na webovom rozhraní nastaviť hĺbku studne na 0 cm.

  • Video demonštrácia webového rozhrania - Hladinomer:



    Ultrazvukové senzory sú vhodné do:


  • Kopaných studní
  • Septikov a žúmp
  • Potokov a jazier
  • Plastových nádrží na dažďovú vodu
  • Silá (meranie naplnenia sypkými materiálmi)
  • Kontajnery (monitoring odpadu, naplnenia zbernej nádoby)
  • Kotolne (monitoring zásoby dreva, peliet, uhlia, štiepky)
  • Šachty a pivnice (monitoring vytopenia - výšky spodnej vody)

  • Ultrazvukové senzory nie sú vhodné do:


  • Vŕtaných studní (z dôvodu detekčnej charakteristiky - široký lúč)
  • Potrubí a rúr (z dôvodu detekčnej charakteristiky - široký lúč)
  • Do studní so spádovým prítokom (rozbúrená hladina utlmí ultrazvuk, meranie je nemožné / skokovité)
  • Do miest s náhlou zmenou teplôt (teplota ovplyvňuje čas šírenia zvuku, teda aj stacionárna hladina sa javí ako kolísavá)
  • Vákuových nádrží (meranie je nemožné, zvuk sa nešíri)
  • Detekčná charakteristika ultrazvukových senzorov vzdialenosti - MATLAB scripty pre vizualizáciu:
  • HC-SR04.m stiahnuť
  • JSN-SR04T.m stiahnuť

  • Plug n' play firmware - Ultra Low Power / StandBy


    Skompilovaný firmvér dostupný pre okamžité nahratie do mikrokontroléra (nevyžaduje inštaláciu knižníc).
    Názov firmvéru Funkcia firmvéru ESP8266 ESP32
    Ultra Low Power

    Firmvér pre ULP aplikácie s nízkym prúdovým odberom (viz. schéma zapojenia). Firmvér sa nahráva cez pribalený nástroj ESPTOOL automatizovane, ktorý je spustený s .bat scriptom (v scripte nutné zmeniť COM port vašej ESP dosky). Po nahratí firmvéru a za predpokladu, že ESP nemá uložené SSID a heslo z predchádzajúceho projektu, spustí sa WiFiManager, ktorý slúži pre konfiguráciu existujúcej WiFi siete. ESP začne vysielať v režime AP otvorenú WiFi sieť s SSID --> Hladinomer_AP. Po pripojení klienta (Windows / Android / iOS) sa spustí Captive portál na 192.168.4.1 (klient by mal byť presmerovaný automaticky). WiFiManager umožní vo web rozhraní vybrať WiFi sieť v dosahu, nastaviť heslo. Po úspešnom pripojení ESP na zadanú WiFi sieť a pridelení IPv4 z daného rozsahu sa Captive Portal vypne, ESP zostáva v móde STA - Station. Následne senzorový uzol začne prenášať dáta do web rozhrania Hladinomera. Pri následnom spustení senzorového uzla sa už Captive Portal a WiFiManager nespustí, nakoľko je konfigurácia WiFi siete permanetne uchovaná. Mikrokontróler po odoslaní dát prechádza do režimu hlbokého spánku - Deep Sleep. V režime spánku je vypnutý hlavný procesor Xtensa. ESP8266 je prebudené cez WAKE timer (vyžaduje sa prepojka medzi GPIO16 a RST), ESP32 cez RTC Timer.

    ESP8266 firmvér ESP32 firmvér
    StandBy

    Firmvér pre StandBy režim mikrokontroléra, ktorý odosiela v pravidelných intervaloch (5 min) meranie o výšky hladiny vody na webserver a zároveň udržuje konektivitu s AP v LAN sieti. Firmvér sa nahráva cez pribalený nástroj ESPTOOL automatizovane, ktorý je spustený s .bat scriptom (v scripte nutné zmeniť COM port vašej ESP dosky). Po nahratí firmvéru a za predpokladu, že ESP nemá uložené SSID a heslo z predchádzajúceho projektu, spustí sa WiFiManager, ktorý slúži pre konfiguráciu existujúcej WiFi siete. ESP začne vysielať v režime AP otvorenú WiFi sieť s SSID --> Hladinomer_AP. Po pripojení klienta (Windows / Android / iOS) sa spustí Captive portál na 192.168.4.1 (klient by mal byť presmerovaný automaticky). WiFiManager umožní vo web rozhraní vybrať WiFi sieť v dosahu, nastaviť heslo. Po úspešnom pripojení ESP na zadanú WiFi sieť a pridelení IPv4 z daného rozsahu sa Captive Portal vypne, ESP zostáva v móde STA - Station. Následne senzorový uzol začne prenášať dáta do web rozhrania Hladinomera. Pri následnom spustení senzorového uzla sa už Captive Portal a WiFiManager nespustí, nakoľko je konfigurácia WiFi siete permanetne uchovaná.

    ESP8266 firmvér ESP32 firmvér

    Princíp fungovania hladinomera - Bloková schéma


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

    Webové rozhranie (IoT dashboard) využíva trigonometriu pre odhad merateľnej maximálnej hĺbky studne pri známom priemere studne (ďalší parameter pre výpočet objemu studne). Používateľovi vie tak webové rozhranie dopočítať, do akej maximálnej hĺbky studne je každý zo senzorov vhodný na základe jeho charakteristiky. Projekt je tak jednoduchý na použitie aj pre laikov, ktorí nevedia, ktorý senzor je pre aplikáciu v ich studni vhodnejší. Dôležitú úlohu v systéme zohráva aj použitý mikrokontróler. Pre projekt je možné využiť platformu Arduino (Uno / Mega) v revízii R3 s identickým pinoutom, ktorú je možné spojiť s Ethernet shieldom, ktorý komunikuje cez ICSP rozhranie. Taktiež je možné využiť aj Ethernet moduly a pripojiť ich priamo na hardvérové SPI piny mikrokontroléra. Podporované sú Ethernet moduly od výrobcu Wiznet W5100, W5500, USR-ES1. Od výrobcu MicroChip je podporovaný Ethernet modul ENC28J60. Všetky Ethernet moduly zabezpečujú HTTP konektivitu s webserverom. Podporované sú aj WiFi mikrokontroléry od Espressif Systems - ESP8266 a ESP32. Mikrokontroléry majú viacero prevádzkových režimov: StandBy, StandBy + OTA s možnosťou vzdialeného uploadu firmvéru cez LAN sieť a režim hlbokého spánku pre ULP aplikácie - Deep Sleep. V režime spánku pre mikrokontróler ESP8266 je nutné pridať fyzickú prepojku medzi GPIO16 (WAKE) a RST - pozri Schému zapojenia. Mikrokontroléry ESP umožňujú implementovať aj šifrovanú komunikáciu s webserverom cez HTTPS protokol. ESP32 je možné použiť aj s PHY Ethernet modulom LAN8720, podporuje HTTP i HTTPS spojenie. Platforma ESP8266 i ESP32 využíva certifikát koreňovej certifikačnej autority (Root CA), ktorá pre doménu webservera vydala certifikát (Issuer). Certifikát je vložený do zdrojového kódu mikrokontrolérov v .pem formáte. Aby certifikát nezaberal miesto v RAM pamäti mikrokontroléra, je vložený do flash pamäte mikrokontroléra - PROGMEM. Certifikát certifikačnej autority platí v rozmedzí 10 až 20 rokov, nevyžaduje tak častý renew certifikátu. Dáta o aktuálnej výške hladiny vody a objeme vody v studni sú z webového rozhrania dostupné v JSON formáte. Projekt Hladinomer (Watmonitor) je možné integrovať cez MQTT do domácej automatizácie (Hassio, Domoticz, Loxone) pre zobrazenie výšky hladiny vody vo vlastnom dashboarde napr. Grafana. Následne je možné v podsystéme vykonávať aj ovládanie periférii (zavlažovanie, polievanie, aktivácia domácej vodárne) na základe dát o výške hladiny vody v studni z web rozhrania.

    Operačný mód StandBy StandBy + Over The Air (OTA) Ultra Low Power (ULP) FreeRTOS
    Mikrokontróler - - - -
    Arduino + Ethernet × × ×
    ESP8266 ×
    ESP32
    Programové implementácie pre Arduino, ESP8266, ESP32 (vyžadujú doinštalovanie knižníc): Dostupné tu

    Dostupné knižnice pre mikrokontroléry (Arduino / ESP)


    Archív knižnice (.zip) rozbaliť do C:/Používatelia/[Používateľ]/Dokumenty/Arduino/libraries
    Názov knižnice Funkcia knižnice Stiahnuť
    NewPing

    Knižnica pre AVR mikrokontroléry (ATmega) Arduino Uno / Nano / Mega. Umožňuje vykonávať meranie ultrazvukovými senzormi vzdialenosti RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™.

    Stiahnuť
    NewPingESP8266

    Knižnica pre ESP8266 a ESP32 mikrokontroléry. Umožňuje vykonávať meranie ultrazvukovými senzormi vzdialenosti RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™.

    Stiahnuť
    Ethernet2

    Knižnica pre AVR mikrokontroléry (ATmega) Arduino Uno / Nano / Mega. Umožňuje komunikáciu s Ethernet modulom Wiznet W5200 až W5500 cez SPI rozhranie.

    Stiahnuť
    Ethernet3

    Knižnica pre AVR mikrokontroléry (ATmega) Arduino Uno / Nano / Mega. Umožňuje komunikáciu s Ethernet modulom Wiznet W5500 V2 - USR-ES1 cez SPI rozhranie.

    Stiahnuť
    UIPEthernet

    Knižnica pre AVR mikrokontroléry (ATmega) Arduino Uno / Nano / Mega. Umožňuje komunikáciu s Ethernet modulom ENC28J60 od Microchipu cez SPI rozhranie.

    Stiahnuť

    Screenshoty webového rozhrania pre projekt Hladinomer


    Hlavný prehľad - Hladinomer - výška hladiny vody v studni Historický prehľad nameraných údajov s časovou značkou - Hladiomer Grafická vizualizácia výšky hladiny vody za deň, 7 dní, 30 dní, rok - Hladinomer Maximálne a minimálne hodnoty výšky hladiny vody v studni za 24 hodín, 7 dní, 30 dní ESP32 - FreeRTOS - ESP-IDF - meranie a prenos dát na webserver cez HTTPS, POST metóda prenosu

    Kompatibilný hardvér pre projekt hladinomer


    Podporovaný hardvér pre projekt Hladinomer - Arduino - Ethernet - WiFi - ESP8266 - ESP32 Senzorový uzol ESP32 s PHY Ethernet modulom LAN7820 a ultrazvukovým senzorom JSN-SR04T Ultrazvukové senzory s možnosťou solárneho napájania, podpora LoRaWAN, WiFi QR code scanner - AR for ultrasonic sensor