blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
3
SLEDUJETE BLOG
Programátor
deadawp



Monitorovanie napätia 12V batérie
pridal deadawp 9.5. 2025 o 18:51 (naposledy upravené 1.7. 2025 o 18:52)

LoRa je technológia pre prenos dát na veľké vzdialenosti, ktorá vyniká aj odolnosťou voči rušeniu, či prenosu dát aj cez prekážky, kde by iné technológie zlyhali. LoRa je výborná pre použitie tam, kde nemáme WiFi, či inú formu pripojenia k internetu a chceme prenášať dáta. Dnes si ukážeme LoRa systém využívajúci PPP komunikáciu (bod-bod) v aplikácii monitorovania napätia trakčnej batérie, ktorá napája elektrický oplotok. Batéria je štandardne olovená s menovitým napätím 12V. Tento projekt je vhodný pre poľnohospodárske družstvá, samostatne hospodáriacich roľníkov, chovateľov dobytka a zvierat, ktorí potrebujú merať napätie batérie ich oplotku. Nájde využitie aj v iných odvetviach pre podobný účel.

Opisované LoRa zariadenia fungujú v páre. Jedno funguje ako vysielač a meria napätie batérie skrz napäťový delič a druhé funguje ako prijímač, ktorý po prijatí dát dokáže dáta preposlať ďalej do databázy do vlastnej webaplikácie, ktorá k projektu bola vytvorená - Batmonitor, alebo môže dáta prenášať aj po MQTT protokole na ľubovoľnú IoT cloudovú službu. Obe zariadenie majú identický hardvér a sú osadené na mnou navrhnutej prepojovacej doske 433_LoRa_Lolin32.

Trakčná batéria, ktorej napätie sa meria permanentne napája elektrický oplotok, resp. zdroj (generátor) impulzov, ktorý do oplotku generuje krátke vysokonapäťové pulzy (bežne od 3 do 12-tisíc voltov), ktoré odrádzajú zver od prekročenia plota a chránia tak úrodu pred možnou škodou, prípadne chované zvieratá pred útekom z ohrady, či pred zverou zvonku, ktorá sa k ním môže dostať a napáchať veľké škody.


Trakčná 12V batéria a generátor vysokonapäťových impulzov Pomelac

V tomto prípade je trakčná batéria dobíjaná solárnym panelom skrz samostatný solárny kontróler, ktorý celý proces dobíjania riadi. Kontróler má konfigurovateľné režimy prevádzky, prahové napätia. Má dokonca aj relé výstup, kde je možné pripojiť záťaž, či už do svorkovníc, alebo do USB-A výstupov (len 5V). Taktiež nechýba ani funkcia časovača pre spúšťanie záťaže v potrebnom čase a ďalšie... Toto je len doplnková funkcionalita, ktorá nie je potrebná k aplikácii zberu údajov o napätí batérie. Nakoľko ale je batéria dobíjaná, je možné sledovať aj napätie na svorkovách batérie počas dobíjania a kontrolovať tak, či bola počas dňa batéria dobíjaná a v akých napätiach sa pohybuje. Inými slovami, uvidíme napätie batérie aj nad 12,6V, čo je napätie plne nabitej batérie v kľudovom stave. Pri prevádzke bez dobíjania batérie by sme videli len úmerne klesajúce napätie.


Solárny panel a nabíjací solárny kontróler pre správu nabíjania a ovládanie záťaže

Stávalo sa po minulé roky, že divá zver (jelene, divé svine) strhla plot na zem pri pokuse o prekročenie plotu a to malo za následok prebíjanie ohradníka do zeme, čo drasticky zvýšilo odber. Druhým faktorom bolo, že ak narástla dostatočne vysoká tráva a dotýkala sa oplotku, býval problém najmä pri a po daždi, keď bola tráva mokrá a skrz ňu prebíjal oplotok taktiež do zeme. Behom 24 až 48 hodín toto dokázalo vybiť batériu aj pod 8V z plne nabitého stavu.

Z dlhodobého hľadiska to má negatívny vplyv aj na kapacitu batérie z dôvodu sulfatácie a podobne. Preto sa musela batéria pravidelne chodiť merať minimálne raz za 2 až 3 dni. V záujme o uľahčenie si života a automatizácie tejto funkcionality využijeme pre tento účel senzorový uzol (LoRa vysielač založený na mikrokontréri ESP32), ktorý bude vykonávať merania napätia batérie v pravidelných intervaloch a posielať tieto dáta ďalej.

