Publié le 26 janvier 2024 - par

Une passerelle LoRaWan pour le Raspberry Pi chez Elecrow

J’ai déjà eu l’occasion de vous présenter plusieurs solutions LoRawan sur le blog. Le temps passe et certaines solutions disparaissent car les modules sont obsolètes et plus distribués. Alors quand de nouveau modules comme cette gateway LR1302 Elecrow sortent, c’est l’occasion de remettre à jour les informations sur ce mode de transmission.

Cliquez pour des informations sur les niveaux

Une passerelle LoRa LR1302 chez Elecrow

LoRa, LoRaWAN ???

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 qu’Elecrow m’avait envoyées et qui attendaient depuis un moment, 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 pourraient 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. Il y a eu la solution toute faite de MyDevices Cayenne dans sa version gratuite qui a disparu au profit d’une version commerciale. Il faudra donc prévoir de rapatrier les données de TTN vers un serveur perso ou utiliser la solution Vittascience dont je vous reparlerai prochainement.

LoRa 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. Dans de (très) bonnes conditions, un signal LoRa a été reçu à 1300Km. 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 !
En janvier 2020 le réseau se composait 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.

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.

Sur quelles fréquences ?

En Europe c’est la bande 868MHz qui est utilisée pour LoRaWAN

Uplink:
  1. 868.1 – SF7BW125 to SF12BW125
  2. 868.3 – SF7BW125 to SF12BW125 and SF7BW250
  3. 868.5 – SF7BW125 to SF12BW125
  4. 867.1 – SF7BW125 to SF12BW125
  5. 867.3 – SF7BW125 to SF12BW125
  6. 867.5 – SF7BW125 to SF12BW125
  7. 867.7 – SF7BW125 to SF12BW125
  8. 867.9 – SF7BW125 to SF12BW125
  9. 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

Les différents éléments

Passerelle LR1302

La passerelle est un circuit LR1302 au format mini PCIe.

Le module passerelle LR1302

C’est un module LoRaWAN® de nouvelle génération. Il se caractérise par une faible consommation d’énergie et de hautes performances.

Le module passerelle LR1302

Basé sur la puce LoRaWAN® SX1302 de Semtech Network, la passerelle LR1302 offre une capacité de transmission sans fil à longue distance.

LR1302 – Sortie Antenne et LEDs d’état

Par rapport aux puces LoRa précédentes SX1301 et SX1308, la puce SX1302 a une sensibilité plus élevée, une consommation d’énergie plus faible et une température de fonctionnement plus basse.

LR1302 – Connecteur mini PCIe

Elle prend en charge la transmission de données sur 8 canaux, améliore l’efficacité et la capacité de communication et prend en charge la connexion et la transmission de données d’un plus grand nombre d’appareils.

Elle possède deux interfaces d’antenne, l’une pour la transmission et la réception des signaux LoRa et une interface U.FL (IPEX) pour une transmission indépendante. Elle est munie d’un blindage métallique pour la protéger contre les interférences externes et fournir un environnement de communication fiable.

Le module passerelle LoRaWAN® LR1302 est disponible en versions SPI et USB, couvrant les bandes de fréquences US915 et EU868, ce qui vous permet de choisir parmi les solutions de fréquences LoRaWAN®, notamment EU868 et US915. Ici c’est le modèle EU à 868MHz qui est utilisé.

Conçu spécifiquement pour l’IoT, le LR1302 convient à une variété d’applications. Qu’il soit utilisé dans les villes intelligentes (smart city), l’agriculture, l’automatisation industrielle ou d’autres domaines, le module LR1302 peut fournir des connexions fiables et une transmission de données efficace.

Toute seule cette passerelle elle n’est pas utilisable, il faut la monter sur une carte HAT qui se monte sur un Raspberry Pi.

Carte HAT LR1302 LoRaWAN HAT

 

Le LR1302 LoRaWAN HAT est une carte d’extension Raspberry Pi qui connecte le module de passerelle LoRaWAN LR1302 basé sur le SX1302 à un Raspberry Pi (tous modèles jusqu’au Raspberry Pi 5).

