L’Internet des Objets

L’Internet des Objets

22.2 LoRa et LoRaWAN

Page précédente Page suivante

22.2.1 Protocole longue distance

Le nom LoRa vient de LOng RAnge. Il définit la méthode Radio utilisée pour la communication physique. Le nom LoRaWAN définit le protocole et l’architecture du système. Ils permettent de mettre en place une communication longue distance (record de 2020 : 832km) à faible énergie et faible débit entre 300b/s et 50kb/s.

L’entreprise sigfox a développé un produit concurent qui souffre de deux gros handicaps pour l’enseignement. Il impose un abonnement pour chaque équipement (rédhibitoire pour les services universitaires) et la réception est obligatoirement gérée par l’opérateur. Il n’est donc pas raisonnable d’installer une maquette complète. Nous nous limiterons donc à LoRa.

La 5G propose aussi un service IoT. Il faut donc un abonnement et la partie réseau est aussi inaccessible.

22.2.1.1 L’architecture LoRaWAN

Le mot LoRaWAN désigne un protocole de transmission numérique utilisant la modulation LoRa. La transmission se fait généralement entre un objet et une passerelle. L’objet est généralement un capteur, la passerelle permet de convertir les informations vers un réseau IP, souvent Internet.

Par abus de langage, LoRa ou LoRaWAN peuvent désigner le réseau complet dont une partie utilise cette modulation. Les opérateurs de télécommunications fournissent une offre commerciale permettant d’utiliser un capteur LoRaWAN sans une passerelle personnelle. Les applications dans le transport peuvent utiliser ce genre d’abonnement pour disposer d’une couverture étendue.

Bandes de fréquence

La réglementation limite la puissance d’émission et le pourcentage de temps d’émission. Pour la bande 866 (entre 863 et 870MHz), nous avons des puissances maximum de 14dBm ou 27dBm et des durées d’utilisation de 0,1% à 10%.

22.2.1.2 The Thing Network

Le réseau des choses en anglais The Thing Network (TTN) se définit comme « We are a global collaborative Internet of Things ecosystem that creates networks, devices and solutions using LoRaWAN ». Il définit une architecture et propose des tutoriaux pour mettre en place une solution utilisant LoRaWAN.

(image)

Fig. 22.1 : Architecture TTN.

Ce que propose TTN, au delà de la formation, c’est un réseau coopératif. L’architecture, illustrée dans la figure 22.1, définit quatre types d’acteurs :

Nœuds terminaux

ce sont principalement des capteurs communicants en LoRaWAN ;

Passerelles

convertissent les communications LoRaWAN en IP ;

Serveur réseau

est connecté à toutes les passerelles et centralise toutes les communications ;

Serveur Applicatif

le serveur propre à un service.

Les nœuds terminaux sont les objets disséminés. Ils envoient leurs informations en transmission LoRa. Ils peuvent recevoir des réponses éventuellement. Ces nœuds appartiennent aux utilisateurs de TTN.

Les passerelles convertissent toutes les communications LoRa vers le serveur réseau. Les passerelles appartiennent aussi aux utilisateurs de TTN. Les passerelles sont mutualisées et transmettent les messages aussi pour les autre utilisateurs.

Le serveur réseau reçoit les messages depuis toutes les passerelles. Quand un objet diffuse son message, celui-ci peut être reçu par plusieurs passerelles. Le serveur transmettra alors uniquement un seul message au serveur applicatif. Pour les réponses, il utilisera la passerelle qui a la meilleure connexion avec l’objet. Si plusieurs passerelles reçoivent le message, alors cela permettra de localiser l’objet.

Le serveur applicatif sera notifié des messages des nœuds terminaux le concernant par le serveur réseau.

Pour ajouter une application, il faut au moins un objet distant et un serveur applicatif. Le site TTN fournit une carte montrant les passerelles disponibles. Si aucune passerelle n’est disponible pour l’objet, alors il faut ajouter une passerelle.

L’utilisation du réseau TTN est bien documentée, mais assez difficile à mettre en œuvre la première fois. C’est pourquoi, nous souhaitons commencer les projets d’étudiants avec une communication directe entre deux objets LoRa.

22.2.2 Les cartes LoRa
22.2.2.1 STM32

ST propose plusieurs chips et cartes LoRa :

Nous avons la famille des WL55 :

STM32WL55

un processeur, basse consommation avec un chipset LoRa, mais peu de mémoire flash (256Ko, pas assez pour micropython) ;

Nucleo WL55

une carte Nucleo avec le processeur WL55 ;

Nucleo pack LoRa

(P-NUCLEO-LRWAN2) existe en trois versions contenant une carte gateway (grosse Nucleo avec Ethernet et une carte fille LoRa) et une carte sensor (Nucleo et carte fille environnement) ;

