Configuration d’une passerelle LoRaWAN The Things Indoor
Ce tutoriel explique comment mettre en œuvre rapidement un réseau LoRaWAN privé, constitué d’une passerelle LoRaWAN The Things Indoor Gateway (TTIG) enregistrée sur The Things Network (TTN) avec une interface graphique fournie par les serveurs de TagoIO.
Notre réseau loRaWAN sera précisément celui illustré ci-dessous :

Crédit image : Deltalab
Comme objet connecté, nous utiliserons notamment une carte NUCLEO-WB55 équipée d’un un module Grove LoRa-E5 de Seeed studio et d’un capteur environnemental, en écho et complément à cet autre tutoriel qui montre comment utiliser LoRaWAN avec MicroPython. Mais tout ce que nous allons raconter s’appliquerait à n’importe quel autre objet équipé d’une radio LoRa en changeant essentiellement son identifiant unique DevEui. Nous vous invitons à lire notre article LoRa et LoRaWAN, préalable à ce tutoriel.
The Things Indoor Gateway (TTIG)
La passerelle LoRaWAN que nous avons choisi est la The Things Indoor Gateway (TTIG) qui est à la fois peu onéreuse, compacte et facile à configurer. Particulièrement sobre, la passerelle TTIG a cet aspect :

Crédit image : The Things Network
Elle comporte une LED, un bouton Reset et un bouton Setup. Elle peut être alimentée directement sur une prise électrique ou bien à l’aide d’un câble USB C. Dépourvue de connecteur RJ45 - Ethernet, elle se connectera à l’Internet via votre réseau Wi-Fi.
Création du compte TTN et choix du réseau loRaWAN
Commencez par vous rendre sur le site de TTN et cliquez sur le bouton Sign Up dans le bandeau en haut complètement à droite pour créer puis valider votre compte TTN. Il faut choisir l’option Experiment and explore with The Things Network sur la page qui s’affiche. Si votre compte est déjà créé, cliquez sur le bouton Login juste à côté pour vous y connecter avec vos identifiants, ce qui devrait vous renvoyer sur une invite ressemblant à ceci :

Une fois connecté, l’icône de votre profil apparaît toujours dans le bandeau en haut complètement à droite avec le nom que vous avez choisi. Développez le menu associé pour le faire apparaitre, il comporte trois entrées : My Profile, Console et Log Out. Cliquez sur Console :

Sur la page suivante, intitulée Choose a network cluster sélectionnez le menu déroulant Device or gateway location et précisez votre pays (“France” dans notre cas) puis sélectionnez votre Existing cluster dans la colonne de gauche (“Europe 1” dans notre cas) :

A l’issue de l’étape ci-dessus, vous devriez vous retrouver sur la page à cette URL : https://eu1.cloud.thethings.network/console/ qui ressemble à ceci :

Enregistrement d’une passerelle TTIG sur TTN
Vous pouvez à présent vous rendre sur la page de configuration de votre passerelle, ou gateway, en anglais. Cliquez donc sur Go to gateways. Une nouvelle page s’affiche avec un bandeau en haut qui propose, entre autres liens Applications et Gateways (c’est là que nous sommes positionnés).
Cliquez sur le bouton + Register gateway. Il vous faut à présent renseigner les paramètres de la passerelle que nous avons sélectionnée, à savoir The Things Indoor Gateway (TTIG). Le tutoriel “officiel” pour cette opération se trouve ici. L’étape la plus délicate est la détermination de son identifiant Gateway EUI. Celui-ci s’obtient à partir de l’étiquette située sur la passerelle.
Munissez-vous d’une loupe si vous n’avez pas une vue exceptionnelle, car c’est écrit en tout petit, est repérez le code de 12 caractères situé sous le QR Code de l’étiquette ainsi que le mot de passe de connexion au Wi-Fi intitulé WiFi PW comportant 8 caractères. Par exemple, pour une passerelle donnée on obtient à partir de l’étiquette :
- Gateway EUI : 58AADB804EAA
- WiFi PWD : XqnoWgYH
L’étape suivante consiste à modifier le Gateway EUI de l’étiquette en insérant les caractères FFFE (oui, en dernier, c’est bien un E !) après le sixième caractère du code inscrit sur l’étiquette de la passerelle. Ainsi 58AADB804EAA devient 58AADBFFFE804EAA. C’est ce nouveau code qu’il faudra utiliser par la suite comme EUI.
Vous disposez à présent de toutes les informations pour enregistrer votre passerelle sur TTN. Dans notre cas, cela donne :