Pôvodne som riešenie chcel vytvoriť na doske XIAO_LoRa, avšak pájkovanie batérie priamo na pady zo spodnej časti XIAO dosky sa mi veľmi nepáčilo, zvlášť, keď som nemal JST XH konektor (v SMD verzii) s roztečou 2,54 mm, teda v obdobnom prevedení ako to má PH 2.0 verzia na Lolin32 devkite. Baterku som nechcel natvrdo pájkovať bez možnosti odpojenia, keďže som zariadenie zostavoval vždy až na mieste. Preto som sa rozhodol pre 433_LoRa_Lolin32 DPS (napravo).


Neosadená DPS XIAO_LoRa a 433_LoRa_Lolin32


Osadená DPS XIAO_LoRa a druhá DPS 433_LoRa_Lolin32 (okrem OneWire a ADC1_CH5 konektora) a porovnanie ich veľkostí oproti 2€ minci

Doska 433_LoRa_Lolin32 obsahuje možnosti pripojiť:

  • ADC vstup (3V3, GND, ADC_IN)
  • OneWire senzor (3V3, GND, DATA)
  • I2C periféria (3V3, GND, SDA, SCL) - hardvérová I2C
  • Solárny panel (5V_IN, GND)
  • RA-02 (Semtech SX1278 - SPI bus + DIO0)
  • Lolin32 (Wemos V1.0.0)

V porovnaní s XIAO_LoRa doskou, 433_LoRa_Lolin32 nediposnuje miestom pre spájkovanie rezistorov pre napäťový delič priamo na DPS. Z toho dôvodu ich bolo nutné napájkovať priamo na kábel, ktorý ide k batérii na strane vysielača. Použil som rezistory, ktoré šuflík dal. Pri výbere som dbal nato, aby som pokryl celé možné napätie batérie, ktorá je dobíjaná. Štandardne môže mať až 14,8 V (pre ľahšie výpočty zaokrúhlime na 15V).

Nakoniec som sa rozhodol pre kombináciu 470K rezista na vstup deliča a 100K rezistor do zeme deliči. Z takéhoto pomeru rezistorov vzniklo to, že výstupné napätie deliča je 5,7-krát menšie od vstupného. Nevyužije sa tak celý 3V3 rozsah ESP32 a jeho ADC pinu, pri napätí batérie 15V bude na výstupe deliča 2.63V, teda je tam ete viac ako 0,6V rezerva na zvyšovanie vstupného napätia ešte o viac ako 3V, teda limit je niekde okolo (nad) 18V vstupu.


Napäťový delič v pomere 1:5,7, t.j. výstupné napätie je 5,7-krát nižšie ako vstupné

Samotná spotreba deliča sú nízke desiatky uA, ktoré sú ťahané z batérie, v operačnom rozsahu je to od 18 uA to 26 uA. Pri 12,6V je to niečo cez 20 uA, čo je zanedbateľný prúd, ktorý prakticky ani neovplyvňuje výdrž trakčnej batérie, keďže denná spotreba (za 24 hodín) bude niekde na úrovni 480 uA až 600 uA v závislosti od vstupného napätia meranej trakčnej batérie, ktoré sa mení, nakoľko je batéria nabíjacím obvodom dobíjaná počas dňa a slnečného žiarenia, teda v danom čase je napätie vyššie v porovnaní napr. s nocou, kedy solárny panel negerenuje dostatočné napätie pre nabíjanie.

Túto formulu používa aj senzorový uzol (LoRa vysielač) po meraní mV na ADC pine na prepočet vstupného napätia. Vysielač vysiela ADC napätie a aj vypočítané vstupné napätie deliča v preddefinovanej štruktúre, ktorú pozná aj prijímač, aby dokázal dáta dekódovať. Pri meraní ADC pinom mikrokontroléra ESP32 sa vykonáva jedno skúšobné meranie, ktoré ma za úlohu eliminovať šum, či naindukované napätie a následne sa vykonáva 5 priemerovaných meraní, ktorých výsledok sa berie za finálnu hodnotu napätia deliča. Z tejto hodnoty sa počíta aj vstupné napätie deliča.