Carte HAT LoRa LR1302 avant montage du module passerelle

Elle intègre également un module GPS et une horloge en temps réel RTC afin d’améliorer la précision de la synchronisation et du positionnement du module LR1302.

Au premier plan, le GPS L76K et la prise SMA pour l’antenne LoRa.

Le L76K, est un module GPS extrêmement compact. C’est un récepteur qui permet la réception simultanée de GPS, GLONASS, Galileo, BDS et QZSS. Avec 33 canaux de poursuite, 99 canaux d’acquisition et 210 canaux PRN, le L76 peut acquérir et suivre n’importe quel mélange de signaux satellites.

Pile de l’horloge RTC. C’est un modèle CR1220

La carte prend en charge le mini-PCIe du module de passerelle LR1302.

LR1302 – Connecteur mici PCIe

Connecteurs de la carte LoRa HAT LR1302

La carte HAT LoRaWAN LR1302 se charge de relier le connecteur PCIe doré à 52 broches au connecteur GPIO à 40 broches du Raspberry Pi.
Cela simplifie le processus de développement pour les utilisateurs et facilite la mise en œuvre avec le Raspberry Pi.

LR1302 – Vue de dessous avec le connecteur GPIO, le ventilateur et la pile de l’horloge RTC.

De plus la carte comporte un ventilateur de refroidissement qui dissipe efficacement la chaleur et peut améliorer les performances du Raspberry Pi.

LR1302 – Prise d’antenne SMA LoRa et prise USB-C de la carte HAT.

LR1302 – LEDs d’état de la carte HAT LoRaWAN.

LR1302 – Prises d’antennes SMA de la carte HAT LoRaWAN. A gauche prise GPS, à droite prise LoRaWAN.

Carte Node LoRaWAN Ra-08H

Présentation

La carte LoRaWAN RA-08H Node Board est une carte de développement basée sur la combinaison du microcontrôleur Raspberry Pi RP2040 et du circuit LoRaWAN RA-08H avec plusieurs interfaces d’E/S au format Crowtail. Elle peut donc être utilisée avec les modules de la série Crowtail. Le module LoRaWAN embarqué est connecté à la plateforme LoRaWAN et permet le développement rapide d’applications pour la formation des makers, pour la maison intelligente, le contrôle industriel, etc.

Les modules peuvent être analogiques ou numériques.

Photos

La carte Ra-08H Elecrow vue de dessus. A gauche les GPIO disponibles, à droite de haut en bas, la prise pour le panneau solaire, la prise USB-C pour l’alimentation et/ou la programmation, la prise pour raccorder une batterie. Vers les prises on trouve les boutons poussoirs reliés au RP2040 (BOOT et RESET) et au dessus du Ra-O8H, le bouton poussoir BOOT de ce circuit. L’antenne fournie est une antenne miniature de taille réduite.
Deux LED indique l’état de la carte, la LED P/D est pilotable (voir le programme Blink un peu plus loin). L’autre LED indique la charge de la batterie.

Sur cette vue de dessous on voit les prises crowtail bien identifiées sur la sérigraphie.

Carte Ra-08H vue de dessus.

Le RP2040 et les connecteurs de la carte Ra-08H

 

Connecteurs de la carte Ra-08H

Caractéristiques

  • Intégre un microcontrôleur RP2040 et un module LoraWAN RA-08H (documentation ici)
  • Contrôleur principal chip Raspberry Pi RP2040, 264KB SRAM intégré, 4MB Flash embarqué
  • Double cœur Arm Cortex-M0+ @ 133MHz
  • Module RA-08H avec mémoire intégrée, 128KB Flash, 16KB SRAM
    – prise en charge la bande de fréquence : 803MHZ-930MHZ
    – Le module RA-08H prend en charge l’antenne externe, l’interface SMA ou l’interface IPEX de première génération.
  • Compatible avec Arduino IDE et Micropython
  • 6 interfaces 5V Crowtail (2 interfaces analogiques, 2 interfaces numériques, 1 interface UART, 1 interface IIC)
  • 2*10 interfaces GPIO universels
  • 1 interface batterie
  • 1 interface solaire

 

