blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
martinius96 (at) gmail.com
deadawp



TTN LoRaWAN brána / LoRaWAN node za 8€
pridal deadawp 31.1. 2026 o 12:49 (naposledy upravené 31.1. 2026 o 14:44)

Seeed Studio má zaujímavý hardvér pre LoRa komunikáciu. Ide o kit XIAO ESP32-S3 & Wio-SX1262, prípadne ako ekvivalent je dostupný aj kit XIAO nRF52840 & Wio-SX1262. Ako názov napovedá SX1262 je Semtech čipset LoRa shieldu. Hardvér je možné použiť pre vlastnú LoRa komunikáciu typu PPP (Point-to-Point) pre simplexnú či half-duplexnú komunikáciu, ďalej pre Meshtastic komunikáciu (čo je aj jeho štandardne predinštalovaný firmvér), ale je ho možné použiť aj na LoRaWAN komunikáciu a to nielen na node, ale aj na bránu, ktorá môže byť pripojená do The Things Network (TTN), LoRaWAN siete.


ESP32-S3 + Wio-SX1262

Oba spomenuté varianty hardvéru cielia na nízkopríkonové aplikácie - ULP. Ich veľkosť odpovedá zhruba 1€ minci. K hardvéru je možné pripojiť Li-pol / Li-Ion batériu, nakoľko doska dokáže dobíjať batériu a riadiť celý battery management. Verzia s nRF je o niečo úspornejšia, avšak nemá WiFi, čo ju znemožňuje použiť ako LoRaWAN bránu s TTN, pretože sa nedokáže pripojiť k aplikačnému serveru a aktualizovať on-line stavy. 

Preto sa dnes zameriame na ESP32-S3 variant a bližšie si popíšeme nastavenie. ESP32-S3 XIAO je vo verzii Plus, ktorá prichádza s B2B konektorom, do ktorého sa zatlačí Wio SX1262 shield. Priamo od Seeed Studio vychádza tento kit na 9,9 USD, čo je 8,3 € s doručením z nemeckého skladu (v cene nie sú zahrnuté poplatky za prepravu, ktorá sa môže líšiť na základe zvolenej prepravnej spoločnosti a priority).

Implementácia LoRaWAN brány na ESP32-S3 pripojenej do TTN
Seeed Studio popisuje návodom implementáciu. Pri realizácii som ale narazil na viacero faktorov a zmien. V prvom rade odporúčam nedávať na ESP32-S3 shield, pokým nemáte ukončený tento krok. Nacvaknutím shieldu si odstrihnete prístup k BOOT buttonu, ktorým potrebujete dosku dostať do Download módu. Tlačidlo sa zle stláča, lebo má veľkosť tak 2 mm. Tlačidlo musíte držať stlačené pred pripojením USB-C kábla. Prstom, ani nechtom to neudržíte stlačené pri nasúvaní kábla. Mne pomohlo si ho stlačiť nožnicami, prstom zozadu chytiť dosku a druhou rukou nasunúť kábel. Treba ale dávať pozor, aby ste nespôsobili skrat náhodným dotykom s inou časťou.

Samotné nahrávanie firmvéru som realizoval cez ESPTOOL, ale v JS verzii, flasher od Espressif Systems: https://espressif.github.io/esptool-js/

Firmvér si stiahnete ako 3 súbory z: https://github.com/Seeed-Studio/one_channel_hub/tree/xiao-esp32s3-sx1262-bt-config/bin. Ide o súbor bootloadera, tabuľky partícii a tiež samotnej aplikácie s LoRaWAN bránou. V repozitári sa nachádza viacero súborov pre iný hardvér. Zvoľte preto seeed_xiao_esp32s3_devkit_bootloader.bin, seeed_xiao_esp32s3_devkit_lorahub.bin, seeed_xiao_esp32s3_devkit_partition-table.bin. Celá programová implementácia brány je postavená na ESP-IDF 5.X.

Skrz flasher nahrajte na príslušné (hex) ofsety - 0x0 pre bootloader, 0x8000 pre tabuľku partícii a 0x10000 pre .aplikáciu (štandardné ofsety).

