Hladinomer do kopanej studne - Arduino / ESP8266 / ESP32 / Sigfox
Ponúkam mnou navrhnutý a naprogramovaný SOFTVÉR - webaplikáciu pre projekt Hladinomer. Cieľom projektu je zaznamenávať a reprezentovať používateľovi výšku hladiny vody (alebo inej kvapaliny) v studni, nádrži. Princíp merania ultrazvukových senzorov je vyslanie signálu Trigger o dĺžke 10 mikrosekúnd, ktorý sa od hladiny odrazí a vráti sa do prijímača - Echo. Na základe prepočtu času vzhľadom na rýchlosť šírenia zvuku je možné určiť vzdialenosť medzi senzorom a hladinou vody, ktorú je možné reprezentovať v litroch.
Projekt využíva ultrazvukový senzor vzdialenosti HC-SR04 - (detekčný uhol 15°), prípadne vodotestný senzor JSN-SR04T (detekčný uhol je až 60°). [Detekčný uhol reprezentuje šírku lúča]. Merať je možné výšku hladiny až do 450cm.
Pre obsluhu projektu je možné využiť mikrokontróler Arduino s Ethernet modulom Wiznet W5100 alebo W5500, prípadne WiFi platformy od Espressif Systems - ESP8266 (NodeMCU, Wemos D1 Mini), alebo ESP32 (Devkit). Schéma zapojenia pre všetky platformy je dostupná priamo vo webaplikácii.
Mikrokontrolérové platformy ESP8266 a ESP32 je možné prevádzkovať aj v režime Deep Sleep, ktorý dramaticky zníži ich spotrebu na úroveň desiatok mikroampérov, sú tak vhodné pre prevádzku na batériu. Druhým prevádzkovým režimom je StandBy, kedy platforma beží v štandardnom režime a môže byť rozšírená o implementáciu Over The Air (OTA), ktorá ponúka aktualizáciu firmvéru prostredníctvom LAN siete.
Arduino s Ethernetom podporuje iba HTTP konektivitu a nepodporuje OTA aktualizáciu, ani režim spánku! Pre platformy ESP8266 a ESP32 je možné využiť HTTP i HTTPS šifrované spojenie s webserverom. V prípade, že nie je na danom mieste dostupný pevný internet, je možné využiť aj prenos dát cez IoT sieť Sigfox, ktorá pokrýva 85% Slovenska a je tak vhodnou alternatívou.
Kompatibilný je UART modem SIGFOX WISOL 868MHz.
Vhodný pre IoT aplikácie s nízkym prúdovým odmerom, pri vysielaní spotrebúva tretinu v porovnaní s ESP32. Limit správy 12B (používajú sa 4B pre výšku hladiny vody), custom callback zo Sigfox backendu vykonáva request pre zápis dát do web rozhrania.
Pre prevádzku projektu je nutné vlastniť webserver s podporou Apache/Nginx (pre .php scripty) na verejnej IP adrese, alebo v LAN sieti, kam daná platforma odosiela dáta z ultrazvukového senzora. V prípade Sigfox prevádzky musí byť server dosiahnuteľný z internetu, inak nie je možné zapísať dáta!
Na webserveri beží aplikácia, ktorá používateľovi vizualizuje v dynamickom prehľade posledné údaje s indikátorom konektivity mikrokontroléru. Umožňuje sledovať aj historické údaje o výške hladiny vody za mesiac, týždeň, deň v prehľadných grafoch, či tabuľkovom vyhotovení. Web rozhranie obsahuje aj záznam rekordov - maximálna, minimálna hodnota hladiny vody za 24 hodín, 7 dní, 30 dní, čo umožňuje priebežne monitorovať aj výdatnosť studne.
Webaplikáciu možno vyskúšať s vašim hardvérom na testovacom web rozhraní: https://martinius96.github.io/hladinomer-studna-scripty/