Work

Connectivité IoT avec LoRaWAN

Embarqué
Développement
C/C++
FreeRTOS
LoRa/LoRaWAN

Dans le cadre d'un travail de laboratoire, nous avons créé (à deux) une mini station météo communiquant avec le protocole radio LoRa (Long Range).

Connectivité IoT avec LoRaWAN

Le but de ce projet était d’apprendre le fonctionnement et l’utilisation du protocole LoRa/LoRaWAN avec un cas d’utilisation simple : une station météo.

La vue globale du système se présente ainsi : la station récupère les données de température et d’humidité, elle les transmet par radio selon le protocole LoRa/LoRaWAN à notre serveur de données. Les données sont ensuite mises en forme pour l’utilisateur dans un dashboard.

LoRa vs LoRaWAN

LoRa est le protocole radio utilisé par le composant électronique de la carte. Il permet de transmettre des messages à d’autres systèmes embarqués capables de les recevoir. L’avantage de ce protocole est qu’il utilise très peu d’énergie et qu’il permet d’envoyer des messages sur une distance d’environ 15 km en zone dégagée. Ceci en fait un des meilleurs protocoles de communication sans fil pour les systèmes embarqués de terrain, car il privilégie la basse consomation et la longue portée au prix d’un faible débit de donnée.

LoRaWAN est la technologie utilisée pour faire passer la communication des systèmes LoRa sur Internet. Ceci fonctionne grâce à des modules de passerelle connectés à des serveurs officiels ou communautaires. Ce protocole définit aussi les normes de format de messages, de gestions des clés de sécurité et de classes d’appareil.

Approche de développement

Le langage de code C++ permet une approche orientée objet du programme. Chaque composant électronique est alors représenté par une classe C++ qui est ensuite instanciée dans le programme principal. Chacun de ces composants doit travailler simultanément, c’est pourquoi nous avons utilisé le système d’exploitation FreeRTOS qui nous a permis d’associer chaque action des composants à une tâche. Une fois le système en marche, FreeRTOS s’occupe lui-même d’agencer les tâches pour qu’elles fonctionnent en parallèle.