Capteurs

Elecrow m’a envoyé 3 capteurs, un DHT11 (Température, humidité), un capteur de lumière à LDR et un capteur d’humidité de sol. Les capteurs sont au format Crowtail et se connectent directement sur les cartes Elecrow. Dans ma configuration, je ne pouvais pas utiliser le capteur d’humidité de sol.

DHT11

Le module est présenté sur la page https://www.elecrow.com/crowtail-temperature-humidity-sensor-p-1229.html

Nota pour utiliser ce capteur DHT11 il faut installer installer la librairie Adafruit Unified Sensor.

Capteur de lumière

Ce module capteur de lumière utilise une photorésistance GL5516 pour détecter l’intensité lumineuse de l’environnement. La résistance du capteur diminue lorsque l’intensité lumineuse de l’environnement augmente. La puce (amplificateur opérationnel) LMV358 est utilisée comme suiveur de tension pour vous permettre d’obtenir des données précises. Le module est disponible sur la page https://www.elecrow.com/crowtail-light-sensor-p-1244.html

Capteur d’humidité du sol

Il s’agit d’un capteur capacitif d’humidité du sol, qui peut mesurer le niveau d’humidité du sol dans un pot de fleur ou dans le sol, par détection capacitive. Comparé à d’autres types de capteurs d’humidité, ce capteur capacitif est fabriqué dans un matériau résistant à la corrosion, ce qui lui confère une longue durée de vie. Ce capteur d’humidité peut être utilisé pour détecter l’humidité du sol afin de contrôler si les plantes ont besoin d’eau. Il se connecte sur un port analogique Crowtail. Vous le trouverez sur cette page https://www.elecrow.com/crowtail-capacitive-soil-moisture-sensor.html

Montage de la passerelle

Montage du LR1302

Insérez le module LR1302 dans le connecteur mini PCIe

Appuyez sur le module pour que les trous (flèches jaunes) arrivent au dessus des filetages de la carte.

Mettez en place et vissez les deux vis fournies.

Après montage du module, on voit que deux petites prises u-FL sont visibles : RFIO et LoRa-ANT. Il va falloir les relier.

Connexion du câble u-Fl

Dans le sachet vous trouverez un petit câble coaxial muni d’une prise u-FL à chaque extrémité. Connectez une des extrémités. Il faut bien appuyer à plat sur la prise et vous sentez/entendez un clic qui indique le verrouillage du connecteur.

Attention ! Ce type de connecteur (contrairement aux connecteurs SMA) ne supporte que quelques montages/démontages (environ 30 selon Wikipedia). Il n’est pas prévu pour de nombreuses manipulations. Evitez de trop le manipuler…

Connectez l’autre extrémité du câble.

Le module passerelle LR1302 est maintenant relié à la prise SMA LoRa-ANT.

Les antennes

Le kit passerelle est fourni avec deux antennes, une antenne 868MHz pour LoRaWAN et une antenne GPS 1.5GHz amplifiée qui reçoit une tension envoyée par la carte pour alimenter un LNA (Low Noise Amplifier) intégré à l’antenne. Il faudra les connecter au bon endroit, c’est précisé en sérigraphie sur le circuit imprimé de la carte HAT.

Montage sur le Raspberry Pi

Vu le faible débit de LoRaWAN, j’ai choisi un Raspberry Pi 3 B+ qui fera largement l’affaire ici. En plus je l’avais en stock… Bien entendu si vous voulez le top du top vous mettrez un Raspberry Pi 4 ou même un Raspberry Pi 5 mais ce serait un peu utiliser un bazooka pour tuer une mouche… Enfin, c’est vous qui voyez.

