- LoRaWAN kërkon një portë hyrëse të konfiguruar siç duhet (frekuencë, rrjet IP, server) dhe të regjistruar në TTN që nyjet të komunikojnë.
- Pajisjet fundore regjistrohen në aplikacionet TTN duke përdorur DevEUI, JoinEUI/AppEUI dhe AppKey (OTAA) ose NWKSKEY/APPSKEY/DEVADDR (ABP).
- Është e mundur të përdoren sensorë komercialë (SenseCAP, Decentlab, Dragino, Tabs) ose nyje DIY me ESP32/Arduino dhe bibliotekën LMIC për të dërguar të dhëna në TTN.
- TTN lehtëson integrimet me Node-RED dhe platforma të jashtme për të vizualizuar dhe shfrytëzuar të dhënat e IoT të mbledhura nga rrjeti LoRaWAN.
Nëse keni arritur deri këtu, kjo është sepse doni të dini se si të lidhni një nyje LoRaWAN me TTN nga fillimi në fund , duke mos lënë asgjë jashtë: portat hyrëse, nyjet, sensorët, libraritë, çelësat dhe konfigurimin e rrjetit. Lajmi i mirë është se nuk keni nevojë të jeni ekspert i telekomunikacionit; me një udhëzues të strukturuar mirë dhe pak durim, mund të krijoni rrjetin tuaj funksional LoRaWAN në çast.
Në rreshtat e mëposhtëm, do të shihni hap pas hapi se si të konfiguroni një portë hyrëse, ta regjistroni atë në The Things Network, të shtoni aplikacione dhe pajisje fundore dhe të programoni nyjet LoRaWAN bazuar në pllakat ESP32 ose Arduino, si dhe shembuj me sensorë komercialë (SenseCAP, Decentlab, Dragino, Tabs Browan). Gjithashtu do të trajtojmë detaje praktike që nuk gjenden gjithmonë në manuale: probleme të zakonshme me çelësat, përzgjedhja e frekuencës, lidhjet fizike të kunjave dhe truket për të verifikuar që gjithçka po komunikon vërtet me TTN.
Çfarë janë LoRa dhe LoRaWAN, dhe pse përdoret TTN?
LoRa dhe LoRaWAN janë dy koncepte të lidhura, por nuk janë e njëjta gjë . LoRa është një modulim i frekuencave radio me rreze të gjatë dhe fuqi të ulët, në pronësi të Semtech. LoRaWAN është protokolli i rrjetit që mbështetet në LoRa për të menaxhuar mënyrën se si pajisjet fundore (nyjet) komunikojnë me portat hyrëse dhe serverin e rrjetit.
Në një rrjet tipik LoRaWAN, ekzistojnë dy komponentë kryesorë: portat hyrëse dhe nyjet . Portat hyrëse veprojnë si "ura" midis botës LoRa (radio) dhe botës IP (internet), duke përcjellë paketa në serverin LoRaWAN. Nyjet janë sensorë ose aktivizues që dërgojnë dhe marrin informacion duke përdorur LoRa për në dhe nga këto porta hyrëse.
Për t'i lidhur të gjitha këto, ju nevojitet një server LoRaWAN. Mund të paguani për një shërbim privat (operatorë si Movistar, Vodafone, ose platforma si Loriot, Actility, Kerlink) ose të ndiqni rrugën e komunitetit duke përdorur The Things Network (TTN), i cili është një rrjet publik dhe i hapur i mirëmbajtur nga komuniteti.
TTN ka avantazhin e respektimit të qeverisjes së të dhënave, të qenit neutral dhe të lejuarit për të kontribuar me porta hyrëse në rrjet . Në shumë qytete, njerëzit po instalojnë porta hyrëse me iniciativën e tyre dhe kushdo mund të përfitojë nga kjo mbulim pa asnjë kosto tjetër përveç harduerit të nyjeve.
Frekuencat, Kanalet dhe Kufizimet e LoRaWAN
Para se të blini ndonjë pajisje, është shumë e rëndësishme të siguroheni që frekuenca LoRa është e pajtueshme me rajonin tuaj . Të punosh në Evropë nuk është e njëjtë me të punuarit në Shtetet e Bashkuara ose Azi; nëse zgjidhni bandën e gabuar, pajisja mund të jetë e padobishme ose edhe e paligjshme.
Në Evropë, përdoret kryesisht banda 868 MHz (EU868) . Në Shtetet e Bashkuara, banda tipike është 915 MHz (US915). Shitësit me pakicë kinezë ofrojnë një larmi të gjerë modulesh 433 MHz, të cilat mund të jenë joshëse për shkak të çmimit të tyre, por ato nuk janë gjithmonë të pajtueshme me LoRaWAN ose sistemin operativ të vendit tuaj.
Përveç frekuencës, LoRaWAN është i organizuar në kanale, faktor përhapjeje (SF) dhe plane frekuence . SF përcakton shpejtësinë dhe diapazonin: një SF më i lartë do të thotë diapazon më i madh, por edhe më shumë kohë në ajër, gjë që konsumon më shumë energji dhe zë më shumë hapësirë kanali.
Në Evropë, zbatohet rregulli i njohur "1%" : çdo pajisje mund ta zërë kanalin e radios vetëm për një përqindje të vogël të kohës, zakonisht rreth 1%. Kjo kufizon shpeshtësinë e dërgimit të të dhënave dhe është një nga arsyet pse sensorët LoRaWAN zakonisht transmetojnë çdo disa minuta, jo çdo disa sekonda.
Përgatitjet dhe përzgjedhja e pajisjeve për portën hyrëse dhe nyjet
Për të ngritur një rrjet praktik, do t'ju duhet të paktën një portë hyrëse LoRaWAN dhe një ose më shumë nyje (sensorë) . Mund të kombinoni pajisje nga prodhues të ndryshëm, për sa kohë që ato përputhen me standardin LoRaWAN dhe funksionojnë në të njëjtin brez frekuencash.
Një model i njohur i portës së brendshme është Dragino LPS8 , i cili integron një përqendrues SX1308 dhe mbështet deri në 10 kanale paralele. Ai vjen i parakonfiguruar me plane të ndryshme frekuencash në varësi të vendit, dhe në Evropë funksionon në 868 MHz. Mundësohet nga 5V nëpërmjet USB-C dhe lidhet me rrjetin IP nëpërmjet RJ-45 ose Wi-Fi.
Shembuj të tjerë të portave që funksionojnë mirë me TTN përfshijnë RAK7289 (për përdorim të jashtëm, të fortë dhe me opsion LTE/4G) ose portat zyrtare TTN-GW-868 MHz, të projektuara për vendosjen e mbulimit në qytete ose projekte të Qytetit të Mençur. Është gjithashtu e mundur të ndërtohet një portë me një qelizë të vetme me një pllakë ESP32 dhe një modul SX1262 LoRa , siç bëhet me kitin Wio-SX1262 dhe një Xiaomi ESP32S3.
Si nyje keni dy mundësi: përdorni sensorë komercialë që janë tashmë të gatshëm për LoRaWAN (SenseCAP S210x, Tabs Browan TBHH100, Dragino TrackerD, Decentlab, etj.) ose ndërtoni nyjet tuaja me pllaka zhvillimi si TTGO LoRa32 V2.0, ESP32 + RMF95, moduli Arduino + LoRa, etj.
Konfiguroni një portë hyrëse LoRaWAN dhe lidheni atë me TTN
Hapi i parë i madh në projekt është vënia në punë e portës hyrëse dhe shfaqja e "Connected" në TTN . Edhe pse çdo prodhues ka panelin e vet, hapat konceptualë janë shumë të ngjashëm.
Me një Dragino LPS8, për shembull, mund ta menaxhoni atë nëpërmjet SSH ose HTTP . Nëse e lidhni nëpërmjet kabllit RJ-45, do t'ju duhet të gjeni adresën IP të caktuar nga serveri DHCP (duke përdorur një skaner IP ose nëpërmjet ruterit tuaj). Nëse preferoni konfigurimin fillestar nëpërmjet Wi-Fi, LPS8 krijon rrjetin e vet me një SSID si "dragino-xxxxx" dhe një fjalëkalim të paracaktuar si "dragino+dragino". Hyrja në adresën IP 10.130.1.1 do t'ju çojë në panelin e uebit, ku emri i përdoruesit dhe fjalëkalimi fillestar zakonisht janë "admin/dragino".
Pasi të hyni, do të shihni një menu me disa seksione, dhe disa opsione mund të kenë një kryq të kuq që tregon se mungon konfigurimi . Hapi i parë është të zgjidhni planin e saktë të frekuencave për zonën tuaj në skedën LoRa; në Evropë, ky është EU868 (afërsisht 868 MHz).
Pastaj, prekni skedën LoRaWAN ose Serveri i Rrjetit . Atje përcaktoni se me cilin server LoRaWAN do të lidhet porta hyrëse. Për TTN, zgjidhni "TTN" si ofrues dhe futni adresën e serverit evropian (për shembull, eu1.cloud.thethings.network), duke mbajtur portat UDP (zakonisht 1700 për ngarkim dhe shkarkim). Në të njëjtin seksion, do të shihni ID-në e Portës hyrëse ose EUI, të cilat do të na duhen më vonë në TTN.
Në seksionin Rrjeti, ju konfiguroni mënyrën se si lidhet porta hyrëse me internetin : LAN, WAN ose Wi-Fi WAN. Për ndërfaqen WAN, mund të zgjidhni një adresë IP statike ose DHCP; sa herë që është e mundur, rekomandohet një adresë IP statike mbi një lidhje me tel për një lidhje më të qëndrueshme dhe qasje më të lehtë në menaxhim. Seksioni LAN përdoret zakonisht për rrjetin e pikës së aksesit të brendshëm të portës hyrëse; është më mirë të mos e ndryshoni këtë cilësim pa e kuptuar plotësisht se çfarë po bëni, pasi mund të jetë një shpëtim jete nëse diçka shkon keq.
Në seksionin WiFi, mund të rregulloni si pikën e aksesit të gjeneruar nga vetë porta hyrëse ashtu edhe lidhjen e saj me një rrjet WiFi të jashtëm . Për siguri, rekomandohet të ndryshoni SSID-në dhe fjalëkalimin e parazgjedhur të pikës së aksesit që erdhi nga fabrika.
Në portat hyrëse RAK7289, procesi është i ngjashëm: hyni në panelin e uebit, konfiguroni adresën IP (statike ose DHCP) nëpërmjet Rrjetit → Ndërfaqja WAN , dhe më pas, në Rrjetin LoRa → Cilësimet e Rrjetit → Përcjellësi i Paketave, futni detajet e serverit TTN dhe shënoni EUI-në e Portës hyrëse për ta regjistruar atë me TTN më vonë. Nëse jeni pas një ruteri që ofron DHCP, mund ta gjeni adresën IP të portës hyrëse duke parë tabelën e qirasë (sipas emrit të hostit, për shembull, "RAK7289") ose duke përdorur mjete si nmap.
Regjistrimi i Portës në Rrjetin e Gjërave
Pasi porta hyrëse të ketë akses në internet, duhet ta regjistroni atë në TTN . Nëse nuk keni një llogari, së pari regjistrohuni në faqen e internetit të The Things Network dhe më pas hyni në Konsolë në rajonin përkatës (për shembull, https://eu1.cloud.thethings.network/).
Brenda konzolës, zgjidhni seksionin Porta dhe klikoni te "Regjistro portën" . TTN do të kërkojë një ID të Portës (një emër unik brenda llogarisë suaj) dhe, varësisht nga lloji i portës, EUI të Portës. Për portat e Dragino LPS8 që përdorin përçuesin klasik të paketave, duhet të zgjidhni opsionin "Po përdor përçuesin e paketave të trashëguara".
Përveç kësaj, do të specifikoni planin e frekuencës (EU868 për Evropën) , rajonin ose ruterin përkatës dhe, opsionalisht, vendndodhjen (koordinatat, brenda/jashtë, etj.). Në porta hyrëse si ajo me një qelizë të vetme me XIAO ESP32S3 dhe Wio-SX1262, vetë firmware-i mund të shfaqë ID-në e Portës hyrëse nëpërmjet portit serial gjatë nisjes; thjesht kopjojeni atë dhe përdoreni në formularin e regjistrimit.
Pas plotësimit të këtij informacioni dhe regjistrimit të portës hyrëse, TTN do të shfaqë një kontrollues statusi ("I lidhur" ose "I shkëputur") dhe një seksion "Trafiku" ku mund të shikoni rrjedhën e paketave në kohë reale. Nëse gjithçka është konfiguruar saktë si në portë hyrëse ashtu edhe në TTN, duhet ta shihni të ndryshojë në "I lidhur" brenda një ose dy minutash dhe të filloni të shihni trafikun kur nyjet janë duke transmetuar.
Kjo do të thotë që infrastruktura (gateway + server) është tani funksionale . Nga këtu, hyn në lojë konfigurimi i aplikacioneve dhe pajisjeve fundore.
Krijimi i aplikacionit dhe regjistrimi i nyjeve në TTN
Në TTN, pajisjet nuk regjistrohen direkt në rrënjën e llogarisë, por brenda aplikacioneve . Një aplikacion grupon një ose më shumë nyje që dërgojnë të dhëna të lidhura, për shembull, të gjithë sensorët mjedisorë në një ndërtesë ose disa gjurmues GPS në një projekt edukativ.
Në konsolën TTN, shkoni te seksioni Aplikacionet dhe krijoni një aplikacion të ri . Jepini atij një ID unik, opsionalisht një përshkrim, dhe zgjidhni rajonin e duhur. Brenda atij aplikacioni, do të regjistroni çdo nyje LoRaWAN me kredencialet e saj (DevEUI, JoinEUI/AppEUI dhe AppKey ose çelësa të tjerë në varësi të metodës së aktivizimit).
Për sensorët komercialë si sensorët e temperaturës dhe lagështisë Browan TBHH100-868 , zakonisht bashkëngjitet një etiketë me DevEUI, AppEUI dhe AppKey. Ato zakonisht përdorin metodën OTAA (Over-The-Air Activation), e cila gjeneron seanca kyçe me çdo bashkim në rrjet, duke e bërë atë më të sigurt se ABP.
Me OTAA, në TTN ju zgjidhni të regjistroni një pajisje të re fundore, futni JoinEUI (AppEUI), DevEUI dhe AppKey , verifikoni të dhënat dhe konfirmoni. Pasi të ruhet, nëse nyja është konfiguruar saktë dhe brenda rrezes së një porte hyrëse, ajo do të shohë sinjalizuesit e rrjetit, do të kryejë procedurën e bashkimit dhe ju do të filloni të shihni mesazhe uplink me matjet e tyre në tastierë.
E njëjta gjë vlen edhe për sensorë si sensorët e nivelit dhe temperaturës Decentlab : prodhuesi ofron ID-në, DevEUI-në, AppEUI-në dhe AppKey-in, por nuk e di paraprakisht se cilin server do të përdorni. Ju jeni përgjegjës për regjistrimin e këtij informacioni me TTN-në (ose një server tjetër) në mënyrë që sensori të mund të regjistrohet. Shumë pajisje Decentlab vijnë të pararegjistruara me TTN nëse e kërkoni, gjë që e thjeshton më tej procesin.
Konfigurimi i sensorëve komercialë LoRaWAN
Le të shohim disa shembuj konkretë se si të përgatisim dhe regjistrojmë sensorë komercialë LoRaWAN që më pas do të komunikojnë me TTN përmes portës suaj.
Në gamën SenseCAP S210x (për shembull, sensorët mjedisorë), rrjedha tipike e punës është përdorimi i aplikacionit SenseCraft të prodhuesit . Së pari, shkarkoni aplikacionin, ndizni sensorin me një buton (duke e mbajtur shtypur për disa sekonda derisa LED të ndizet çdo sekondë) dhe më pas në aplikacion, zgjidhni "Skano" për të lexuar kodin QR të pajisjes.
Brenda aplikacionit, ekziston një modalitet "Konfigurim i Avancuar" ku zgjidhni "The Things Network" si platformë . Duhet të zgjidhni të njëjtin plan frekuence si porta juaj (për shembull, EU868) dhe të verifikoni që modaliteti i bashkimit është OTAA. Aplikacioni do të shfaqë EUI të Pajisjes, AppEUI (JoinEUI) dhe AppKey; është mirë t'i shënoni këto sepse do t'ju duhet t'i futni në TTN kur të regjistroni pajisjen.
Në rastin e sensorit Tabs Browan TBHH100-868 , çelësat vijnë të parakonfiguruar nga fabrika. Sensori mat temperaturën dhe lagështinë, furnizohet me energji nga një bateri 3,6V dhe transmeton të dhëna sipas këtyre rregullave: çdo 60 minuta nëse nuk ka ndryshim, ose më shpejt nëse temperatura ndryshon me ±2°C ose lagështia me ±5%. Për ta regjistruar, thjesht futni APPKey, APPEUI dhe DevEUI të ofruara nga prodhuesi në serverin tuaj LoRaWAN (TTN, për shembull). Ndonjëherë mund të ketë një problem me formatin ose rendin e bajteve (msb/lsb), kështu që është e rëndësishme ta kontrolloni këtë nëse nuk lidhet herën e parë.
Pajisjet Dragino TrackerD përdoren si gjurmues GPS me një buton paniku. Çdo njësi ka grupin e vet të çelësave LoRaWAN. Në TTN, këto zakonisht regjistrohen në të njëjtin aplikacion (p.sh., "ndjekja e kursit"), dhe pajisja konfigurohet, nëse është e nevojshme, nëpërmjet portit serial (USB) duke përdorur komandat AT. Dokumentacioni detajon komandat për rregullimin e shkallës së transmetimit, sjelljen e alarmit, etj. E rëndësishme: Shumë firmware Dragino kërkojnë që komandat AT të ngjiten të plota në terminal, jo të shtypen karakter për karakter.
Në sensorë si sensorët e nivelit, presionit ose mjedisit të Decentlab , filozofia është e ngjashme: DevEUI, AppEUI dhe AppKey përdoren për t'i lidhur ato me TTN (ose një rrjet tjetër). Decentlab zakonisht cakton një interval transmetimi prej 10 minutash sepse është një kompromis i provuar midis konsumit të të dhënave dhe rezolucionit, megjithëse kjo mund të modifikohet me kërkesë ose nëpërmjet konfigurimit. Përdoruesit mund të shikojnë të dhënat në platformën cloud të prodhuesit ose ta integrojnë pajisjen në platforma të palëve të treta (MyDevices, ResIoT, WMW, etj.) duke shtuar dekoderin e duhur të ngarkesës së dobishme.
Ndërtoni nyjen tuaj LoRaWAN me pajisje me burim të hapur
Nëse ju pëlqen të eksperimentoni, shpesh mënyra më argëtuese është ndërtimi dhe programimi i nyjes suaj LoRaWAN . Një kombinim shumë i popullarizuar është përdorimi i një pllake të bazuar në ESP32 me LoRa të integruar, siç është TTGO LoRa32 V2.0 868 MHz, dhe shtimi i një sensori të thjeshtë, për shembull, një sensor temperature DS18B20.
Kjo qasje kërkon katër pjesë: panelin e kontrollit (ESP32, Arduino, etj.), modulin e radios LoRa (për shembull një RFM95 tip SX1276/78), sensorin që dëshironi të matni dhe, opsionalisht, pajisje periferike si një ekran OLED për të shfaqur të dhënat në nivel lokal.
TTGO LoRa32 V2.0 vjen me një marrës-transmetues LoRa të integruar dhe, varësisht nga versioni, një ekran të vogël OLED. Bazuar në ESP32, ai ofron WiFi dhe Bluetooth, dhe në shumë raste, është gjithashtu perfekt për ndërtimin e një mini-portë hyrëse me një kanal të vetëm kur lidhet me internetin. Megjithatë, në këtë pllakë dhe në të ngjashme, disa sinjale nga moduli LoRa (DIO1, DIO2) nuk janë të para-lidhura me mikrokontrolluesin , dhe do të duhet t'i lidhni vetë.
Për shembull, TTGO LoRa32 V2.0 zakonisht përdor pinout-in e mëposhtëm për LoRa: SCK në GPIO5, MISO në GPIO19, MOSI në GPIO27, CS në GPIO18, RESET në GPIO14 dhe DIO0 në GPIO26 . DIO1 dhe DIO2 zakonisht janë të lidhur fizikisht me GPIO33 dhe GPIO32, përkatësisht, të cilat ndodhen drejtpërdrejt përballë njëra-tjetrës në rreshtin e kundërt, duke e bërë shumë të lehtë përdorimin e një lidhësi direkt.
Ekzistojnë tre mënyra tipike për të bërë këto lidhje: bashkimi i telave direkt në kunja (për montimin përfundimtar), përdorimi i telave lidhës nëse pllaka është në një breadboard , ose drejtimi i lidhjeve në një PCB të dedikuar në të cilën është lidhur TTGO. Opsioni i lidhësit është zakonisht më i përshtatshmi për testim.
Softueri i nyjeve: biblioteka LMIC, frekuenca dhe çelësat TTN
Për të programuar një nyje LoRaWAN në Arduino/ESP32, përdoret gjerësisht biblioteka MCCI LoRaWAN LMIC , e cila zbaton grumbullin LoRaWAN dhe menaxhon gjithçka që lidhet me kanalet, bashkimet, ripërpjekjet, dritaret e marrjes, etj.
Së pari, instaloni bibliotekën nga Menaxheri i Bibliotekës së Arduino IDE duke kërkuar për "LMIC" dhe duke zgjedhur "MCCI LoRaWAN LMIC library". Pasi të instalohet, ka një detaj të rëndësishëm: si parazgjedhje, është konfiguruar për US915 (Shtetet e Bashkuara), kështu që nëse jeni në Evropë, duhet ta ndryshoni atë në EU868.
Për ta bërë këtë, gjeni skedarin lmic_project_config.h brenda dosjes së bibliotekës (diçka si /Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/) dhe modifikoni përkufizimet. Komentoni CFG_us915 dhe aktivizoni CFG_eu868, duke u siguruar gjithashtu që është aktivizuar lloji i saktë i radios (për shembull, CFG_sx1276_radio për modulet SX1276/78). Ky është një ndryshim një herësh që vlen për të gjitha projektet tuaja LMIC.
Pastaj hapni një nga shembujt e përfshirë, për shembull ttn-abp , i cili dërgon periodikisht një "Përshëndetje, botë!" si ngarkesë. Ky shembull shërben si bazë për ta përshtatur atë me tabelën tuaj dhe kredencialet tuaja të TTN.
Në kod, do të shihni një strukturë lmic_pinmap që specifikon kunjat NSS (CS), RST dhe DIO . Si parazgjedhje, zakonisht është e hartuar për Feather M0 LoRa, kështu që nëse përdorni një TTGO LoRa32 V2.0, do t'ju duhet ta ndryshoni këtë strukturë për të përdorur .nss = 18, .rst = 14 dhe .dio = {26, 33, 32} (duke supozuar se keni lidhur DIO1 me GPIO33 dhe DIO2 me GPIO32). Nëse hardueri juaj është i ndryshëm, do t'ju duhet të konsultoheni me dokumentacionin e tij ose të gjeni një shembull specifik.
Pasi pinout-i të jetë i saktë, është koha për të konfiguruar çelësat që identifikojnë nyjen tuaj në TTN . Në shembullin ttn-abp, variablat NWKSKEY, APPSKEY dhe DEVADDR shfaqen me fjalën FILLMEIN në mënyrë që t'i plotësoni ato me vlerat tuaja.
Këto të dhëna i merrni nga konsola TTN kur krijoni një pajisje me aktivizimin ABP. TTN ju ofron Çelësin e Sesionit të Rrjetit (NWKSKEY), Çelësin e Sesionit të Aplikacionit (APPSKEY) dhe Adresën e Pajisjes (DEVADDR) . Në ndërfaqe, çelësat janë të fshehur për arsye sigurie, por mund t'i bëni të dukshëm dhe, më e dobishme, ta kopjoni vlerën direkt si një varg C (duke përdorur butonin "<>") me rendin e saktë të bajteve (msb). Klikimi i ikonës së kopjimit kopjon vargun në kujtesën e përkohshme dhe thjesht mund ta ngjisni atë në kodin tuaj ku ndodhet çdo FILLMEIN.
Për NWKSKEY dhe APPSKEY, do të përdorni formatin e vargut të bajtave të ofruar nga TTN , ndërsa për DEVADDR, do ta vendosni vlerën heksadecimale si një numër të plotë të vetëm të tipit u4_t, për shembull, `static const u4_t DEVADDR = 0x26011111;`. Me këtë, nyja juaj do të jetë në gjendje të autentifikojë dhe drejtojë paketat e saj në aplikacionin tuaj TTN.
Integroni sensorët në kodin e nyjes
Pasi skeleti LoRaWAN të jetë funksional, është koha për të zëvendësuar mesazhin tipik "Përshëndetje, botë!" me të dhëna reale të sensorëve . Duke vazhduar me shembullin e TTGO LoRa32 dhe një DS18B20, përdorni autobusin OneWire dhe bibliotekën DallasTemperature.
Në fillim të skicës, përfshini header-at dhe përcaktoni pin-in e bus-it: `#include <OneWire.h>`, `#include <DallasTemperature.h>`, dhe `#define ONE_WIRE_BUS X` , ku X është pin-i GPIO me të cilin e keni lidhur sensorin. Krijoni objektin `OneWire` `oneWire(ONE_WIRE_BUS)` dhe objektin `DallasTemperature` `sensor(&oneWire). Nëse nuk e keni të instaluar bibliotekën DS18B20, shtojeni atë nga menaxheri i bibliotekës.
Në funksionin setup(), ju inicializoni sensorin me sensor.begin() dhe, nëse dëshironi, vendosni rezolucionin (për shembull, sensor.setResolution(11)) . Që nga ajo kohë, sensori është gati të lexojë temperaturën kur ju nevojitet.
Funksioni kryesor në LMIC për dërgimin e të dhënave është `do_send(osjob_t* j)`. Brenda, do të shihni një kontroll për një transmetim në vazhdim (`OP_TXRXPEND`). Nëse nuk ka një të tillë, ju telefononi `sensor.requestTemperatures()`, merrni vlerën me `sensor.getTempCByIndex(0)` dhe e ruani atë në vargun `mydata`. Për shembull, mund të përdorni `mydata[0] = (uint8_t)sensor.getTempCByIndex(0);` për të dërguar vetëm pjesën e plotë.
Pastaj thirret LMIC_setTxData2(1, mydata, sizeof(mydata), 0) , ku parametri i parë është porta LoRaWAN (1 në këtë rast), i dyti është buffer-i, i treti është madhësia dhe i fundit tregon nëse mesazhi është pranuar (1) apo i papranuar (0). Biblioteka pastaj cakton transmetimin në slotin tjetër të disponueshëm.
Ka shumë përmirësime të mundshme: zgjerimi i ngarkesës për të përfshirë të dhëna dhjetore, shtimi i sensorëve të tjerë, paketimi i të dhënave në një format binar efikas , etj. Por edhe në këtë version të thjeshtë, ju tashmë keni një nyje që dërgon periodikisht matje në kohë reale në TTN, të dukshme në tastierë dhe gati për t'u integruar me sisteme të tjera.
Aktivizimi, siguria dhe përvoja praktike e OTAA-s
Deri më tani kemi diskutuar kryesisht ABP për shembuj kodi, por në prodhim, rekomandohet fuqimisht të përdorni OTAA (Over-The-Air Activation - Aktivizimi përmes ajrit) . OTAA është metoda e përdorur, për shembull, nga sensorët Decentlab dhe shumë sensorë SenseCAP, sepse rrit sigurinë.
Me OTAA, seanca LoRaWAN negociohet "në ajër" sa herë që pajisja lidhet me rrjetin . Kur nyja fiket, riniset ose humbet lidhjen, çelësa të rinj sesioni gjenerohen herën tjetër që lidhet, duke e bërë të vështirë për dikë që ta klonojë pajisjen thjesht duke kopjuar çelësa statikë.
Në konsolën TTN, kur zgjidhni OTAA për një pajisje, në vend të NWKSKEY dhe APPSKEY statik, do të keni DevEUI, JoinEUI/AppEUI dhe AppKey . Çelësat e sesionit ndërtohen çdo herë nga këto vlera dhe shkëmbimi me serverin, dhe do të shihni vetëm çelësat e nxjerrë për kohëzgjatjen e sesionit.
Në praktikë, përdoruesit që kanë filluar nga e para me LoRaWAN kanë zbuluar se me një portë hyrëse të regjistruar në TTN dhe një sensor OTAA të konfiguruar saktë, procesi i regjistrimit mund të jetë shumë i thjeshtë : krijoni një llogari në TTN, aktivizoni portën hyrëse, regjistroni sensorin me çelësat e ofruar nga prodhuesi dhe brenda pak minutash shikoni të dhënat në një platformë web (qoftë ajo e Decentlab, SenseCAP apo panele të palëve të treta).
Faktorë të tillë si vendndodhja e kutisë LoRa të sensorit (më së miri në një pozicion vertikal, i cili favorizon modelin e rrezatimit të antenës së brendshme) , mjedisi i radios dhe lartësia e portës hyrëse ndikojnë shumë në mbulimin aktual, por rrjedha e konfigurimit është mjaft mekanike pasi të kuptohet.
Nga TTN te aplikacionet tuaja: integrime dhe vizualizim
Meqenëse nyjet tani ngarkojnë të dhëna në TTN, hapi tjetër është ta sillni atë informacion në aplikacionet, panelet ose rrjedhat e punës së automatizimit tuaj . TTN ofron integrime të fuqishme dhe një API për këtë.
Një qasje shumë e zakonshme është përdorimi i Node-RED për të marrë të dhëna nga TTN dhe për t'i përpunuar ato sipas nevojës . Ju konfiguroni një lidhje MQTT ose HTTP me kredencialet e aplikacionit tuaj TTN, deshifroni ngarkesën (sipas formatit të sensorëve tuaj) dhe prej andej mund të bëni praktikisht çdo gjë: të ruani në bazat e të dhënave, të shfaqni grafikë, të aktivizoni alarme, etj.
Një tjetër mundësi është përdorimi i platformave të palëve të treta që tashmë integrohen me TTN , të tilla si Datacake, MyDevices, ResIoT, WMW dhe të tjera. Shumë nga këto platforma tashmë kanë shabllone specifike për pajisje si sensorët Decentlab ose disa modele Dragino, kështu që thjesht duhet të zgjidhni llojin e pajisjes, ta lidhni atë me aplikacionin tuaj TTN dhe të filloni të shikoni të dhënat në panele miqësore për përdoruesit.
Në projektet edukative, për shembull, TTN është përdorur në lidhje me portat RAK7289 dhe gjurmuesit Dragino TrackerD për gjetjen e njerëzve ose automjeteve. Fluksi i punës është si më poshtë: porta e regjistruar, gjurmuesit e regjistruar në TTN, të dhënat shikohen në tastierë dhe më pas shfaqen në kohë reale në një panel publik Datacake me harta dhe grafikë që tregojnë pozicionin, nivelin e baterisë, etj.
Gjëja e rëndësishme për t'u kuptuar është se TTN vepron si një shtresë rrjeti LoRaWAN dhe si një router i të dhënave ; ju vendosni për shtresën e aplikacionit dhe vizualizimit: nga një skript Python që konsumon API-n te një platformë industriale të të dhënave IoT.
Shkurt, lidhja e një nyjeje LoRaWAN me TTN përfshin disa hapa (frekuencën e saktë, portën e konfiguruar siç duhet, regjistrimin e TTN, çelësat e nyjeve, aktivizimin e OTAA ose ABP, softuerin e pajisjes dhe, nëse dëshirohet, integrimet pasuese), por secila pjesë është e menaxhueshme edhe pa përvojë paraprake nëse ndiqen udhëzimet e duhura. Pasi të përfundojë konfigurimi fillestar, vendosja e më shumë nyjeve ose portave bëhet një proces shumë i përsëritshëm dhe i shkallëzueshëm, perfekt për projekte sensorësh në shkallë të gjerë, iniciativa të Qytetit të Mençur ose thjesht për të mësuar dhe eksperimentuar me IoT me rreze të gjatë veprimi.