Renseignez ensuite le mot de passe Wi-Fi dans la case Claim authentication code ainsi que le Frequency Plan (Europe 863-870 MHz…) et cliquez sur le bouton Claim gateway. Vous devriez obtenir ceci :

Et voilà, votre passerelle TTIG est déclarée et configurée sur TTN !
Il ne vous reste plus qu’à la brancher sur une alimentation USB (ou secteur) et à paramétrer sa connexion à votre réseau Wi-Fi domestique, afin qu’elle ait accès à Internet et qu’elle valide sa disponibilité auprès des serveurs de TTN.
Connexion de la passerelle TTIG à votre réseau Wi-Fi domestique
Connectons à présent la passerelle TTIG à votre réseau Wi-Fi domestique. Le tutoriel “officiel” pour cette étape se trouve ici, en voici une traduction :
- Maintenez le bouton RESET (petit bouton à l’arrière de la passerelle à côté du port USB-C) enfoncé pendant 5 secondes jusqu’à ce que la LED clignote rapidement du VERT au ROUGE deux fois.
-
Maintenez le bouton SETUP (en haut de la passerelle, à côté de la LED) enfoncé pendant 10 secondes jusqu’à ce que la LED clignote rapidement en ROUGE.
-
La passerelle expose maintenant un point d’accès Wi-Fi dont le SSID est MINIHUB-xxxxxx, où xxxxxx sont les 6 derniers chiffres de son EUI. Le mot de passe pour ce réseau est le même mot de passe Wi-Fi que nous avons relevé à l’étape qui précède.
- Connectez votre ordinateur ou votre smartphone sur ce réseau et rendez-vous à l’adresse 192.168.4.1 en la tapant dans la barre d’un navigateur web pour accéder à la page de configuration Wi-Fi de la passerelle. Vous accèderez à une page html qui liste tous les réseaux Wi-Fi détectés par la passerelle (cachés dans la copie d’écran qui suit) :

-
Sélectionnez le réseau Wi-Fi domestique qui vous convient en cliquant sur le bouton ”+” à côté de son identifiant (et entrez son mot de passe s’il s’agit d’un réseau sécurisé).
Important : La passerelle TTIG utilise un composant ESP32 qui n’acceptera pas de se connecter à un réseau Wi-Fi s’il est sécurisé en mode WPA-Enterprise. -
Cliquez sur Save and reboot pour terminer.
-
Si la configuration est correcte,
- La passerelle clignote en VERT pendant quelques secondes jusqu’à ce qu’elle se connecte au réseau Wi-Fi domestique que vous avez sélectionné.
- Ensuite, elle passe du VERT au ROUGE et vice versa pendant quelques secondes, le temps de se connecter au serveur et de récupérer la configuration nécessaire.
- Comptez 5 à 10 minutes pour que la passerelle récupère la nouvelle configuration.
-
Si c’est la première fois que votre passerelle est mise sous tension/connectée au Wi-Fi, il se peut qu’elle commence par télécharger un nouveau micrologiciel (ou firmware) plus récent que celui installé dessus en usine. Ceci est indiqué par des clignotements alternés VERT/ROUGE de la LED. Laissez la passerelle sous tension lorsque cela se produit.
Si tout s’est déroulé correctement, vous pouvez revenir sur cette page après quelques minutes et vérifier que les serveurs de TTN ont effectivement établi la communication avec votre passerelle en consultant son statut :