B-L072Z-LRWAN1

carte Nucleo / Lora (peu de mémoire), pas de capteurs, un logement de piles AAA ;

STEVAL-STRKT01

un tracker LORA GNSS et environnement

Seeed Grove-Wio-E5

Une carte Grove avec le processeur, elle implémente un jeu de commandes AT :

(image)

Fig. 22.2 : La WL55, en version Grove.

NUCLEO-L073RZ

L0
73

  • Nucleo 64

  • compatible µP

  • 192Ko

  • 32MHz

NUCLEO-F746ZG

  • Nucleo 144

  • compatible µP

  • Flash 1Mo

  • Haute performance

I-NUCLEO-LRWAN1

LRWAN_GS_HF1 LoRa

22.2.2.2 Le LoRA, pas à pas

Merci à Sufian Kaki Aslam pour sa documentation sur Hackster.

Nous allons commencer par le module Grove pour utiliser le WL55 à travers une interface UART et des commandes AT (Hayes). Pour commencer, il nous faut deux modules et émettre depuis l’un pour recevoir par l’autre.

Mise en place matérielle du couple WB

Nous allons utiliser un nucleo, ici un WB55, avec le firmware MicroPython. Le WL55 est le module grove, programmé avec des commandes AT, c’est classique pour un modem.

Le début du Lora

Pour commencer, nous pouvons utiliser les commandes suivantes :

+AT

réponse +AT: OK ;

AT+VER

réponse +VER: 4.0.11, par exemple ;

AT+RESET

Le récepteur doit recevoir les commandes :

   AT+MODE=TEST
   AT+TEST=RXLRPKT

L’émetteur :

   AT+MODE=TEST
   AT+TEST=TXLRPKT, "AB"
   AT+TEST=TXLRSTR, "AB"

Il faut donc pouvoir envoyer et recevoir les informations série. Pour cela, nous allons utiliser une carte Nucleo WB55. Nous pouvons la programmer en MicroPython ou en C, avec l’IDE Arduino.

22.2.2.3 Le firmware seeedLoRa

Le firmware utilise les mécanismes classiques des modems (Commandes AT ou Hayes). En particulier :

  • non sensible à la casse ;

  • toutes les commandes fournissent une réponse ;

  • les commandes sont limitées à 528 caractères ;

  • les commandes sont terminées par un LF, CRLF est aussi autorisé ;

  • la configuragion est 9600,8N1 ;

  • certains paramètres résistent à la mise hors tension, la remis en paramètres usine se fait par AT+FDEFAULT

  • il est possible de fonctionner en full-duplex

  • la mise à jour du firmware se fait en mode dfu

Le timeout pose quelques petits problèmes. L’utilisation initiale de MicroPython génère souvent un timeout, alors qu’avec un programme compliné, nous n’avons pas de timeout. La documentation n’est pas explicite sur ce sujet. Elle indique que la valeur maximum est de 300ms, et l’exemple montre comment utiliser 1s.

L’utilisation de fonctions de contrôle de l’heure pourrait permettre de mieux comprendre cela. Les fonctions qui pourraient être utiles sont utime.ticks_ms et utime.ticks_us pour obtenir une idée du temps etnre deux appels.

Le mode test fournit des sous commandes permettant d’obtenir des informations sur les caractéristiques de transmission :

STOP
TXCW

transmets une onde continue

TXCLORA

transmets un signal LoRa continuellement

RFCFG
RXLRPKT

Reçoit les paquets LoRa, les affiche une fois

TXLRPKT

Transmet au format hexa

TXLRSTR

transmet au format string

RSSI

affiche le RSSI du signal reçu

LWDL

22.2.2.4 Le mode test seed

Nous allons commencer par jouer en mode test. Pour l’activer, il faut utiliser :

ATcmd: AT+MODE=test
Envoyé : AT+MODE=test
ATcmd: Message reçu : +MODE: TEST

Ensuite, pour envoyer un message, on peut utiliser :

ATcmd: AT+TEST=TXLRPKT, "00 AA 11 BB 22 CC"
Envoyé : AT+TEST=TXLRPKT, "00 AA 11 BB 22 CC"
ATcmd: Message reçu : +TEST: TXLRPKT "00AA11BB22CC"
+TEST: TX DONE

L’analyse spectrale par gqrx est présentée dans la figure 22.3. Le signal est centré sur 868MHz (entre 867,9 et 868,1).

(image)

Fig. 22.3 : Capture d’émission par gqrx.

On peut aussi transmettre une onde continue (ATXCW), la figure 22.4 montre une raie.

(image)

Fig. 22.4 : gqrxLoraWave

Ou alors transmettre une modulation LoRa permanente (ATTXCLORA)

 :

(image)

Fig. 22.5 : gqrxLoraTest

Page précédente Page suivante