Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2019:lora-rn2483

Zadání

Komunikační modul RN2483 připojte k vhodnému vývojovému kitu. Zařízení zaregistrujte do sítě The Things Network. Vyberte vhodné informace z kitu k odesílání (teplota, náklon akcelerometru, napětí apod.) a demonstrujte funkci. Dále realizujte funkci notifikace zařízení ze sítě (confirmed downlink).


Úvod

Cílem projektu je demonstrovat funkci komunikačního modulu RN2483, který je vhodný k využití v IoT. Tento modul funguje na technologii LoRa (Long Range), a pracuje na protokolu LoRaWAN (Long Range Wide Area Network), který umožňuje zařízením obousměrnou komunikaci s omezeným počtem zpětných zpráv ve frekvenčním pásmu 868 MHz. Tento modul se připojuje k tzv. bráně do sítě TTN (The Things Network) a na server posílá změřená data.


Komunikační modul RN2483

Komunikační modul RN2483 vyrábí firma Microchip. Jedná se o Low-Power transceiver (TRANSmitter a reCEIVER) založený na technologii LoRa a využívajícího protokolu LoRaWAN. Ovládá se přes rozhranní UART pomocí AT příkazů. Pracuje ve dvou frekvenčních pásmech 433 MHz a 868 MHz. Udává se dosah až 15 km na předměstí a 5 km v zastavěné oblasti. Je vhodné jeho připojení k MCU jako centrálnímu prvku, který sbírá údaje z různých senzorů (teplota, napětí, osvětlení) a přes tento modul je zasílá na server.

Tabulka nastavení UART komunikace

Specifikace Nastavení
Baud Rate 57600 bps
Packet Length 8 bit
Parity Bit No
Stop Bitt 1 bit
Hardware Flow Control No

Výroba DPS

Jelikož modul RN2483 je ve formě SMD čipu, byla navržena jednoduchá DPS pro spojení s vývojovým kitem STM32F4DISCOVERY. Byly vyvedeny kontakty pro napájení, UART rozhraní, anténu, tři GPIO piny, reset a programovací piny. Na obrázcích níže je zobrazeno schéma zapojení, layout DPS a fotka DPS s modulem RN2483 po osazení.


Vývojový kit STM32F4DISCOVERY

Vývojový kit STM32F4DISCOVERY je osazen mikroprocesorem STM32F407VGT6. Dále obsahuje 3-osý akcelerometr, audio senzor, audio D/A převodník, 4 uživatelské LED diody, uživatelské tlačítko… K počítači se připojuje pomocí USB kabelu a díky debuggeru je možné kód také ladit. Na obrázku níže je zobrazen samotný vývojový kit.


LoRa a LoRaWAN

Již nějakou dobu je populární a často užívaná zkratka IoT (Internet of Things) tzv. Internet věcí. Jedná se o malá zařízení, která jsou připojena do internetu a vydrží pracovat řadu let bez nutnosti zásahu. Tyto vlastnosti shrnuje zkratka LPWAN (Low-Power Wide-Area Network). Bylo vyvinuto několik technologií a každá má svá specifika. Použitý modul RN2483 byl navržen pro technologii LoRa. Ta funguje ve volném rádiovém pásmu a díky použité technice rozprostření spektra a využití korekčních kodů je dosah připojených zařízení až několik kilometrů. Označení LoRa však zastává pouze nejnižší fyzickou vrstvu a definice vyšších vrstev chybí. Proto zde máme další zkratku LoRaWAN, která sdružuje několik protokolů definujících vyšší vrstvy. Celý systém je dále založen na správě komunikace mezi LPWAN branami a koncovými zařízeními. LoRaWAN dále definuje frekvenční pásmo pro komunikaci, možný datový tok a vysílací výkon pro všechna zařízení v síti. V síti funguje asynchronní komunikace a zařízení vysílají data ve chvíli, kdy je mají k dispozici. Data vyslaná koncovým zařízením mohou být přijata několika branami, která pošlou přijatou informaci na centrální server. Síťový server filtruje duplicitní pakety, provádí kontrolu zabezpečení a řídí síť. Poté jsou data poslána na aplikační server. Průběh komunikace v síti LoRaWAN přibližuje následující obrázek.


The Things Network

TTN je budovaná jako nízkonákladová globální datová IoT síť vlastněná a provozovaná uživateli, využívající technologii LoRa. Zahrnuje uzly, brány, síťový server, správu koncových zařízení a integraci s hlavními poskytovateli cloudových služeb a dalšími IoT platformami. Vše je plně konfigurovatelné koncovým uživatelem a veškerá komunikace je zabezpečená. Do sítě je možné zaregistrovat své koncové zařízení, které se bude připojovat pomocí veřejných bran. Tyto brány může provozovat každý uživatel za dodržení určitých podmínek. Díky tomu se celá síť dynamicky rozrůstá. Pro bezplatné používání platí určitá omezení. Jedná se o velikost přenášených dat a četnost přenášených zpráv. Velikost zpráv je v řádu desítek až nízkých stovek bajtů a četnost vysílání je maximálně každých pět minut. Vše záleží na potřebách uživatele a možnostech sítě.


Řešení

Registrace modulu do sítě TTN