Ako vidíme na blokovej schéme riešenia, vysielač neposiela dáta priamo do databázy, ale iba prijímaču cez LoRa technológiu. Prijímač má k dispozícii WiFi AP (prístupový bod) v dosahu, ktorý mu poskytuje konektivitu pre pripojenie sa na internet a vykonanie prenosu dekódovaných dát po HTTPS protokole POST metódou do databázy vlastnej webovej aplikácie, či cloudovej IoT služby (alternatívne je možné využiť aj MQTT protokol). Umiestnenie prijímača voči vysielaču tak bude mať prioritu pre spoľahlivé a najmä periodické prijímanie dát.

Vysielač a prijímač boli umiestnené do elektrikárskych krabíc s rozmermi 100x100x38 mm, vrátane napájacieho lítiového článku. Na predný kryt krabíc som dopasoval solárny panel 100x100 mm. Tento panel má 5V výstup a dokáže dodávať špičkový výkon až 3W, štandardne 1,2W, čo je dostatočné. Vysielač funguje v režime hlbokého spánku, do ktorého uspáva aj LoRa modul RA-02 (AI-Thinker) pre šetrenie energie v neaktívnom stave. Prebúdza sa v pravidelných intervaloch iba pre účel merania napätia a odoslania dát na prijímač raz za 10 minút. Vzhľadom na Spreading factor 12 a šírku pásma 125 kHz je airtime niekde na úrovni 1,2 až 1,3 sekundy, čo predstavuje duty cycle na úrovni 0,2%. Systém tak môže vysielať až 50-krát častejšie, aby prišiel na limit duty cyclu, ktorý je 10%.


Krabička 100x100 a solárny panel s výkonom 3Wp

Celkový uptime vysielača v aktívnom stave je pod 2 sekundy, keďže meranie trvá prakticky niekoľko nanosekúnd a samotný prenos dát okolo 1,2 sekundy. Spotreba v režime hlbokého spánku pre vysielač bude niekde nad 2 mA. Je to dané najmä integrovanými LED diódami, trvale napájaným USB-UART prevodníkom CH340, napájaným step-down meničom. Vzhľadom na dobíjanie batérie nie je problémom ani táto spotreba, ktorá sa môže zdať vysoká pre LoRa zariadenie. Ak by sme prešli na XIAO, spotreba by bolo niekde okolo 50 uA, tak snáď nabudúce :-).

Prijímač ale musí byť trvale napájaný, teda u neho je vyššia požiadavka na prevádzku na batériu. Z toho dôvodu som tu siahol po 2000 mAh Li-Ion batérii z dôvodu, že spotreba môže byť od 17 mA po 80 mA v závislosti od nastavenia Lolin32 devkitu, resp. firmvéru. Devkit môže byť v aktívnom stave a spotrebúvať okolo 50 mA, aby dokázal kontrolovať v programovej slučke loop, či dorazili nejaké dáta.

Druhou možnosťou je, že devkit môže spať, ale musí predtým urobiť niekoľko vecí. RA-02 musí byť nastavený do režimu posluchu (RX) pre aktívny príjem paketov, čo má za následok jeho konštantnú spotrebu 15 mA. Interrupt pin DIO0 na RA-02 (SX1278) module dokáže zmeniť svoj stav na HIGH pri prijatí paketu a môže byť použitý ako externý interrupt pre prebudenie mikrokontroléra ESP32 z režimu spánku, ktorý už dáta spracuje.

Sú tu ale určité úskalia... Prijímač môže byť maximálne v light sleepe, čo znamená vyššiu spotrebu v porovnaní s deep sleep režimom u vysielača, i keď to zase nie je až tak dramatické a hlavnú zložku spotreby bude robiť len LoRa modul. Je to práve z dôvodu, že pri prebudení z light sleepu mikrokontróler pokračuje v programe tam, kde skončil (od bodu, kde bol uspatý), aby okamžite dáta prečítal. Ak by šlo o deep sleep, mikrokontróler by musel byť reštartovaný a tak musí znova nastaviť aj LoRa modul, teda dáta sa stratia, respektíve by sa premeškali.

