Kaip žingsnis po žingsnio prijungti „LoRaWAN“ mazgą prie TTN

Paskutiniai pakeitimai: 25 sausis 2026
  • Kad „LoRaWAN“ mazgai galėtų bendrauti, reikia tinkamai sukonfigūruoto šliuzo (dažnio, IP tinklo, serverio) ir užregistruoto TTN.
  • Galiniai įrenginiai TTN programose registruojami naudojant DevEUI, JoinEUI/AppEUI ir AppKey (OTAA) arba NWKSKEY/APPSKEY/DEVADDR (ABP).
  • Duomenims siųsti į TTN galima naudoti komercinius jutiklius („SenseCAP“, „Decentlab“, „Dragino“, „Tabs“) arba „pasidaryk pats“ mazgus su ESP32 / „Arduino“ ir LMIC biblioteka.
  • TTN palengvina integraciją su „Node-RED“ ir išorinėmis platformomis, kad būtų galima vizualizuoti ir panaudoti „LoRaWAN“ tinklo surinktus daiktų interneto duomenis.

Prijunkite LoRaWAN mazgą prie TTN

Jei jau nuėjote iki šiol, tai todėl, kad norite sužinoti, kaip nuo pradžios iki pabaigos prijungti „LoRaWAN“ mazgą prie TTN , nepraleidžiant nieko: šliuzų, mazgų, jutiklių, bibliotekų, raktų ir tinklo konfigūracijos. Geros žinios yra tai, kad jums nereikia būti telekomunikacijų ekspertu; turėdami gerai struktūrizuotą vadovą ir šiek tiek kantrybės, galite akimirksniu sukonfigūruoti savo veikiantį „LoRaWAN“ tinklą.

Šiose eilutėse žingsnis po žingsnio parodysime, kaip nustatyti šliuzą, užregistruoti jį „The Things Network“, pridėti programas ir galinius įrenginius bei programuoti „LoRaWAN“ mazgus, pagrįstus ESP32 arba „Arduino“ plokštėmis, taip pat pateiksime pavyzdžių su komerciniais jutikliais („SenseCAP“, „Decentlab“, „Dragino“, „Tabs Browan“). Taip pat aptarsime praktines detales, kurių ne visada galima rasti vadovuose: dažniausiai pasitaikančias klavišų problemas, dažnio pasirinkimą, fizinius kontaktų sujungimus ir gudrybes, kaip patikrinti, ar viskas iš tikrųjų bendrauja su TTN.

Kas yra „LoRa“ ir „LoRaWAN“ ir kodėl verta naudoti TTN?

„LoRa“ ir „LoRaWAN“ yra dvi susijusios sąvokos, tačiau jos nėra tas pats . „LoRa“ yra didelio nuotolio, mažos galios radijo dažnių moduliacija, patentuota „Semtech“. „LoRaWAN“ yra tinklo protokolas, kuris, naudodamasis „LoRa“, valdo, kaip galiniai įrenginiai (mazgai) bendrauja su šliuzais ir tinklo serveriu.

Tipiškame „LoRaWAN“ tinkle yra du pagrindiniai komponentai: šliuzai ir mazgai . Šliuzai veikia kaip „tiltai“ tarp „LoRa“ pasaulio (radijo) ir IP pasaulio (interneto), persiunčiantys paketus į „LoRaWAN“ serverį. Mazgai yra jutikliai arba vykdikliai, kurie siunčia ir gauna informaciją naudodami „LoRa“ į šiuos šliuzus ir iš jų.

Norint visa tai prijungti, reikia „LoRaWAN“ serverio. Galite mokėti už privačią paslaugą (operatoriai, tokie kaip „Movistar“, „Vodafone“, arba platformos, tokios kaip „Loriot“, „Actility“, „Kerlink“) arba pasirinkti bendruomenės kelią, naudodami „The Things Network“ (TTN) – viešą, atvirą tinklą, kurį prižiūri bendruomenė.

TTN pranašumas yra tas, kad jis gerbia duomenų valdymą, yra neutralus ir leidžia jums prisidėti prie tinklo šliuzais . Daugelyje miestų žmonės diegia šliuzus savo iniciatyva, ir kiekvienas gali pasinaudoti šia aprėptimi be jokių išlaidų, išskyrus mazgų aparatinę įrangą.