Pour en savoir un peu plus, vous pouvez même cliquer dans la colonne ID sur l’identifiant eui-58aadbfffe804eaa de votre passerelle et constater que le champ Live data accuse bien réception de messages en provenance de la passerelle :

Création d’une application, enregistrement d’un objet
Il est temps à présent de déclarer votre objet connecté à TTN de sorte que toutes les passerelles LoRaWAN qui capteront ses messages (et pas seulement la votre) puissent les relayer sur Internet vers les serveurs de TTN. Pour cela, vous devez commencer par créer une application.
Allez sur la page Applications de la console et cliquez sur + Create application. Renseignez l’Application ID avec un texte de votre choix, en respectant toutefois les contraintes indiquées sur les caractères. En option, renseignez l’Application Name et Description. Là encore, vous êtes libre de mettre ce qui vous plaît. Cliquez enfin sur Create Application.

Une fois votre application créée, double-cliquez sur son ID pour arriver sur cet écran :

Cliquez ensuite sur + Register end device en bas à droite, et sélectionnez Enter end device specifics manually sur l’écran suivant. Suivez pas à pas les indications (nous ne reproduisons pas ici tous les écrans, ce serait vraiment trop long). Renseignez alors les différents champs qui vous seront demandés comme ceci :
- Frequency Plan : Europe 863-870 (SF9 for RX2 _ Recommended)
- LoRaWAN version : D’après la documentation de votre objet
- Regional Parameters Version : D’après la documentation de votre objet
- JoinEUI ou AppEUI (anciennement) : Ne mettre que des 0 et cliquer sur Confirm
- DevEUI : Indiqué sur votre objet ou obtenu par votre objet
- AppKey : Obtenue via TTN en cliquant sur Generate
Assurez-vous que l’option View registered device est cochée. Finalement, cliquez sur le bouton Register end device.
Pour un module Grove LoRa-E5 Les paramètres de votre objet devraient ressembler à ceci :

Son DevEUI est obtenu en lui envoyant la commande AT+ID
(voir ce tutoriel) et la valeur de LoRaWAN version / Regional Parameters version est V102B : LoRaWAN alliance recommended Class B protocol. Différentes autres versions possibles sont configurables via la commande AT+LW=VER,Vxxx
, mais la documentation des commandes AT suggère de ne pas changer de version sans une bonne raison.
A cette étape, copiez la valeur de AppKey et mettez là de côté, vous devrez la préciser dans le code embarqué de votre objet (voir cet exemple).
Création d’un lien vers l’intégration TagoIO
Il faut maintenant indiquer à TTN qu’il devra envoyer les données en provenance de vos objets connectés à l’intégration (serveur IoT) TagoIO qui permettra de les visualiser sous forme de courbes sur un joli tableau de bord (on utilise en général le terme anglais “dashboard”) dans un navigateur Internet.
Pour ce faire vous devrez …
1-Ouvrir un compte chez TagoIO, en vous inscrivant ici.
2-Depuis votre compte TagoIO, créez une authorisation depuis cette page. Il faut cliquer sur le bouton Generate du bandeau en haut, intitulé “Service Authorization / Create authorization to allow integration with other services”. Dans la boîte Create New Authorization qui s’affiche alors, saisir dans le champ Name, par exemple, lora-stm32python (toujours par référence à ce tutoriel), puis cliquez sur le bouton Generate. Copiez l’autorisation générée (une clef de 137 caractères qui commence par “at”) et collez-la dans un fichier texte pour la suite.
3-Retournez dans la console de votre compte TTN puis …
- Sélectionnez votre application ;
- Dans le menu vertical de gauche choisir Integrations puis Webhooks ;
- Cliquez sur + Add Webhook ;
- Dans la page Choose webhook template sélectionnez TagoIO ;
- Dans la page Setup webhook for TagoIO, allez dans la boîte Webhook ID et saisissez y par exemple lora-stm32python puis cliquez sur Create TagoIO webhook :