Reálna spotreba:
Podarilo sa mi vyrátať spotrebu prijímača za posledné 3 dni, počas ktorých som odpojil solárny panel, aby bolo možné vyrátať približnú spotrebu z úbytku napätia na batérii. Vychádza to konkrétne na 13.62 mAh, teda o niečo menej, ako bol predpoklad podľa tabuľkových hodnôt (17 až 20 mAh). V tejto spotrebe nie je iba "low-power" režim, ale aj početné vysielania dát skrz WiFi na webserver. Menšia spotreba oproti odhadovanej určite poteší a predĺži čas behu zariadenia. S takouto spotrebou by bez dobíjania solárnym panelom prijímač dokázal fungovať celých 6 dní v aktívnom stave (pre 2000 mAh batériu). Teda v pohode prežije ani niekoľko dní, keď nesvieti slnko a je daždivo, či pod mrakom.

U vysielača som spotrebu nemeral. Pár krát som len námatkovo skúsil priložiť voltmeter, väčšinou podvečer, keď už zachádzalo slnko a batéria nebola z panela dobíjaná. Stále som nameral 4,18 až 4,22V, teda batéria bola stále plne nabitá. Môj skromný odhad bude, že spotreba bude do 5 mAh a solárny panel vie toto úplne v pohode kompenzovať aj pri tejto menšej batérii, ktorá má 1000 mAh.

Vysielač vyzerá identicky, ako prijímač s dvoma rozdielmi, že má z krabičky okrem antény vyvedené aj vodiče s nalisovanými očkami, ktoré sa pripájajú k svorkám trakčnej batérie pod skrutku. Druhým rozdielom je použitie Li-pol batérie miesto Li-Ion, ktorá sa pripája identicky, no má navyše aj ochranný obvod. Obvod by mal fungovať najmä proti skratu a prebitiu.

Vysielač vybavený Li-pol batériou a integrovaným napäťovým deličom 1:5,7 so svorkami pre pripojenie k batérii a  solárnym panelom

Ochranu proti vybitiu batérie nemá, nakoľko ako som sa už skôr sám presvedčil, vybilo batériu až do 0V. Po dosiahnutí nízkeho napätia, kedy sa už ESP32 nedokázalo spustiť to robilo nekonečný reštart (brownout) a vyťahalo batériu dočista za jednu noc (možno len za pár hodín, nemeral som kedy to nastalo).Dobrou správou ale bolo, že aj z takéhoto stavu dokázala elektronika Lolinu32 batériu opätovne nabiť a drží aj kapacitu.


Rýchloupínacie svorky batérie so štyrmi skrutkami pre pripojenie očiek

Kritickým bodom bolo umiestnenie prijímača voči vysielaču. Vysielač už bol stacionárny a prišlo k problému s nepriamou viditeľnosťou pri prvom plánovanom osadení prijímača. Vysielač a prijímač boli od seba asi 662 metrov. Nedošlo k priamej viditeľnosti, čo potvrdzuje model prepočtu HeyWhatsThat Path Profiler, alebo UISP Design Center. Druhý model je presnejší, nakoľko umožňuje nastavenie výšky antén nad zemským povrchom voči sebe, čo umožňuje dostať presnejší výstup. Ani jeden z modelov ale nepočíta s budovami, stromami vo výhľade. Ich prepočet je relevantný iba k povrchu ako takému pre overenie "priamej viditeľnosti".

 

Takéto umiestnenie vysielača a prijímača malo za následok nekonzistentnosť v prijatých paketoch a značnú variáciu pomeru signálu voči šumu (nižšia hodnota je horšia). RSSI je možné vyhodnotiť ako dosť zlé, až takmer nedostatočné (i keď LoRa má nato rezervu až niekde k -137 dBm, možno až -141 dBm) s takýmito podmienkami prenosu dát bez priamej viditeľnosti. Rovnako tak občas prijímač nebol schopný prijať paket, alebo dekódovať ho v dôsledku čoho bol zahodený.

