IoT Dashboard pre hladinomer pozostáva z webového rozhrania, ktoré je celým mozgom vizualizácie meraní. Webaplikácia umožňuje zaznamenávať údaje o výške hladiny vody v kopanej studni zo senzorového uzla - mikrokontroléra. Meranie výšky hladiny vody sa realizuje s využitím ultrazvukových senzorov - HC-SR04, alebo jeho vodotesnej varianty JSN-SR04T. Možno využiť aj iné senzory so signálmi Trigger / Echo z rady RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™ v aktuálnej programovej implementácii. Senzorový uzol v každých 5 minút vykonáva 10 meraní ultrazvukovým senzorom, ktoré spriemeruje. Výsledná hodnota sa posiela serveru cez použité rozhranie (WiFi / Ethernet / IoT sieť LoRaWAN / NB-IoT). Aktuálne dáta o výške hladiny vody sú reprezentované používateľovi v dashboarde spolu s prepočtom na objem studne a tendenciou hladiny. Historické dáta o výške hladiny vody má používateľ k dispozícii aj v tabuľkovej, alebo grafickej vizualizácii čiarovými grafmi. Webové rozhranie je responzíve a dokáže sa prispôsobiť obrazovke smartfónu, počítaču, tabletu, aj Smart TV. Backend pri prijatí dát vykonáva korekciu nameranej výšky hladiny na skutočnú na základe známej hĺbky studne, keďže senzor zasiela len rozdielovú výšku hladiny vody. Na základe reálnej výšky hladiny vody dokáže určiť aj objem studne v litroch. Hĺbku a priemer studne (konfiguračné dáta) do systému vkladá používateľ na základe proporcií jeho studne.
Princíp merania ultrazvukových senzorov je vyslanie signálu Trigger s dĺžkou 10 μs (mikrosekúnd), ktorý sa od hladiny vody odrazí a vráti sa do prijímača - Echo. Využíva sa metóda Time-of-Flight pre prepočet času medzi vyslaním a prijatím signálu na určenie vzdialenosti hladiny vody od senzora, ktorý je umiestnený na vrchu studne. Vzorec prepočtu počíta s rýchlosťou zvuku 343 m/s pri teplote 20 °C. Niektoré ultrazvukové senzory majú aj teplotný senzor, ktorý môže vykonať korekciu meraní (napr. US-100 so zabudovaným termistorom). Dôležitým parametrom ultrazvukových senzorov je šírka lúča, inými slovami detekčná charakteristika. Senzor HC-SR04 má 15° detekčnú charakteristiku. Lúč je relatívne úzky a senzor je tak vhodný aj pre užšie studne a nádrže, avšak nie je vodotesný a má vysoké riziko korózie vo vlhkých podmienkach studne. Z toho dôvodu je tento ultrazvukový senzor vhodné umiestniť nad studňu pre zníženie účinkov vlhkosti v danom prostredí. Vodotesný senzor JSN-SR04T má detekčnú charakteristiku 60°, čo ho značne limituje a zamedzuje jeho použitiu v úzkych studniach, nakoľko sa lúč so vzdialenosťou veľmi rozširuje a je potrebná studňa s priemerom niekoľko metrov (6 metrov priemer pri hĺbke studne 4,5 metra). Ultrazvukové senzory sú plne bezúdržbové. Senzor JSN-SR04T má riadiacu elektronickú dosku, ktorá nesmie byť vystavená vlhkosti a vode. Maximálna merateľná výška hladiny (úrovne) senzormi je cca 400 až 450cm na základe údajov z katalógových listov (datasheetov).
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 |
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 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 | ✓ | ✓ | ✓ | ✓ |
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ť |