Monitor výšky hladiny vody v studni
Dnes by som rád predstavil projekt, ktorý sa zaujíma o monitorovanie výšky hladiny vody (alebo inej tekutiny) v studni ultrazvukovým senzorom.
Projekt monitoru výšky hladiny vody je typom projektu so záznamom a ukladaním dát, ktoré môžu byť použité pre rozšírenú štatistiku denného vývoja hladiny vody. 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. Do projektu je 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žíval iba logovanie dát do MySQL databázy v pravidelných - niekoľko minútových intervaloch.
Pre záznam výšky hladiny vody (ale výšku aj inej veličiny, napríklad snehu, uhlia, dreva) som využil ultrazvukový senzor vzdialenosti HC-SR04, ktorý sa vyznačuje vysokou spoľahlivosťou a jednoduchým ovládaním a nízkou spotrebou. Dokáže merať vzdialenosť 3-450 centimetrov. Využíva ultrazvuk na frekvencii 40kHz s vysielacím pulzom o dĺžke 10 mikrosekúnd. Na základe času od prijatia odrazenej vlny je možné vzorcom vypočítať vzdialenosť objektu, od ktorého sa vlna odrazila.
Z popisu vyplýva, že je možné merať maximálne studňu s výškou 450cm. Senzor sa umiestni na hornú úroveň, najlepšie na stred studne. Aby boli merania čo najpresnejšie, vykoná sa celkovo 5 meraní, ktoré sa spriemerujú. Nakoľko je ale výsledok merania otočený - meria sa vzdialenosť od vrchu a nie od dna, je nutné výsledok odčítať od maximálnej výšky (450cm - alebo inej pri plytšej studni) a vytvoriť absolútnu hodnotu. Takto vieme určiť výšku vody v studni. Ak vieme priemer studne a aj výšku vodného stĺpca, vieme určiť aj litre vody v rozumnej miere.
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 + Ethernet (Wiznet W5100/Wiznet W5500)
ESP8266 (Wemos D1, Wemos D1 mini, NodeMCU, Generic module) - WiFi
ESP32 (Generic, devkit v1-v4, Lolin32) - WiFi
(*) Sigfox Wisol - IoT (vyžaduje náročnejšiu prvotnú konfiguráciu + HTTPS callback)
* - akýkoľvek mikrokontróler
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, alebo Sigfox modulu, či GSM, NB-IoT je možné vykonať HTTPS request, ktorým sa dáta do webového rozhrania odošlú.
Webové rozhranie využíva 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ú Google budíkové rozprezentácie, ktoré vizualizujú maximá a minimá, priemery za 24 hodín / 7 dní / 30 dní. Login systém s možnosťou zmeny údajov je samozrejmosťou vrátane logovania IP adries, ktoré sa pripojili, alebo nepripojili do systému v dôsledku zadania zlých údajov.
Viac o projekte je možné nájsť na mojich stránkach:
http://arduino.clanweb.eu/studna-voda.php