Signál v takomto posadení vysielača  a prijímača prechádza prakticky po takmer jednu tretinu cesty skrz kopec a blízko prijímača ešte aj cez asi 3 strechy budov a veľký listnatý strom. Do budúcna bude treba poupraviť pozíciu prijímača, prípadne zvýšiť výšku antény na vysielači. V aktuálnej konštalácii je väčší problém s parametrom SNR, ktorý reprezentuje pomer signálu voči šumu. Hodnoty by mali byť od +20 dB do -5, čo sa už považuje za nekvalitný signál. V našom prípade máme hodnoty SNR, ktoré kolíšu a sú blízko k -20 dB, čo reprezentuje veľmi nekvalitný signál, prakticky plný šumu.

Keď pomer presiahne -20 dB, je to prakticky nedekódovateľný signál. -20 je to ale iba pre Spreading Factor 12, u iných spreading factorov je to bližšie smerom k 0 dB. Ako môžeme vidieť aj variáciu SNR za poslednú hodinu, dosť sa mení, čo je spôsobené najmä tým, že sa signál nechytá na prijímači priamo, ale iba z odrazov. Stáva sa tak, že občas prjímač nie je schopný dekódovať paket, inokedy je zase X minút ticho, kým sa prijímaču opäť podarí prijať dáta.


Nevyhovujúce SNR, veľké výkyvy, prijatie dát iba skrz odrazy, nie priamo

Po navýšení výšky antény sa SNR môže radikálne zvýšiť a zároveň ustáliť, nedochádza ku výkyvom

Ako môžeme aj z čiarového grafu (ApexCharts) vidieť, loguje sa napätie trakčnej batérie a posiela sa do SQL databázy. Túto webaplikáciu nazývam aj Batmonitor. Môžeme vidieť, že pred šiestou hodinou ráno začína byť aktívny aj solárny panel, ktorý túto batériu dobíja a stará sa o jej power management. Po štvrtej hodine poobede klesá prúd z panela, čím sa znižuje napätie na batérii, až neskôr nie je batéria nabíjaná vôbec a počas noci dosahuje napätie niekde na úrovni 12,6 až 12,5V, čo značí takmer plne nabitú batériu aj počas tohto obdobia.

Systém dokáže pri nízkom napätí batérie zaslať aj email s informáciou o stave napätia, teda nie je nutné sústavne monitorovať webovú vizualizáciu s grafom. Aby emaily neboli otravné, pošle sa maximálne 1 e-mail za 6 hodín a aj to iba v prípade, že napätie batérie kleslo pod 11V, čo už indikuje značné vybíjanie, keď maximálne prípustné vybíjanie olovenej batérie je do 10,5V a pod túto hodnotu by nemal klesnúť, teda notifikácia je včasná a s meraním v XX minútovom intervale dokáže upozorniť tak, aby obsluha mohla vykonať obhliadku, či meranie batérie.

Čo sa týka LoRa komunikácie, vysielač a prijímač používa rovnakú prednastavenú nosnú (strednú) frekvenciu, šírku pásma, rovnaký spreading factor, coding rate, alebo čo je najdôležitejšie, spoločný sync word, vďaka ktorému môžem mať viacero PPP LoRa komunikácii, ktoré budú iba logicky oddelené sync wordom, ktorý filtruje pakety. Vďaka tomu prijímač bude reagovať iba na pakety od určeného vysielača, ktorý používa identický sync word a iný odignoruje (resp. odfiltruje).

V praxi je tu super napríklad pre produkčnú verziu LoRa aplikácie a testovaciu, kedy sa nemusíte báť, že by vám prijímač v produkcii zachytil aj testovacie dáta, i keď pracujete blízko neho. Využíva sa iný sync word, hoci stredná frevencia, i šírka pásma je rovnaká. Všetky zariadenia tak budú používať identickú frekvenciu, šírku pásma t.j. kanál, ale budú rozdelené len logicky na základe iného sync wordu (môžeme to nazvať aj inou podsieťou). Existujú aj špecifické sync wordy, ktorým by ste sa mali vyhnúť, napríklad 0x34, ktorý je vyhradený pre verejné LoRaWAN siete. V tomto prípade najde o LoRaWAN sieť, ale o vlastnú LoRa PPP (Point-to-Point) aplikáciu s dátami, ktoré sú prakticky verejné a ak si niekto vhodne nastaví prijímač a vie dekódovať aj obsah, ktorý sa prenáša, dokáže vidieť to, čo sa tam posiela.