Allez pour les collectionneurs celui-ci est un Raspberry Pi bleu (eh oui !) vendu au Brésil et qu’on ne peut pas importer (sauf si on a un copain radioamateur au Brésil, qui l’achète et vous l’envoie).

La couleur est différente car les normes sont différentes pour la partie WiFi-Bluetooth : Anatel au Brésil et Subtel pour le Chili. C’est ce qui est sérigraphié sur cette carte. Après, je n’utilise pas la liaison radio avec la passerelle, elle est connectée en dur , avec un câble Ethernet à ma box.

Parmi ces pièces on a déjà utilisé le câble U-FL et les deux vis de la mini PCIe. Il nous reste les 4 entretoises et 8 vis.

 

On commence par monter les entretoises sur le Raspberry Pi.

Mettez la carte LR1302 LoRaWAN HAT en place sur le connecteur (vérifier qu’il n’y a pas de décalage !)

et enfoncez jusqu’à ce que la carte repose sur les entretoises.

Terminez en mettant les 4 vis supérieures qui vont solidariser la carte HAT au Raspberry Pi 3 B+.

La passerelle est prête à être utilisée.

ATTENTION : Ne mettez pas la passerelle sous tension sans brancher les antennes. Si le module LoRa passe en émission sans antenne, l’énergie de l’émetteur ne sera pas dissipée dans l’antenne et l’étage de sortie risque de chauffer et d’être détruit !! La passerelle ne fonctionnera plus.

Connectez les antennes, vous êtes prêt(e) à utiliser la passerelle.

 

Connexion à TTN

Créez un compte sur TTN, ou connectez vous si vous avez déjà un compte. Cliquez sur les gateways.

Comme j’utilise TTN j’ai déjà des gateways inscrites, je vais en ajouter une nouvelle, celle  d’Elecrow : Cliquez sur  + Register gateway .

Récupérez l’EUI de votre gateway (voir un peu plus bas dans l’article). C’est un identifiant unique sur 64 bits  de la passerelle, fourni par le fabricant. Un utilitaire permet de le récupérer. Ne rentrez pas le 0x de début qui indique que c’est de l’hexadécimal. Rentrez les 16 chiffres et lettres les plus à droite (4 bits x 16 caractères =  64 bits).

Renseignez le plan de fréquence : Europe 863-870 MHz (SF9 for RX2…) puis cliquez sur  Register gateway .

Votre Gateway est créée, vous pouvez positionner sur la carte ou laisser pour plus tard, le GPS de la gateaway Elecrow devrait configurer la position automatiquement… On verra ça !

Update : Non, le GPS de la passerelle ne permet pas, dans le mode qu’on utilise, de positionner le point sur la carte, il faudra le faire manuellement.

Vous pouvez télécharger le fichier global_conf.json qui contient les paramètres pour configurer la gateway, voir plus bas Modifier le fichier .json.

Installation de l’OS et de la gateway LoRawan

J’ai utilisé un Raspberry Pi 3, à mon avis bien suffisant pour cette application, sur lequel j’ai installé un Bullseye 32 bits avec Raspberry Pi Imager (carte SD 64Go).

L’étape suivante consiste à valider SPI et I2C pour la carte HAT de la gateway. Laisser le port série non validé. (pour des raisons de commodité et pour l’utilisation lors de l’écriture de cet article, j’ai activé SSH et VNC).

On peut ensuite passer à l’installation du logiciel de la passerelle.

On peut maintenant lancer la compilation :

Lorsque la compilation est terminée, on va modifier un fichier JSON pour l’adapter avec notre passerelle :

Trouver l’EUI (identifiant unique) de la passerelle

La mise en route de la passerelle nécessite des aller-retours entre TTN et la console du Raspberry PI. Pour trouver l’EUI de la passerelle il y a un utilitaire dans le dossier util_chip_id. Mais pour l’exécuter il faut que le fichier reset_lgw.sh soit présent dans le dossier.  Or il n’y est pas, il faut le copier depuis le dossier tools ! puis lui mettre des droits d’exécution…

