# 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)

![](https://doc.creatronic.fr/uploads/images/gallery/2019-08/scaled-840-/image-1566303626375.png)

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](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

![](https://doc.creatronic.fr/uploads/images/gallery/2019-08/scaled-840-/image-1566303657163.png)

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 ..) =&gt; [https://www.thethingsnetwork.org/docs/devices/node/troubleshooting.html](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 =&gt; [https://www.thethingsnetwork.org/docs/devices/uno/quick-start.html](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&gt;Exemples&gt;TheThingsNetwork&gt;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.

<p class="callout danger">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</p>

### 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](https://www.thethingsnetwork.org/docs/applications/mqtt/api.html)

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

![](https://doc.creatronic.fr/uploads/images/gallery/2019-08/scaled-840-/image-1566303685709.png)