Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2019:lora-rn2483

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2019:lora-rn2483 [2020/01/19 22:42]
Radek Závorka
2019:lora-rn2483 [2020/01/20 18:55] (aktuální)
Radek Závorka
Řádek 28: Řádek 28:
 ===== Výroba DPS ===== ===== Výroba DPS =====
  
-Jelikož modul RN2483 je ve formě SMD čipu, byla navržena jednoduchá DPS pro spojení s vývojovým kitem  [[https://​www.st.com/​en/​evaluation-tools/​stm32f4discovery.html|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í, ​maska DPS a fotka DPS s modulem RN2483 po osazení.+Jelikož modul RN2483 je ve formě SMD čipu, byla navržena jednoduchá DPS pro spojení s vývojovým kitem  [[https://​www.st.com/​en/​evaluation-tools/​stm32f4discovery.html|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í.
  
  
Řádek 36: Řádek 36:
 ---- ----
  
-====== Vývojový kit SMT32F4DISCOVERY ​======+====== Vývojový kit STM32F4DISCOVERY ​======
  
 Vývojový kit [[https://​www.st.com/​en/​evaluation-tools/​stm32f4discovery.html|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. Vývojový kit [[https://​www.st.com/​en/​evaluation-tools/​stm32f4discovery.html|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.
Řádek 46: Řádek 46:
 ====== LoRa a LoRaWAN ====== ====== LoRa a LoRaWAN ======
  
-Již nějakou dobu je populární a často užívaná zkratka IoT (**I**nternet **o**f **T**hings) 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 (**L**ow-**P**ower **W**ide-**A**rea **N**etwork). 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.+Již nějakou dobu je populární a často užívaná zkratka IoT (**I**nternet **o**f **T**hings) 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 (**L**ow-**P**ower **W**ide-**A**rea **N**etwork). 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 branamikterá 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.
  
  
Řádek 55: Řádek 55:
 {{:​2019:​ttn.png?​100}} {{:​2019:​ttn.png?​100}}
  
-TTN je budována ​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ě.+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ě.
  
 {{:​2019:​ttn_sim.png?​}} {{:​2019:​ttn_sim.png?​}}
Řádek 77: Řádek 77:
 TTN akceptuje dvě metody připojení,​ přičemž prefrerována je OTAA(**O**ver-**T**he-**A**ir-**A**ctivation),​ neboť si sama vyjednává šifrovací klíče a nastavení zařízení se zachová i po restartu/​vypnutí. Druhá možnost je ABP (**A**ctivation **B**y **P**ersonalisation),​ 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é. ​ TTN akceptuje dvě metody připojení,​ přičemž prefrerována je OTAA(**O**ver-**T**he-**A**ir-**A**ctivation),​ neboť si sama vyjednává šifrovací klíče a nastavení zařízení se zachová i po restartu/​vypnutí. Druhá možnost je ABP (**A**ctivation **B**y **P**ersonalisation),​ 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é ​vylí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í.+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í.
  
 {{:​2019:​term_acc.png}} {{:​2019:​term_acc.png}}
Řádek 86: Řádek 86:
 ===== Aplikace ===== ===== 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é ​pouze inicializovat rozhraní UART jako asynchronní s parametry uvedenými v tabulce výše pro modul RN2483. ​+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. Samotný kód pracuje podle následujícího blokového schématu.
Řádek 102: Řádek 102:
 ''​printf("​mac tx uncnf 55 %d\r\n",​ napeti);''​\\ ''​printf("​mac tx uncnf 55 %d\r\n",​ napeti);''​\\
 ''​HAL_Delay(300000);/​*5 minut*/''​\\ ''​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 ======
 +
 +[[https://​www.youtube.com/​watch?​v=Fnwz3t4cf6o&​feature=youtu.be|Video ukázka]]
 +----
 +
 +==== Zdrojový kód aplikace====
 +
 +{{:​2019:​xzavor03_mpoa_projekt.zip|Zdrojový soubor projektu}}
 ---- ----
  
  
2019/lora-rn2483.1579470166.txt.gz · Poslední úprava: 2020/01/19 22:42 autor: Radek Závorka