/
4,072 Views0
IoT LoRa pour Raspberry pi (868MHz/915MHz)

Dans cet article, je vais vous montrer comment réaliser une passerelle LoRaWAN avec un raspberry PI4, un chapeau IoT LoRaWAN. En supplément, je présente comment j’ai essayé d’utiliser un module 4G pour la transmission des données.

Dans cet article, nous allons voir

  • comment ajouter une passerelle à votre console TTN (The Things Network)
  • comment préparer votre Raspberry
  • comment la connecter à un autre Raspebrry avec un module 4G, via les ports ethernet (eth0)

Matériel

Ajout d’une passerelle dans la console TTN (The Things Network)

Connectez-vous à votre compte (si non créez un compte) et allez dans votre console et cliquez sur Gateway puis register a gateway

TTN Console
The Things Network concole – Ajour d’une passerelle (Gateway)

Suivez les indications ci-dessous

ttn console add gateway
Enregistrer une passerelle

Gateway ID

Saisissez un ID unique

Ne cochez pas « I’m using the legagcy packet forwarder »

Description

Saisissez une description concernant votre passerelle

Frequency Plan

Vous devez sélectionner la fréquence pour votre région. Comme nous sommes en Europe, nous sélectionnons Europe 868Mhz.

Router

Sélectionner le routeur le plus proche de votre région. Vous devriez sélectionner ttn-router-eu pour l’Europe.

Location / Antenna placement

Indiquez les positions GPS de votre passerelle ainsi cliquez sur Outdoor s’il est placé à l’extérieur, ce qui le but de la passerelle que nous configurons

 

Enregistrer votre nouvelle passerelle puis cliquez sur Settings, puis sur information. Renseignez les champs comme indiquez dans l’image ci-dessous

ttn console settings information

Brand: Multi-channel Raspberry Pi gateway
Model: Raspberry Pi with Pi Supply Gateway HAT

Et finalement, cliquez sur Update Gateway

Assemblage

Installer l’IoT LoRa Gateway HAT sur votre Raspberry de la sorte, sans oublier l’antenne. Pour l’installation, j’ai utilisé cette antenne que vous recevez normalement avec la Gateway. Ensuite, placez le dissipateur de chaleur sur la partie argentée du RAK833. N’alimentez pas encore votre Raspberry.

IoT LoRa pour Raspberry pi
Assemblage de la passerelle IoT LoRa sur Raspberry pi (868MHz/915MHz)

 

N’allumer pas le Raspberry sans avoir connecter l’antenne

Préparation du Raspberry

L’installation se fera grâce à une image et comme je le propose dans cet exemple. Nous allons directement utiliser un zip que vous pouvez télécharger ici ou cette version (2019-07-31).

Téléchargez et installez la dernière version d’Etcher et créez l’image sur la carte SD

Etcher
Etcher (2019-09-2…-lite.img est représentatif, vous devriez voir quelque chose comme 2019-07-3…lite.zip)

Une fois fait, retirez et réinsérez la carte SD dans votre Mac, et créez un fichier ‘ssh’ dans le dossier boot, pour activer ssh lors du premier démarrage du Raspberry (L’exemple est donné depuis un Mac)

touch /Volumes/boot/ssh

Ceci vous permettra d’accéder à votre Raspberry en ligne de commande, avant d’avoir configurer votre Raspberry.

ssh pi@iotloragateway.local
#Le mot de passe de ‘pi’ par défaut est ‘raspberry’

Ceci est particulièrement utile si vous êtes à l’aise avec les lignes de commande et si vous ne pouvez/voulez pas connecter un écran à votre Raspberry.

Éjectez votre carte SD et insérez la dans le Raspberry.
Puis connectez votre Raspberry au routeur à l’aide du câble Ethernet. Connectez votre souris, clavier et écran à votre Raspberry.

Si vous avez créé le dossier

/Volumes/boot/ssh

vous pouvez vous passer de votre écran.

Alimenter votre Raspberry après avoir branché l’antenne.

N’allumer pas le Raspberry sans avoir connecter l’antenne avant

Configuration du Raspberry