Pre túto kontrétnu aplikáciu používam "striktný" vysielač a prijímač. Samozrejme je možné zariadenia prepínať aj medzi režimami vysielania, alebo prijímania dát. Nedokážu ale prijímať a vysielať v reálnom čase, vždy je nutné navoliť režim. Z toho pohľadu označujeme takúto komunikáciu ako half-duplex. V podobnej aplikácii by príjem na vysielači mohol slúžiť na prijímanie konfiguračných dát, zmenu parametrov, napr. časovača početnosti vysielaní a podobne. Režim prijímania by ale na vysielači musel byť aktívny napr. po vysielaní po určitú dobu a samozrejme modul by spotrebuvával 15 mA len na RA-02 module. V snahe o low power end-node ide iba o striktný vysielač, ktorý je neaktívny a zobudí sa iba v preddefinovaný čas na krátke vyslanie informácie, po ktorom opäť prechádza do režimu hlbokého spánku. Aj keby sa niečo po jeho sync worde posielalo, nepríjme nič, lebo je "hluchý".

Na videu nižšie môžete vidieť vizuál webaplikácie Batmonitor a moment, kedy dôjde k prijatiu nových dát (simulované skrz Postman), ktoré sa automaticky objavia v hornej časti, ktorá poukazuje na poslednú hodnotu napätia batérie a čas prijatia týchto dát. Dáta sú dynamicky zapísané aj do grafu s vizualizáciou napätia batérie v čase, aj do tabuľky nižšie, ktorá vypisuje aj dáta technického charakteru o RSSI, SNR...

Nakoľko simulované prijaté dáta obsahujú napätie batérie pod 11V, odosiela sa aj notifikácia e-mailom s informáciou o poklese napätia batérie. To pomôže pri informovaní prevádzkovateľa o potrebe vykonania obhliadky oplotku, jeho celistvosti, či potrebe výmena oloveného akumulátora. Takto sa zníži aj šanca, že by v prípade spadnutého oplotku došlo k vybitiu batérie do nebezpečných hodnôt. Informácia je včasná. Ak by sa použil iný napäťový delič s iným pomerom, je možné identický hardvér použiť aj na meranie napätia pre 24V, alebo 48V systémy.

Zaujímavosti z prevádzky na záver:
(Obrázky si môžete zväčšiť pre plné rozlíšenie a lepšiu čitateľnosť grafu)

LoRa modul RA-02 (Semtech SX1278) má oscilátor typu XO, nejde teda o teplotne kompenzovaný oscilátor (TXCO). Dochádza tak k teplotnému driftu. Ako môžeme na obrázku nižšie vidieť počas noci, kedy sú obe zariadenia prakticky teplotne totožné je frekvenčný ofset zistený na prijímači (rozdiel prijatej frekvencie od nosnej) okolo -3500 až 3600 Hz. Keď je ale aktívny solárny panel a napätie batérie sa zvyšuje, prirodzene slnečné žiarenie ohrieva aj hardvér vysielača. Ako môžeme vidieť, frekvenčný ofset sa tak znižuje a prijatá frekvencia je bližšie k nosnej frekvencii. Teplotná zmena tak ovplyvňuje generovanú nosnú frekvenciu.

Závislosť odchýlky prijatej frekvencie od zmeny teploty

V niektorých prípadoch sa približuje k nule, čo je prakticky ideálny, presný signál (v grafe najlepšia hodnota -21 Hz, ale samozrejme sa vie preklopiť aj do kladných čísel, čo tiež predstavuje odchýlku, do druhého smeru). Priamo Semtech uvádza, že používa low-cost oscilátor s presnosťou na ± 20ppm. To odpovedá odchýlke do ± 8600 Hz pre nosnú frekvenciu 433,175 MHz. Pri použití spreading factoru 12 je odchýlka možná do ± 21700 Hz. Takže v závislosti od kusu pri rovnakej teplote môžete dosahovať rôzne hodnoty odchýlky prijatej frekvencie od cieľovej v rámci tohto rozsahu.

Vzájomná závislosť RSSI a SNR

