blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
Programátor
deadawp



Hladinomer - Arduino / ESP32 (WiFi, Ethernet, LoRa)
pridal deadawp 29.4. 2019 o 0:55



Projekt monitoru výšky hladiny vody (hladinomer) je typom projektu so záznamom a archiváciou dát, ktoré môžu byť použité pre rozšírenú štatistiku denného vývoja hladiny vody v studni, nádrži. Vďaka tomu je možné určiť mesiace v roku, kedy je v studniach nedostatok vody a opak, kedy je vody dostatok, alebo až nadbytok, ktorý môže byť využitý pre zavlažovanie rôznych typov rastlín. Projekt je tak aj vstupnou bránou pre možné automatizácie skleníkov, fóliovníkov a záhonov, ktoré môžu byť integrované vo vyššom systéme, ktorý bude preberať aktuálne dáta o výške hladiny vody a objeme studne z JSON výstupu.

Bude tak možné integrovať aj rozšírené ovládanie výkonových prvkov - čerpadiel, vodárni, solenoidových ventilov, ktorými je možné zalievať záhradu a záhony - zavlažovať, alebo aj čerpať vodu a využívať ju ako úžitkovú na splachovanie, umývanie. Projekt zo základnej verzii využíva iba logovanie dát do MySQL databázy v pravidelných 5-minútových intervaloch.

Pre meranie výšky hladiny vody sa používajú ultrazvukové senzory vzdialenosti. Táto metóda využíva 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 šírenie zvuku je možné určiť vzdialenosť v centimetroch, ktorá je vo webovom rozhraní prepočítava na reálnu výšku hladiny vody od dna a vyjadrená aj v litroch ako objem studne, aby mal používateľ čo najlepšiu predstavu o svojej studni.

Na základe údajov z datasheetu ultrazvukových senzorov HC-SR04 a JSN-SR04T (vodotesný) (a ďalšie kompatibilné z rady HC-SR0X, HY-SRF0X, DYP-ME007) je zrejmé, že je možné merať maximálnu hĺbku studne 450cm. Senzor sa umiestní do hornej časti studne, najlepšie na stred studne. Aby boli merania čo najpresnejšie, vykoná sa celkovo 10 meraní, ktoré sa spriemerujú. Dáta sú zaslané na webové rozhranie POST metódou cez socket. Backend webového rozhrania vykoná prepočet výšky hladiny od dna na základe nameraných údajov a údajov o hĺbke studne, ktoré sú zadané vo web rozhraní. Senzorový uzol v POST posiela aj token, ktorým je autentizovaný voči serveru, ktorý mu umožní zápis dát.

Ultrazvukové senzory SÚ vhodné do:

  • Kopaných studní
  • Septikov a žúmp
  • 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 - spodnej vody)
  • Výroba (detekcia výrobkov, ich výšky a počtu, výška navinutého materiálu)
  • Parkoviská (detekcia voľných a obsadených parkovacích miest)
  • Garáže (semafor pre auto - vzdialenosť od steny) 

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 (zvlnená hladina utlmí ultrazvuk, meranie je nemožné)
  • Do miest s náhlou zmenou teplôt (teplota ovplyvňuje čas šírenia zvuku, teda aj stacionárna hladina sa javí ako kolísavá)
  • Do vákuových nádrží (meranie je nemožné)



Technické parametre senzora HC-SR04:

Operačné napätie 3.8-5.5V
Spotreba 8mA
Frekvencia ultrazvuku 40kHz
Maximálna vzdialenosť 450cm
Minimálna vzdialenosť 2cm
Trigger pulz 10μs
Efektívny uhol detekcie 15°

Z technickej špecifikácie vyplýva, že senzor sa hodí aj do low-power aplikácii, kedy sa využíva deep-sleep, alebo iný mód uspania mikrokontroléru pri prevádzke na batérie. Aby bolo možné projekt uspôsobiť na prenos rôznymi technológiami, vyhotovil som niekoľko zdrojových kódov, ktoré umožňujú prenos týmito technológiami a mikrokontrolérmi:

  • Arduino, ESP8266, alebo ESP32 mikrokontróler
  • WiFi, Ethernet, PHY Ethernet
  • Sigfox, LoRa
  • pre ESP32 aj experiemntálne implementácie s podporou FreeRTOS, aj v ESP-IDF frameworku

Všetky technológie umožňujú prenos do webového rozhrania, kde sa dáta spracujú, uložia sa do MySQL databázy a sú archivované pre rozsiahlejšiu štatistiku. Z Arduina s Ethernet shieldom sa vykoná HTTP request, ktorý predá dáta webovému rozhraniu. Pri využití ESP dosiek je možné vykonať HTTPS request, ktorým sa dáta do webového rozhrania odošlú. Ešte by som doplnil, že pri ESP32 a ESP8266 je vhodné použiť napäťový delič zo vstupného pinu, ktorý je síce 5V tolerantný, ale logika dosky je 3.3V. V prípade ESP32 je možné v mojej programovej implementácii použiť aj modul PHY Ethernet LAN8720, ktorý s ESP komunikuje cez RMII rozhranie.