„LoRaWAN“ dažniai, kanalai ir apribojimai

Prieš perkant bet kokį įrenginį, labai svarbu įsitikinti, kad „LoRa“ dažnis suderinamas su jūsų regionu . Darbas Europoje nėra tas pats, kas darbas Jungtinėse Amerikos Valstijose ar Azijoje; jei pasirinksite netinkamą dažnių juostą, įrenginys gali būti nenaudingas ar net neteisėtas.

Europoje daugiausia naudojama 868 MHz juosta (EU868) . Jungtinėse Amerikos Valstijose tipinė juosta yra 915 MHz (US915). Kinijos mažmenininkai siūlo platų 433 MHz modulių asortimentą, kurie gali būti viliojantys dėl savo kainos, tačiau jie ne visada suderinami su „LoRaWAN“ ar jūsų šalies operacine sistema.

Be dažnio, „LoRaWAN“ yra suskirstytas į kanalus, sklaidos koeficientą (SF) ir dažnių planus . SF apibrėžia greitį ir diapazoną: didesnis SF reiškia didesnį diapazoną, bet taip pat ir daugiau laiko eteryje, o tai sunaudoja daugiau energijos ir užima daugiau kanalo vietos.

Europoje galioja gerai žinoma „1 % taisyklė“ : kiekvienas įrenginys gali užimti radijo kanalą tik nedidelę laiko dalį, paprastai apie 1 %. Tai riboja duomenų siuntimo dažnumą ir yra viena iš priežasčių, kodėl „LoRaWAN“ jutikliai paprastai perduoda duomenis kas kelias minutes, o ne kas kelias sekundes.

Šliuzo ir mazgų įrangos paruošimas ir parinkimas

Norint sukurti praktišką tinklą, jums reikės bent vieno „LoRaWAN“ šliuzo ir vieno ar daugiau mazgų (jutiklių) . Galite derinti skirtingų gamintojų įrangą, jei jie atitinka „LoRaWAN“ standartą ir veikia toje pačioje dažnių juostoje.

Vienas populiarus vidinių tinklų sietuvų modelis yra „Dragino LPS8“ , kuriame integruotas SX1308 koncentratorius ir kuris palaiko iki 10 lygiagrečių kanalų. Jis iš anksto sukonfigūruotas su skirtingais dažnių planais, priklausomai nuo šalies, o Europoje jis veikia 868 MHz dažniu. Jis maitinamas 5 V įtampa per USB-C ir prie IP tinklo jungiamas per RJ-45 arba „Wi-Fi“.

Kiti gerai su TTN veikiančių šliuzų pavyzdžiai yra RAK7289 (lauko, tvirtas ir su LTE/4G parinktimi) arba oficialūs TTN-GW-868 MHz šliuzai, skirti aprėpties diegimui miestuose arba išmaniųjų miestų projektuose. Taip pat galima sukurti vieno langelio šliuzą su ESP32 plokšte ir SX1262 LoRa moduliu , kaip tai daroma naudojant „Wio-SX1262“ rinkinį ir „Xiaomi ESP32S3“.

Kaip mazgai, turite dvi galimybes: naudoti komercinius jutiklius, jau paruoštus „LoRaWAN“ („SenseCAP S210x“, „Tabs Browan TBHH100“, „Dragino TrackerD“, „Decentlab“ ir kt.) arba kurti savo mazgus naudojant tokias kūrimo plokštes kaip „TTGO LoRa32 V2.0“, „ESP32 + RMF95“, „Arduino + LoRa“ modulį ir kt.

Konfigūruokite „LoRaWAN“ šliuzą ir prijunkite jį prie TTN

Pirmas svarbus projekto žingsnis – paleisti šliuzą ir TTN ekrane parodyti užrašą „Prisijungta“ . Nors kiekvienas gamintojas turi savo ataskaitų sritį, konceptualūs žingsniai yra labai panašūs.