Rovnako tak je viditeľná určitá závislosť aj medzi výkonom prijatého signálu (RSSI) a pomerom signálu voči šumu (SNR) pri statickej polohe vysielača voči prijímaču. Všetky spomenuté parametre sú merané na strane prijímača. Vidieť, že v niektorých prípadoch skokovito vyskočil výkon prijatého signálu (hodnota bližšie k nule je lepšia), pričom silnejší signál priniesol aj skokovitý nárast šumu (pomer signálu voči šumu sa zhoršil). Pravdepodobne šlo o nejaké odrazy, kedy signál nedoputoval priamo do prijímača, ale odrazil sa tam napríklad od strechy priľahlej budovy. V ostatných prípadoch je to šírenie signálu prakticky konštantné a hodnoty sa medzi sebou líšia minimálne. Neviem, ako veľmi nato vplýva vegetácia, ktorá neustále rastie. Nezaznamenal som výraznejšie odchýlky ani napríklad počas dažda.

Z grafu napätia 12V batérie je pekne vidieť, v ktoré dni svietilo slnko a batéria bola dobíjaná a v ktoré dni bolo pod mrakom, prípadne pršalo a batéria bola dobíjaná minimálne, alebo vôbec. Napätie na svorkách batérie sa v upršaných dňoch, či dňoch pod mrakom nedosahovalo prakticky ani nad 13V.

Viditeľnosť slnečných a zamračených dní vzhľadom na generované napätie solárnym panelom

Alterantívne rozhranie - Blynk
Ak nechceme hostovať webaplikáciu Batmonitora na samostatnom serveri, ale chceme iné riešenie, môžeme siahnuť pod dostupnej IoT cloudovej platforme. Tie poskytujú nástroje pre zber, archiváciu a vizualizáciu dát. Líšia sa možnosťami, ale mávajú aj svoje limity, najmä v plánoch využitia zdarma. Štandardne býva obmedzený počet správ za mesiac, či počet aktivovaných zariadení, ktoré môžu pod používateľským účtom fungovať. Môžu nastať isté obmedzenia aj v podobe uzamknutých funkcionalít, dostupných widgetov, či obmedzeného času archivácia historických dát.

Medzi najznámejšie môžeme zaradiť napríklad Blynk, čo je veľmi známa a obľúbená platforma najmä u Arduino komunity, avšak nájde využitie aj pre zložitejšie projekty, aj priemyselného charakteru. Má free plán, alebo platený plán. V bezplatnom pláne podporuje 10 zariadení pod účtom zdarma a má mesačné obmedzenie na 30-tisíc správ, neumožňuje využívať mapy, resp. mapové podklady, teda pre projekty typu GPS monitoring je vo verzii zdarma nepoužiteľná. Widgety v grafoch, ktoré sú majú veľmi obmedzené customizačné možnosti, býva to len pre farbu, možno veľkosť písma. Verzia zdarma neumožňuje vytvorenie organizácie, ktorej by ste mohli priradiť klientov, teda tak, aby konkrétny klient videl svoje zariadenie, i keď ich inštalujete a predávate v sériách.

Blynk má vlastnú aplikáciu pre smartfóny Android, aj iOS vďaka čomu je nasadenie projektu veľmi rýchle. Dashboardy je možné rozlišovať na úrovni zariadení, alebo custom dashboardy, kde si môžete pridať dáta od konkrétnych zariadení ako samostatnú vizualizáciu namieru a zobrazovať ďalšie metriky ako početnosti udalostí, a podobne (štatistické údaje). Custom dashboardy sa zdajú byť dostupné výhradne vo webaplikácii Blynku. Na druhú stranu vo free pláne radím ako nevýhodu to, že ak už raz zapíšete neplatný záznam, napríklad nulu do data-series, nikdy ju už odtiaľ nedostanete. Z toho dôvodu vám pokazí každý graf, v ktorom sa nachádza a hodnotu nie je možné zmazať.


Custom dashboard s metrikami zariadenia s datastreamom napätia batérie za posledný týždeň

Dashboard zariadenia je nutné vytvárať manuálne vo webaplikácii a manuálne aj v aplikácii pre smartfón. Iné platformy majú napríklad formou zrkadlenia, kedy sa dashboard vytvorený vo webovom rozhraní zrkadlí do aplikácie, teda odpadá práca naviac.


Blynk - aplikácia pre smartfón s vizualizáciou dát Batmonitora