- Cliquez sur le Webhook, vous devriez vous retrouver sur une page intitulée Edit webhook for TagoIO. En principe la configuration par défaut du Webhook est la bonne, mais par mesure de précaution, vous pouvez la vérifier dans ce tutoriel.
4-Retournez dans la console de votre compte TagoIO puis …
- Choissez Devices dans le menu vertical à droite.
- Dans la colonne Networks, cliquez sur le lien LoRaWAN TTI/TTN v3.
- Choissez le connecteur Custom TTI/TTN, cliquez dessus. Une page devrait s’afficher qui vous demande entre autres de renseigner Device Name (mettez par exemple lora-stm32python) et le Device EUI (toujours le même !). Cliquez sur le bouton Create my Device.
Et voilà, c’est terminé pour la configuration LoRaWAN !
L’étape suivante consiste à programmer la clef AppKey dans le firmware de l’objet connecté afin qu’il puisse se connecter à TTN et y poster ses mesures, qui devront préalablement être formattées afin d’être décodées par un “Payload parser” de TagoIO. Des exemples sont disponibles :
Pour MicroPython dans ce tutoriel avec le module Grove LoRa-E5 ;
Pour STM32duino dans ce tutoriel avec le module Grove LoRa-E5 ;
Pour STM32duino dans ce tutoriel avec la carte NUCLEO_WL55JC1.
Pour aller plus loin : Réseaux LoRaWAN privés locaux
Notre tutoriel est allé (presque) au plus simple pour mettre en place un réseau LoRaWAN privé en s’appuyant sur un network server, un application server (TTN) et une intégration (TagoIO) en ligne. Nous avons d’ailleurs sélectionné notre passerelle TTIG, un produit de TTN (évidemment, parfaitement supportée par TTN) dans cette logique simplificatrice.
En fait, il y avait moyen de faire plus simple, en optant pour le réseau LoRaWAN opéré, proposé par l’opérateur Orange (Orange Live Objects) en France. Dans ce cas, nous n’aurions eu à nous préoccuper que de la configuration de notre objet (comme sur ce tutoriel, en adaptant toutefois le format des trames loRaWAN) le réseau LoRaWAN étant fourni “clef en main”. Il y aurait eu bien sûr une contrepartie : ce service est payant et impose un abonnement.
Il est aussi possible de faire nettement plus compliqué et de configurer un réseau LoRaWAN privé avec un network server, un application server et une intégration installés localement sur des PC, des Raspberry Pi, etc. Les avantages de cette approche sont nombreux : pas d’abonnement à payer, meilleur contrôle de la sécurité de l’infrastructure, possibilité d’augmenter la fréquence d’émission, possibilité de configurer la radio LoRa pour mieux traverser les murs en intérieur, etc. Si vous êtes intéressé par le sujet, nous vous renvoyons aux solutions chirpstack.io et lorawan-server.
Sources et ressources
La rédaction de ce tutoriel s’est inspirée des ressources en ligne ci-dessous ainsi que des conseils de Acacio Marques, enseignant à l’écoles des Mines de Saint-Etienne (à Gardanne) et de Didier Donsez, professeur des Universités en Informatique Université Grenoble Alpes Polytech Grenoble que je remercie chaleureusement.
Sur LoRa et LoRaWAN en général :
Mise en œuvre d’un réseau LoRaWAN privé sur TTN :
- The Things Network (TTN)
- silanus.fr
- genelaix.free.fr
- www.framboise314.fr, gateway LoRa RAK833
- www.framboise314.fr, module Grove LoRa-E5
- wikifab.org
Mise en œuvre d’un réseau LoRaWAN privé local :
Sur TagoIO :
- Démarrer avec TagoIO
- Configurer TagoIO, tutoriel de TTN
- Intégration TagoIO avec TTN
- Configuration d’un Payload parser avec TagoIO
- Configuration d’un Payload parser LoRaWAN avec TagoIO
- Création d’un dashboard TagoIO
Installer / configurer une passerelle LoRaWAN :