Pavyzdžiui, „Dragino LPS8“ galite valdyti per SSH arba HTTP . Jei prijungsite jį RJ-45 kabeliu, turėsite sužinoti DHCP serverio priskirtą IP adresą (naudodami IP skaitytuvą arba per maršrutizatorių). Jei pageidaujate atlikti pradinę sąranką per „Wi-Fi“, LPS8 sukuria savo tinklą su SSID, pvz., „dragino-xxxxx“, ir numatytuoju slaptažodžiu, pvz., „dragino+dragino“. Pasiekę IP adresą 10.130.1.1, būsite nukreipti į žiniatinklio skydelį, kuriame pradinis vartotojo vardas ir slaptažodis paprastai yra „admin/dragino“.

Įėję pamatysite meniu su keliais skyriais, o kai kurios parinktys gali būti pažymėtos raudonu kryželiu, rodančiu, kad trūksta konfigūracijos . Pirmiausia „LoRa“ skirtuke pasirinkite tinkamą dažnių planą savo regionui; Europoje tai yra EU868 (maždaug 868 MHz).

  5G M2M ryšys: beribės aplinkos pagrindas

Tada palieskite skirtuką „LoRaWAN“ arba „Tinklo serveris“ . Ten nurodysite, prie kurio „LoRaWAN“ serverio prisijungs šliuzas. TTN atveju pasirinkite „TTN“ kaip teikėją ir įveskite Europos serverio adresą (pvz., eu1.cloud.thethings.network), palikdami UDP prievadus (paprastai 1700 tiek įkėlimui, tiek atsisiuntimui). Tame pačiame skyriuje matysite šliuzo ID arba EUI, kurio mums reikės vėliau TTN.

Tinklo skiltyje galite konfigūruoti, kaip šliuzas jungiasi prie interneto : LAN, WAN arba „Wi-Fi WAN“. WAN sąsajai galite pasirinkti statinį IP adresą arba DHCP; kai tik įmanoma, rekomenduojama naudoti statinį IP adresą laidiniame ryšyje, kad ryšys būtų stabilesnis ir būtų lengviau valdyti. LAN skiltis paprastai naudojama šliuzo vidiniam prieigos taško tinklui; geriausia nekeisti šio nustatymo iki galo nesuprantant, ką darote, nes tai gali išsigelbėti, jei kas nors nutiktų ne taip.

„Wi-Fi“ skiltyje galite reguliuoti tiek paties šliuzo sugeneruotą prieigos tašką, tiek jo prijungimą prie išorinio „Wi-Fi“ tinklo . Dėl saugumo rekomenduojama pakeisti gamyklinį prieigos taško SSID ir slaptažodį.

RAK7289 šliuzuose procesas yra panašus: atidarykite žiniatinklio skydelį, konfigūruokite IP adresą (statinį arba DHCP) per Tinklas → WAN sąsaja , tada LoRa tinklas → Tinklo nustatymai → Paketų persiuntėjas įveskite TTN serverio duomenis ir užsirašykite šliuzo EUI, kad vėliau jį užregistruotumėte TTN. Jei esate už maršrutizatoriaus, kuris teikia DHCP, šliuzo IP adresą galite rasti peržiūrėdami nuomos lentelę (pagal pagrindinio kompiuterio pavadinimą, pvz., „RAK7289“) arba naudodami tokias priemones kaip „nmap“.

Registracija šliuzo tinkle „The Things Network“