On peut ensuite exécuter chip_id qui récupère et affiche l’EUI De notre passerelle. C’est ce N° qu’il faut entrer dans l’EUI de TTN…

Modifier le fichier .json

Nous allons modifier le fichier .json qu’utilise la passerelle pour communiquer avec TTN. Si le packet forwarder tourne (ce ne devrait pas être le cas lors du démarrage) arrêtez le avec CTRL + C.

Utilisez nano pour modifier le fichier json qui concerne la gateway.

Descendez dans le fichier (presque jusqu’en bas) jusqu’à trouver :

Vous pouvez aussi remplacer les valeurs 0 des coordonnées par vos coordonnées réelles.

Remplacez la gateway_ID par celle que vous avez relevée ci-dessus, et qui correspond à l’EUI enregistrée dans TTN. Sortez par CTRL + X pour enregistrer.

Pour info dans le dossier packet_forwarder, pour que la passerelle fonctionne, j’ai dû :

modifier les droits de reset_lgw.sh et renommer le fichier json :

Vous pouvez maintenant démarrer la passerelle pour vérifier si elle fonctionne.

On vérifie que la passerelle envoie bien les paquets de données vers TTN.

Les données de test arrivent bien dans la console TTN. A partir de là on peut continuer et mettre le node en route pour envoyer des « vraies » données à la gateway. Pour arrêter proprement la passerelle, utilisez CTRL + C dans la fenêtre de terminal du Raspberry Pi où le packet forwarder s’exécute.

Mise en route du noeud LoRa Elecrow Ra-O8H

On peut programmer le noeud LoRa avec l’IDE Arduino ou Thonny en micropython.
Je vous propose les deux méthodes, vous verrez comment installer l’IDE Arduino pour qu’il communique avec la carte Ra-08H. Pour ma part je préfère Thonny et micropython, avec lequel je développe le programme d’envoi des data à la passerelle.

Présentation

Installation RP2040 sur l’IDE Arduino

Si ce n’est pas déjà fiat, installez l’IDE Arduino. Dans préférences ajouter la ligne
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json  pour accéder aux fonctions du RP2040.

Ouvrez le menu Outils > Carte > Gestionnaire de carte

Entrez « RP2040 » dans la boîte de recherche, sélectionnez « Raspberry Pi Pico/RP2040 » et installez l’environnement de développement.

Appuyez sur le bouton BOOT le plus proche des prises.
Connectez le port USB-C à un PC ou un Raspberry Pi,

Une fenêtre s’ouvre, c’est ici que vous pourrez accéder à la mémoire de la carte, comme sur un Raspberry Pi Pico.

Test de la carte

On va tester si tout fonctionne en lançant un programme de test qui fait clignoter la LED interne de la carte.

Après compilation le programme est chargé dans la mémoire du RP2040 et la LED bleue de la carte clignote.

La chaîne de programmation de notre carte Elecrow Ra-08H est en place et fonctionne, on peut passer à la suite.

Test du capteur température humidité

On va connecter le capteur de température DHT11 Crowtail sur le connecteur D1 qui envoie les données sur GP2. Il suffira de renseigner la pin DHTPIN en conséquence dans le programme test_DHT11 ci-dessous. Le programme provient de la page du Wiki de la carte Crowtail DHT11.

Ce programme affiche l’humidité et la température toutes les secondes.
Télécharger le programme test_DHT11

On sait maintenant que la  carte fonctionne et qu’elle lit les données de ce capteur, on peut la connecter à TTN via la passerelle. Si vous utilisez l’IDE Arduino pour la connexion à TTN je peux ajouter vos programmes à cet article (toujours avec le nom de l’auteur !)

Utilisation avec Thonny et MicroPython

Puisque la carte utilise un RP2040, le même MCU (Micro Controler Unit) que le Raspberry Pi PICO, on peut aussi utiliser Thonny. c’est la méthode que je préfère. J’ai déjà fait plusieurs articles sur le blog avec Thonny et microPython, reportez-vous à ces articles pour démarrer si vous ne connaissez pas.