Po úspešnom nahratí firmvéru môžeme dosku odpojiť z napájania, nasadiť Wio SX1262 shield a späť pripojiť na napájanie. Do telefónu si stiahneme ESP BLE Provisioning z Google obchodu, zapneme Bluetooth a spárujeme si telefón s ESP32-S3, ktoré je viditeľné pod názvom napr. "LRHB_A71A44". Otvoríme Serial monitor (odporúčam https://terminal.spacehuhn.com/) a na telefóne si spustíme aplikáciu ESP BLE Provisioning.

V aplikácii klikneme na Provision New Device a naskenujeme QR kód, ktorý sa zobrazil v Serial monitore. Následne vás aplikácia presmeruje na zadanie SSID a hesla domácej WiFi siete, na ktorú chcete bránu na báze ESP32-S3 pripojiť. Po pripojení ESP32-S3 na WiFi pozeráme do Serial monitoru, kde sa nám zobrazia ďalšie informácie a to o ID brány, ktoré budeme potrebovať pre registráciu LoRaWAN brány na The Things Network.

Toto ID (bez 0x prefixu) zadáme v TTN pri registrácii brány do Gateway EUI. Následne vyberieme Frequency plán (môžeme použiť štandardný) a zvolíme si aj vlastné id brány, či jej meno, ktoré bude viditeľné v TTN. Následne v nastaveniach vieme doplniť aj popis brány a môžeme tam uviesť aj polohu, ak chceme, aby bola brána viditeľná v komunitných aplikáciách, ako napríklad TTN Mapper. To môže byť prínosné, ak niekto hľadá LoRaWAN pokrytie vo svojom okolí a môže tak dostať cennú informáciu, že máte aktívnu bránu, ktorá môže aj z jeho nodu preniesť dáta do siete.

Ďalšou dôležitou informáciou, ktorú Serial monitor vypíše je IP adresa v LAN sieti, ktorá je priradená ESP32-S3 a slúži na konfiguráciu LoRaWAN brány, i keď ide o dosť oklieštené nastavenia. Následne skrz IP adresu a port 8000 môžete v prehliadači pristúpiť k webovému rozhraniu brány - LoRaHUB.

Rozhranie má preddefinovaný URL na TTN službu a tiež strednú frekvenciu 868,1 MHz a Spreading factor 7, šírku pásma 125 kHz. Ako sa neskôr ukázalo, implementácia pre LoRaWAN node od Seeed Studio mala spreading factor 9 a tak som ho neskôr zmenil aj na strane brány, inak by LoRaWAN paket nevidela.

Je to dané tým, že ide o single-channel LoRaWAN bránu (limitácia oproti bežným bránam, ktoré majú 8 kanálov). Teda brána počúva na jednej konkrétnej kombinácii Spreading factoru a frekvencie a nič ostatné nezachytí. Ak zvolíte Spreading factor 7 a 868,1 MHz na bráne a na strane nodu, ktorý posiela dáta ponecháte spreading factor 9 a frekvenciu zachováte, aj tak ho brána nemusí zachytiť. Brána má aj preddefinovaný NTP server pre získanie aktuálneho času z poolu. Nastavenia sa po uložení zapíšu do ESP32-S3, do NVS sektoru, teda sú uchované aj po výpadku napájania. Pri spustení si ESP32-S3 načíta dané nastavenia a nie je tak nutné znova konfigurovať.

Ak sme na TTN všetko správne pre bránu nakonfigurovali, uvidíme, že je on-line a to stavovou "guličkou", zároveň uvidíme aj správy statusu brány, ktoré si vieme zobraziť. Tieto správy generuje brána každých 30 sekúnd, pokiaľ je aktívna.

Ak sme si nastavili aj verejnú polohu, v komunitnej webaplikácii TTN Mapper uvidíme aj bránu. Môže to ale chvíľu trvať, kým sa brána na mape ukáže. Po rozkliknutí brány môžeme vidieť aj dodatkové informácie ako meno, id, EUI a tiež verziu siete, či popis a tiež posledné informácie o aktivite, či GPS súradnice polohy, nadmorskej výšky.

Návod na bránu na Seeed Studio:
https://wiki.seeedstudio.com/wio_sx1262_xiao_esp32s3_for_single_channel_gateway/

Implementácia node
Takáto brána je už schopná prijímať LoRaWAN pakety od nodov v dosahu. Tie musia byť ale správne nakonfigurované a teda rešpektovať spreading factor a tiež strednú frekvenciu a šírku pásma. Obdobnú kombináciu hardvéru t.j. ESP32-S3 a Wio-SX1262 vieme použiť aj ako node, ktorý bude posielať dáta na bránu (pokojne aj na bránu postavenú na ESP32-S3 + Wio-SX1262).

Seeed Studio pre LoRaWAN node má Arduino Core implementáciu z Októbra 2024: https://files.seeedstudio.com/wiki/XIAO_ESP32S3_for_Meshtastic_LoRa/Wio_SX1262_XIAO_ESP32S3_code_package_20241025.zip

Tomu odpovedajú aj požiadavky na knižnice, nakoľko je implementácia založená na RadioLib. Tu musíte zvoliť verziu stable releasu 6.6.0 z Mája 2024. Okrem .ino aplikácie má archív aj hlavičkový súbor config.h, ktorý obsahuje makrá pre zadanie JOIN_EUI, DEV_EUI, APP_KEY, NWK_KEY. Seeed Studio odporúča JOIN_EUI ponechať na nulách podľa dokumentu The LoRa Alliance TR007 Technical Recommendations.

Pri samotnej registrácii zariadenia do TTN zvolíme manuálne zadanie údajov. Vyplníme frequency plán na Europe 868,1 MHz, LoRaWAN Specification 1.1.0 a regionálne parametre nastavíme na RP001 Regional Parameters 1.1 rev A. Do Join_EUI zadáme nuly. V ďalšom kroku umožní zadať DEV_EUI, APP_KEY, NWK_KEY. manuálne, alebo ich vygenerovať. Vygenerované kľúče zadáme následne do config.h súboru do príslušných makier.

Program má preddefinovaný región EU868. Po nahratí programu uvidíme v stavových správach brány v TTN informáciu o prijatom pakete od LoRaWAN nodu s JOIN_EUI nastavenom na 0. Vidíme aj informácie o DEV_EUI, či nastavenom spreading factore a šírke pásma na strane nodu, vrátane výkonu prijatého signálu a pomeru signálu voči šumu. Ďalšie pakety môžeme tiež vidieť, vrátane countra, ktorý počíta počet paketov od daného nodu, vrátane jeho DEV_ADDR.


V prehľade aplikácii a otvorí tohto koncového zariadenia si môžeme pridať aj vlastný uplink decoder, ktorý nám vypíše prenášané dáta v čitateľnom formáte. V tomto prípade je k hardvéru pripojený ultrazvukový snímač vzdialenosti JSN-SR04T, ktorý získava rozdielovú výšku hladiny vody v studni (teda od veka po hladinu). V tomto prípade to bolo 56 cm, čo predstavuje 344 cm hladiny vody (od dna). Samozrejme ale na základe nastavení Watmonitora je možné posielať aj celkovú výšku hladiny vody, ak sa meria od dna, napríklad tlakovým diferenčným snímačom.

V samotnej aplikácii je tiež možné vytvoriť dekóder uplinku, či vytvoriť integráciu, ktorá umožní prenášať dáta z TTN priamo do vlastnej webaplikácie, napríklad Watmonitor. Dáta do Watmonitora tak pushuje priamo TTN a nie node, ktorý pracuje v úspornom režime a vysiela iba raz za niekoľko minút po veľmi krátku dobu. Na druhú stranu LoRaWAN brána musí byť neustále napájaná a byť v operačnom režime, aby dokázala LoRaWAN paket zachytiť.

Dajte si pozor na FUP a Duty cycles. V rámci Fair User Policy je na TTN obmedzenie na Duty cycle 1%. To znamená, že za hodinu môže zariadenie prenášať 36 sekúnd. Programová implementácia nodu v základe vysiela každú sekundu, teda k povolenému vysielaniu sa veľmi rýchlo priblížite a potom samotné TTN zablokuje prijímanie paketov po dobu, kým Duty cycle klesne a potom sa prijatie a spracovanie paketov na TTN obnoví znova do doby, pokým sa presiahne Duty cycle. V mojej aplikácii je vysielanie raz za 5 minút, pričom samotný payload paketu je 2 B, teda celočíselná hodnota, štandardne v rozsahu 0 až 500, čo by 1 bajt nepokryl.

Ešte k nastaveniam nodu... Treba chápať aj to, čo jednotlivé nastavenia znamenajú. Napríklad makro LORAWAN_UPLINK_DATA_RATE, ktoré je nastavená na hodnotu 3 predstavuje spreading factor 9 spolu s kombináciou 125 kHz šírky pásma. Ak by sme toto nastavenie dali na hodnotu 5, predstavovalo by to spreading factor 7 spolu so šírkou pásma 125 kHz, čo bolo originálne nastavenie LoRaWAN brány. Preto som zmenil nastavenie brány a nie nastavenie nodu. Vo výsledku by sme mali dlží dosah na úkor početnosti vysielaní, keďže spreading factor 9 má nižšiu rýchlosť prenosu ako spreading factor 7.

K Wio-SX1262 odporúčam inú anténu, než tú s ktorou príde v balení. Základná anténa má zisk len 0,04 dBi, čo je veľmi chabé. Zakúpte si pigtail so SMA samicou na konci, ku ktorému viete pripojiť anténu cez SMA samec. Celkom zaujímavé antény má v ponuke drotik-elektro od NiceRF, konkrétne stojánkovú SW868-XP1M s 1 metrovým káblom, podstava má aj magnet, i keď pravda, slabší. Prípadne majú v ponuke aj prutovú anténu SW868-WT100. Antény majú zisk nad 2 dBi, čo je viac než 50 násobok u pôvodnej antény a nebudete s nimi prekračovať ani normu. Obe antény majú vertikálnu polarizáciu, čo je štandard v LoRa, LoRaWAN.

Brána po prijatí série LoRaWAN paketov vypíše aj štatistiku využívania jednotlivých bandov frekvenčného plánu a tiež odozvu brány. Nakoľko sme použili štandardný plán (863-870 MHz) na strane brány, ktorý sa vzťahuje aj na ďalšie podpásma, vidíme, že sme využívali výhradne pásmo, kde spadá naša stredná frekvencia 868,1 MHz. ESP32-S3 je určite slabší hardvér v porovnaní s tým, ak by bola brána na Rpi 4 a pod., takže tá by mala latenciu menšiu, ale myslím, že aj takáto je úplne postačujúca pre bežné aplikácie. Je možné, že s nárastom nodov by sa latencia mohla predlžovať, ale vzhľadom na moje využitie, kde sa vysiela raz za 5 až 10 minút je to úplne irlevantné, či bude latencia 140 alebo 800 ms.

Návod na LoRaWAN node od Seeed Studio s ESP32-S3 a Wio-SX1262:
https://wiki.seeedstudio.com/wio_sx1262_xiao_esp32s3_for_lora_sensor_node/

Programová implementácia ultrazvukového senzorového uzla pre Watmonitor kompatibilná s 1-channel LoRaWAN bránou na báze ESP32-S3 a Wio SX1262: 
https://github.com/martinius96/hladinomer-studna-scripty/tree/master/examples/Hladinomer/LoRaWAN/ESP32_S3_Wio_1262

 



Prístupov 55
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDUJETE
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
TTN LoRaWAN brána / LoRaWAN node za 8€
[ 31.1.2026] (príspevkov 0)
Zväčšenie fotografie = strata kvality?
[ 25.12.2025] (príspevkov 0)
Výber 12V gélovej batérie pre zálohu obe...
[ 17.12.2025] (príspevkov 0)
Ako zostaviť DIY kit RFID DOMINATOR 2.0?
[ 17.11.2025] (príspevkov 0)
ThingsBoard - generátor dát, HTTP reques...
[ 13.11.2025] (príspevkov 0)
GPS LoRa monitoring - ThingsBoard
[ 9.11.2025] (príspevkov 0)
Nie je Li-Ion, ako Li-Ion...
[ 3.11.2025] (príspevkov 0)
ThingSpeak - Watmonitor integrácia
[ 28.10.2025] (príspevkov 0)
Ubidots - Watmonitor integrácia
[ 26.10.2025] (príspevkov 0)
Čo som postrehol v Thajsku?
[ 20.10.2025] (príspevkov 0)