Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 31.03.24
Príspevky: 450
Témy: 198
Bydlisko: Poprad-okolie
Príspevok NapísalOffline : 05.11.2020 13:02

Projekt hladinomer vznikol v roku 2019 ako jednoduchý responzívny projekt vo webovom rozhraní v Bootstrap Bare šablóne, ktorý umožňoval zber dát o výške hladiny vody v studni a ich následnú vizualizáciu. Využíva backend napísaný v jazyku PHP procedurálnym štýlom a umožňuje centralizovaný zber dát prichádzajúcich z mikrokontroléru.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Meranie výšky hladiny vody sa realizovalo s využitím ultrazvukových senzorov - HC-SR04, alebo jeho vodotesnej varianty JSN-SR04T. Princíp merania oboch senzorov je vyslanie signálu Trigger s dĺžkou 10μs a na základe času, kedy sa signál vráti do prijímača - Echo je možné dopočítať vzdialenosť medzi senzorom a hladinou.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
To znamená, že je potrebné túto hodnotu normovať v závislosti od hĺbky studne, nakoľko viac vody = menšia nameraná hodnota. Oba senzory dokážu merať do vzdialenosti cca 450 cm. Na základe známej maximálnej hĺbky studne je možné prepočítať na strane servera pri preberaní dát z mikrokontroléru skutočnú výšku hladiny vody a dopočítať aj objem studne. Dôležitým parametrom u oboch 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, kde je isté riziko odrazu lúča od stien studne. Vodotesný senzor JSN-SR04T má detekčnú charakteristiku 60 až 75°. Z toho dôvodu nie je vhodný pre úzke studne. Vo vzdialenosti hladiny od senzora 450 cm má lúč priemer takmer 600 cm.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Webové rozhranie využíva trigonometriu pre odhad maximálnej hĺbky studne pri známom priemere studne (ďalší parameter pre výpočet objemu studne). Používateľovi vie tak dopočítať, do akej maximálnej hĺbky studne je každý zo senzorov vhodný.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Dôležitú úlohu v systéme zohráva aj použitý mikrokontróler. Pre projekt sa využila platforma Arduino (Uno) spojená s Ethernet modulom / shieldom z rady Wiznet model W5100, respektíve W5500, ktorý zabezpečoval HTTP konektivitu a umožnil mikrokontroléru prenos dát do vzdialeného webového rozhrania na internete.

Nakoľko je hladinomer exteriérovým projektom, mnoho používateľov by si obľúbilo aj možnosť využitia WiFi platformy bez nutnosti ťahania Ethernet konektivity až k studni. Keďže je platforma Arduino náchylnejšia na "zaseknutie" programu, bol do zdrojových kódov doplnený watchdog, ktorý je schopný platformu reštartovať.

Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Systém bol rozšírený o platformy ESP8266, ESP32, ktoré zabezpečujú prostredníctvom vstavanej WiFi konektivitu po HTTP, ale aj HTTPS protokole. Mikrokontróler ESP8266 pre HTTPS spojenie využíva odtlačok - fingerprint v SHA1 formáte z verejného kľúča servera a vyžaduje pravidelnú obnovu, nakoľko nové certifikáty pre domény sú vydávané na maximálne rok, respektíve v prípade Let's Encrypt certifikátov sú to 3 mesiace.

ESP32 má určitú výhodu v realizácii HTTPS spojenia. Využíva certifikát certifikačnej autority (Root CA) v .pem formáte, ktorý má vložený priamo do zdrojového kódu. Toto riešenie je z časového hľadiska oveľa spoľahlivejšie a dlhšie, nakoľko má certifikačná autorita platnosť aj 10, 20 rokov. Vydanie nového certifikátu pre doménu (renew) zmení verejný kľúč webservera (domény), avšak vydavateľ - Root CA sa nemení a ESP32 vykoná spojenie bez problémov bez nutnosti zásahov do zdrojového kódu.