La version actuelle de Thonny propose de mettre microPython à jour sur le RP2040. Dites lui OK et faites la mise à jour pour utiliser la dernière version. Ce programme de µPESY en microPython permet de lire les données du DHT11 et de les afficher :

Le programme fonctionne et la carte renvoie bien les infos de température et humidité.

Ajouter la carte à TTN

Retournez sur la page de TTN

Cette fois ajoutez une application. Cliquez sur  + Create application .

L’ID de l’application ne peut contenir que des minuscules et des chiffres…
Cliquez sur  Create appication 

On peut maintenant ajouter notre carte, appelée device.
Cliquez sur  + Register end device . Le paramétrage de TTN est commenté dans cet article.

Sélectionnez « Enter end device specifics manually« . (La méthode d’accès par défaut pour créer un appareil est OTAA). En mode de connexion OTAA (Over-The-Air-Activation), nous devons enregistrer les trois paramètres suivants : Device EUI, APP EUI et APP KEY, qui seront utilisés pour la connexion ultérieure de l’appareil.

Vous pouvez compléter la configuration comme ci-dessus puis ajouter le JoinEUI (flèche rouge) qui est  le ID de votre passerelle, et cliquez sur Confirm, ce qui donne accès à :

Cliquez sur les boutons Generate pour générer votre ID de device (l’identifiant de votre carte Ra-08H Elecrow) et l’AppKey.

Notez précieusement ces informations qui vous serviront pour que la carte puisse se connecter à TTN. Cliquez sur  Register end device .

Vous pouvez consulter le résumé de votre carte Ra-08H qui est maintenant déclarée…

Dans la rubrique (l’onglet) Payload formatters il faut encore ajouter un peu de code pour que les infos humidité et température soient décodés et affichés. Choisissez Javascript et remplacez le code par celui-ci

L’humidité est codée sur un octet, la température est codée sur 16 bits (2 octets). Reste à connecter la carte à TTN !

Connecter la carte à TTN

Le programme suivant va connecter la carte à TTN et envoyer des données de température et humidité « bidons » car fixées dans le programme, le but est de voir si ça se connecte.

Dans la console de Thonny, la connexion de la carte Ra-08H est confirmée :

et sur la console TTN (ci-dessous) on voit arriver les données

La chaîne envoyée est bien reçue et interprétée par le JavaScript que nous avons ajouté.
25 en hexa = 37 en décimal
00 C9 en hexa = 201 en décimal / 10 = 20.1 °C

Pour la lumière je lis le port A0 où est connecté le light sensor. J’ai modifié le javascipt du Payload formater pour traiter la lumière, et on envoie maintenant 5 octets :

On va pouvoir insérer les données réelles dans la chaîne et les recevoir sur le serveur TTN.

Programme envoi-data.py. Vous pouvez télécharger le programme ici.

 

J’ai laissé tous les print ce qui permet de suivre le déroulement du programme. Ici le cycle de répétition n’est que de 15 secondes ! Cela permet de voir si tout se passe bien mais il faudra mettre un temps plus long sur la dernière ligne pour respecter les règles d’occupation de LoRaWAN.

Dans la console TTN on obtient :

cliquez pour agrandir

On voit ici les 5 octets envoyés 21 00 DC 06 E0  et leur extaction par notre programme javascipt, qui affiche les bonnes valeurs de température, humidité et lumière.

Conclusion

Avec cette passerelle LoRaWan, Elecrow met à disposition de tous ceux qui souhaitent se lancer dans LoRa (éducation, collectivités, entreprises…), un matériel abordable et facile à mettre en oeuvre. L’accès gratuit à TTN permet de se lancer dans des expériences rapidement. Le seul inconvénient est alors la durée de conservaton des données sur TTN.

La carte Node Ra-08H programmable avec l’IDE Arduino ou Thonny a l’avantage d’embarquer un circuit RP2040 bien connu et très documenté sur Internet.

