Je les avais depuis un moment dans un tiroir mais là il se trouve qu’avec l’aménagement d’un atelier éloigné je souhaite surveiller à distance ce qui se passe. Température, humidité, intrusion et chaudière sont un minimum. Il y avait la solution du pont WiFi (1km) mais je me suis dit que c’était l’occasion de tester les cartes LoRa que Pi SUpply m’avait envoyées.
Au sommaire :
- 1 Passerelle et noeud Lora avec Raspberry Pi 4 et Pi Zero
- 1.1 Gateway and LoRa node with Raspberry Pi 4 and Pi Zero
- 1.2 LoRa – LoRaWAN
- 1.3 La passerelle LoRaWan / LoRaWAN Gateway
- 1.4 Le Noeud LoRa / LoRa Node
- 1.5 La charge utile (PayLoad)
- 1.6 Afficher les données sur Cayenne My Devices
- 2 Conclusion
- 3 Sources
Passerelle et noeud Lora avec Raspberry Pi 4 et Pi Zero
Un débutant pourra sans doute se lancer dans cette aventure, mais je préfère afficher « Avancé » car ce tutoriel met en œuvre de nombreuses techniques et il faut pouvoir tout relier ensemble pour arriver à ce que cela fonctionne…
[stextbox id=’alert’ caption=’ATTENTION’]
UPDATE MAI 2022 : Après le passage à la v3 de la console TTN, cette gateway n’est plus maintenue par PiSupply !!! Il y a des soucis pour se connecter
voir https://github.com/PiSupply/iot-lora-image/issues/77
[/stextbox]
Gateway and LoRa node with Raspberry Pi 4 and Pi Zero
Pi Supply a eu la gentillesse de me fournir ces cartes LoRa pour les tests. Je les en remercie et c’est donc un
============= Article sponsorisé =============
Je n’ai pas d’affiliation avec Pi Supply et je ne recevrai pas de pourcentage sur les ventes. Ils m’ont simplement offert les cartes LoRa et j’ai choisi de rédiger cet article, tout en conservant ma liberté rédactionnelle.
LoRa – LoRaWAN
Préambule
Comme c’est le cas dans de nombreux domaines de l’informatique, quand on se lance dans l’aventure LoRa, on se dit que ce domaine déjà bien exploré/exploité doit bénéficier d’un grand nombre de tutoriels et d’articles… Et en fait on s’aperçoit que pour réaliser les manips de base on se frotte à des tutos incomplets, faits par des utilisateurs avancés, qui considèrent que tout le monde a leur niveau et qui « zappent » des infos intéressantes et nécessaires quand on débute.
Après il y a les forums et là souvent ceux qui sont déjà avancés sur l’utilisation de LoRa renvoient les demandeurs à la documentation: « Vous trouverez la réponse dans cette doc…« . Mais quand on démarre et qu’on n’a pas les notions de base, on n’y comprend rien ou pas grand chose. Je suis donc passé par toutes ces étapes de recherche (je vous ai mis une partie des sites consultés dans les Sources en bas de l’article). Alors si ma contribution à la connaissance de LoRa peut aider d’autres débutants dans ce domaine, ce sera réussi.
J’ai regroupé ci-dessous (pas forcément dans un ordre logique) les étapes et les démarches pour mettre en place une solution LoRa complète.
L’objectif
L’idée est de surveiller un local distant d’un peu plus d’un kilomètre. Un pont WiFi était une solution, mais le prix piquait un peu, il fallait partir sur une solution à 3Km, des antennes extérieures… Pas simple.
L’autre solution c’était de dégainer les cartes LoRa que PiSupply m’avait envoyées et qui attendaient sagement leur heure, au fond d’un tiroir.
Le synoptique ci-dessus montre ce que nous allons mettre en œuvre dans ce tutoriel.
A gauche le Nœud LoRa qui va envoyer les valeurs par radio. Plusieurs nœuds pourront envoyer tout un tas de données. La passerelle (Gateway) est chargée de recevoir les infos et de les relayer vers le serveur The Things Network (TTN). Ici il n’y aura qu’une passerelle. Lorsque plusieurs passerelles sont accessibles et qu’un nœud envoie les infos vers plusieurs passerelles, le serveur se charge de supprimer les doublons, et ne garde que la trame provenant de la gateway qui reçoit le mieux le signal du nœud. Ce sera aussi sur cette passerelle qu’un éventuel envoi de données vers le nœud sera effectué. Dans mon cas j’ai un seul nœud et une seule passerelle, ce qui simplifie le schéma 🙂
Une fois que les données sont arrivées sur le serveur TTN elles sont stockées pendant un temps limité. Il faut donc les renvoyer vers une base de données (BDD) pour les enregistrer de façon pérenne. Vous pouvez utiliser votre propre base de données. Ici j’ai choisi la solution toute faite de MyDevices Cayenne dans sa version gratuite. Il suffit de créer un compte pour bénéficier des services de base de la plateforme. On pourra créer sur MyDevices un tableau de bord (DashBoard) qui sera accessible via internet sur tout périphérique (PC, tablette, smartphone…).
Qu’est ce c’est ?
Définitions
LoRa est l’acronyme de Long Range (Grande portée). c’est une technologie radio (sans fil) dans laquelle eun émetteur à très faible consommation envoie de petits paquets de données à faible vitesse (0.3kb/s à 5,5kb/s) à un récepteur situé à grande distance.
LoRaWAN est un protocole de télécommunication permettant la communication à bas débit, par radio. Il est utilisé pour des objets à faible consommation électrique communiquant selon la technologie LoRa et connectés à l’Internet via des passerelles, participant ainsi à l’Internet des objets (IoT). (source Wikipedia)
Sur cette image on voit l’architecture d’un réseau LoRaWAN (crédit image) A gauche les « nœuds » collectent les données. Ils sont capables de les envoyer en consommant une énergie minime, grâce à une transmission à bas débit. La portée est très variable mais on atteint couramment plusieurs kilomètres. La carte Lora Node pHAT de Pi Supply est annoncée pour 15Km environ. Dans de (très) bonnes conditions, un signal LoRa a été reçu à 766Km, l’émetteur avait une puissance de 25mW. C’est actuellement le record du monde.
Les Gateways sont chargées de collecter les données des nœuds et de les transférer à un serveur qui pourra les traiter, les redistribuer… Il existe des solutions propriétaires, pour ma part j’ai choisi d’utiliser The Things Network (TTN) un réseau international gratuit, open source et communautaire. Les serveurs de TTN vous permettent de recevoir dans vos applications les données de vos appareils, même à des milliers de kilomètres de chez vous !
Actuellement (janvier 2020) le réseau se compose de plus de 40000 contributeurs regroupés en plus de 400 communautés dans 90 pays ayant déployé plus de 4000 passerelles.
Il est possible pour les particuliers, universités, entreprises, ou encore les communes de contribuer au déploiement ou d’utiliser gratuitement The Things Network.
[stextbox id=’warning’ caption=’LoRaP2P’]Il existe également un mode P2P (peer to peer) dont je ne parle pas ici. Il est utilisé pour communiquer entre des noeuds, sans gateway. Le protocole est différent de LoRaWAN et n’est pas compatible.[/stextbox]
Sur quelles fréquences ?
En Europe c’est la bande 868MHz qui est utilisée pour LoRaWAN
Uplink:
- 868.1 – SF7BW125 to SF12BW125
- 868.3 – SF7BW125 to SF12BW125 and SF7BW250
- 868.5 – SF7BW125 to SF12BW125
- 867.1 – SF7BW125 to SF12BW125
- 867.3 – SF7BW125 to SF12BW125
- 867.5 – SF7BW125 to SF12BW125
- 867.7 – SF7BW125 to SF12BW125
- 867.9 – SF7BW125 to SF12BW125
- 868.8 – FSK
Downlink:
- Uplink channels 1-9 (RX1)
- 869.525 – SF9BW125 (RX2 downlink only)
A quoi correspond la modulation ?
Un très bon article sur LoRa est disponible sur linuxembedded.fr. Ce paragraphe en résume la partie concernant la modulation.
La modulation LoRa utilise un étalement de spectre appelée Chirp Spread Spectrum pour coder l’information. SigFox utilise l’Ultra Narrow Band.
Un chirp ou gazouillis est un signal sinusoïdal dont la fréquence varie au cours du temps. Initialement destinée à des applications militaires, cette modulation est également utilisée par les radars et les sonars. Elle est robuste contre différents types de perturbations.
Sur la copie d’écran ci-dessus on voit que le signal émis par un appareil LoRa « glisse » en fréquence. C’est cette modulation qui est utilisée pour transmettre les données.
La modulation peut également être plus ou moins rapide. Si elle est rapide, le temps d’occupation de la bande est faible mais la portée est plus réduite. Si la modulation est plus lente, le temps de transmission est plus long mais la portée augmente. En fonction des applications, il faudra trouver le bon compromis pour une occupation raisonnable de la bande avec une portée suffisante.
LoRaWAN supporte 6 facteurs d’étalement SF = Spreading Factor (SF7, SF8, SF9, SF10, SF11, SF12) comme le montre le schéma ci-dessus. L’utilisation des SF permet la réception de plusieurs signaux en parallèle sur le même canal. Une passerelle multicanaux comme celle de PiSupply peut traiter les signaux de centaines de nœuds. On voit sur les schémas ci-dessus que plus la vitesse de transmission est faible, plus la portée est grande.
Par défaut, le réseau doit au minimum supporter les trois canaux suivants (de 125 KHz de bande passante chacun) : 868,10 ; 868,30 et 868,50 MHz.
Quelle est la différence entre LoRa et LoRaWAN ?
Tout est résumé ici, LoRa concerne la modulation radio, la couche physique alors que LoRaWAN gère les couches supérieures qui s’occupent de la connexion et des applications.
The Things Network
L’utilisation de LoRa avec ce tutoriel nécessite la création d’un compte The Things Network (si vous n’en avez pas encore).
Rendez vous sur le site The Things Network. Cliquez sur le menu en haut à droite de la page (les trois traits horizontaux) et cliquez sur Sign Up.
Remplissez les champs du formulaire et validez par Create account.
Vous devriez recevoir un mail pour confirmer la création de votre compte TTN.
Cliquez sur Activate account pour activer votre compte TTN.
Cliquez maintenant sur Console pour accéder à la console TTN.
Vous avez maintenant accès à la partie Applications pour enregistrer vos objets et Gateways pour enregistrer… vos passerelles.
La passerelle LoRaWan / LoRaWAN Gateway
Présentation
La passerelle IoT LoRa Gateway HAT pour Raspberry Pi (868MHz/915MHz) est proposée par PiSupply. Elle utilise le module concentrateur de passerelle LoRa RAKWireless RAK833 mPCIe qui est basé sur la technologie LoRa Semtech SX1301 et reçoit les 8 canaux simultanément. Elle est entièrement compatible LoRaWAN.
La passerelle est fournie sous forme de carte HAT. Dans le modèle que j’ai reçu, la carte PCIe RAK833 était déjà en place. Vous trouverez plus d’informations dans ce document sur le module RAK833.
[stextbox id=’warning’ caption=’A faire avant de mettre sous tension’]Avant de mettre la passerelle sous tension, il faut impérativement coller le radiateur fourni et connecter l’antenne, sinon vous risquez de détruire les composants ![/stextbox]
Montage
Positionnez la carte sur le Raspberry Pi (j’ai utilisé un Raspberry Pi 4) et fixez la avec les entretoises et la visserie nylon. Vérifiez que l’antenne est bien connectée et que le radiateur est en place.
[stextbox id=’info’ caption=’Connecteur d’antenne’]Le connecteur u.FL qui permet de connecter l’antenne sur la carte RAK833 n’est pas prévu pour être connecté/déconnecté de nombreuses fois. Limitez son utilisation sous peine de le détériorer.[/stextbox]
Installation et Configuration
PiSupply a facilité la mise en œuvre de cette passerelle en mettant à disposition une distribution toute prête, basée sur Raspbian Lite. Elle est compatible avec toutes les versions de Raspberry Pi, y compris le Raspberry Pi 4. Elle est disponible en téléchargement et représente environ 500Mo. Après avoir récupéré la distribution , transférez la sur une carte micro SD avec Etcher si vous êtes sous Windows ou dd sous Linux.
Inscription de la passerelle sur TTN
Ouvrez le compte TTN que vous avez créé précédemment.
Cliquez sur Gateways
Puis en haut à droite de la fenêtre Gateways, cliquez sur « register gateway« .
Dans cette fenêtre, vous allez remplir les champs suivants :
Gateway ID/ID de la passerelle : Il doit s’agir d’un identifiant unique, qui peut être n’importe quoi, mais qui doit être unique.
Description : Texte libre, c’est pour que vous ayez une description de la passerelle.
Frequency plan/Plan de fréquences : Il s’agit de la fréquence de la passerelle qui doit correspondre à la région. Comme nous sommes en Europe, j’ai choisi le plan Europe 868Mhz.
Router : C’est le serveur sur lequel la passerelle va se connecter, ce devrait être le plus proche de votre lieu de résidence. Comme nous sommes en Europe, j’ai sélectionné l’Europe, mais vous trouverez peut-être un routeur plus proche de vous.
Location/Emplacement : Il y a un intérêt à indiquer l’emplacement de la passerelle, bien qu’il ne soit pas nécessaire, il peut être utile à l’avenir pour la cartographie de la couverture du signal LoRa. Cliquez sur l’emplacement de la passerelle, sur la carte.
Antenna placement/Placement de l’antenne : Indiquer si la passerelle et l’antenne sont à l’intérieur ou à l’extérieur. Pour moi elle est actuellement à l’intérieur, ce qui réduit la zone de couverture.
[stextbox id=’warning’ caption=’Attention’]Tous ces paramètres peuvent être modifiés ultérieurement, à l’exception de l’ID de la passerelle[/stextbox]
La clé Gateway Key est visible en cliquant sur l’œil à gauche de la zone. Vous pourrez la copier en cliquant sur l’icône de la feuille à droite de la zone. Cela vous servira un peu plus tard car il faudra coller cette clé lors de la configuration de la passerelle sur le Raspberry Pi.
Il faut ensuite modifier quelques paramètres. Cliquez sur l’onglet « Settings » et vous devriez pouvoir voir les paramètres que nous avons configurés, puis sur l’onglet « Informations » à gauche. Indiquez la marque « passerelle multicanal Raspberry Pi » et pour le modèle, sélectionnez « Raspberry Pi avec Pi Supply Gateway HAT« . Ne connaissant pas le type d’antenne je n’ai rien indiqué.
Enfin, cliquez sur Update Gateway pour enregistrer les modifs et revenir à l’écran principal.
Mise en route de la passerelle
Placez la carte SD dans le Raspberry Pi et connectez le à Ethernet (si vous n’utilisez pas le WiFi) pour que la passerelle puisse discuter avec les serveurs TTN. Connectez l’alimentation en dernier.
Vous devriez voir la lumière rouge s’allumer sur votre Raspberry Pi et la LED verte clignoter. Si ce n’est pas le cas, essayez de dépanner cela avant de continuer.
Attendez environ 1 à 2 minutes lorsque que vous démarrez votre passerelle pour la première fois pendant que l’initialisation de Raspbian se termine.
Enfin, nous allons configurer notre passerelle. Pour commencer, vous devrez vous connecter à votre passerelle à partir d’un ordinateur connecté au même réseau. Ouvrez un navigateur web, et tapez l’adresse de la passerelle dans la barre d’adresse du navigateur web.
[stextbox id=’info’ caption=’Se connecter à la passerelle’]Si vous êtes sous Mac OS ou Linux, vous devriez pouvoir vous connecter à votre passerelle avec http://iotloragateway.local. Sous Windows, vous devrez trouver l’adresse IP de votre passerelle. Pour ce faire, vous pouvez généralement consulter la liste des appareils sur votre Box et rechercher l’appareil .[/stextbox]
Vous obtenez cette page d’accueil du logiciel de gestion de la passerelle LoRa. Pour configurer notre passerelle il faut aller sur Packet Forwarder Config.
Il faut se connecter pour accéder à la configuration. Par défaut le nom d’utilisateur et le mot de passe de l’utilisateur sont pi et raspberry.
Sur cette page, vous devrez saisir votre adresse électronique dans la première zone, l’ID de la passerelle dans la deuxième zone (surtout ne faites pas d’erreur) et copiez/collez la clé de la passerelle depuis la console TTN dans la zone TTN Gateway Key.
Cliquez ensuite sur Update Configuration.
Pour démarrer la passerelle, nous devons maintenant aller dans l’onglet « System Controls » dans le menu du haut.
Cliquez sur le bouton Restart pour prendre en compte les modifications et redémarrer la passerelle.
Une fois que vous aurez cliqué sur ce bouton, vous verrez une barre de progression et à la fin, la lumière bleue devrait s’allumer sur le module LoRa. Vous serez redirigé(e) vers la page d’accueil.
Vous devriez maintenant être en mesure de voir l’ID de votre passerelle, le nombre de paquets qu’elle a reçus et d’autres informations pratiques !
Vous pouvez également utiliser la console The Things Network pour visualiser les paquets en temps réel, au fur et à mesure qu’ils sont reçus par la passerelle. Cependant, pour que cela fonctionne, un nœud doit transmettre des paquets LoRa à proximité ! C’est ce que nous allons voir ci-après.
En cliquant sur la flèche bleue à gauche d’une des lignes de la fenêtre trafic, vous déplierez le message et obtiendrez de nombreuses informations sur son contenu.
Le Noeud LoRa / LoRa Node
Présentation
La carte LoRa Node pHAT que j’ai utilisée m’a été fournie par PiSupply. Elle s’appelle « nœud » et est utilisée pour l’IoT. La carte utilise le module LoRa RAKWireless RAK811 qui est basé sur la technologie LoRa Semtech SX1276.
La carte peut être configurée pour différentes fréquences, pour l’Europe les fréquences vont de 863 à 870 MHz.
La carte communique avec le Raspberry Pi par l’UART en utilisant seulement 3 broches GPIO. Elle prend en charge les connexions LoRaWAN et LoRaP2P. Elle dispose d’une antenne intégrée et d’un connecteur u.FL permettant de choisir son antenne et de faciliter l’intégration en boîtier. La carte consomme moins de 50mA en émission.
Un nœud LoRa est composé d’un microcontrôleur destiné à gérer le module. Un circuit radio (ici SX1276) s’occupe des communications et un PA (Power Amplifier) fournit le signal à l’antenne. La communication avec le module se fait en série via un UART. Le module possède quelques GPIO qu’il est possible d’utiliser.
Dans le cas de cette carte Node pHAT, la carte est prévue pour être connectée à un Raspberry Pi qui va communiquer avec le microcontrôleur du module pour gérer les communications.
Si vous souhaitez plus d’information sur le circuit utilisé sur cette carte Node, vous pouvez consulter la documentation technique du module RAK811.
Montage
La carte est fournie avec un rehausseur et deux jeux d’entretoises. Si vous utilisez la carte seule sur un Raspberry Pi, les petites entretoises feront l’affaire. Si vous souhaitez brancher autre chose par dessus la carte sur le GPIO, il faudra mettre en place le rehausseur de GPIO et les grandes entretoises.
Lors de mes essais j’ai constaté que le rehausseur fourni a des pattes trop courtes pour recevoir sur le dessus des connecteurs Dupont (je voulais brancher un BME680). J’ai donc utilisé un autre modèle avec des pattes plus longues qui m’a permis de faire les connexions souhaitées.
La carte est fournie avec une antenne extérieure et une « queue de cochon » (Pig Tail en anglais) munie d’un connecteur u.FL et d’un SMA.
La carte que j’ai reçue avait deux straps (résistances de 0 ohm) qui relient l’antenne INTérieure et l’antenne EXTérieure à la sortie du circuit (flèches bleues). L’antenne embarquée est le rectangle en haut de l’image (flèche marron).
Pour mon utilisation (plus d’un Km de portée) j’ai utilisé l’antenne extérieure. Il faut brancher le connecteur sur la prise. Attention, le petit connecteur u.FL n’est pas conçu pour être branché/débranché de nombreuses fois.
Un petit coup de fer à souder et la résistance (nulle) connectant l’antenne intérieur disparait, ne laissant que l’antenne extérieure connectée.
Les relevés (légèrement variables) que j’ai faits avec le retour de la gateway donnent ceci :
avec 2 antennes | 1 antenne / 90° | 1 antenne / parallèle | |
RSSI | -27dBm | -17dBm | -4dBm |
S/N | 8dB | 8dB | 10dB |
Avec les deux antennes connectées, le niveau est à -27dBm. Avec la seule antenne extérieure placée à angle droit avec celle de la gateway (à 10cm) on monte à -17dbm et on passe à -4dBm si les antennes sont parallèles. Le rapport Signal/Bruit (S/N) passe de 8dB à 10dB. On veillera à placer les antennes dans la même position (verticale) pour avoir la meilleure transmission.
C’est un Raspberry Pi Zero WH (WiFi et connecteur GPIO) que j’ai retenu pour créer le nœud LoRa.
Ici le premier montage en direct sur le connecteur du GPIO et les entretoise en laiton (les plus courtes).
Finalement j’ai connecté un BME680 pour relever les valeurs de Température, Pression et Humidité qui seront transmises via LoRa.
Installation et Configuration
Configuration du WiFi
Les instructions pour installer le noeud LoRa sont fournies [en anglais] par Pi Supply sur leur site web. Je m’en suis servi pour l’installation et pour la rédaction de cette partie du tutoriel.
Créez une carte micro SD avec Raspbian Lite (j’ai utilisé la version de septembre 2019). Pour utiliser le Raspberry Pi il va falloir effectuer quelques réglages.
Lancez raspi-config :
1 |
sudo raspi-config |
Configurez les locales pour franciser le système puis dans 2 Network Options > N2 WiFi configurez les paramètres pour vous connecter à votre réseau WiFi (SSID et passphrase)
Configuration des ports série
On va maintenant modifier la configuration pour utiliser l’UART matériel et dévalider la console.
dans 5 Interfacing Options > P6 Serial Répondez <Non> (voulez vous qu’un login shell soit accessible via le port série) puis sélectionnez <Oui> pour activer le port série matériel.
Enfin on va intervertir les interfaces série pour que le meilleur interface (matériel) attribué par défaut au Bluetooth, soit connecté à la carte LoRa. Dans un terminal saisissez :
1 |
sudo nano /boot/config.txt |
Positionnez le curseur en bas du fichier et ajoutez
1 |
dtoverlay=pi3-miniuart-bt |
Sauvegardez et fermez le fichier avec “CTRL+O” et “CTRL+X”
Redémarrez le Raspberry Pi pour prendre les modifications en compte.
Installer la bibliothèque RAK811
Nous allons installer la bibliothèque RAK811 après avoir mis le système à jour. Éventuellement faites les mises à jour sur un Pi 3 ou un Pi 4… Ça ira plus vite 🙂
1 2 3 4 |
sudo apt update sudo apt upgrade sudo apt install python3-pip sudo pip3 install rak811 |
A partir de là Raspbian a les éléments pour fonctionner avec la carte LoRa.
Connexion au compte TTN
Il existe deux méthodes différentes pour rejoindre le réseau The Things Network TTN à partir du nœud Raspberry Pi pHAT : OTAA et ABP.
Activation en direct (OTAA)
L’activation en direct (OTAA) est le moyen recommandé (et le plus sûr) pour se connecter au réseau The Things Network. Les appareils exécutent une procédure pour rejoindre le réseau, au cours de laquelle une Adresse de module Dynamique (DevAddr) est attribuée et des clés de sécurité sont négociées avec le module.
Activation par personnalisation (ABP)
Dans certains cas, vous devrez peut-être adresser en dur le DevAddr ainsi que les clés de sécurité de l’appareil. Cela signifie qu’il faudra utiliser l’activation par personnalisation (ABP). Cette stratégie peut sembler plus simple, car vous évitez la procédure utilisée pour rejoindre le réseau, mais elle présente certains inconvénients liés à la sécurité.
J’ai donc choisi d’utiliser la Connexion OTAA
Pour connecter un noeud au réseau TTN, il faut d’abord déterminer l’EUI (Extended Unique Identifier = identifieur unique sur 64 bits) de notre appareil. Cette valeur unique pour chaque composant permet 264 valeurs, soit plus de 1.8×1019 possibilités. (de 0 à 18 446 744 073 709 551 615). Même avec un grand nombre de dispositifs LoRa, on devrait être tranquille un moment.
Ouvrez un terminal et tapez les deux lignes suivantes pour obtenir EUI : (la première ligne resette le rak811, vous n’avez besoin de l’utiliser qu’une seule fois après avoir démarré le système)
1 2 |
rak811 hard-reset rak811 get-config dev_eui |
pi@raspberrypi:~ $ rak811 get-config dev_eui
3038383659386A0C
Et vous récupérez l’identifiant de votre matériel.
Le programme Python
Le programme est chargé de relever les valeurs T, P, RH toutes les minutes et de les envoyer à la passerelle. Pour ajouter un capteur, vous devrez ajouter les bibliothèques correspondant au capteur que vous utilisez. Ici j’ai installé celle du BME680.
Le programme est visible sous une plus grande taille (cliquez sur l’image) et vous pouvez également le télécharger au format texte lora_node_progpy.
Quelques infos sur le programme :
[stextbox id=’info’ caption=’Programme de test’]Ce programme est disponible sur le github d’Amédée Bulle. Le programme ci-dessus est un test, il comporte encore des éléments inutiles, reliquats du programme original. Il comporte aussi la réception d’un downlink (message descendant) qui pourrait être utilisé pour déclencher une action (allumer la chaudière, déclencher une alarme, allumer une lampe…). Cette fonction a été testée avec TTN mais pas encore avec MyDevices.[/stextbox]
En ligne 39 on reset le circuit LoRa (à faire au moins une fois après la connexion de la carte à l’alimentation)
En ligne 42 on entre les identifiants de l’appli et la clé correspondante. (Il faudra rentrer vos propres identifiants 🙂 )
En ligne 46 on se connecte à la passerelle en OTAA. Over The Air : Les clefs de chiffrement sont obtenues par un échange avec le réseau.
Des lignes 56 à 70 on récupère les données climatiques et on les met en forme pour les inclure dans la payload.
En ligne 75 on crée la trame au format CayenneLPP et on l’envoie.
Le programme envoie la payload (voir ci-dessous) actualisée toutes les minutes (à modifier selon vos besoins).
Lorsque vous lancez le programme en ligne de commande, il sera fermé si vous étiez en SSH (puTTY) et fermez la fenêtre. Pour continuer l’exécution après fermeture de la fenêtre ajoutez un & à la fin de la ligne.
La charge utile (PayLoad)
On a sur cette copie d’écran la charge utile (payload) envoyée au format CayenneLPP par le nœud. Cette payload vaut : 01 67 00 D7 02 73 25 C9 03 68 51. Comment la décortiquer ?
Le codage Cayenne LPP
Ce codage créé par Cayenne est opensource et disponible sous forme de bibliothèque. LA charge utile a la structure suivante :
1 octet | 1 octet | N octets | 1 octet | 1 octet | M octets | … |
Data1 canal | Type Data1 | Data1 | Data2 canal | Type Data2 | Data2 | … |
Les types de données dont définis par la norme IPSO Alliance qui identifie chaque donnée avec un « Object ID » (identifiant) en appliquant une conversion selon le tableau ci-dessous. Comme les codes IPSO débutent à 3200, une conversion est appliquée pour que le type n’occupe qu’un seul octet : LPP_DATA_TYPE = IPSO_OBJECT_ID – 3200
On voit par exemple que la température (Temperature Sensor) code IPSO 3303 devient le type LPP 103 (on lui soustrait 3200) en décimal, ce qui fait 67 en hexadécimal. La donnée occupe 2 octets et contient un nombre signé (la température peut être négative) dont le bit de poids faible représente 0,1°C. Concrètement il faudra multiplier la température par 10 pour obtenir la valeur à stocker ici.
Avec ces informations, reprenons la charge utile :
01 67 00 D7 02 73 25 C9 03 68 51
01 67 00 D7 :
- 01 = 1d => canal 1
- 67 = 103d => Capteur de température valeur sur 2 octets
- 00 D7 = 215d => 21.5°C (valeur/10)
02 73 25 C9 :
- 02 = 2d => canal 2
- 73 = 115d => Baromètre valeur sur 2 octets
- 25 C9 = 9673d => 967.3 hPa (valeur/10)
03 68 51 :
- 03 = 3 => canal 3
- 68 = 104d => Capteur d’humidité valeur sur 1 octet
- 51 = 81d => 40.5 % (valeur/2 car bit de poids faible =0,5% HR)
En 11 octets CayenneLPP a donc permis de passer les valeurs de 3 capteurs et leur type. Ce format est très utilisé dans le monde de l’IoT car il facilite la transmission des données, tout en conservant une occupation réduite de la bande passante.
Préparer le downlink (envoi de messages vers le nœud)
Il faudra ajouter un canal Digital output à votre payload pour 0/1. Ceci ajoute un interrupteur 0/1 à votre dashboard
04 01 01 :
- 04 = 4 => canal 4
- 01 = 1 => Sortie numérique
- 01 = 1 => Valeur 1 (peut valoir 1 on reçoit 04 00 64 FF ou 0 on reçoit 04 00 00 FF)
Il faudra ajouter un canal Analog output à votre payload pour gérer une valeur variable. Ceci ajoute un slider (curseur) dont vous pouvez régler les paramètres (maxi, mini, intervalles)
05 03 00 80 :
- 05 = 5 => canal 5
- 03 =3 => Sortie analogique
- 03 E8 = 1000 => Valeur de départ (réglage de température entre 5 et 25 degrés, on reçoit 05 03 f2 ff qui vaut 1010 si la temp. est réglée à 10.10°C)
Inscription du nœud sur The Things Network
Nous avions précédemment configuré la Gateway sur TTN, maintenant on passe à la configuration du nœud.
Connectez vous à votre compte TTN et cliquez sur Applications puis Add Application
Donnez un nom à votre application (attention tous les caractères ne sont pas autorisés) et ajoutez une description. Sélectionnez le serveur TTN qui sera sollicité, ici le serveur européen.
Vous récupérez un numéro d’application unique, qu’on va associer avec votre carte LoRa. Dans Devices, cliquez sur Register Device.
Donnez un nom à votre matériel, ce nom ne pourra pas être modifié. Collez le Device EUI récupéré plus haut en ligne de commande. App Key sera générée par la suite. Cliquez sur Register.
Après un moment vous avez accès à la fenêtre Device Overview. L’App Key existe et vous pouvez la voir (clic sur l’œil) et la copier (clic sur la feuille à droite du champ). En haut de la fenêtre (dans le fil d’Ariane) cliquez sur le nom de votre application puis dans le menu sur Payload Format. Dans la rubrique Payload Format, choisissez CayenneLPP qui est le format utilisé dans ce tutoriel. Quand vous serez aguerri(e) vous pourrez créer votre propre format 😉
Validez avec Save en bas de la fenêtre.
A partir de là, vous devriez voir apparaître des données dans la rubrique Data. et vous devriez pouvoir « déployer » les infos pour voir les infos transmises…
Afficher les données sur Cayenne My Devices
Pour exploiter les données sur MyDevices Cayenne, créez un compte ou connectez vous à votre compte.
Voici l’affichage obtenu avec le node LoRa et le BME680 sur Cayenne. Vous pouvez voir la page en temps réel en cliquant sur l’image ci-dessus ou sur ce lien.
[stextbox id=’warning’ caption=’Un peu de patience…’]Quand vous vous connectez sur cette page, il n’y a pas d’information affichée. Il faut attendre le prochain envoi de données pour lire les valeurs (actuellement toutes les minutes)[/stextbox]
[stextbox id=’download’]Comme cette page MyDevices Cayenne est expérimentale, je ne peux pas garantir qu’elle fonctionne en permanence ni qu’elle va durer indéfiniment…[/stextbox]
Pour pouvoir tranférer les données vers cayenne, on va d’abord repasser par la case TTN. Ouvrez votre Application dans The Things Network.
Cliquez sur Integrations puis sur Add Integration
Vous arrivez sur une liste qui vous permet de choisir où vous souhaitez envoyer vos données.
Descendez un peu dans la liste jusqu’à trouver myDevices. Cliquez dessus.
Donnez un nom unique à votre Integration, et choisissez l’Access Key par défaut. Validez en cliquant sur Add Integration en bas de la fenêtre.
Vous obtenez un résumé qui montre le lien que vous venez de créer vers myDevices. Votre application est prête à envoyer des données à myDevices. N’hésitez pas à consulter la documentation signalée en bleu 🙂 C’est également ici que vous pourrez supprimer cette intégration si elle n’est plus nécessaire.
Normalement vous avez déjà dû associer un device LoRa avec votre application précédemment. Si ce n’est pas le cas, faites le maintenant.
On va maintenant passer sur la page de myDevices Cayenne. Créez un compte si vous n’en avez pas encore.
Cliquez sur LoRa, dans la liste choisissez The Things Network
Parmi tous les matériels sélectionnez Cayenne LPP pour pouvoir récupérer les données TTN à ce format.
Si vous avez déjà des éléments dans myDevices, cliquez sur Add new en haut à gauche et la suite est comme ci-dessus.
Lorsque vous avez sélectionné Cayenne LPP, cette fenêtre s’ouvre et il vous reste à indiquer le N° du matériel Dev EUI
Il reste à ajouter le device en cliquant sur le bouton Add Device. Vous devriez voir apparaitre le tableau de bord avec le matériel et les champs du paquet de données que vous avez créé. Il vous reste à dimensionner les widgets des données et éventuellement leur présentation en cliquant sur la roue dentée en haut à droite. (flèches rouges)
En cliquant sur la courbe, vous pouvez afficher les données de l’heure, du jour, de la semaine…
Conclusion
Désolé pour la longueur de cet article, c’est la compilation d’une grosse semaine de lecture, de recherches, de tests et de rédaction. J’ai essayé de mettre les choses dans un ordre logique.
Pas sûr que j’y sois arrivé. Mais normalement vous avez toutes les infos pour démarrer avec LoRa.
N’hésitez pas à me faire un retour de vos expériences ou des manques que vous pourrez détecter.
Pour info la Gateway est vendue 153€ et le noeud pHAT est à 35€. On est à la veille du Brexit donc ces montants sont sujets à modification.
[stextbox id=’alert’ caption=’ATTENTION’]
UPDATE MAI 2022 : Après le passage à la v3 de la console TTN, cette gateway n’est plus maintenue par PiSupply !!! Il y a des soucis pour se connecter
voir https://github.com/PiSupply/iot-lora-image/issues/77
[/stextbox]
Sources
-
- https://www.thethingsnetwork.org/docs/devices/arduino/api/cayennelpp.html
- https://developers.mydevices.com/cayenne/docs/lora/#lora-cayenne-low-power-payload
- https://www.thethingsnetwork.org/forum/t/a-python-library-for-cayenne-lpp/12163
- https://github.com/smlng/pycayennelpp
- https://community.mydevices.com/t/cayenne-lpp-2-0/7510
- https://www.thethingsnetwork.org/docs/applications/cayenne/
- http://silanus.fr/sin/?p=1096
- https://youtu.be/6WMzRrmMjQU
Gateway
- https://learn.pi-supply.com/make/iot-lora-gateway-sd-card-image-setup/
- https://www.thethingsnetwork.org/docs/gateways/pisupply-hat/
- https://uk.pi-supply.com/products/rak833-spi-lora-gateway-concentrator-mpcie-module-sx1301?lang=fr
- https://doc.rakwireless.com/datasheet/rakproducts/rak833-lora-gateway-datasheet
- http://pisupp.ly/iotsd
- https://github.com/PiSupply/iot-lora-image/releases
Node pHAT
- https://learn.pi-supply.com/make/getting-started-with-the-raspberry-pi-lora-node-phat/
- https://github.com/AmedeeBulle/pyrak811
- https://github.com/PiSupply/rak811-python
- https://downloads.rakwireless.com/en/LoRa/RAK811/Firmware/
- https://downloads.rakwireless.com/en/LoRa/RAK811/Tools/
- https://uk.pi-supply.com/products/rak811-lora-lorawan-module?lang=fr
- https://www.thethingsnetwork.org/docs/devices/registration.html
- https://www.linuxembedded.fr/2017/12/introduction-a-lora/
Très bel article (comme toujours ?) ! Je vous en remercie, cela m’éclaire dans beaucoup de point.. Je pense que Lora à un très bel avenir mais il est vrai que c’est une technologie assez complexe à mettre en oeuvre au début.. La Gateway, les noeuds, le codage de la trame…
Ayant eu des besoins similaire je me suis tourné vers son concurrent Sigfox, à mon grand regret, mais beaucoup plus simple. J’espère un jour me tourner vers Lora . Car aujourd’hui Lora souffre d’une lacune.. On ne peux faire du « pistage » par exemple car le réseau TTN est très peu déployé et ne vie que grace aux bénévole, un peu juste comme réseau.
Petite remarque, aucune allusion à la différence entre gateway public ou privée si je ne m’abuse ?
Bref un régale à lire, merci !
Bonjour Arthur
merci 🙂 effectivement j’ai travaillé avec SigFox il y a qques années (il y a des articles sur le blog).
Pour LoRa il y a des solutions opérateur, comme pour SigFox. Voyez par ex. https://www.orange-business.com/fr/reseau-iot. On est autour de 1€ par mois (https://developer.orange.com/wp-content/uploads/Offre-tarifaire-IoT-Connect-Low-Power-octobre-2018.pdf) et où je suis (ville de Le Creusot) Orange n’offre que du LoRa outdoor – ça dépend de l’emplacement des antennes
Je suis resté sur les solutions entreprise/maker gratuites. Une entreprise peut installer une gateway locale et exploiter LoRa sans se connecter au réseau national/mondial. L’avantage de TTN c’est que c’est utilisable gratuitement mais oui, il faut que la communauté installe les gateway pour pouvoir en bénéficier.
Après je n’ai pas pu parler de tout, il faudrait développer sur ce point et tester la portée en fonction des SF mais… c’est encore beaucoup de temps à passer…. peut être plus tard 🙂
cordialement
françois
bonjour François
je vais faire une ruche connecté pour le lycée
je vais commander les 2 cartes
-juste un truc ou dans le programme python tu récupères En ligne 42 on entre les identifiants de l’appli et la clé correspondante. (Il faudra rentrer vos propres identifiants ) on les trouve ou identifiant c’est un numéro ta clé j’ai vu mais pas l’identifiant?
-ou tu utilises pi@raspberrypi:~ $ rak811 get-config dev_eui
3038383659386A0C
Je vais certainement te contacter quand j’aurais acheté le truc
bruno
Bonjour Bruno
de mémoire il me semble que l’identifiant est fourni par la commande exécutée sur la carte
bonne fin d’année
cdt
Francois
Ping : Mise en place d’une Passerelle et d’un nœud LoRa
Salut à tous.
Je n’ai pas compris le type de communication qui est utilisé.
Je sais que c’est du type radio avec un faible débit que l’on utilise pour l’IOT.
Mais peut-on faire une connexion SSH ?
Un seul reproche, le prix est élevé.
Merci pour ce magnifique sujet !
Cordialement.
Artemus24.
@+
Bonjour
non pas de SSH ici on est sur un débit très faible et des paquets de données d’une cinquantaine d’octets.
De plus la réglementation impose une occupation maxi de la bande ce qui fait qu’on ne peut transférer que quelques infos
cdt
françois
Lora, c’est pour quel usage ? La météo ? L’agriculture ?
Et la vidéo surveillance, non plus.
C’est un beau joujou, mais j’ai du mal à comprendre pour quel genre d’applications ?
@+
Bonjour
c’est ça tous les usages qui ne demandent pas une vitesse de transmission élevée et une longue distance de transmission. Il y a des réseaux LoRa partout dans le monde en France par exemple https://www.orange-business.com/fr/reseau-iot la couverture est importante. L’intérêt c’est qu’on n’est pas obligé de passer par un opérateur (c’est payant environ 1€/mois) quand on est maker ou entreprise, on peut installer sa propre passerelle.
utilisations: surveillance de ruches, géolocalisation de véhicules ou de containers, stations météo agricoles, domotique, surveillance diverses, relevé de compteurs à distance… L’idée c’est d’envoyer des petits paquets de data avec une consommation minime, ce qui fait que les piles durent 10ans…
cdt
francois
Je ne sais pas pourquoi, mais LORA n’intéresse pas grand monde cette fois-ci.
C’est l’aspect communication qui m’intéresse.
Pour l’instant, je n’ai pas encore d’idée. Peut-être dans le cadre de la domotique.
Maintenant, je dois trouver le matériel et si possible pas trop cher.
@+
Bonjour,
Peut on Monter la carte lorahat sur un pi4 et mettre un joli boitier sans que ca ne chauffe trop? L’idee etant de faire a la fois une box TV et un point d’acces lors avec la framboise
bonjour
pas de souci pour la mettre sur un pi4
mais pour ce qui est de la température… non à moins de ventiler
cdt
françois
Merci François pour la qualité de cet article.
Comme tu le décris en préambule on ne trouve pas beaucoup de description aussi complète sur le NET.
Je voulais ressortir ma carte Chistera-Pi mais je viens de découvrir que la société n’existe plus 🙁
https://www.framboise314.fr/chistera-pi-lora-a-portee-de-main-grace-a-snootlab/
Y’a peut être moyen d’en faire au moins une Gateway.
Bonjour José
effectivement SnootLab a été mis en liquidation l’an passé et racheté par Scassi
leur blog est vide mais on trouve encore des infos sur la carte Chistera et le github est toujours là
La Chistera me sert maintenant pour montrer en expo un exemple de carte LoRa 🙂
de mémoire ce n’est pas une vraie passerelle LoRa (tous canaux) mais un seul canal est géré
si tu as besoin d’infos dis moi je regarderai ce que j’ai encore
cdt
francois
Merci pour cet article qui a le grand mérite de faire le point sur cette technologie sous un angle pratique finement expliqué.
« transférez la sur une carte micro SD avec Etcher si vous êtes sous Windows ou dd sous Linux. »
Pour info, Etcher est disponible sous Linux et fonctionne parfaitement.
Cordialement.
Hello François !
Merci pour l’article. Effectivement, j’avais regardé LoRa pour un projet de ruches connectées. Au final, il était beaucoup plus efficace de partir sur un simple modem GSM., moins coûteux, et en cas de problème, permet également d’intervenir via texto (pour relancer le système par exemple).
J’avoue avoir beaucoup de mal à trouver un intérêt à LoRa. Soit il faut se baser sur un réseau communautaire, soit c’est un abonnement + paiement au message descendant
Bonjour,
Je cherche à faire une passerelle lora, la plus performante possible. J’ai trouvé ce lien:
https://www.irnas.eu/irnas-outdoor-lorawan-gateway/
un peu ancien. Je suis à la recherche de tutoriels permettant la fabrication d’un gateway le plus performant en terme de distance et de débit avec du matériel encore référencé actuellement. En vous remerciant pour votre aide.
Bonjour
Je ne connais que celle ci de PiSupply
Je pense qu avec une antenne colinéaire elle doit étre performante
Voyez aussi https://m.facebook.com/story.php?story_fbid=2885910648139635&id=442300962500628
Ping : Mise en place d’une Passerelle et d’un nœud LoRa
Salut Francois, merci pour ce super tuto. Je n’ai pas la mm gateaway (la mienne vien de chez seeed) mais j ai reussi a la connecter sur ttn. j ai pu créer l’application, device et integration process.
j ai créer le device dans cayenne avec le bon devEUI (cayenn lpp sur ttn)
Les payload arrive bien dans la console TTN, et il voi bien les different chanel capteur et valeur; mais rien ne passe vers cayenn ( l overview du device reste vide). Les widget se genere automatiquement a reception des donnnees ? pas besoin de les créer avant ?
une idee ?
merci d avance 🙂
Bonjour Matthieu
non, les widgets existent quand on connecte cayenne à ttn
il reste à les redimensionner …
merci pour ta réponse rapide :). donc dans Cayenne appart le devEui du noeuds c est la seul info de reference pour que Cayenne s’abonne a cette paylaod ? pas besoin de l’app key ou autre ?
de mémoire oui il y a juste de devui mais c est de l expérimental et ça évolue il faut vous reporter à la doc… désolé tout ce que j’avais est dans l’article
Bonjour François,
Pour un stagiaire en entreprise, je souhaite le faire travailler sur une solution noeud gateway serveur en local sans connexion a TTN ou autre.
J’ai cru comprendre dans une réponse que tu as faites, que c’était possible!
en gros l’idée c’est de faire un gateway et serveur sur un raspberry pi.
le kit arduino pro gateway lorawan ne fonctionne que sur le réseau donc compliqué en entreprise.
Merci
Fred
Bonjour Fred
je n’ai pas testé car j’ai utilisé la distrib préparée par PiSupply
mais les sources sont dispo https://github.com/PiSupply/iot-lora-controller
il faudra surement gratter mais on doit pouvoir récupérer les infos en local.
dites moi ce que vous en pensez
cdt
françois
Bonjour
Le Gateway est obligatoire?
Il est bien relié au réseau électrique et au net?
on peut installer un objet connecté (une sonde par exemple) et le gateway à une distance
beaucoup plus lointaine (10km voir beaucoup plus?)
merci d’avance
Bonjour Didier
non la passerelle n’est pas obligatoire
vous pouvez envoyer vos données via un opérateur (moyennant un abonnement 🙂 )
la portée sera plus grande car ils ont des antennes mieux placées (pylones sur des hauteurs, antennes à gain, récepteurs plus sensibles…)
Avec les outils présentés je n’ai pas dépassé le Km
il faudrait faire des tests avec des antennes à gain et une installation « au top »
avec les cartes de base vous n’irez pas très loin.
merci pour votre réponse.
Donc le plus difficile c’est la distance entre le capteur et la Gateway.
Ensuite une fois les informations fiables dans la Gateway le réseau du net et les serveurs
font le job sans problème pour arriver à une application.
est ce bien cela? car un peu novice
d
voila c est ca
si ça passe entre le node et la passerelle c’est bon
après il est possible de diminuer la vitesse de transmission, on augmente la portée… tout est une histoire de compromis en fait
et entre l’info du capteur et l’application c’est du live ou un délai?
encore merci
d
Bonjour François,
Je cherche à comprendre comment monter un réseau privé LoRAWAN ?
puis est-ce possible de colecter les données via modbus ou opc ua $
Bonjour
le transport des données est indépendant de ce que vous transportez. Vous pouvez récupérer les données depuis un ou des capteurs, un bus, un système quelconque et les faire transiter via Lora
par contre le nombre d’octets est limité avec des systèmes comme Lora ou Sigfox
Should have paid more attention to your comment about U.FL connector, broke it 🙁
can i use the hat without connecting external antennae, or remove the resistance from external and use it only with internal?
hi
if you use the inner antenna i think it would be better to unsolder the 0 ohm resistor going to u.FL
yes u.FL connectors are really fragile. eventually can be replaced ?
sorry for your card
regards
françois
Bonjour,
je voudrais monter un projet autour de Raspberry PI2 (mais je peux acheter des PI Zero et les nodes que vous utilisez) et d’une passerelle TTN.
Contrainte: je dois programmer en C ou en C++.
Je ne vois passer que des codes Python… Je cherche depuis un moment mais je ne trouve rien qui ressemble à une API en C pour piloter les nodes.
Connaissez-vous quelque chose qui ferais l’affaire?
Dans un premier temps, je voudrais émettre. Si je peux recevoir sur les noeuds par la suite, c’est cocagne…
Bonjour
malheureusement non, le Python est le langage natif du Raspberry Pi et la plupart des applis sont développées dans ce langage.
c’est souvent le cas des bibliothèques fournies pour le Raspberry Pi
voir si vous pouvez vous appuyer sur la bibli en C developpée par IBM pour Arduino (mais il doit y en avoir d’autres) https://redmine.laas.fr/documents/94
ou encore https://lora-developers.semtech.com/resources/tools/basic-mac/welcome-basic-mac/
désolé de ne pouvoir faire plus
cdt
françois
Bonjour,
ça veut dire quoi exactement que Python est le langage natif?
D’entrée avec mes RPI j’ai pu faire du C et du C++. Est-ce que de moins en moins de personnes développent en C d’où la difficulté à trouver des api?
Merci.
Bin le Pi de Raspberry Pi c’est pour Python le Pi a été conçu par des enseignants de Cambridge qui ont opté pour Python et Scratch comme langages intégrés au RasPi, d’où la présence de plusieurs IDE Python
Après comme c’est du Linux, bien sûr tous les langages sont disponibles (ADA, C,C++, PHP, javascipt, Node js, et même Pascal et Basic si vous voulez…)
C’est cette orientation education qui fait que le python est très utilisé au lycée et en université par les chercheurs et doctorants car il existe une quantité phénoménale de bibliothèque qu’on ne retrouve pas en C.
Et… je sais de quoi je parle (je pense) pour avoir formé des technicien de maintenance en informatique industrielle au C et à la programmation temps réel (c’était à la fin du siècle dernier 🙂 )
Même des entreprises que je connais dans la région et qui utilisent des Raspi développent en Python car c’est plus connu que le C par leurs stagiaires de BTS et d’IUT.
Par contre si on veut aller vite, le C est indispensable. J’ai écrit des progs en C sur le Pi 1 pour gérer des rotations de polices de caractères car le python ramait.
On trouve maintenant des biblis python qui sont écrites en C et qui permettent de bénéficier de la vitesse du C et de la facilité de prog et de création d’interfaces de Python…
Bonjour et merci pour cette réponse.
Effectivement, on se pose de plus en plus la question de l’utilisation de Python en parallèle avec C et C++. Peut-être jusqu’à leur abandon…
Merci.
Bonjour,
j’ai acheté le même matériel que vous et mon problème actuel est d’arriver à me loguer sur la gateway (iotloragateway login).
pi et raspberry ne fonctionnent pas comme indiqué dans votre document.
J’ai essayé pas mal de combinaisons mais sans succès!
Si vous avez une idée…
Merci.
Bonjour,
j’ai trouvé (par hasard) !!
le clavier est en qwerty et donc j’entrais rqspberry (^_^)
Merci.
merci pour le retour 🙂
Bonjour. Superbe article. Cela fonctionne t il avec la première version de ? A priori ou i d apres l article.
J ai tout de même une question pratique : pourquoi faut il deux raspberry et deux cartes Lora ? La seconde récupére les signaux, et la première montée sur rp4 réceptionné ces donner, et est ce elle qui permet l envoi vers Cayenne ? Merci
Bonjour Alex
oui il y a un noeud LORA
j’ai utilisé un Raspberry pi parce que c’est quand même le but du blog 😀
mais il existe des cartes LORA pour Arduino et pour micro:bit
par contre la passerelle ici est un Raspi car il se connecte sur le réseau TTN
TTN conserve les données juste qques jours
c’est pour ça que j’ai utilisé Cayenne pour récupérer les data et les conserver + lontemps
ainsi que pour les afficher
cdt
françois
Bonjour,
Merci pour cet article !
Est-il possible avec ces produits de créer un réseau privé ? d’utiliser la gateway sans la connecter à TTN ?
Le prix de la gateway vient-il aussi de la sensibilité de l’appareil pour detecter les messages envoyés par les noeuds ? ne serait-il pas possible d’avoir une portée équivalente en P2P avec deux noeuds qui communiqueraient entre eux ?
Bonjour François,
Merci pour cet article très complet, il m’a permis de comprendre pas mal de choses concernant Lora etc.
J’ai une petite question. Je travaille sur un projet qui consiste en le développement d’une solution (stations de mesures) permettant de récupérer des données diverses (température, humidité, ou autres) à l’aide d’une Arduino MKR WAN 1310 et LoRaWAN est utilisé pour la transmission des données. Le code est développé afin de collecter ces données. Pour l’instant, The Things Network est utilisé comme application server.
Penses-tu que cette solution est adaptée si je souhaite développer ces stations de mesures à grande échelle ? C’est-à-dire mettre en place plusieurs Device (des dizaines par exemple) ? Ou penses-tu qu’il serait plus judicieux de développer mon propre serveur d’application ?
Merci d’avance pour ton aide !
Bonjour
les dizaines de capteurs c’est sur un rayon limité ou sur la France ?
🙂 Après il faut qu’il y ait une passerelle TTN à proximité, sinon c’est le réseau payant 🙁
TTN fait l’affaire même avec une quantité de capteurs, mais il ne garde pas les données (je crois que c’est 7 jours)
si tu dois travailler sur les data pour des stats ou des courbes, il faudra les récupérer en local pour les stocker…
cdt
françois
Merci pour ta réponse !
Cela dépendrai de ce qu’on me demande de développer… Pour l’instant, on peut dire que c’est sur un rayon limité, je suis en train de développer une station test.
Sinon, concernant la récupération des données, as-tu déjà travaillé sur des choses similaires ? Je me demande qu’est ce que je pourrai utiliser (web service à développer ou autre ?) pour interroger TTN par exemple toutes les heures pour voir s’il a reçu de nouvelles données. Et si c’est le cas, les intégrer en BDD…
Merci encore 😉
oh oui j’ai fait ça il y a qques années que j’ai fait ça
mais pas avec TTN avec InfluxDB pour stoker les infos
regarde de ce côté là car influx DB c est opensource et gratuit
c’est une BDD qui enregistre en horodaté dont parfait pour les capteurs meteo
et il y a des plugins python pour gérer les data 🙂
Ping : Mise en place d’une Passerelle LoRa - Bureau d'études électronique, Conception électronique
Bonjour/
Merci pour ce très bon article!
Je n’ai pas tout compris:
On doit impérativement créer sa propre gateway, ou bien on peut se connecter sur une autre gateway du réseau TTN mise à disposition par un autre utilisateur?
Merci de m’éclairer.
Bonjour
Non vous pouvez utiliser une gateaway existante.
ici c’est un peu le désert 😀 d’où la réalisation de la gateway
cdt
françois
Bonjour et merci pour ce travail très complet comme toujours
J’aimerais mettre une réseau Lora en place pour la surveillance d’une serre, d’une cave , d’un potager et d’un garage . Ce système se justifie donc . par contre en Belgique, pas beaucoup de passerelles Dispo, le plus proche est à 20 km
Le coût d’une passerelle n’est pas négligeable . Faut-il vraiment prévoir des passerelles avec plusieurs canaux ?
Le type de passerelle suivant pourrait-elle convenir ?
https://www.robotshop.com/be/fr/passerelle-iot-lora-monocanal-dragino-lg01-n-868-mhz-ec25-e-w-4g-eu.html
Bonjour Marc
Une passerelle monocanal n est pas acceptée par TTN
Elle n’est pas compatible Lorawan
https://www.thethingsnetwork.org/forum/t/single-channel-packet-forwarders-are-deprecated-and-not-supported-guidelines/31117
Si vous vous lancez sur ce projet il vaudrait mieux une gateway multicanal
Cdt
Francois
Un grand merci pour ce renseignement très utile
Il est vrai que la passerelle Things Indoor Gateway n’est pas beaucoup plus cher (+/- 85€ )
Ping : Ressources en vrac pour Lora – Toglut
Bonjour,
Pour transmettre une information grâce aux ondes, j’utilise deux cartes Lora.
La première carte Lora qui envoie l’information est :
Fengyuanhong TTGO T-Beam ESP32 WiFi sans Fil Bluetooth Module ESP 32 GPS NEO-M8N IPEX Lora 32 Titulaire de la Batterie, 868MHz: Amazon.fr: Cuisine & Maison
Et la deuxième carte Lora qui reçoit l’information est :
ILS – TTGO 2 pièces/lot ESP32 SX1276 Lora 868/915 MHz Bluetooth WI-FI Lora Conseil de développement: Amazon.fr: High-tech
Mes codes sont bons, mais durant le téléversement de la première carte Lora qui m’affiche cette erreur:
esptool.py v2.6
Serial port COM4
Connecting…….._____….._____….._____….._____….._____….._____….._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
Pouvez-vous m’aider ?
Merci beaucoup!!!
Bonjour
ça ressemble a un probleme de transfert de data vers la carte
est ce bien le COM4 ?
jetez un coup d’oeil ici si ça peut vous dépanner…
cdt
francois
Bonjour,
Pour le travail et les explications.
Nous venons de suivre la procédure avec le même matériel que vous, nous essayons de connecter un capteur de température + humidité sur la gateway.
Dans les trames de traffic, ce dernier remonte bien mais en « Join Request » est ce qu’il y a quelque chose à préciser au niveau de TTN pour autoriser les équipements à communiquer et ainsi récupérer les valeurs du capteur ?
Merci d’avance,
Bonjour,
J’ai suivit votre page, merci pour le travail réalisé.
Je souhaites connecter un capteur lora à la gateway, lorsque j’ajoute ce dernier dans les devices, au niveau du traffic je reçois une trame « Join Request » mais pas les information du capteur.
Est-ce qu’il y a une configuration supplémentaire à faire ?
Merci d’avance
Super article (comme d’hab) !
Merci beaucoup
Karim
Bonjour François et les autres lecteurs,
En préambule un grand merci pour cette article très bien documenté. Il date déjà de presque un an et demi, j’aimerai savoir si compte tenu de l’évolution rapide de ces technos, cette solution est elle toujours d’actialité, ou y a des solutions encore plus facile à mettre en oeuvre pour créer sa propre passerelle gateway.
Mon objectif est de créer pour notre petite société un système qui nous permettrait de nous affranchir de solutions extrêmement couteuses et propriétaire de collecte de données LORA en créant nos propres passerelles en utilisant dans un premier temps le service TTN.
Merci Thierry
Bonjour,
Votre site devient de plus en plus ma source de bonnes idées 😉
Je m’ intéresse depuis peu à la communication Lora, j’ai un projet de relier plusieurs capteurs à ma domotique (domoticz, MQTT …) disperser un peu partout sur mon terrain : température, humidité, switch etc. Le Wifi étant bien trop énergivore (je ne vais pas tirer des câbles électrique à droite à à gauche), Lora me parait une bonne solution, mais voila … une ribambelle de questions me taraude.
Est il possible de relier des devices Lora sans passer par une gateway loraWan, en effet j’ai déjà mes passerelles : MQTT, domoticz etc … Le cout d’une passerelle me parait élevé pour mon besoin. Un ESP32 avec Lora peut il jouer le rôle de concentrateur pour mes autres devices ?
Merci d’avance.
Bonjour
j’ai pris un peu de temps pour regarder tout ça
mais à ma connaissance il faut passer par une passerelle
après il y a des passerelles mono canal mais je n’en sais pas plus car je n’ai pas testé
https://www.passion-radio.fr/passerelles/gateway-lora-pi-888.html
https://forum.arduino.cc/t/the-things-network-v2-lorawan-obsolete/588640
désolé de ne pouvoir vous aider plus que cela
cdt
françois
Bonjour,
En effet, je veux construire un passerelle LoRa avec un raspberry pi mais sans passer par TTN. Donc recevoir les information des nœuds sur le Raspberry et ensuite les mettre dans un fichier CSV avec directement les information (par exemple: temperature = 20°).
Bonjour,
Super article !
Cependant je rencontre un problème au début, je tombe bien sur l’interface IoT LoRaGateway Management après avoir rentré l’adresse IP de la gateway.
Le problème c’est que côté TTN nous sommes passé à la V3 et cela a changé bien des choses :(.
Le nombre de caractère pour l’ API key (Gateway key pour l’ancienne version si je ne trompe pas) est de 98 au lieu de 101. Donc impossible de passer cette étape.
J’ai trouvé très peu de tutoriel avec la nouvelle version de ttn, j’aurais bien besoin d’aide…
Merci d’avance !
Bonjour
Je ne connais pas ces nouveautés et je ne pourrai pas mettre à jour le tuto rapidement
Désolé, essayez sur le forum, vous trouverez sans doute un utilisateur qui a utilisé cette version
Cdt
Francois
Bonjour,
J’ai le même problème.
J’avais déjà une configuration qui fonctionnait avec TTN en V2.
Comme TTN V2 stoppe le 1er décembre 2021, j’ai commencé à migrer.
Et je n’arrive pas à établir de connexion entre la passerelle et TTN V3 (community Edition).
Si quelqu’un a une solution, je suis preneur!
Ping : Connecter une Gateway LoRa RAK833 à TTN v3 - Framboise 314, le Raspberry Pi à la sauce française....
Ping : Carte SeeedStudio Lora Grove E5 - Framboise 314, le Raspberry Pi à la sauce française....
Bonjour,
J’aurais besoin de conseils.
Actuellement, j’ai réalisé des remontés d’informations de températures de ruches pour une association avec Sigfox (carte mkrfox1200) et consultable sur Thingspeak. L’association me demande des kits supplémentaires, mais la carte mkrfox1200 n’est plus fabriquée.
J’avais à l’époque déja étudié la solution LoraWan, mais justement, pour des problèmes de couverture, j’ai choisi la solution Sigfox.
Maintenant, j’aimerai passer sur la solution LoraWan, mais je constate que la couverture en deux ans n’a pas beaucoup progressé.
Avez-vous une solution ?
Naturellement, le budget est limité, mais je pense pour avancer, il faut créer une passerelle. Pour les cartes, laquelle, il faut une bonne autonomie.
J’ai aussi pense au nb-iot, mais le coût double, et on est à nouveau lié à un abonnement.
Merci pour vos retours
Bonjour Joseph
quand vous dites la couverture n’a pas progressé vous parlez de quel réseau ? TTN ?
parce que le réseau Orange couvre une grande partie de la France. L’abonnement est payant par appareil également.
Il faut faire le ratio entre le prix de l’abonnement annuel Après si vous voulez recevoir des nodes LoRa dans une zone particulière en passant par TTN, il faut effectivement créer votre propre passerelle reliée à Internet pour faire remonter les data. Ce n’est pas toujours évident vu l’emplacement de certaines ruches. J’en connais dans la région qui sont à des km de chez leur propriétaire…
Dans ce cas la gateway « perso » n’a pas une grande utilité et il faut se rabattre sur Orange.
Mais comme pour NB-IoT il faut un abonnement par objet
Pour les kits supplémentaires il y a la carte LoRa de Seeed ou les dragino mais certains sont en rupture de stock…
Vous pouvez me contacter en direct si vous voulez contact@framboise314.fr
bonne journée
cdt
françois
Bonjour François,
Actuellement, je suis en reconversion professionnel, je prépare un BTS SN EC, j’ai un projet à réaliser, mon projet est de surveiller à distance la salle des serveurs, avoir la position de l’équipement concerné et avoir un genre de bouton connecté en cas de besoin.
Je me suis penché sur votre blog qui m’apporte beaucoup d’information en ce qui me concerne, merci pour ce que vous faites.
Est-il possible de rester en contact en cas de difficulté ?
Bonjour
merci pour ce retour
je pourrai vous aider dans la limite de mes connaissances
et du temps disponible
cdt
francois
Bonjour Joseph,
Je souhaite avoir un conseille sur l’achat du raspberry et de la passerelle, je suis obligé d’acher chez Amazon, il ne propose pas les même produit, j’a trouvé ceci qu’en pensez-vous svp.https://amzn.eu/d/1kkP8hI
https://amzn.eu/d/hge3MkO
c’est hyper cher et ça sent l’arnaque !
Merci, je n’arrive pas à trouver la passerelle IoT Lora Gateway Hat, auriez-vouqs une réf, l’entreprise où je realise mon aprentissage ne peut pas acheter dans tous les sites
Désolé les articles datent un peu
le matériel venait de https://uk.pi-supply.com/search?type=product&q=lora
Pi Supply mais ce n’est sans doute plus ce qu’ils distribuent aujourd hui
Merci François,
j’ai trouvé la passerelle exactement la même chez RS mais sans l’antenne,
Je trouve aussi, l’entreprise où je réalise mon apprentissage doit acheter amazon ou rs
Bonjour,
je reviens sur cet article car je voudrais développer un projet qui consiste à rapatrier des valeurs de température, hauteur d’eau, turbidité, etc…, sur une passerelle située dans des campings de plusieurs hectares. C’est pour ça que Lora me semble une bonne solution. Ces valeurs doivent rester en local.
Jhon à écrit en indiquant qu’il avait ce même besoin mais il n’y a pas eu de réponse.
Est-ce techniquement faisable ou sans API dédiée, ce n’est pas envisageable?
Merci…
Bonjour je vous décrit un peu mon projet. Mon projet consiste à mettre en place une plateforme pour la digitalisation de parking. Alors nous voulons placer des capteurs qui vont capter le mouvement des véhicules, les capteurs vont envoyer les info à l’Arduino qui à son tour va avoir accès à la base de donnée à partie d’un routeur pour afficher les infos et recueillir des infos. Alors ma préoccupation est de savoir comment je peux mettre en réseau une carte Arduino avec une base de donnée ?. Merci j’attends votre réponse .
Bonjour
Pas simple de relier l’Arduino à une BDD 😛
par contre c’est à la portée du Raspberry Pi
La carte Arduino remonte les infos au Raspberry Pi qui dialogue avec la BDD