Nakoľko majú platformy ESP8266, ESP32 len 3.3V operačnú logiku a napájanie HC-SR04 a JSN-SR04T je na 5V, je nutné signál Echo napäťovým deličom znížiť na 3.3V. Napäťový delič bol doplnený aj do jednoduchej schémy zapojenia, ktorá sa nachádza priamo vo webaplikácii. Pre tieto platformy bol pridaný aj režim OTA - Over The Air aktualizácii firmvéru prostredníctvom domácej LAN siete, kedy je možné z pohodlia domova aktualizovať bežiaci firmvér v mikrokontroléri, ktorý sa nachádza v studni.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Celý proces riadi nástroj Python a nahrávanie je realizované prostredníctvom prostredia Arduino IDE, kde sa objaví vysielaný OTA port mikrokontroléru. OTA aktualizácie podporujú aj určitú formu autentizácie, prostredníctvom mena a hesla, prípadne md5 hashu. Štandardne OTA používa port 3232. Pre vysielaný OTA port je možné definovať aj vlastný hostname, prípadne ESP vysiela port s názvom tvoreným jeho MAC adresou.

Ďalšou možnosťou (bez OTA aktualizácii) je využitie režimu hlbokého spánku pre obe platformy. Spotreba je na úrovni 10 až 25μA, čo umožňuje prevádzku aj na batériu. Pri režime hlbokého spánku je vypnutý WiFi adaptér, ktorý neumožňuje aktualizáciu, ani vysielanie OTA portu.

Platforma ESP8266 využíva pre prebudenie z režimu hlbokého spánku signál Wake z vývodu D0 (GPIO 16), ktorý je prepojený s vývodom RST (počas nahrávania nového firmvéru je nutné rozpojiť D0 a RST). ESP32 využíva RTC Timer, ktorý ho zobudí na základe počítadla interne. RTC dokáže uchovať dáta aj počas spánku a následne ich sprístupniť v bežiacom programe hlavnej aplikácie.

Webové rozhranie obsahuje rôzne vizualizačné techniky prostredníctvom grafov, real-time prehľadu posledných hodnôt, tabuľkový - historický prehľad posledných 100 hodnôt / celej histórie behu hladinomera. Prostredníctvom budíkových reprezentácii je možné vizualizovať maximálnu, minimálnu hodnotu hladinomera za 24 hodín, 7 dní, 30 dní. Grafická reprezentácia v čase čiarovými grafmi bola rozšírená a ponúka vizualizáciu za posledný 2 hodiny, 24 hodín, 7 dní, 30 dní, 365 dní.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
V roku 2020 bol projekt rozšírený o zrážkomer, ktorý má v súčasnosti podporu iba pre platformy Arduino s Ethernet modulmi / shieldmi Wiznet W5100 / W5500. Zrážkomer Hydreon RG-11, ktorý bol v projekte použitý je optický bezúdržbový senzor. Nemá žiadnu mechanickú (pohyblivú) časť a tak má minimálnu poruchovosť. Senzor je vybavený kopulkou, na ktorú dopadajú dažďové kvapky.

Pomocou IR (infračervených) lúčov je schopný detegovať tieto kvapky. Rovnaký princíp využíva väčšina moderných automobilov pre riadenie automatického ovládania stieračov. Výhoda senzora je predovšetkým v tom, že nemá spomínanú mechanickú časť - tzv. preklápacie vedro, ani lievik, ktorý má tendenciu upchávať sa. Na druhú stranu je senzor menej presný, ako drahšie meteorologické zrážkomery s preklápacím mechanizmom.

