Skip to main content

LoRaWAN - The Things Network

Objectif(s)

Créer un objet qui enverra via LoRa l'humidité et la température ambiante.

The Things Network (TTN)

The Things Network est une association qui a permis de créer un réseau communautaire LoRaWAN. Tout ceux qui le veulent peuvent apporter leur pierre à l'édifice en installant chez eux ou dans leur entreprise une passerelle LoRa. L'EPSI en possède une installée dans le myDIL.

Créer un compte et une application sur https://console.thethingsnetwork.org

Mise en place

Voici en résumé ce que nous devons faire :

  1. Installation de la carte sous Arduino.
  2. Récupérer le devEUI de la carte.
  3. Créer l'objet dans TTN à partir de ce devEUI.
  4. Utiliser un code typique pour tester la connexion en utilisant les clés fournies lors de l'étape précédente.
  5. Connecter le capteur (sans LoRa).
  6. Fusionner les deux codes précédents pour envoyer la température et l'humidité.
  7. Récupérer les données et les afficher dans un dashboard NodeRed.

Installation de la carte Things Uno sous Arduino

Au niveau matériel, rien à installer, sélectionner "Arduino Leonardo" dans le gestionnaire de carte.

La conception de la carte est assez simple : un modem LoRa est associé avec un microcontroleur (µC) Atmega32u4 qui équipe habituellement les Arduino Léonardo. Le µC et le modem communiquent en liaison série en s'envoyant des commandes formatées appelées commande AT. La librairie installée permet de faire abstraction de cette communication, mais on pourrait très bien communiquer avec ce modem directement depuis le moniteur série du PC par exemple.

Si jamais la carte vous pose des problèmes (port série non reconnu etc ..) => https://www.thethingsnetwork.org/docs/devices/node/troubleshooting.html

Dans le gestionnaire de librairies, installer TheThingsNetwork.

Récupération du devEUI

Récupérer le devEUI de votre carte => https://www.thethingsnetwork.org/docs/devices/uno/quick-start.html

Créer le device sur TTN

Sur la console TTN, dans votre application créer un device. Saisissez le devEUI précédemment récupéré et laissez les autres champs en génération automatique.

Tester la liaison

Sur Arduino, allez chercher Fichier>Exemples>TheThingsNetwork>SendOTAA. Modifier les différents champs importants pour correspondre à votre configuration (AppKey, FrequencyPlan ...) et vérifier dans le moniteur série que tout se passe bien (JOIN et envoi).

Vérifier sur la console TTN que les données arrivent bien.

Si vous rencontrer des problèmes de type "invalid_param" en console, il vous faut downgrader votre version de la librairie TheThingsNetwork en 2.5.16

Connecteur de capteur d'humidité/température (DHT11)

Ajouter ensuite un DHT11, récupérer ses données de température et d'humidité, et les envoyer via LoRa.

Connecter NodeRED

Lancer ensuite un serveur NodeRed afin de récupérer les données sur le MQTT TTN :  https://www.thethingsnetwork.org/docs/applications/mqtt/api.html

Et les afficher sur un dashboard NodeRed (node-red-dashboard).