Podporuje aj rôzne automatizácie skrz časovače, trigger metódy, či dokonca pre východ a západ slnka dynamicky pre konkrétnu lokalitu miesta. Štandardne je obmedzenie na platforme Blynk vo verzii zdarma na 30 tisíc správ za mesiac. Tento počet je zdieľaný medzi všetkými zariadeniami.

Štandardná LoRa aplikácia prenáša raz za 10 miút a konkrétne 4 dátové správy. Teda za deň vykoná 576 správ, čo za mesiac predstavuje 17856 správ. V snahe o ušetrenie by bolo vhodné posielať dátové správy v jednej správe ako batch dáta, ale to Blynk neumožňuje z pohľadu toho, ako funguje. Štandardne je premenná vytvorená ako virtuálny pin, ktorému sa priradzuje hodnota.

Správu do Blynku môže LoRa prijímač posielať skrz REST API po HTTPS protokole, alebo môže využiť aj MQTT protokol pre komunikáciu s Brokerom. MQTT je rýchly protokol pre prenos dát, telemetrie. Medzi ďalšie IoT platformy môžeme zaradiť napríklad ThingsBoard, ThingSpeak, Thinger, Arduino Cloud, ThingWorx, Kaa Enterprise, Akenza, Particle, Amazon Web Services (AWS) IoT Platform, či Grafana s InfluxDB, či Apache IoTDB databázou, ktorá ale u Grafany nie je jej súčasťou.


Grafana + InfluxDB time-series dáta

Grafana je priamo iba vizualizačný nástroj bez databázy. Import sa tak musí riešiť separátne. Zo spomenutých IoT platforiem je asi najlepšia ThingSboard, ktorá ale nemá cloudovo hostovanú platformu zdarma, no zato prakticky neobmedzené customizačné možnosti a to nielen pri dashboardoch, ale aj správe používateľov, view modelov a pod. Je ju možné vyskúšať na mesiac zadarmo, avšak potom je už nutné prejsť na preplatený balík, minimálne v sume 10 dolárov za mesiac. ThingsBoard má aj tzv. komunitnú verziu, ktorú si viete hostovať na vlastnom serveri a to plne zdarma.


Web dashboard Blynk. Gauge grafy, grafická vizualizácia napätia batérie v grafe

Chceli by ste podobné riešenie aj pre Váš oplotok, či obdobnú aplikáciu? Možné prispôsobiť na mieru a prenášať aj senzorové dáta napríklad o teplote skrz DS18B20 OneWire snímač s extra spotrebou len 3µA v standby režime, ale je možné doplniť aj ďalšie snímače pre získanie dát o GPS polohe, či dáta z vyššieho systému založeného na RS485, či inej priemyselnej zbernici. Rovnako tak je možné takýto senzorový uzol integrovať aj do LoRaWAN siete s použitím LMIC knižnice, ktorá podporuje aktivačné režimy ABP, alebo OTAA. Pre Európu je ale skôr preferovaná LoRaWAN sieť na 868 MHz.

V prípade záujmu, či otázok mi napíšte na: martin.ch.youriot@gmail.com 

Aktuálne napätie batérie pre túto konkrétnu aplikáciu môžete sledovať na: https://hladinomer.eu/LoRa/ za predpokladu, že LoRa vysielač a prijímač stále beží a neboli použité do iného projektu.

Portfólio projektov: https://your-iot.github.io/portfolio.html

 



Prístupov 3190
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
Tlačidlový DOMINATOR - prestavba z RFID ...
[ 28.6.2025] (príspevkov 0)
Šifrovanie LoRa payloadu prakticky
[ 23.6.2025] (príspevkov 0)
Šifrovanie LoRa payloadu
[ 18.6.2025] (príspevkov 0)
Monitorovanie napätia 12V batérie
[ 9.5.2025] (príspevkov 0)
Recenzia YATO YT-8272
[ 16.4.2025] (príspevkov 0)
Loud ESP32 pre Webrádio
[ 14.4.2025] (príspevkov 0)
NFC karta s WiFi konfiguráciou
[ 8.4.2025] (príspevkov 0)
Návrh jednoduchých PCB v EasyEDA
[ 5.4.2025] (príspevkov 0)
Test dosahu LoRa 433 MHz RA-02
[ 4.4.2025] (príspevkov 0)