RG-11 má aj vďaka kopulke samočistiaci efekt a je vhodný predovšetkým pre umiestnenie tam, kde nie je možný prístup a údržba. Zvláda aj 24/7 vystavenie priamemu slnečnému žiareniu. RG-11 je vybavený aj skupinou DIP prepínačov, ktorými je možné konfigurovať prevádzkový režim. Každý z režimov je na DIP prepínači možné nastaviť ale zároveň aj konfigurovať daný režim...
    Preklápacie vedro: Emuluje preklápacie vedro určenej veľkosti - štandardne 0.01mm (najpoužívanejší režim, využitý aj pre našu aplikáciu), impulz realizuje vstavané relé vstavané signalizačné relé - NO kontakt sa využíva pre signál prerušenia
    Detekcia dažďa: Zapne relé čím indikuje, že prší po dosiahnutí istej (navolenej) intenzity
    Senzor kondenzácie: Zisťuje kondenzáciu alebo tvorbu mrazu na povrchu
    Ovládanie stieračov: Ovládanie stieračov s dažďovým senzorom pri rôznych rýchlostiach
    Ovládanie zavlažovania: Výstup z merača dažďa, ktorý zabraňuje zalievaniu
    Detekcia poklesu: Produkuje impulz pre každý zistený pokles

Pre integráciu do projektu Hladinomer som využil režim Preklápacie vedro. Každý impulz preklápacieho vedra predstavuje logickú 0, ktorú je možné detegovať na strane Arduina, ku ktorému je tento výstup pripojený.

Napájanie RG-11 je realizované cez 12V DC adaptér. Arduino nezávisle na vykonávanom programe načítava v prerušení aj počet impulzov zo zrážkomera RG-11. Každých 5 minút, kedy sa realizuje odosielanie dát do webového rozhrania sa počet impulzov vynásobí s veľkosťou vedra --> t.j. 0.01mm a tak je možné vypočítať prírastok zrážok.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Výsledná hodnota je spolu s údajom o výške hladiny vody z ultrazvukového senzora HC-SR04 / JSN-SR04T odoslaná do webového rozhrania, kde sa spracuje a uloží. Prerušenie využíva softvérový debouncing medzi prípočtom ďalšieho vedra s dĺžkou 15 milisekúnd. To eliminuje prípadné zákmity, aby sa rovnaký signál nenačítal viac krát. Táto metóda je populárna aj pri rôznych infračervených snímačoch otáčok a podobne.

Arduino Uno má dva digitálne vstupy s podporou prerušenia ---> D2 a D3. Vývod D2 je obsadený Ethernet modulom Wiznet W5X00, ktorý tiež využíva prerušenie a vo výsledku realizuje TCP spojenie. Druhý vývod je použitý práve pre zrážkomer RG-11. Pre meranie je nutné pripojiť cez 10K rezistor pullup na vetvu, kde funguje prerušenie.

To definuje stav na vývode prerušenia, nakoľko obvod nie je inak uzavretý, keďže relé je prepnuté štandardne do NC (Normally closed) polohy a do stavu NO (Normally Open), kde je pripojený vývod sa relé prepne až pri signalizácii stavu. Vtedy Arduino načíta stav LOW - GND z COM vývodu trvale pripojeného na zem. Prerušenie FALLING zaznamená - deteguje zostupnú hranu signálu.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Existujúca MySQL tabuľka bola rozšírená pre stĺpec, kde sa zapisujú dáta zo senzora RG-11. Vo webovom rozhraní boli prispôsobené všetky výpisy aj pre zrážkomer, rovnako tak aj grafická reprezentácia. V časti Štatistika ponúka webového rozhranie aj vizualizáciu úhrnu (súčtu) zrážok za 2 hodiny, 24 hodín, 7 dní, 30 dní, 365 dní.
Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32
Webové rozhranie prijíma dáta iba metódou POST. Metódy GET, PUT, DELETE ignoruje. Mikrokontróler sa neautentizuje, overuje sa formát dát (is_number). Dáta sú zapísané s aktuálnou časovou značkou. Rozhranie neobsahuje autentizáciu / chránený obsah s menom a heslom, nakoľko neobsahuje žiadne ovládacie prvky.