Vous avez donc connecté votre clavier, souris et vous avez connecté votre Raspberry au routeur WiFi avec le câble Ethernet. Il est indispensable qu’elle soit sur le même réseau que votre ordinateur (j’utilise un Mac pour cet exercice.

Ouvrez un terminal (sous Mac ou Linux)

Profitons pour mettre votre Raspberry à jour et installer vim

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim

Modification du mot de passe

Tapez la commande

sudo passwd pi

et saisissez et confirmer votre nouveau mot de passe

Activation de SSH

Si vous n’avez pas créé le dossier /Volumes/boot/ssh, cette étape est indispensable. Saisissez la commande suivante

sudo raspi-config

(votre Raspberry devrait être en anglais, sur un clavier Suisse-fançais le – est le ‘)

Choisissez l’option 5 Interfacing Options, puis P2 SSH puis yes

Activation de VNC (Optionnel)

Choisissez l’option 5 Interfacing Options, puis P3 VNC puis yes.

Dans mon cas, il a installé plusieurs packages.

Configuration du WiFi

Cette étape est utile si vous ne désirez plus utiliser la câble Ethernet et de connecter votre Raspberry sur le WiFi de votre lieu.

Saisissez la commande suivante

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

ajoutez les lignes suivantes (attention aux tablatures) et indiquez le SSID et le mot de passe de votre WiFi

network={
  ssid="The_SSID_of_your_wifi"
  psk="Your_wifi_password"
}

redémarrez votre Raspberry. Vous pouvez travailler sans votre câble Ethernet. Bien entendu, si cela ne fonctionne pas, il faudra le reconnecter et vérifier vos saisies. (je continue avec le câble Ethernet)

Configuration de la passerelle (Gateway)

Depuis votre navigateur FireFox ou Chrome, saisissez

http://iotloragateway.local

Sous Windows vous allez devoir trouver l’adresse IP de votre passerelle. Ceci peut-être facilement trouvé, depuis votre routeur (généralement accessible avec l’adresse IP 192.168.0.1), en cherchant iotloragateway, dans la liste des périphériques connectés à votre routeur.

Vous allez devoir saisir le login

nom d’utilisateur (username): pi
mot de passe (password): raspberry

Note: si vous avez changé votre mot de passe avec la command ‘sudo passwd pi’, vous devez saisir le nouveau mot de passe

A noter que la section Internet Connectivity doit être verte avec le texte All Good, contrairement à ce qui est indiqué sur l’image. Si ce n’est pas le cas, vérifier votre connexion à internet.

IoT LoRa Gateway Status Page
IoT LoRa Gateway Status Page

Configuration

Dans cette étape, vous allez avoir besoin de votre Gateway ID et le Gateway Key depuis votre console TTN. Rendez-vous sur votre console et recherchez la Gateway que nous avons créé précédemment.

TTN console gateway overview
TTN console gateway overview

Cliquez sur le menu Packet Fowarder Config et recopiez la Gateway ID et la Gateway Key. Dans le premier champs Contact Email Address, indiquez votre adresse e-mail

Edit config file - TTN Server
Edit config file – TTN Server

puis cliquez sur Update Configuration.

Une fois fait, cliquez sur le menu Sytsem Controls et redémarrez (Restart) votre passerelle

IoT Lora Gateway System Controls Restart
IoT Lora Gateway System Controls Restart

Vérification

Depuis votre console TTN, vous devriez voir le statut avec un point vert « connected ». Last seen devrait avoir un temps récent (en seconde). Finalement, vous devriez voir des messages reçus « Received message »

TTN Gateway status
TTN Gateway status

Vous pouvez aussi vérifier le trafic de votre gateway depuis l’onglet « traffic ».

Sur votre page d’accueil de votre passerelle

http://iotloragateway.local/

vous devriez aussi pouvoir voir les messages reçus

A noter que la section Internet Connectivity doit être verte avec le texte All Good, contrairement à ce qui est indiqué sur l’image. Si ce n’est pas le cas, vérifier votre connexion à internet.

IoT LoRa Gateway Status Page
IoT LoRa Gateway Status Page

Dans mon cas, je n’ai pas de chiffres, car je n’ai pas de nœuds à proximité qui transmettent des données sur ma passerelle

Commandes utiles

sudo systemctl status iot-lora-gateway.service
sudo systemctl stop iot-lora-gateway.service
sudo systemctl start iot-lora-gateway.service
sudo systemctl restart iot-lora-gateway.service
journalctl -u iot-lora-gateway.service --no-pager -n 3000
less /opt/iotloragateway/iot-lora-gateway-reset.sh

Supplément

Comment transmettre les données via un autre Raspberry avec un module 4G

Suivez scrupuleusement cet article.

Réaliser un routeur WiFi/4G sois-même

Une fois fait, connecter votre Raspberry avec un câble ethernet et démarrez-les.

Problèmes possibles et solutions

Il se peut qu’en démarrant les deux Pi en même temps, le Raspberry qui fait office de Gateway LoRaWAN, n’arrive pas à être vu par TTN.

Exécutez la commande suivante

sudo systemctl status iot-lora-gateway.service

En premier temps, il devrait vous afficher ceci

pi@iotloragateway:~ $ sudo systemctl status iot-lora-gateway.service
● iot-lora-gateway.service - IOT LoRa Gateway Packet Forwarder
Loaded: loaded (/lib/systemd/system/iot-lora-gateway.service; enabled; vendor preset: enabled)
Active: activating (start-pre) since Wed 2020-10-21 15:34:29 BST; 15s ago
Cntrl PID: 478 (iot-lora-gatewa)
Tasks: 2 (limit: 2065)
CGroup: /system.slice/iot-lora-gateway.service
├─478 /bin/bash /opt/iotloragateway/iot-lora-gateway-reset.sh
└─481 php -f /var/www/iotloragateway/html/updatePacketfwd.php

Oct 21 15:34:29 iotloragateway systemd[1]: Starting IOT LoRa Gateway Packet Forwarder...

Puis (ou vous pourriez lire directement ceci)

sudo systemctl status iot-lora-gateway.service
● iot-lora-gateway.service - IOT LoRa Gateway Packet Forwarder
Loaded: loaded (/lib/systemd/system/iot-lora-gateway.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-10-21 15:35:06 BST; 42s ago
Process: 478 ExecStartPre=/opt/iotloragateway/iot-lora-gateway-reset.sh (code=exited, status=0/SUCCESS)
Main PID: 620 (iot-lora-gatewa)
Tasks: 6 (limit: 2065)
CGroup: /system.slice/iot-lora-gateway.service
└─620 /opt/iotloragateway/iot-lora-gateway

Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: # INFO: JIT queue contains 0 beacons.
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: ### GPS IS DISABLED!
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: ### [PERFORMANCE] ###
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: # Upstream radio packet quality: 0.00%.
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: ### [ CONNECTIONS ] ###
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: # bridge.eu.thethings.network: Connected
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: # Semtech status report send.
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: ##### END #####
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: 15:35:39 INFO: [TTN] bridge.eu.thethings.network RTT 108
Oct 21 15:35:39 iotloragateway iot-lora-gateway[620]: 15:35:39 INFO: [TTN] send status success for bridge.eu.thethings.network

C’est que tout est bon.

En revanche, si vous lisez ceci, ce qui devrait être le cas à chaque démarrage, c’est qu’il y a un problème

ERROR: [TTN] Connection to server "" failed, retry in 30 seconds

Il vous faudra redémarrer le service suivant et vérifier

sudo systemctl restart iot-lora-gateway.service
sudo systemctl status iot-lora-gateway.service

Pour remédier à ce problème, il faudrait modifier un ligne d’un script. Voici les commentaires du support pi supply

The actual error is that the first line of the reset script runs an update script to ensure the packet forwarder is up to date. This then explains why it’s not then working after the timeout expires as this was what was confusing me as to why it didn’t then kick back into life after it expired and the connection was then there.

I think for your application the best solution in this case would to then be to disable this command that updates on boot, it means if you change details on the TTN console you’d need to then either use the Web UI to get it to update.

If you could comment out the line in the iot-lora-gateway-reset.sh file on line number 4 (php -f command) this should disable the script that seems to be causing issues.

Solutions

Donc pour résoudre ce problème, la meilleurs solution actuelle est d’éditer le fichier

sudo nano /opt/iotloragateway/iot-lora-gateway-reset.sh

et de commenter la ligne 4

#php -f /var/www/iotloragateway/html/updatePacketfwd.php

Il faudra encore que j’optimise ceci.

… à suivre.

Autres solutions à tester

  1. Lancer la commande ‘sudo systemctl restart iot-lora-gateway.service’ juste après le boot en modifiant crontab
  2. créer un script géré par crontab, qui va analyser le retour de la commande ‘journalctl -u iot-lora-gateway.service –no-pager -n 3000’ et s’il trouve ERROR: [TTN] Connection to server «  » failed , exécuter la commande ‘sudo systemctl restart iot-lora-gateway.service’

… à suivre

Bravo

Vous venez de configurer une nouvelle passerelle.

Dans l’article suivant, je vais vous montrer comment ajouter un Router 3/4G avec le module Quectel à votre passerelle

IoT LoRa Gateway/4G pour Raspberry (2)

 


 

Soutenez-nous

Si vous avez aimé cet article, faîtes un don de quelques Euro pour le financement de mes projets et du matériel.

 

 

 

Leave Comment:

Nous soutenir

Newsletter

Inscrivez-vous à notre newsletter

Suivez-nous sur

fr_FRFrench