Systém Batmonitor sme si na tomto blogu už predstavili. Ide o LoRa zariadenia ostrovného systému, ktoré jednosmerne komunikujú PPP metódou. LoRa prijímač po prijatí dát preposiela tieto dáta skrz WiFi na vzdialené webové rozhranie Watmonitor, ktoré dáta archivuje v dataaze a zároveň aj vizualizuje v grafoch, tabuľkovej vizualizácii. LoRa vysielač je umiestnený na poli a periodicky meria a odosiela napätie trakčnej / automobilovej batérie, ktorá napája elektrický oplotok, resp. generátor vysokonapäťových impulzov. Samotná trakčná batéria môže mať aj svoj solárny kontrolér, ktorý ju cez solárny panel dobíja, čo bolo aj v tomto prípade, ale nie je to podmienkou pre monitorovanie napätia.
Webové rozhranie dokáže dáta integrovať aj iných systémov skrz priame CURL volanie implementované v PHP kóde, či cez JSON endpoint a Node-RED flow pre účel sekundárnej archivácie a vizualizácie dát, prípadnej automatizácie iným systémom. Môžete tak využiť napríklad ThingsBoard, Blynk, Ubidots, ThingWorx, Home Assistant, Loxone a akýkoľvek iný systém s podporou REST API, prípadne MQTT, vrátane ERP a podnikových systémov Power BI, Grafana, Kibana...
Systém Batmonitor dokáže včasne upozorniť na pokles napätia batérie pod bezpečnú úroveň formou e-mailu. Podstatou systému je najmä šetriť čas, nakoľko už obsluha nemusí chodiť obdeň manuálne merať napätie batérie a môže sa venovať iným aktivitám. Dosah LoRa komunikácie je s priamou viditeľnosťou teoreticky až do 10 km. Hodí sa preto aj na odľahlé pasienky, lúky bez internetu, či mobilného pokrytia.
LoRa vysielač a prijímač projektu Batmonitor pozostávajú z rovnakého hlavného hardvéru. Využívajú devkit Lolin32, ktorý integruje ESP32-WROOM-32 procesor, spolu s nabíjacím obdovom TP4056 (alebo alternatívnym) pre nabíjanie lítiových batérii typu Li-Ion / Li-pol. Toto je základ ostrovného systému, ktorý dokáže nabíjať batériu a bežať z batérie počas celého roka. Energiu zariadeniu dodáva solárny panel 100x100 mm so špičkovým výkonom 3 Wp (v laboratórnych podmienkach, za reálnych podmienok je to skôr 1,2 Wp, prípadne menej).
Zariadenia majú rovnaký LoRa modul RA-02 s čipsetom Semtech SX1278, ktoré operujú vo frekvenčnom pásme 433 MHz. Tieto komponenty sú umiestnené na prepojovacej DPS 433_LoRa_Lolin32, ktorú som si sám navrhol. Vďaka systému pinových líšt (modulárny dizajn) sú komponenty iba zasunuté a dajú sa kedykoľvek vymeniť v prípade potreby bez nutnosti spájkovania, jednoducho sa starý vytiahne a zasunie nový.
Hardvér na DPS 433_LoRa_Lolin32
Systém bol oficiálne uvedený do prevádzky 8. Mája 2025 a o 11:32 hod prijal prvé dáta. Vysielač bol umiestnený do plastovej krabice spolu s generátorom vysokonapäťových impulzov, autobatériou, ktorá bola vybavená aj vlastným solárnym panelom s výkonom 18 Wp a elektronikou (kontrolérom), ktorá riadi dobíjanie autobatérie z panela. Preto bol LoRa vysielač pripojený k 12V batérii skrz očká priamo na batériové svorky pod M6 skrutku, obdobne ako nabíjacia elektronika autobatérie. Samotné svorky od autobatérie boli pripojené ku generátoru vysokonapäťových impulzov Pomelac EBS 872, ktorý dáva energiu impulzov do 0,8 J.
LoRa vysielač s 3 dBi anténou v krabici s elektronikou generátora pri spustení systému
Prijímač bol nainštalovaný doma na balkóne, aby mal čo najlepšiu viditeľnosť k vysielaču a bol zároveň v dosahu domácej WiFi siete, cez ktorú dáta zasiela do databázy vykonaním HTTPS POST requestu na REST API. Pri prevádzke sa spočiatku začali objavovať značné problémy s veľkým zastúpením šumu v signále, ktorý sa skokovito menil. To naznačovalo, že dáta nie sú prijímané priamo, lebo nie je priama viditeľnosť medzi zariadeniami, ale dáta sa prijímajú odrazmi, najmä od plechových striech okolitých hospodárskych budov. Ako sa ukázalo aj analýzou zo softvéru UISP Design Center, pre aktuálne osadenie vysielača a prijímača neexistovala priama viditeľnosť z dôvodu kopca v ceste.
Bez priamej viditeľnosti pri štandardných LoRa anténach
Okrem toho začali aj problémy so spotrebou elektrickej energie na prijímači, ktorá bola značná a batéria vydržala iba krátku dobu. Standby odber bol niekde na úrovni 80 až 100 mAh, čo zapríčinilo vybitie 2000 mAh batérie za 20 hodín, ak nebola dobíjaná. Keďže je balkón vedľa susedného domu a otočený na západ, značnú časť dňa bol balkón v zákryte a slnko svietilo na panel iba minimálne, len niekoľko minút, čo len predĺžilo beh na batériu, ale výroba neprekročila denný odber. Pri poklese napätia pod určité napätie už prijímač neprijímal dáta. I keď by samotný LoRa modul dokázal bežať, ESP32 už nie.
Muselo sa to riešiť dennou výmenou Li-Ion batérie a najlepšie v časovej medzere medzi prijímaním dát, aby nedošlo k výpadku. Nebolo to náročné meniť, keďže išlo o Li-Ion batérie v držiaku, ale bolo potrebné ich následne nabíjať. Keďže som nemal nabíjačku priamo na Li-Ion, tak som dobíjal cez ďalší Lolin32 devkit, ktorý bol pripojený do USB portu počítača. Ak sa na výmenu batérie zabudlo, tak sa zariadenie vybilo pod určitú hodnotu a ESP32 už nechcelo naštartovať, ani keď to začalo batériu dobíjať, zrejme ostalo v nejakom zacyklenom stave z ktorého sa len napätím nedokázalo dostať a bol potrebný reštart tlačidlom / plným odpojením napájania a jeho opätovým pripojením. Bolo treba sledovať napätie aspoň orientačne, aby k vybitiu batérie nedošlo v noci, keď ju nema čo dobíjať, potom by došlo k niekoľko hodinovému výpadku, čo sa tiež stalo a nie raz.
LoRa prijímač s 3 dBi anténou
16. Mája tak následovala úprava softvéru, kedy sa low power softvér realizoval aj na vysielači, aby nedošlo k niečomu podobnému, i keď vysielač bol značne úspornejší. Zariadenia boli offline viac ako týždeň, nakoľko sa značne laborovalo s prijímačom a implementáciou ULP softvéru, kde sa realizovalo prebudenie mikrokontroléra ESP32 v režime light sleep skrz DIO0 pin na LoRa module, ktorý prechádza do stavu HIGH, ak prijíme paket. Pri prebudení z light sleep nenastáva reštart, ale ESP32 pokračuje v programe ďalej za príkazom pre light sleep. Nedôjde tak k vymazaniu konfigurácie, či buffru s dátami, teda ESP32 ich vie okamžite po prebudení prečítať a vykonať HTTPS POST request pre zápis dát do Batmonitora.
Softvérovo to funguje tak, že sa prv periféria nastaví na konfiguráciu, ktorú mu zašle host kontróler po SPI, zároveň sa LoRa modul prepne do režimu kontinuálneho počúvania, následne ESP32 prechádza do režimu hlbokého spánku, avšak musí kontrolovať, aby nedošlo ku zmenám stavov na určitých pinov, čo spôsobí reštart (vymaže konfiguráciu) / stav pinu spôsobí nefunkčnosť modulu. To sa veľmi ľahko u ESP32 stane, ktoré nastaví piny na určitý stav v momente, keď sa uspí. V takom prípade by už k prebudeniu mikrokontroléra nedošlo, lebo by sa reštartoval a nemal by platnú konfiguráciu na daný kanál, sync word a pod.
Devkity samé o sebe majú vyšší odber, keďže majú napájaný USB-UART prevodník a majú aj integrovaný LDO. Na strane vysielača sme dosiahli v režime hlbokého spánku odber niečo nad 2 mAh, na strane prijímača niečo okolo 13 mAh s kontinuálnym prijímaním cez LoRu a light sleepom. S pribúdajúcou dobou systému a začiatkom leta začalo byť slnko vyššie, čo predlžovalo dobíjanie prijímača zo solárneho panela. S daným odberom už solárny panel stačil plne dobíjať batériu aj na prijímači. Možno k tomu prispelo aj to, že v lete už bolo slnko vyššie a prispelo to aj k dobe svitu na panel, či prevádzka zariadenia prijímača na výšku, kedy bola väčšia časť panela otočená voči slnku, ako keď bol na ležato a nebol tak ideálny uhol dopadu slnečných lúčov.
Keďže SNR (pomer signálu voči šumu) bolo stále zlé, rozhodol som pre iné antény. Pôvodné antény mali zisk 3 dBi a boli malé, ktoré sa montovali priamo na SMA konektor. Zakúpil som 433 MHz univerzálne antény s výškou 15 cm a ziskom 5 dBi, ktoré mali 30 mm magnetickú základňu a tiež 2 metrový kábel. Na strane prijímača som tak mohol anténu vyviesť až priamo na strechu domu a u vysielača na priľahlý stĺpik. Na oboch stranách sa tak navýšila anténa minimálne o 1,5 metra, čo značne zlepšilo parametre signálu.
Bolo viditeľné aj to, že frekvenčný ofset sa z 3,1 kHz znížil na 2,4 kHz pri rovnakej teplote vysielača a prijímača, to poukazuje na lepšie impedančné prispôsobenie antén (50 ohm) voči tým, ktoré boli na zariadeniach pôvodne. Oba frekvenčné ofsety sú ale v norme. Pre šírku pásma 125 kHz je prípustné +- 20 ppm ofsetu, čo odpovedá +- 8600 Hz. Ak by ste prešli na nížšie šírky pásma (u iných spreading faktorov), a frekvenčný ofset by presiahol +- 20 ppm, komunikácia by nefungovala.
15 cm vysoká 433 MHz anténa so SMA konektorom a 2m káblom, 5 dBi
Neprekročil sa limit vysielacieho výkonu s týmito anténami, keď majú vyšší zisk?
Nie. Norma ETSI EN 300 220, pod ktorú spadá 433 MHz pásmo definuje dve základné veci. Vysielací výkon a duty cycle. V našom prípade je duty cycle 0,2% z 10% možných nakoľko vysielame len raz za 10 minút a to po dobu 1,2 sekundy. Maximálny dovolený vysielací výkon je 12,15 dBm EIRP. V našom prípade máme celkový výkon 12 dBm, čo odpovedá 7 dBm PA nastaveniu (samotný vysielač Semtech modulu) a + 5 dBi zisk všesmerovej (OMNI) antény. Je tam rezerva 0,15 dBm, ale v skutočnosti je to viac. Je to dané práve káblom, na ktorom prirodzene vznikajú straty (útlm).
Čím kvalitnejší kábel, tým je strata menšia. Anténa používa najbežnejší kábel RG174, ktorý má menovitú stratu 0,7 dBm na meter. To je pri dĺžke 2 metre - 1,4 dBm. Ak by sa používal kvalitnejší kábel, napríklad RG58, strata by bola 0,3 dBm na meter, čo predstavuje 0,6 dBm pre náš prípad. Teda reálne máme namiesto 12 dBm výkonu len 10,6 dBm, spĺňame tak požiadavky normy po stránke vysielacieho výkonu, aj duty cycle. Z pôvodných hodnôt pre SNR (-20 dBm až -5 dBm sme sa dostali na 6 dBm a dokonca počas prevádzky projektu sme prišli až na 11 dBm). Tie hodnoty sa samozrejme počas roka menili, keďže dozrievala vegetácia, stromy mali listy a husté koruny, rástlo aj obilie na poliach, tráva.
Neskúmal som maximálny možný dosah s priamou viditeľnosťou pre túto aplikáciu. Myslím si, že 10 km nie je možné dosiahnuť so zákonným limitom vysielacieho výkonu, ale tak 3 až 5 kilometrov si myslím, že by bolo možné. Je však pravdou, že som videl mnoho videí s LoRa prenosom aj na stovky kilometrov s priamou viditeľnosťou. Niekedy možno vyskúšame príjem aj na väčšie vzdialenosti.
Teoretická priama viditeľnosť pri iných LoRa anténach s káblom a navýšením ich vzájomnej výšky
(menej ako 1 meter v najužšom mieste prechodu signálu, značne zlepšené parametre SNR, stabilita)
Pri anténe s káblom, ktorý máte vovedený do krabičky dbajte na fakt, že je anténa vyššie, ako zariadenie. Teda prirodzene, ak bude pršať, tak voda po kábli poputuje gravitáciou dole. Preto je potrebné na kábli urobiť tzv. drip loop , čo zabezpečí, že sa voda nedostane do zariadenia, ale ostane v najnižšom bode, kde je slučka a odkiaľ prirodzene odkvapká. S káblom RG174 neurobíte estetické dielo pre odkvapkávaciu slučku, skrátka kábel je predtvarovaný podľa toho, ako bol uložený v krabici ešte z Číny.
LoRa prijímač s 5 dBi anténou a slučkou pre odkvápkavanie vody
Prevádzka systému započala 8. Mája a bola ukončená: 3. Októbra 2025. Celkovo obsahoval Batmonitor záznamy zo 146 dní. Teoreticky za túto dobu mohol hardvér zapísať 21024 záznamov, ale aj z dôvodu občasných výpadkov, či softvérových úprav, kedy bol hardvér odstránený z poľa bolo zapísaných za toto obdobie 18293 záznamov. Celkovo tak bol systém on-line 87% možného času. Najvyššie namerané napätie bolo 14.65 V dňa 11. Mája o 14:11 hodm neskôr už nikdy, keďže sa prenastavovali hodnoty udržiavacieho napätia v kontroléri na nižšie.
Najnižšie namerané napätie bolo 7.56 V dňa 3. Októbra o 03:54 hod. Tak nízke napätie bolo spôsobené tým, že jednak to bola batéria s odpáleným článkom, ktorý zrejme ani elektronika kontroléra nevedela poriadne nabíjať a tiež bolo to v rade už niekoľko dní, počas ktorých nevyšlo ani slnko, čo malo za následok, že odber prevyšoval výrobu. Po iné noci dosahovala batéria najnižšie napätie cca 8,3V, i keď počas dní so slnkom a dobíjaní dokázala batéria vystúpiť aj na 12,9V. Graf nižšie ukazuje niekoľko dní, počas ktorých ani nevyšlo slnko + je tam videť aj deň, kedy došlo k anomálii a poklesu menovitého napätia batérie o 2V.
Nakoľko bola 12V autobatéria dobíjaná vlastným solárnym panelom a kontrolérom, nebol takýto uptime systému kritický. Prevádzku hodnotím pozitívne, išlo o prvé zariadenia, ktoré som takto nechal bežať na takú dobu nepretržitej prevádzky. Sú to cenné skúsenosti aj do budúcna.
Občasné výpadky by išlo kompenzovať obojsmernou LoRa PPP komunikáciou, čo by malo ale za následok ešte vyššie energetické požiadavky + vyššie požiadavky na duty cycle. S cieľom maximalizovať prevádzku na batériu som k tomu nepristúpil. Celkovo to ale hodnotím pozitívne. Do žiadného hardvéru nenatiekla voda, neskorodoval. Ako LoRa moduly, tak aj ESP32 devkity pracovali korektne a nevyžadovala sa ich výmena, rovnako tak bez problémov na devkite fungovalo aj dobíjanie batérii. Lolin32 môžem preto len odporúčiť.
Na rok už ale tento hardvér neplánujem využiť, chcem prejsť na ESP32-C6 XIAO na XIAO_LoRa DPS. Viac low-power friendly riešenie, i keď maximálny nabíjací prúd je nižší, ale nevadí. Pre tento účel a očakávanú spotrebu je nabíjací prúd viac než dostatočný. Doska má už napäťový delič integrovaný priamo na DPS a tak bude spájkovanie rezistorov pohodlnejšie. Nemusia sa už pájkovať na káble, ako u aktuálneho riešenia. Možno sa využije aj nejaký ďalší senzor, napríklad pre teplotu vzduchu, či meranie nejakých dát v pôjde, i keď tam sú senzory väčšinou na 5V. Čas ukážePočas Septembra bolo viacero daždivých dní po sebe a autobatéria sa dostala na historicky najmenšie hodnoty napätia, pod 12,25 V. Následne 7. Septembra došlo k anomálii. Merané napätie batérie odrazu kleslo o 2 volty na 10,21 V vo večerných hodinách, presne o 22 hod, ale je to náhoda, že to vyšlo presne vtedy. Na túto skutočnosť okamžite Batmonitor zareagoval a zaslal aj e-mail pre upovedomenie.
Takto nízke napätie sa ešte nikdy historicky pre túto inštaláciu nenameralo. Usudzoval som, že by mohol byť problém napríklad s ADC prevodníkom, kde boli pre napäťový delič použité veľké rezistory a šlo tak o vstup s vysokou impedanciou.
Následnou obhliadkou na druhý deň ráno sa potvrdilo, že autobatéria má 10,1V, čo ukazoval aj solárny kontrolér batérie. Teda aj LoRa hardvér meral správne. Čo sa vlastne stalo? Odišiel jeden z článkov batérie. Náhodou, takmer v noci, keď bola batéria najmenej namáhaná. Už aj tak bola tá batéria v minulosti vyradená z auta, kde už nebola spoľahlivá. Neprekvapilo to. Išlo prakticky o najlacnejšiu batériu na trhu z obchodného reťazca. Napätie v noci bolo niekde na úrovni 10,2 až 10,1V, počas dňa solárny panel dokázal batériu dobíjať a držať na 12,4V, ale keď slnko zašlo, bol tam rapídny drop v napätí.
Viditeľný prepad napätia autobatérie s odpáleným článkom
Viditeľné kolísanie napätia (zubkovitý priebeh napätia) poškodenej batérie, už nefungovala ako "tvrdý zdroj"
Aj s týmto nížším napätím oplotok funguje. Pravda, nerobí už 3000V, ale úmerne menej. No stále je efektívny na ochranu poľa voči divej zveri.
Čo sa týka hardvéru, nenastal žiaden problém, čo sa týka poruchy hlavných komponentov, či vynútenie ich výmeny. Komponenty dobre držali v pinových lištách a mali dobrý kontakt na všetkých pinoch. Rovnako tak som nenarazil ani na koróziu cínovaných spojov, i keď boli zariadenia vystavené vzdušnej vlhkosti. Krabičky sú síce IP54, ale otvor na SMA konektor antény nie je vzduchotesný a rovnako tak ani spoje plastových M3 skrutiek a matiek cez krabičku.
Vysielač bol vlhkosti vystavený určite viacej, keďže bol v krabici s elektronikou oplotku, kde dochádzalo k väčším teplotným výkyvom. U vysielača sa stalo akurát to, že na ten slnko pražilo prakticky väčšinu dňa a zrejme sa zahrieval aj na teploty nad 50°C. Plusový kábel od vysielača k terminálu 12V batérie trochu vyšedivel, inak nič. Zahrievanie vysielača malo za následok degragáciu lepidla na obojstranných páskach, ktoré držia solárny panel na krabičke. Po takejto žuvačkovej páske sa panel pomaly šmýkal, až sa vyosil vzhľadom na zariadenie, no nemali to vyplyv na funkčnosť a dobíjanie integrovanej Li-pol batérie 1000 mAh.
Aj táto batéria prežila dané tepelné namáhanie a neboli na nej žiadne stopy po nafúknutí, či podobne, teda aj samotný proces dobíjania sa zdal byť v poriadku, batéria nebola ani prebíjaná. Pri občasnom meraní, som stále na batérii nameral 4,15 až 4,2V. Spotreba vysielača bola malá a TP4056 po plnom nabití opätovne dobíjal od napätia asi 4,05V. Teda batéria cyklovala práve niekde od 4 do 4,2V, možno za daždivých dní bolo napätie o niečo nižšie. Batéria vysielača mala po dvoch týždňoch nepretržitého daždivého počasia 3,80V. U prijímača ale boli v tomto období už problémy, nakoľko sa nestíhal dobíjať a mal kontinuálny odber 13 mAh, čo mu vydržalo na max. 6 dní.
LoRa vysielač s 5 dBi anténou s hardvérom el. oplotku na poli
(vidieť vyosený solárny panel nad krabičkou, kde sa roztiekla obojstranná páska)
foto vyhotovená 1 mesiac pred ukončením prevádzky
Fotografie hardvéru po 146-tich dňoch po ukončení prevádzky ostrovnej aplikácie Batmonitor:
Hardvér vysielača s batériou Li-pol 1000 mAh
Hardvér prijímača s batériou Li-Ion 2000 mAh
Nastavenia LoRa zariadení, s ktorými bežali v ostrej prevádzke:
Vysielač:
Prijímač:
Na budúci rok už bude Batmonitor využívať XIAO dosku, buď s ESP32-C6, ale možno na strane vysielača by mohol byť zaujímavý aj čip od Nordicu - nRF52840, ktorý má na doske integrovaný merač napätia Li-pol / Li-Ion batérie, čo umožní do systému Batmonitor dostať aj dáta o napätí batérie LoRa zariadenia. Nič nie je potrebné spájkovať, žiadny externý napäťový delič, všetko má nRF52840 na doske.
Naľavo XIAO_LoRa s integrovaným napäťový deličom, napravo aktuálne riešenie s Lolin32
Na strane LoRa prijímača bude pravedpodobne ESP32-C6, alebo ESP32-C3 s WiFi konektivitou. Ak by ste mali záujem o existujúci hardvér Batmonitora, ktorý som používal na poli, založený na Lolin32 pre vlastnú potrebu, či projekt, napíšte na: martinius96@gmail.com K hardvéru viem dať aj low-power program, ktorý som používal, či aj Batmonitor webaplikáciu, ktorú môžete hostovať na vlastnom lokálnom serveri, alebo na webhostingu.