Webové rozhranie využíva knižnicu Google charts na reprezentáciu dát za 2 hodiny, 24 hodín, 7 dní a 30 dní v čiarových grafoch. S možnosťou zobrazenia grafu za navolený mesiac, či deň. Vďaka tomu je možné prezerať rozdiely medzi rokmi, mesiacmi a dňami a vyhodnocovať výdatnosť studne a aj to, či vplyvom rokov naberá na výdatnosti, alebo vysychá.

Súčasťou systému je aj real-time tabuľka, v ktorej sa automaticky zobrazia vždy najnovšie údaje s tendenciou hladiny vody. Pre dlhodobejšiu štatistiku a priemery sa na stránke využívajú budíkové rozprezentácie, ktoré vizualizujú maximá a minimá, priemery za 24 hodín / 7 dní / 30 dní.

Pre historický prehľad nameraných údajov je možné využiť aj jednoduchú tabuľku, ktorá zároveň obsahuje informácie o čase daného záznamu a aj porovnanie prechádzajúcej hodnoty, teda je možné určiť v danom období aj pribúdanie, či odbúdanie vody - výšky hladiny v studni.

Používateľ hladinomera môže dáta z databázy mazať (napríklad zlé meranie, chybné meranie spôsobené iným javom a pod.). Pre vymazanie záznamu sa musí používateľ do systému prihlásiť, aby bol autorizovaný pre mazanie dát.

Schéma zapojenia pre platformy Arduino, ESP32, ESP8266 (NodeMCU):



V ďalších verziách projektu Hladinomer boli implementované bezpečnostné mechanizmy na úrovni softvéru, ktoré umožňovali autorizovanému používateľovi vykonávať zmeny --> Nastavenia. Každý mikrokontróler musí byť autentizovaný bezpečnostným tokenom, ktorý je vložený do požiadavky. Frontend webaplikácie prešiel zmenou pre krajšie a najmä efektne rozvehnuté rozhranie pre správu a monitoring.

Boli pridané rôzne metódy pre efektívnu prevádzku na batériu pre ESP8266 a ESP32 platformu - Deep Sleep Ultra-low-power a možnosť OTA aktualizácie firmvéru cez LAN sieť. Projekt dostal vlastnú informačnú stránku, kde si používateľ môže prečítať ako systém funguje, nájsť schému zapojenia, či rozšírený projekt o dažďový senzor Hydreon RG-11. Pre ESP32 existuje aj programová implementácia s využitím operačného systému reálneho času FreeRTOS pod frameworkom ESP-IDF pre vývoj IoT aplikácii.

Projekt má vytvorený aj Github repozitár, kde sú združené zdrojové kódy pre všetky mikrokontroléry, schéma zapojenia exportovaná priamo z Autodesk Eagle, programové implementácie JSON klientov, ktorých je možné pripojiť k webserveru aplikácie Hladinomer. JSON klienti dokážu získané JSON dáta rozparsovať a údaj o výške hladiny vody a objeme studne dokážu prenášať na MQTT Broker do príslušných topicov.

Pri istej úprave webového rozhrania (nastavenie hĺbky studne na 0 cm a s implementáciou prepočtu reálnej výšky hladiny od dna na strane mikrokontroléra) dovolí využiť aj iné typy snímačov výšky hladiny vody s aktálnym rozložením webového rozhrania a jeho vizualizácii  (hydrostatické, kapacitné, tlakové, optické...).

Z dôvodu výrazneho redukovania počtu BTS staníc pre sieť Sigfox operátorom Simplecell nie je Sigfox pre projekt priorita a technológia už nie je natívne podporovaná a udržiavaná.

Iné typy senzorov, ktoré môžu byť s existujúcim webovým rozhraním použité:

  • 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.

Rozšírené informácie o projekte Hladinomer:



Prístupov 16026
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
ATtiny85 Digispark - programovanie, použ...
[ 28.12.2023] (príspevkov 0)
Prečo by som si už nekúpil ESPD-35 od La...
[ 26.12.2023] (príspevkov 0)
ATtiny85 - programovanie Arduino as ISP
[ 19.12.2023] (príspevkov 0)
MasterTherm - webscraper ESP32
[ 25.11.2023] (príspevkov 0)
RFID DOMINATOR 2.0 - rozdiely s 1.0
[ 15.11.2023] (príspevkov 0)
Rozšírená realita (AR) - IoT dashboard
[ 29.10.2023] (príspevkov 0)
Solárne napájanie ESP32 - WiFi / LoRaWAN
[ 15.9.2023] (príspevkov 0)
BLE Beacon na ESP32 - vysielanie vlastný...
[ 22.8.2023] (príspevkov 0)
Node Mold - detektor plesne od eLOC8
[ 19.7.2023] (príspevkov 0)
Český Kickstarter ESP32 projekt a čo ma ...
[ 10.3.2023] (príspevkov 0)