Si vous mettez cet ensemble n’hésitez pas à faire un retour sur votre expérience, les portées obtenues, les soucis que vous avez rencontrés…

Sources

Les prix peuvent varier en fonction du cours du Dollar. TVA en sus. Liens affiliés

Module LR1302 868MHz miniPCIe : 23,90$

Module LR1302 915MHz miniPCIe : 23,90$

Carte Node LoRaWAN 868/915MHz Ra-08H : 12,99$

Carte HAT Raspberry Pi pour LoRaWAN LR1302 : 16,90$

https://www.elecrow.com/wiki/index.php?title=LR1302_LoRaWAN_HAT_for_RPI_PRD

https://www.elecrow.com/wiki/index.php?title=Lora_RA-08H_Node_Board

https://github.com/Elecrow-RD/LR1302_loraWAN/tree/master/LR1302_HAL/sx1302_hal/packet_forwarder

https://www.elecrow.com/crowtail-capacitive-soil-moisture-sensor.html?idd=5

https://www.elecrow.com/crowtail-temperature-humidity-sensor-p-1229.html?idd=5

https://www.elecrow.com/crowtail-light-sensor-p-1244.html?idd=5

https://www.linkedin.com/pulse/global-controllable-ai-thinker-ra-08h-supports-lorawan-protocol-/

https://khunsomsak.medium.com/elecrow-lora-ra-08h-node-board-%E0%B8%81%E0%B8%B1%E0%B8%9A-micropython-90ad1bb6058d

Elecrow launches LoRaWAN Gateway module for Raspberry Pi

 

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