Aby bylo možné využívat síť TTN, je potřeba vytvořit si účet na webové stránce www.thethingsnetwork.org. Poté je možné zaregistrovat svou aplikaci a přidat zařízení. Každé takové koncové zařízení má jedinečný identifikátor, podle kterého je v síti rozpoznatelné. Tento identifikátor si můžeme nechat síti TTN vygenerovat a uložit ho do modulu. To se dělá pomocí AT příkazů zasílaných přes rozhraní UART. Dále získáme unikátní zabezpečovací klíč, který rovněž uložíme do paměti modulu. Následující tabulka shrnuje AT příkazy nutné k registraci do TTN sítě.

Parametr Zápis
Devide EUI mac set deveui <např._0004A30B001A66ED>
App EUI mac set appeui <např._70B3D57ED0012309>
App Key mac set appkey <např._C19D2623625C4B7F7AE2F6155F25AC18>
Uložení hodnot mac save
Připojení do sítě mac join otaa

TTN akceptuje dvě metody připojení, přičemž prefrerována je OTAA(Over-The-Air-Activation), neboť si sama vyjednává šifrovací klíče a nastavení zařízení se zachová i po restartu/vypnutí. Druhá možnost je ABP (Activation By Personalisation), ta se doporučuje pro testovací a demonstrační účely, neboť nevyjednává spojení, což může být v případě vytížených bran časově náročné.

Níže přikládám screen terminálu při komunikaci s modulem po jeho nutném nastavení. Nejdříve byl zaslán příkaz sys get ver, na který modul odpoví verzí s datumem systému. Dále příkazem mac join otaa, byl dán příkaz pro připojení modulu do sítě. Ten odpoví ok, tzn. že rozumí příkazu a vykonal ho. Odpovědí je denied. Ta má však 2 významy, buď modul není v síti zaregistrován, nebo, jak tomu bylo v tomto případě, modul neobdržel od sítě odpověď. K tomuto stavu docházelo poměrně často vlivem použití nevhodné antény. Při náhledu do konzole TTN však požadavek na autorizaci od modulu přišel a odpověď byla vyslána. Na druhý pokus se však povedlo modul do sítě připojit a modul odpovídá accepted. Byl tedy pomocí příkazu mac tx <type> <portno> <data> vyslán požadavek na vyslání dat. Odpovědí je invalid_param, jelikož je možné vysílat pouze hexadecimální data a GG není z tohoto rozsahu. Parametr type může být cnf nebo uncnf, tzn., že si můžeme vyžádat potvrzení přijetí dat serverem. Parametr portno značí číslo portu a může být z rozsahu 1 - 223. Druhým již platným pokusem jsou testovací data vyslána a potvrzena. Přihlášením do svého účtu na TTN je provedena kontrola přijetí.

Těmito kroky byl samotný modul oživen, ověřena jeho funkčnost a bylo možné přistoupit k jeho připojení k vývojovému kitu a automatizovat zasílání informací na server a simulovat tak reálné využití.


Aplikace

Bylo využito programu STM32CubeMX, což je software, pomocí kterého se v grafickém rozhranní nakonfigurují jednotlivé periferie mikrokontroléru a následně je vygenerován inicializační odpovídající kód v programovacím jazyce C pro daný procesor. Pro tuto aplikaci bylo nutné inicializovat rozhraní UART jako asynchronní s parametry uvedenými v tabulce výše pro modul RN2483 a AD převodník pro měření napětí.

Samotný kód pracuje podle následujícího blokového schématu.

Při startu aplikace jsou inicializovány potřebné periferie a je vyslán požadavek na připojení modulu do sítě TTN.

char tx_join[] = „mac join otaa\r\n“;
HAL_UART_Transmit(&huart2, (uint8_t *)tx_join, strlen(tx_join), 10);

Následně bylo zvoleno měření napájecího napětí. Jeho hodnota se měří každých 5 minut a zasílá na server. Takto je možné sledovat zvolenou veličinu v reálném čase odkudkoli na zemi ve zvolených intervalech.

uint32_t napeti = ( 1210 * 4095)/(voltage());
printf(„mac tx uncnf 55 %d\r\n“, napeti);
HAL_Delay(300000);/*5 minut*/


Závěr

Byla demonstrována funkce modulu RN2483, který podporuje technologii LoRa. Tento modul byl zaregistrován do sítě TTN, kde v pětiminutových intervalech posílá hodnotu napájecího napětí mikroprocesoru STM32F4. Pro tento modul byla navržena jednoduchá DPS, aby ho bylo možné spojit s použitým vývojovým kitem STM32F4DISCOVERY. Během realizace projektu jsem řešil problémy s vyrobenou deskou, kdy došlo ke zkratu a zničení modulu. Následně jsem byl tedy nucen přistoupit k „nadrátování“ nového modulu, jak je vidět na videu. Jako vylepšení pro pokračování projektu bych navrhoval připojení např. teplotního čidla aby bylo možné sledovat vývoj teploty v místnosti nebo venku. Dále při reálném použití by bylo vhodné vyrobit samostatný malý plošný spoj bez použití vývojového kitu, který bude napájen z baterie a může tak být umístěn téměr kamkoliv. Pro dlouhou životnost baterie by bylo vhodné aktivování sleep módu, aby bylo odebíráno co nejméně energie.


Video

Zdrojový kód aplikace

2019/lora-rn2483.txt · Poslední úprava: 2020/01/20 18:55 autor: Radek Závorka