Kai šliuzas turės prieigą prie interneto, turėsite jį užregistruoti TTN . Jei neturite paskyros, pirmiausia užsiregistruokite „The Things Network“ svetainėje ir tada prisijunkite prie konsolės atitinkamame regione (pvz., https://eu1.cloud.thethings.network/).

Konsolėje pasirinkite skyrių „Šliuzai“ ir spustelėkite „Registruoti šliuzą“ . TTN paprašys šliuzo ID (unikalaus pavadinimo jūsų paskyroje) ir, priklausomai nuo šliuzo tipo, šliuzo EUI. „Dragino LPS8“ šliuzams, kurie naudoja klasikinį paketų persiuntiklį, turite pasirinkti parinktį „Naudoju senąjį paketų persiuntiklį“.

Be to, nurodysite dažnių planą (EU868 Europai) , atitinkamą regioną arba maršrutizatorių ir pasirinktinai vietą (koordinatės, viduje/lauke ir kt.). Šliuzuose, tokiuose kaip vieno langelio tipo su XIAO ESP32S3 ir Wio-SX1262, pati programinė įranga paleidimo metu gali rodyti šliuzo ID per nuoseklųjį prievadą; tiesiog nukopijuokite jį ir naudokite registracijos formoje.

Užpildžius šią informaciją ir užregistravus šliuzą, TTN parodys būsenos tikrintuvą („Prisijungta“ arba „Atjungta“) ir skyrių „Srautas“, kuriame galėsite realiuoju laiku peržiūrėti paketų srautą. Jei viskas sukonfigūruota teisingai ir šliuze, ir TTN, per minutę ar dvi turėtumėte pamatyti būseną „Prisijungta“ ir pradėti matyti srautą, kai mazgai perduoda duomenis.

Tai reiškia, kad infrastruktūra (šliuzas + serveris) dabar veikia . Nuo tada pradedamas programų ir galinių įrenginių konfigūravimas.

Programos kūrimas ir mazgo registracija TTN

TTN sistemoje įrenginiai neregistruojami tiesiogiai paskyros šakniniame kataloge, o programų viduje . Programa sugrupuoja vieną ar daugiau mazgų, kurie siunčia susijusius duomenis, pavyzdžiui, visus pastato aplinkos jutiklius arba kelis GPS sekiklius edukaciniame projekte.

TTN konsolėje eikite į skyrių „Programos“ ir sukurkite naują programą . Suteikite jai unikalų ID, pasirinktinai aprašymą ir pasirinkite atitinkamą regioną. Šioje programoje užregistruosite kiekvieną „LoRaWAN“ mazgą su jo kredencialais („DevEUI“, „JoinEUI“ / „AppEUI“ ir „AppKey“ arba kitais raktais, priklausomai nuo aktyvinimo būdo).

Komerciniams jutikliams, tokiems kaip „Browan TBHH100-868“ temperatūros ir drėgmės jutikliai, paprastai pridedama etiketė su „DevEUI“, „AppEUI“ ir „AppKey“. Jie paprastai naudoja OTAA (aktyvinimo eteriu) metodą, kuris generuoja pagrindinius seansus su kiekvienu prisijungimu prie tinklo, todėl jis yra saugesnis nei ABP.

Naudodami OTAA, TTN pasirenkate registruoti naują galinį įrenginį, įveskite „JoinEUI“ („AppEUI“), „DevEUI“ ir „AppKey“ , patikrinkite duomenis ir patvirtinkite. Išsaugojus, jei mazgas tinkamai sukonfigūruotas ir yra šliuzo diapazone, jis matys tinklo švyturėlius, atliks prisijungimo procedūrą ir konsolėje pradėsite matyti ryšio pranešimus su jų matavimais.

Tas pats pasakytina ir apie jutiklius, tokius kaip „Decentlab“ lygio ir temperatūros jutikliai : gamintojas pateikia ID, „DevEUI“, „AppEUI“ ir „AppKey“, bet iš anksto nežino, kurį serverį naudosite. Jūs esate atsakingi už šios informacijos registravimą TTN (arba kitame serveryje), kad jutiklis būtų užregistruotas. Daugelis „Decentlab“ įrenginių yra iš anksto užregistruoti TTN, jei to pageidaujate, o tai dar labiau supaprastina procesą.

Komercinių LoRaWAN jutiklių konfigūravimas

Pažvelkime į konkrečius pavyzdžius, kaip paruošti ir užregistruoti komercinius „LoRaWAN“ jutiklius , kurie vėliau bendraus su TTN per jūsų šliuzą.

„SenseCAP S210x“ serijos įrenginiuose (pavyzdžiui, aplinkos jutikliuose) įprasta naudoti gamintojo „SenseCraft“ programėlę . Pirmiausia atsisiunčiate programėlę, įjungiate jutiklį paspausdami mygtuką (kelias sekundes palaikydami jį nuspaustą, kol šviesos diodas sumirksės kas sekundę), o tada programėlėje pasirenkate „Skenuoti“, kad nuskaitytumėte įrenginio QR kodą.

Programėlėje yra „Išplėstinės konfigūracijos“ režimas, kuriame kaip platformą pasirenkate „The Things Network“ . Turite pasirinkti tą patį dažnių planą kaip ir jūsų šliuzas (pvz., EU868) ir patikrinti, ar prisijungimo režimas yra OTAA. Programėlėje bus rodomas įrenginio EUI, AppEUI („JoinEUI“) ir AppKey; verta juos užsirašyti, nes registruojant įrenginį reikės juos įvesti į TTN.

„Tabs Browan TBHH100-868“ jutiklio klavišai yra iš anksto sukonfigūruoti gamykloje. Jutiklis matuoja temperatūrą ir drėgmę, maitinamas 3,6 V baterijos ir perduoda duomenis pagal šias taisykles: kas 60 minučių, jei nėra pokyčių, arba anksčiau, jei temperatūra pasikeičia ±2 °C arba drėgmė ±5 %. Norėdami jį užregistruoti, tiesiog įveskite gamintojo pateiktus APPKey, APPEUI ir DevEUI į savo „LoRaWAN“ serverį (pvz., TTN). Kartais gali kilti problemų dėl formato arba baitų tvarkos (msb/lsb), todėl svarbu tai patikrinti, jei nepavyksta prisijungti pirmą kartą.

  Išsamus „Pi-hole“ diegimo su „Docker“ vadovas

„Dragino TrackerD“ įrenginiai naudojami kaip GPS sekikliai su pavojaus mygtuku. Kiekvienas įrenginys turi savo „LoRaWAN“ raktų rinkinį. TTN sistemoje jie paprastai registruojami toje pačioje programoje (pvz., „kurso sekimas“), o įrenginys, jei reikia, konfigūruojamas per nuoseklųjį prievadą (USB) naudojant AT komandas. Dokumentacijoje išsamiai aprašomos komandos, skirtos perdavimo greičiui, aliarmo elgesiui ir kt. reguliuoti. Svarbu: daugeliui „Dragino“ programinės įrangos versijų reikia, kad AT komandos būtų įklijuotos į terminalą visos, o ne rašomos po simbolį.

Tokių jutiklių kaip „Decentlab“ lygio, slėgio ar aplinkos jutikliai filosofija panaši: „DevEUI“, „AppEUI“ ir „AppKey“ naudojami jiems prijungti prie TTN (arba kito tinklo). „Decentlab“ paprastai nustato 10 minučių perdavimo intervalą, nes tai yra patikrintas kompromisas tarp duomenų suvartojimo ir skiriamosios gebos, nors tai galima pakeisti paprašius arba konfigūracijos būdu. Vartotojai gali peržiūrėti duomenis gamintojo debesijos platformoje arba integruoti įrenginį į trečiųjų šalių platformas („MyDevices“, „ResIoT“, „WMW“ ir kt.) pridėdami atitinkamą naudingosios apkrovos dekoderį.

Sukurkite savo „LoRaWAN“ mazgą naudodami atvirojo kodo aparatinę įrangą

Jei mėgstate eksperimentuoti, smagiausia dažnai būna konstruoti ir programuoti savo „LoRaWAN“ mazgą . Labai populiarus derinys yra naudoti ESP32 pagrindu sukurtą plokštę su integruotu „LoRa“, pvz., „TTGO LoRa32 V2.0 868 MHz“, ir pridėti paprastą jutiklį, pavyzdžiui, DS18B20 temperatūros jutiklį.

Šiam metodui reikia keturių dalių: valdymo plokštės (ESP32, „Arduino“ ir kt.), „LoRa“ radijo modulio (pavyzdžiui, RFM95 tipo SX1276/78), jutiklio, kurį norite išmatuoti , ir pasirinktinai periferinių įrenginių, tokių kaip OLED ekranas, skirtas duomenims rodyti vietoje.

„TTGO LoRa32 V2.0“ turi integruotą „LoRa“ siųstuvą-imtuvą ir, priklausomai nuo versijos, nedidelį OLED ekraną. Sukurtas ESP32 pagrindu, jis palaiko „WiFi“ ir „Bluetooth“ ryšius, o daugeliu atvejų puikiai tinka kurti vieno kanalo mini šliuzą, kai prijungtas prie interneto. Tačiau šioje ir panašiose plokštėse kai kurie „LoRa“ modulio (DIO1, DIO2) signalai nėra iš anksto prijungti prie mikrovaldiklio , todėl juos turėsite prijungti patys.

Pavyzdžiui, TTGO LoRa32 V2.0 paprastai naudoja tokį LoRa išvadų išdėstymą: SCK ties GPIO5, MISO ties GPIO19, MOSI ties GPIO27, CS ties GPIO18, RESET ties GPIO14 ir DIO0 ties GPIO26 . DIO1 ir DIO2 paprastai yra fiziškai prijungti atitinkamai prie GPIO33 ir GPIO32, kurie yra tiesiai priešais vienas kitą priešingoje eilutėje, todėl labai paprasta naudoti tiesioginį trumpiklį.

Yra trys tipiniai šių jungčių atlikimo būdai: lituoti laidus tiesiai prie kontaktų (galutiniam surinkimui), naudoti trumpiklio laidus, jei plokštė yra ant maketo , arba nuvesti jungtis ant specialios spausdintinės plokštės, prie kurios prijungtas TTGO. Trumpiklio parinktis paprastai yra patogiausia testavimui.

Mazgo programinė įranga: LMIC biblioteka, dažnio ir TTN raktai

Norint programuoti „LoRaWAN“ mazgą „Arduino“ / „ESP32“ sistemoje, plačiai naudojama MCCI „LoRaWAN LMIC“ biblioteka , kuri įgyvendina „LoRaWAN“ steko struktūrą ir valdo viską, kas susiję su kanalais, prisijungimais, pakartotiniais bandymais, priėmimo langais ir kt.

Pirmiausia įdiekite biblioteką iš „Arduino IDE“ bibliotekų tvarkyklės , ieškodami „LMIC“ ir pasirinkdami „MCCI LoRaWAN LMIC biblioteka“. Įdiegus biblioteką, yra svarbi detalė: pagal numatytuosius nustatymus ji sukonfigūruota US915 (Jungtinėms Valstijoms), todėl, jei esate Europoje, turite ją pakeisti į EU868.

Norėdami tai padaryti, bibliotekos aplanke suraskite failą lmic_project_config.h (pvz., /Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/) ir redaguokite apibrėžimus. Iškomentuokite CFG_us915 ​​​​ir įjunkite CFG_eu868, taip pat užtikrinkite, kad būtų įjungtas teisingas radijo tipas (pvz., CFG_sx1276_radio, jei naudojamas SX1276/78 modulis). Tai vienkartinis pakeitimas, kuris taikomas visiems jūsų LMIC projektams.

Tada atidarote vieną iš įtrauktų pavyzdžių, pavyzdžiui, „ttn-abp“ , kuris periodiškai siunčia „Hello, world!“ kaip naudingąją apkrovą. Šis pavyzdys naudojamas kaip pagrindas jį pritaikyti jūsų lentai ir TTN prisijungimo duomenims.

Kode matysite „lmic_pinmap“ struktūrą, kurioje nurodomi NSS (CS), RST ir DIO kontaktai . Pagal numatytuosius nustatymus ji paprastai yra susieta su „Feather M0 LoRa“, todėl, jei naudojate TTGO LoRa32 V2.0, turėsite pakeisti šią struktūrą, kad būtų naudojami .nss = 18, .rst = 14 ir .dio = {26, 33, 32} (darant prielaidą, kad DIO1 prijungėte prie GPIO33, o DIO2 – prie GPIO32). Jei jūsų aparatinė įranga skiriasi, turėsite peržiūrėti jos dokumentaciją arba rasti konkretų pavyzdį.

Kai kontaktų išdėstymas teisingas, laikas sukonfigūruoti raktus, kurie identifikuoja jūsų mazgą TTN . Ttn-abp pavyzdyje kintamieji NWKSKEY, APPSKEY ir DEVADDR pateikiami su žodžiu FILLMEIN, kad galėtumėte juos užpildyti savo reikšmėmis.

Šiuos duomenis gaunate iš TTN konsolės kurdami įrenginį su ABP aktyvacija. TTN pateikia tinklo sesijos raktą (NWKSKEY), programos sesijos raktą (APPSKEY) ir įrenginio adresą (DEVADDR) . Sąsajoje raktai yra paslėpti dėl saugumo priežasčių, tačiau galite juos padaryti matomus ir, naudingiau, nukopijuoti reikšmę tiesiai kaip C masyvą (naudodami mygtuką „<>“) su teisinga baitų tvarka (msb). Spustelėjus kopijavimo piktogramą, masyvas nukopijuojamas į iškarpinę, o jūs galite tiesiog įklijuoti jį į savo kodą ten, kur yra kiekvienas FILLMEIN.

NWKSKEY ir APPSKEY atveju naudosite TTN pateiktą baitų masyvo formatą , o DEVADDR atveju šešioliktainę reikšmę nustatysite kaip vieną sveikąjį skaičių, kurio tipas yra u4_t, pavyzdžiui, `static const u4_t DEVADDR = 0x26011111;`. Tai leis jūsų mazgui autentifikuoti ir nukreipti savo paketus į jūsų TTN programą.

Integruokite jutiklius į mazgo kodą

Kai „LoRaWAN“ skeletas veiks, laikas įprastą „Sveikas, pasauli!“ pakeisti tikrais jutiklių duomenimis . Tęsiant TTGO „LoRa32“ ir DS18B20 pavyzdį, naudojate „OneWire“ magistralę ir „DallasTemperature“ biblioteką.

  Išsamus „Google Cloud Developer“ papildinio, skirto dirbtinio intelekto agentams, vadovas

Eskizo pradžioje įtraukite antraštes ir apibrėžkite magistralės kontaktą: `#include <OneWire.h>`, `#include <DallasTemperature.h>` ir `#define ONE_WIRE_BUS X` , kur X yra GPIO kontaktas, prie kurio prijungėte jutiklį. Sukurkite `OneWire` objektą `oneWire(ONE_WIRE_BUS)` ir `DallasTemperature` objektą `sensor(&oneWire). Jei neturite įdiegtos DS18B20 bibliotekos, pridėkite ją iš bibliotekų tvarkyklės.

Funkcijoje „setup()“ inicijuojate jutiklį naudodami sensor.begin() ir, jei norite, nustatote skiriamąją gebą (pavyzdžiui, sensor.setResolution(11)) . Nuo tada jutiklis yra paruoštas nuskaityti temperatūrą, kai jums jos reikia.

Pagrindinė LMIC funkcija, skirta duomenims siųsti, yra `do_send(osjob_t* j)`. Viduje matysite vykstančio perdavimo patikrinimą (`OP_TXRXPEND`). Jei tokio nėra, iškviečiate `sensor.requestTemperatures()`, gaunate reikšmę naudodami `sensor.getTempCByIndex(0)` ir išsaugote ją `mydata` masyve. Pavyzdžiui, galite naudoti `mydata[0] = (uint8_t)sensor.getTempCByIndex(0);`, kad išsiųstumėte tik sveikąją dalį.

Tada iškviečiate LMIC_setTxData2(1, mydata, sizeof(mydata), 0) , kur pirmasis parametras yra „LoRaWAN“ prievadas (šiuo atveju 1), antrasis – buferis, trečiasis – dydis, o paskutinis nurodo, ar pranešimas patvirtintas (1), ar nepatvirtintas (0). Tada biblioteka suplanuoja perdavimą kitame laisvame laiko tarpsnyje.

Yra daug galimų patobulinimų: išplėsti naudingąją apkrovą, įtraukiant dešimtainius duomenis, pridėti kitų jutiklių, pakuoti duomenis į efektyvų dvejetainį formatą ir kt. Tačiau net ir šioje paprastoje versijoje jau yra mazgas, kuris periodiškai siunčia realaus laiko matavimus į TTN, matomas konsolėje ir paruoštas integruoti su kitomis sistemomis.

OTAA aktyvavimas, saugumas ir praktinė patirtis

Iki šiol daugiausia aptarėme ABP kodo pavyzdžiuose, tačiau gamyboje labai rekomenduojama naudoti OTAA (Over-The-Air Activation – aktyvinimas eteriu) . OTAA metodą naudoja, pavyzdžiui, „Decentlab“ jutikliai ir daugelis „SenseCAP“ jutiklių, nes jis padidina saugumą.

Naudojant OTAA, „LoRaWAN“ sesija derinama „eteryje“ kiekvieną kartą, kai įrenginys prisijungia prie tinklo . Kai mazgas išjungiamas, paleidžiamas iš naujo arba prarandamas ryšys, kitą kartą prisijungus generuojami nauji sesijos raktai, todėl sunku klonuoti įrenginį tiesiog nukopijuojant statinius raktus.

TTN konsolėje, pasirinkus įrenginiui OTAA, vietoj statinių NWKSKEY ir APPSKEY matysite DevEUI, JoinEUI/AppEUI ir AppKey . Sesijos raktai kiekvieną kartą konstruojami iš šių reikšmių ir mainų su serveriu, o išvestinius raktus matysite tik sesijos metu.

Praktiškai vartotojai, pradedantys „LoRaWAN“ nuo nulio, pastebėjo, kad užregistravus šliuzą TTN ir tinkamai sukonfigūruotą OTAA jutiklį, registracijos procesas gali būti labai paprastas : susikurkite paskyrą TTN, aktyvuokite šliuzą, užregistruokite jutiklį naudodami gamintojo pateiktus raktus ir per kelias minutes peržiūrėkite duomenis žiniatinklio platformoje (nesvarbu, ar tai būtų „Decentlab“, „SenseCAP“, ar trečiųjų šalių ataskaitų suvestinės).

Tokie veiksniai kaip jutiklio „LoRa“ dėžutės vieta (geriausia vertikalioje padėtyje, kuri palankesnė vidinės antenos spinduliuotės modeliui) , radijo aplinka ir šliuzo aukštis daro didelę įtaką faktinei aprėpčiai, tačiau supratus sąrankos eigą, ji gana mechaninė.

Nuo TTN iki jūsų programų: integracijos ir vizualizacija

Kadangi mazgai dabar įkelia duomenis į TTN, kitas žingsnis – perkelti šią informaciją į savo programas, ataskaitų suvestines ar automatizavimo darbo eigas . TTN tam siūlo galingas integracijas ir API.

Labai įprastas būdas yra naudoti „Node-RED“ duomenims gauti iš TTN ir apdoroti juos pagal poreikį . Sukonfigūruojate MQTT arba HTTP ryšį naudodami savo TTN programos kredencialus, dekoduojate naudingąją apkrovą (pagal jutiklių formatą) ir iš ten galite daryti praktiškai viską: išsaugoti duomenis duomenų bazėse, rodyti grafikus, suaktyvinti įspėjimus ir pan.

Kita galimybė – naudoti trečiųjų šalių platformas, kurios jau integruojasi su TTN , pvz., „Datacake“, „MyDevices“, „ResIoT“, WMW ir kitas. Daugelyje šių platformų jau yra specialūs šablonai tokiems įrenginiams kaip „Decentlab“ jutikliai ar kai kurie „Dragino“ modeliai, todėl tereikia pasirinkti įrenginio tipą, susieti jį su TTN programa ir pradėti peržiūrėti duomenis patogiose naudoti ataskaitų srityse.

Pavyzdžiui, edukaciniuose projektuose TTN buvo naudojamas kartu su RAK7289 šliuzais ir „Dragino TrackerD“ sekikliais žmonių ar transporto priemonių buvimo vietai nustatyti. Darbo eiga yra tokia: šliuzo registravimas, sekiklių registravimas TTN, duomenų peržiūra konsolėje ir tada realiuoju laiku rodymas viešoje „Datacake“ prietaisų skydelyje su žemėlapiais ir grafikais, rodančiais padėtį, akumuliatoriaus lygį ir kt.

Svarbu suprasti, kad TTN veikia kaip „LoRaWAN“ tinklo sluoksnis ir duomenų maršrutizatorius ; jūs sprendžiate apie programos ir vizualizacijos sluoksnį: nuo „Python“ scenarijaus, kuris naudoja API, iki pramoninės daiktų interneto duomenų platformos.

Trumpai tariant, „LoRaWAN“ mazgo prijungimas prie TTN apima kelis veiksmus (teisingas dažnis, tinkamai sukonfigūruotas šliuzas, TTN registracija, mazgo raktai, OTAA arba ABP aktyvinimas, įrenginio programinė įranga ir, jei pageidaujama, vėlesnės integracijos), tačiau kiekviena dalis yra įveikiama net ir neturint išankstinės patirties, jei laikomasi tinkamų gairių. Baigus pradinę sąranką, daugiau mazgų ar šliuzų diegimas tampa labai kartojamu ir keičiamo mastelio procesu, puikiai tinkančiu didelio masto jutiklių projektams, išmaniųjų miestų iniciatyvoms arba tiesiog mokymuisi ir eksperimentavimui su tolimojo nuotolio daiktų internetu.