ESP32 vďaka svojej nízkej spotrebe nájde využitie v Low Power aplikáciách a taktiež aj v ostrovných systémoch. Ostrovné systémy využívajú prevádzku na batériu a pri dobíjaní solárnym panelom dokážu tieto systémy fungovať nepretržite v prípade vhodne dimenzovaných komponentov.
Dnes si ale ukážeme, že existujú aj aplikácie bez batérii, výhradne so solárnym napájaním, čo znamená, že tieto systémy fungujú cez deň a umožňujú plnohodnotnú prevádzku aj bez potreby batérie v daných hodinách. Takýto typ projektu ale nebude vhodný pre kritické aplikácie ako napr. monitorovanie vytopenia, či teplôt počas dňa pre riadenie. Preto budeme tento systém demonštrovať na systéme hladinomera, ktorý vysiela dáta priemerne raz za 5 minút cez LoRaWAN, prípadne WiFi. Zariadenie tak bude vysielať v 5 minútovom intervale dovtedy, pokým ho bude solárny panel schopný napájať. Bežne dokáže byť zariadenie online počas dňa 6 až 10 hodín v závislosti od ročnej doby.
V tomto systéme bude spotreba zariadenia nepodstatná. Ak má panel dostatočné slnečné žiarenie, dokáže systém napájať v standby režime, ale aj v režime spánku, kde sa spotreba pohybuje v desiatkach mikroampérov, avšak s devkitmi na úrovni jednotiek miliampérov. Systém v našom prípade využíval ultrazvukový senzor vzdialenosti JSN-SR04T / HC-SR04, mikrokontróler ESP32 LoRa32 TTGO s integrovaným obvodom SX1276 pre LoRa moduláciu, ktorý umožňuje dáta prenášať cez sieť LoRaWAN.
Solárny panel, ktorý bol použitý pre systém je monokryštalický a má 5V a 7.5W max výstup, pričom je vybavený aj integrovaným microUSB káblom pre napájanie mikrokontroléra (môže sa využiť aj na napájanie iných komponentov). Tento panel by dokázal generovať dostatočné množstvo prúdu (viac ako 1A) aj pre napájanie batérie Li-Ion, prípadne Li-pol, ktorú som však pre túto demonštráciu nepoužil.
Všetky komponenty som vložil do HADEX ABS plastovej vodotesnej krabičky s IP66, ktorá je vhodná pre prevádzku v exteriéri. Do krabičky bolo nutné vyvŕtať dieru pre JSN-SR04T a taktiež aj pre napájací mikroUSB port.
Programová implementácia je dostupná na Githube projektu hladinomer:
https://github.com/martinius96/hladinomer-studna-scripty/blob/master/examples/Hladinomer/LoRaWAN/LoRaWAN.ino
Implementácia používa pinout kompatibilný pre TTGO LoRa32 dosku a zároveň definuje aj spreading factor pre odosielanie, respektíve prijímanie dát. Štandardne používa spreading factor 7 pre čo najrýchlejší prenos dát na úkor maximálneho dosahu. Je možné použiť aj vyšší spreading factor, maximálne 12, čo však zníži prenosovú rýchlosť a aj veľkosť payloadu, ktorý je možné preniesť. LoRaWAN bránu je nutné nastaviť samostatne pre parsing JSON payloadu, ktorý brána príjme. Nameraná rozdielová výška hladiny vody je pod kľúčom "data".
Live dáta na testovacom webovom rozhraní je možné vidieť na:
https://arduino.clanweb.eu/studna_s_prekladom/
Webové rozhranie môžete vyskúšať aj s vašim hardvérom s rôznymi technológiami prenosu - WiFi, Ethernet, NB-IoT, LoRa, LoRaWAN, GSM, či Sigfox. Okrem ESP32 môžete využiť aj väčšinou Arduino dosiek, či aj populárne jednojadrové procesory ESP8266 od Espressif System. Viac o projekte hladinomer na:
https://martinius96.github.io/hladinomer-studna-scripty/