martinius96
New Member
Ofer o aplicație web programată pentru mine pentru proiectul Hladinomer. Aplicația web vă permite să înregistrați date privind nivelul apei din puțul săpat din nodul senzor. El efectuează 10 măsurători medii cu un senzor ultrasonic la intervale regulate (5 min) și trimite datele rezultate către server. Datele sunt vizualizate utilizatorului în interfața web în tabloul de bord sau istoric în timp în grafice, tabele cu până la un an în urmă.
Principiul măsurării senzorilor cu ultrasunete este de a trimite un semnal de declanșare cu o lungime de 10 μs (microsecunde), care sări de pe nivelul apei și revine la receptor - Echo. Metoda Time-of-Flight este folosită pentru a recalcula timpul dintre trimiterea și primirea semnalului pentru a obține nivelul diferențial al apei de la senzor.
După trimiterea datelor către interfața web, se efectuează o corecție, când se calculează nivelul real din fundul puțului, care este introdus în baza de date. Corectarea se face pe baza adâncimii cunoscute a puțului și a nivelului diferențial acceptat al apei de la senzorul ultrasonic. Interfața web din tabloul de bord vizualizează și volumul actual al puțului în litri, pe baza diametrului cunoscut al puțului. Ambele valori sunt, de asemenea, vizualizate cu o tendință de la măsurarea anterioară, adică. se ridică, coboară, stabilizat cu XY cm / cu XY litri.
Senzorii cu ultrasunete sunt potriviți pentru:
Senzorii cu ultrasunete NU sunt potriviți pentru:
Proiectul folosește un senzor de distanță ultrasonic HC-SR04 - (unghi de detectare 15 °) sau un senzor de testare a apei JSN-SR04T (unghi de detectare este de până la 60 °).
Platformele de microcontroler ESP8266 și ESP32 (Implementări de cablare) pot fi operate și în modul ULP (Ultra-Low Power), ceea ce le reduce dramatic consumul la nivelul de zeci de microamperi. Potrivit pentru funcționarea cu baterie timp de câțiva ani (este necesară utilizarea unui tranzistor pentru a comuta sursa de alimentare a senzorului, necesită modificarea codului sursă).
Al doilea mod de operare este StandBy, unde platforma rulează în modul standard și poate fi extinsă cu implementarea Over The Air (OTA), care oferă actualizări de firmware prin LAN direct din interfața ArduinoIDE, espota.py este folosit pentru procesul de încărcare. . Arduino cu Ethernet acceptă doar conectivitate HTTP și nu acceptă actualizarea OTA sau modul Low-power! Conexiunile criptate HTTP și HTTPS la serverul web pot fi utilizate pentru platformele ESP8266 și ESP32.
În cazul în care internetul fix nu este disponibil pe site, este posibil să se utilizeze și transmisia de date prin rețeaua IoT Sigfox, care acoperă zonele de graniță și marile orașe din România și majoritatea țărilor UE și este o alternativă potrivită pentru zonele fără acoperire internet. Este compatibil modemul SIGFOX WISOL 868MHz UART (SFM10R1), care comunică cu microcontrolerul prin comenzi AT prin UART.
Modemul este potrivit pentru aplicații IoT cu un consum redus de curent. Limita mesajului 12B (folosit 4B pentru nivelul apei UINT_32), apel invers personalizat de la backend-ul Sigfox execută cererea HTTP / HTTPS POST pentru a scrie date pe interfața web. Deoarece rețeaua Sigfox are un număr limitat de mesaje pe zi (140), măsurarea și transmiterea datelor se efectuează la fiecare 11 minute. În cazul unei licențe pentru 140 de mesaje, este posibil să se utilizeze alte - date de sistem pentru transmitere, de exemplu coordonatele GPS din sistemul Sigfox ATLAS (este necesară editarea fișierului pentru scriere în baza de date, + schimbarea câmpurilor tabelului ).
Pentru a rula proiectul, este necesar să existe un server web cu suport Apache/Nginx (pentru scripturi .php) pe adresa IP publică sau în rețeaua LAN, unde platforma trimite date de la senzorul ultrasonic. ATENTIE, in cazul functionarii Sigfox serverul trebuie sa fie accesibil de pe Internet, altfel nu se pot scrie date! Serverul web rulează o aplicație care vizualizează cele mai recente date ale utilizatorului într-un raport dinamic cu un indicator de conectivitate la microcontroler.
Interfața web conține și o înregistrare a înregistrărilor - valoarea maximă, minimă a nivelului apei în 24 de ore, 7 zile, 30 de zile. Aceste date sunt vizualizate în reprezentarea ceasului cu alarmă. Valorile maxime și scăzute indică un randament continuu.
Aplicația web are, de asemenea, diverse date configurabile care sunt necesare pentru a determina corect nivelul apei - adâncimea puțului până la fund (servează ca valoare de calibrare pentru măsurători). Senzorul cu ultrasunete returnează nivelul apei din partea de sus a puțului, nu din partea de jos.
Datele sunt trimise către interfața web prin protocolul HTTP / HTTPS cu sarcină utilă POST. Microcontrolerul este autentificat printr-un parametru din cererea POST. Acțiunile din interfața web (ștergerea înregistrării, configurarea setărilor, afișarea codului sursă pentru microcontroler) sunt în spatele logării prin HTTP Auth Basic - nume și parolă (se recomandă utilizarea interfeței web sub HTTPS).
Proiectul este potrivit și pentru profani, pentru implementarea interfeței web este disponibil un document .pdf cu instrucțiuni, care explică pas cu pas configurarea și lansarea proiectului pe web hosting/server web local.
Proiectul poate fi testat în prealabil cu hardware-ul dumneavoastră pe interfața web de testare (voi trimite linkul în mesaj). Ultimele date măsurate recalculate din interfața web pot fi transferate către MQTT Broker (cu un alt microcontroler care acționează ca client JSON - sunt disponibile implementări de program). Aceste date sunt distribuite în format JSON pe subpagina .php. Poate fi integrat în propria ta automatizare (Domoticz, Hassio, Loxone etc.) și poate vizualiza datele de la contorul de nivel în alte vizualizări, de ex. Grafana. Apoi este posibil să vă creați propria automatizare pentru udarea grădinii, irigare etc. pe baza datelor despre nivelul apei.
La cerere, puteți încerca în avans o aplicație web cu funcții complete (cu excepția HTTP Auth în subpaginile de setări și cod sursă) cu hardware-ul dvs. Furnizez exclusiv o soluție software. Nu ofer hardware sau instalarea lui!
Alte tipuri de senzori de nivel de apă care pot fi integrați (trebuie să vă creați propriul firmware):
Interfața web este disponibilă în slovacă, germană, rusă și engleză. Slovaca este limba implicită.
Prețul este fix, 50 € = 250 lei pentru codurile sursă ale interfeței web.
Mai multe informații despre proiect cu posibilitatea de a încerca proiectul gratuit cu hardware-ul dumneavoastră pot fi găsite la: https://martinius96.github.io/hladinomer-studna-scripty/ro/
Există, de asemenea, un firmware plug n 'play compilat pentru ESP8266 și ESP32. Firmware-ul este disponibil pentru modurile de operare Standby și Ultra-Low-Power. Firmware-ul poate fi încărcat pe microcontroler fără a fi nevoie să instalați biblioteci. Acest lucru permite ca proiectul să fie testat imediat cu hardware-ul dvs. pe o interfață web de testare.
Firmware-ul este încărcat în microcontroler prin ESPTOOL (parte a arhivei firmware .zip). Configurarea la rețeaua WiFi de acasă se realizează prin WiFiManager. Atâta timp cât ESP nu are o configurație validă, își trimite SSID-ul Hladinomer_AP cu propria interfață web WiFiManager cu Captive Portal, unde sunt configurate SSID-ul și parola.
Este posibil să se integreze hardware vândut comercial cu suport LPWAN IoT al rețelelor NB-IoT / LoRaWAN / Sigfox în proiect printr-un callback setat corespunzător:
Senzorii cu ultrasunete sunt potriviți pentru:
- Săpat fântâni
- Septice și gropi
- Pârâuri și lacuri
- Rezervoare din plastic pentru apă de ploaie
- Silozuri (măsurarea umplerii în vrac)
- Containere (monitorizarea deșeurilor, umplerea containerelor de colectare)
- Cazane (monitorizarea lemnului, peleților, cărbunelui, așchiilor de lemne)
- Cămine și pivnițe (încălzire / monitorizare ape subterane)
Senzorii cu ultrasunete NU sunt potriviți pentru:
- Sonde forate (datorită caracteristicilor de detectare - fascicul larg)
- Țevi și tuburi (datorită caracteristicilor de detectare - fascicul larg)
- În puțurile cu afluent (nivelul turbulent atenuează ultrasunetele, măsurarea este imposibilă)
- În locuri cu o schimbare bruscă a temperaturii (temperatura afectează timpul de propagare a sunetului, astfel încât chiar și nivelul staționar pare să fluctueze)
- Pentru rezervoarele de vid (măsurarea este imposibilă)
Proiectul folosește un senzor de distanță ultrasonic HC-SR04 - (unghi de detectare 15 °) sau un senzor de testare a apei JSN-SR04T (unghi de detectare este de până la 60 °).
Pot fi utilizați și alți senzori ultrasonici cu semnale Trigger/Echo din seria RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING). Unghiul de detectare reprezintă lățimea fasciculului, resp. un con care se lărgește cu distanța. Este posibil să se măsoare nivelul până la 400 resp. 450 cm max (pe baza datelor din fișa de catalog a senzorilor individuali).
Pentru nodul senzor poate fi utilizată o placă de dezvoltare Arduino (Uno / Mega) cu modul Ethernet Wiznet W5100 sau W5500 sau versiunea sa mai nouă USR-ES1 (W5500 V2). Microcontrolerele WiFi de la Espressif Systems - ESP8266 (NodeMCU, Wemos D1 Mini, Generic Board) sau ESP32 (Devkit, sau un modul separat, cum ar fi ESP32-WROOM-32 / ESP32-S) pot fi folosite pentru transmisia de date prin aer. Schema de cablare pentru toate microcontrolerele este disponibilă direct în aplicația web împreună cu codurile sursă în limbajul Wiring (.ino app), resp. pentru ESP32 implementare disponibilă și în cadrul ESP-IDF cu sistem de operare în timp real - FreeRTOS cu mecanism de blocare a sarcinilor de coadă. Interfața web pentru contorul de nivel poate genera automat cod sursă pentru microcontrolere în funcție de locația proiectului, domeniului etc. (modificare necesară a certificatului Root CA care a emis certificatul pentru domeniul dat).Platformele de microcontroler ESP8266 și ESP32 (Implementări de cablare) pot fi operate și în modul ULP (Ultra-Low Power), ceea ce le reduce dramatic consumul la nivelul de zeci de microamperi. Potrivit pentru funcționarea cu baterie timp de câțiva ani (este necesară utilizarea unui tranzistor pentru a comuta sursa de alimentare a senzorului, necesită modificarea codului sursă).
Al doilea mod de operare este StandBy, unde platforma rulează în modul standard și poate fi extinsă cu implementarea Over The Air (OTA), care oferă actualizări de firmware prin LAN direct din interfața ArduinoIDE, espota.py este folosit pentru procesul de încărcare. . Arduino cu Ethernet acceptă doar conectivitate HTTP și nu acceptă actualizarea OTA sau modul Low-power! Conexiunile criptate HTTP și HTTPS la serverul web pot fi utilizate pentru platformele ESP8266 și ESP32.
Pentru a rula proiectul, este necesar să existe un server web cu suport Apache/Nginx (pentru scripturi .php) pe adresa IP publică sau în rețeaua LAN, unde platforma trimite date de la senzorul ultrasonic. ATENTIE, in cazul functionarii Sigfox serverul trebuie sa fie accesibil de pe Internet, altfel nu se pot scrie date! Serverul web rulează o aplicație care vizualizează cele mai recente date ale utilizatorului într-un raport dinamic cu un indicator de conectivitate la microcontroler.
Interfața web conține și o înregistrare a înregistrărilor - valoarea maximă, minimă a nivelului apei în 24 de ore, 7 zile, 30 de zile. Aceste date sunt vizualizate în reprezentarea ceasului cu alarmă. Valorile maxime și scăzute indică un randament continuu.
Prin urmare, măsurarea este scăzută din această valoare de calibrare pentru a determina nivelul real al apei din partea de jos. Al doilea parametru variabil este diametrul sondei. Setarea diametrului puțului este importantă pentru transformarea nivelului la un litru prin lupta cu puțul. Subpagina de setări conține și o estimare a adâncimii maxime a sondei la un diametru dat pentru cele mai precise măsurători fără reflexii - ține cont de caracteristicile de detectare ale senzorului.
Această estimare a adâncimii maxime a sondei este realizată prin trigonometrie și permite utilizatorului să selecteze mai bine senzorul pentru cerințele sale în ceea ce privește dimensiunile sondei sale.Datele sunt trimise către interfața web prin protocolul HTTP / HTTPS cu sarcină utilă POST. Microcontrolerul este autentificat printr-un parametru din cererea POST. Acțiunile din interfața web (ștergerea înregistrării, configurarea setărilor, afișarea codului sursă pentru microcontroler) sunt în spatele logării prin HTTP Auth Basic - nume și parolă (se recomandă utilizarea interfeței web sub HTTPS).
Proiectul este potrivit și pentru profani, pentru implementarea interfeței web este disponibil un document .pdf cu instrucțiuni, care explică pas cu pas configurarea și lansarea proiectului pe web hosting/server web local.
Proiectul poate fi testat în prealabil cu hardware-ul dumneavoastră pe interfața web de testare (voi trimite linkul în mesaj). Ultimele date măsurate recalculate din interfața web pot fi transferate către MQTT Broker (cu un alt microcontroler care acționează ca client JSON - sunt disponibile implementări de program). Aceste date sunt distribuite în format JSON pe subpagina .php. Poate fi integrat în propria ta automatizare (Domoticz, Hassio, Loxone etc.) și poate vizualiza datele de la contorul de nivel în alte vizualizări, de ex. Grafana. Apoi este posibil să vă creați propria automatizare pentru udarea grădinii, irigare etc. pe baza datelor despre nivelul apei.
La cerere, puteți încerca în avans o aplicație web cu funcții complete (cu excepția HTTP Auth în subpaginile de setări și cod sursă) cu hardware-ul dvs. Furnizez exclusiv o soluție software. Nu ofer hardware sau instalarea lui!
- Laser (LiDAR)
- Hidrostatic (submersibil)
- Electrostatic (capacitiv/inductiv)
- Presiune (diferențială / cu senzor de presiune atmosferică compensatoare)
- Optic
- mecanic (plutitor)
- Magnetic (Sală)
- Cuptor cu microunde (radar)
- Ultrasunete - alt tip de ieșire (UART, RS-232, buclă de curent 4-20 mA, Modbus TCP / RTU, M-bus, RS-485, PROFINET, CAN ...)
- Notă: Dacă calculul nivelului apei din partea de jos este efectuat pe partea microcontrolerului, este necesar să setați adâncimea puțului la 0 cm pe interfața web.
Interfața web este disponibilă în slovacă, germană, rusă și engleză. Slovaca este limba implicită.
Prețul este fix, 50 € = 250 lei pentru codurile sursă ale interfeței web.
Mai multe informații despre proiect cu posibilitatea de a încerca proiectul gratuit cu hardware-ul dumneavoastră pot fi găsite la: https://martinius96.github.io/hladinomer-studna-scripty/ro/
Există, de asemenea, un firmware plug n 'play compilat pentru ESP8266 și ESP32. Firmware-ul este disponibil pentru modurile de operare Standby și Ultra-Low-Power. Firmware-ul poate fi încărcat pe microcontroler fără a fi nevoie să instalați biblioteci. Acest lucru permite ca proiectul să fie testat imediat cu hardware-ul dvs. pe o interfață web de testare.
Este posibil să se integreze hardware vândut comercial cu suport LPWAN IoT al rețelelor NB-IoT / LoRaWAN / Sigfox în proiect printr-un callback setat corespunzător:
- WSSFC-ULC
- HummBox
- EM500
- MiniUni