Senzor JSN-SR04T obsahuje aj riadiacu dosku, ktorá nie je vodotesná a je ju nutné chrániť pred vlhkosťou. V prípade, že kábel ku senzoru nie je dostatočne dlhý, je možné nadpojiť originálne káble (majú tienenie) a kompatibilné konektory.

Zaujímavosti z vývoja a prevádzky:
    Meranie výšky hladiny vody sa realizuje pri procese merania až 10 krát, pričom sa výsledky priemerujú pre dosiahnutie čo najmenšej odchýlky.
    Plávajúci hmyz na hladine dokáže rozvibrovať vodnú hladinu a tým znemožniť meranie.
    Knižnica Ethernet2 (pre Wiznet W5500) použitá pri vývoji z roku 2019 je plne kompatibilná pre príkazy knižnice Ethernet (pre Wiznet W5100). Novšia verzia nie je plne kompatibilná. V existujúcej implementácii stačí iba zmeniť hlavičkový súbor knižnice a program je plne prenositeľný.
    Projekt je plne preložený do slovenského, anglického, nemeckého a ruského jazyka

Programovú implementáciu pre Arduino je možné nájsť v mojom Github repozitári: https://github.com/martinius96/hladinomer-studna-scripty/tree/master/examples/HTTP_RG-11, kde je možné nájsť aj potrebné knižnice pre ultrazvukový senzor vzdialenosti HC-SR04, prípadne JSN-SR04T a knižnicu Ethernet2 pre Ethernet modul Wiznet W5500.

Zrážkomer RG-11 knižnicu nepotrebuje, generuje logický signál, ktorý načítavame v prerušení. Vzorový program odosiela dáta do testovacieho webového rozhrania na adrese: http://arduino.clanweb.eu/studna/ Katalógový list Hydreon RG-11: https://www.fondriest.com/pdf/hydreon_rg-11_manual.pdf


Odpovedať na tému [ Príspevok: 1 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Hladinomer - Arduino, ESP32, ESP8266 + ultrazvuk

v Články

0

1293

22.09.2019 0:01

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kurzy (krypto)mien - Arduino / ESP32 / ESP8266

v Články

0

1017

15.11.2019 1:03

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

1323

16.01.2020 23:59

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Senzorická sieť v LAN sieti - Arduino + Ethernet / ESP32 / ESP8266

v Články

0

1068

21.02.2020 23:13

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. P: Hladinomer - Monitor výšky hladiny - Arduino + ultrazvuk

v Predám

2

805

10.11.2021 12:44

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. OTA (Over The Air) - ESP32 - Arduino IDE

v Články

2

916

11.08.2020 7:37

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ovládanie hlasom pre Arduino/NodeMCU/ESP32/Raspberry/Orange Pi ... projekty

v Mikropočítače

1

2063

16.09.2017 9:16

ado130 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Smart rekuperacia pomocou ESP8266

v Ostatné

9

220

18.08.2023 15:12

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Meteostanica s ESP8266 - NodeMCU

v Články

0

1860

06.02.2019 2:03

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hlasom ovládané auto - ESP8266 (NodeMCU)

v Články

2

986

10.01.2020 18:25

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. GRBL, UNO+ ESP32

v Mikropočítače

0

676

15.05.2021 23:23

stevo512 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Autonómne vykurovanie cez internet s ESP8266

v Články

0

3346

15.01.2019 18:21

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ESP32 - PHY Ethernet LAN8720

v Články

0

1795

20.10.2022 21:00

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ESP8266 - Ovládanie hlasom cez Amazon Echo Dot

v Články

3

1231

30.05.2020 23:37

stiv Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ovládanie ESP32 prostredníctvom UDP datagramov

v Články

0

1147

31.08.2019 0:13

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Wifi teplomer s ESP8266 v STA - AP móde

v Články

0

1161

04.02.2019 0:05

martinius96 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra