Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2019:lora-stm

LoRaWAN stack I-CUBE-LRWAN

Vypracoval: Pavel Němec


Zadání

Prostudujte funkci softwarového balíku I-CUBE-LRWAN. K vhodnému vývojovému kitu s procesorem STMicroelecotrnics připojte komunikační modul RFM95W, který obsahuje čip kompatibilní s SX1276. Portujte stack I-CUBE-LRWAN na vybraný vývojový kit a demonstrujte LoRaWAN komunikaci v síti The Things Network.

Úvod

LoRa

LoRa je technologie umožňující v IoT komunikovat se zařízeními na velké vzdálenosti (více než 10 km) s malou spotřebou energie a za nízkou cenu, čímž vyplňuje mezeru dosavadních technologií. Není cílem přenášet velké množství dat jako jsou videa nebo hlas. Technologie je spíše zaměřena na přenos malého množství dat (například ze senzorů nebo posílání jednoduchých příkazů). V Evropě se pro přenos informací využívají frekvence 433 MHz a 868 MHz.

Zdroj

Koncové zařízení se připojuje do sítě LoRaWAN díky bránám umístěným po celém světě. Z nich pak data pokračují dále na aplikační server, realizovaný například v The Things Network.

Zdroj

The Things Network

The Things Network je nízkonákladová síť pro IoT budovaná jednotlivými uživateli. Její použití je vcelku jednoduché a intuitivní.

I-CUBE-LRWAN

Softwarový balík I-CUBE-LRWAN je založen na STM32 HAL knihovnách a umožňuje komunikaci podle specifikace protokolu LoRaWAN. Podporované vývojové desky STM32 lze vidět v následující tabulce:

Zdroj 1 Dostupné v STM32Cube, takže portace je jednoduchá.

Byla zvolena model F4 (NUCLEO-F429ZI).

Koncové zařízení

Třídy

Koncová zařízení se dělí do tří tříd: A, B a C. Do třídy A spadají zařízení napájené z baterie, které vyšlou signál v uplinku a následně ve dvou časových oknech přijímají data. Zařízení třídy B jsou rovněž napájeny z baterie a mají o něco vyšší spotřebu a časová okna pro příjem dat mohou být otevřeny i v případě přijetí tzv. beacon z brány v definovaném časovém slotu. Zařízení třídy C nebývají napájeny baterií ale zdrojem, mají největší spotřebu energie a jsou schopny přijímat data prakticky kdykoliv mimo okamžik vysílání. Ve zvolené konfiguraci je možné realizovat i koncové zařízení třídy C.

Aktivace

Jsou dva způsoby aktivace OTAA (Over-the-air activation) a ABP (Activation by personalization). V případě OTAA je v zařízení i aplikačním serveru uložen tajný klíč (AppKey). Během připojovacího procesu aplikační server navíc vygeneruje další dva klíče pro zašifrování příkazů a dat. V případě ABP jsou tyto dva klíče předem uloženy do paměti koncového zařízení a lze tedy komunikovat s aplikačním serverem přímo. V The Things Network lze zvolit, která z těchto dvou metod bude použita.

Realizace

Registrace v The Things Network

The Things Network se používá pro komunikaci se zařízením, proto je potřeba si zde vytvořit účet a v konzoli vytvořit novou aplikaci a v ní zaregistrovat nové zařízení. Systém pak pro dané zařízení vygeneruje potřebné klíče v závislosti na zvolené aktivační metodě.

Software

Po stažení softwarového balíku I-CUBE-LRWAN lze vyzkoušet ukázkové projekty v něm obsažené. Jelikož projekty jsou určeny pro jiné vývojové prostředí (μVision) a jinou desku, posloužily především pro inspiraci. Jako vývojové prostředí bylo zvoleno STM32 Cube IDE. Po vytvoření projektu pro zvolenou vývojovou desku (Nucleo-F429ZI) se přidají soubory ze softwarového balíku I-CUBE-LRWAN. Především budou potřeba hlavní funkce pro komunikaci v síti LoRaWAN (složka Middlewares/LoRaWAN). Popis jednotlivých souborů a návod k použití se nachází v tomto souboru. Lze také použít soubory z ukázkových projektů, například Projects\STM32L476RG-Nucleo\Applications\LoRa\End_Node. V souboru Commissioning.h je potřeba zvolit aktivační metodu a přepsat klíče klíči vygenerovanými v The Things Network.

Proběhla spousta pokusů dát potřebné soubory dohromady a upravit v nich, co bylo třeba, nicméně komunikaci na Nucleo-F429ZI s modulem RFM95W se bohužel mi nepodařilo zprovoznit v žádném vývojovém prostředí, a to především kvůli problému s vkládáním knihoven. Inkludování knihoven často nefungovalo, i když soubor knihovny byl v projektu přítomen a bylo možné najít její deklaraci. Velká část těchto chyb šla postupně vyřešit ručním přidáním cesty k souboru, ale někdy ani to nepomohlo. Zkusil jsem tedy různé další metody, jak problém vyřešit, nikdy se ale nepodařilo vyřešit všechny chyby. Kvůli těmto problémům nebylo možné se dostat k vlastnímu naprogramování komunikace.

2019/lora-stm.txt · Poslední úprava: 2020/01/19 16:00 autor: Pavel Němec