13 réflexions au sujet de « Une passerelle LoRaWan pour le Raspberry Pi chez Elecrow »

  1. Ping : Une passerelle LoRaWan pour le Raspberry Pi chez Elecrow

  2. Stéphane

    Bonjour François,

    Très intéressant, je vais travailler ça plus en détails.

    Petite question : je n’arrive pas à avoir d’infos sur la possibilité d’envoi en France depuis leur site WEB. Avez-vous déjà testé ? Vaut-il mieux passer par Elektor (par ex.) qui vend le matériel, certes plus cher mais sans doute sans souci de douane etc. ?

    Merci et bonne journée,

    Stéphane.

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Stéphane
      Comme ils m’envoient le matériel en test je n’ai pas ce souci …
      par contre il est possible que la TVA s’ajoute au prix, là je n’ai pas d’info
      si le prix Elektor est + élevé c’est sans doute à cause des taxes (et leur marge…)
      cdt
      francois

      Répondre
  3. Stéphane

    Bonjour François,

    Merci pour votre réponse. Je pense commander sur Elektor pour éviter des frais de dossier en plus des frais de douane…

    (Je n’arrive pas à répondre directement via « Répondre » à la fin de votre message : le curseur ne s’affiche pas dans la fenêtre de message (Safari et Brave sur MacOS)…)

    Répondre
  4. Ping : Deux cartes LoRaWan Sigfox LSM100A pour Raspberry Pi et PICO chez SNOC [2/2] - Framboise 314, le Raspberry Pi à la sauce française....

  5. Ping : Le dixième anniversaire d'Elecrow : Des promos ! - Framboise 314, le Raspberry Pi à la sauce française....

  6. Mitch

    Merci pour ce travail!

    J’ai une question, étant donné que le gateway est le raspberry, ne peut-on pas pour s’affranchir du cloud et de TTN, installer directement sur le raspi un server type Chirpstack pour la gestion des devices lora?

    J’ai quand même l’ambition de truffer mon jardin et ma maison de ces bêtes et 10 devices maxi sur TTN c’est limitant.

    Au plaisir de vous lire (encore et toujours)…

     

     

    Répondre
  7. Babar

    Bonjour François,

    Je vous remercie pour le tuto que j’ai suivi à la lettre et qui m’a permis de mettre en place et de mieux cerner le fonctionnement du protocole LoraWAN.

    Je voulais savoir s’il était possible de piloter automatiquement une électrovanne relié à la Raspberry (et donc la passerelle). Mon problème réside dans le fait que comme le capteur envoie une chaîne d’octets lisible uniquement sur TTN et que le downlink permet uniquement d’envoyer un message vers le capteur, est-il possible d’envoyer les données sur la Raspberry pour qu’un script python puisse prendre le relais et gérer automatiquement l’électrovanne ?

    Actuellement, dans mon cas j’utilise RaspController pour gérer l’électrovanne manuellement.

    Je n’ai encore que de maigres connaissances en électronique et informatique, merci d’avance pour votre retour.

    Cordialement,

    Babar

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      ne connaissant pas votre installation c est difficile de le dire
      c’est quoi votre noeud Lora ?
      parce que le Downlink repart vers le noeud (pas vers le capteur, le capteur c’est le dispositif qui mesure la température, la pression, l’humidité… / le noeud c’est l’ensemble ESP32 + capteur)
      et le noeud ecoute le retour si vous devez piloter une électrovanne c est le noeud qui peut s’en charger
      regardez https://www.univ-smb.fr/lorawan/wp-content/uploads/2022/01/Livre-LoRa-LoRaWAN-et-lInternet-des-Objets.pdf

      cdt
      francois

      Répondre
  8. Jean-Philippe

    bonjour François & tous

    merci pour cet article complet, j’ai aussi regardé la vidéo de Sylvain Montagny dont tu parlais dans un autre article, et quelques autres ressources sur le sujet.

    j’ai franchi le pas, le matériel est commandé (passerelle, hat et carte de dev) pour expérimenter cela sur cette fin d’année, avec un jeune stagiaire (plutôt bon niveau technique, en bac pro ciel) qu’on aura au fablab, ta passerelle est encore en fonctionnement ? j’aimerais aussi interfacer cela avec un home assistant (en cours de mise en place) dans un deuxième temps, j’ai vu que c’est possible. L’idée est aussi de fabriquer des nœuds DIY à base de Sx1276 , d’arduino et de capteurs,  il restera à les faire communiquer avec la gateway LR1302… nous verrons si on y arrive 😉
    amicalement,
    Jean-Philippe

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour Jean Philippe
      merci pour le retour
      non, la passerelle est en fonctionnement en intérieur uniquement lors des tests. Je suis mal placé et juste un peu dégagé vers le sud
      cdt
      francois

      Répondre
  9. Jean-Philippe

    bonjour François et tous

    voici quelques avancées sur la mise en place loraWan avec la carte LR1302 et le node RA_08H

    la distribution bookworm a modifiée la gestion des GPIO et la passerelle ne démarre pas, j’ai trouvé un post qui en parlait https://github.com/Lora-net/sx1302_hal/issues/120 mais j’ai fais machine arrière et ai mis une une bullseye comme tu le préconisais d’ailleurs et la passerelle communique maintenant bien avec TTN.

    coté RA_08h, c’est ok aussi ça remonte bien les données dans TTN tout marche en passant par du micropython et Thonny 🙂

    j’ai juste un problème, puisque je n’ai trouvé aucun code complet sur IDE arduino pour remonter les infos de la node, j’ai utilisé Thonny et Micropython, ça fonctionne en execution « live » (je vois les infos arriver en live sur TTN) mais comment faire en sorte que le programme micropython s’execute au démarrage de la carte node ? je l’ai renommé en main.py mais je pense que le code ne se lance pas quand la carte est branchée hors Thonny (rien dans TTN). Si j’arrive à lancer au démarrage le code micropython, la prochaine étape sera de vérifier les distances maximales de reception…

    Jean-Philippe

    Répondre
    1. François MOCQ Auteur de l’article

      Merci Jean Philippe
      Je n’ai pas eu l’occasion de revenir sur cet article
      oui normalement avec main.py ça doit se lancer (sauf si une erreur est détectée ?)
      tiens moi au courant de la suite
      amitiés
      François

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.