Intégration de la passerelle ChirpStack R1X avec le capteur SenseCAP S2101
Introduction
Ce guide vous accompagne pas à pas dans la mise en place d’une solution complète de passerelle LoRaWAN utilisant ChirpStack sur le Seeed reComputer R11, un contrôleur Edge basé sur Raspberry Pi. Grâce au module concentrateur WM1302 LoRa, le R1X devient une passerelle puissante et fiable, capable d’assurer une communication longue portée.
En configurant le Semtech Packet Forwarder, les données LoRa sont transmises sans interruption à ChirpStack, qui gère les couches réseau et applicative. L’utilisation de Docker simplifie le déploiement des services et assure un environnement modulaire et évolutif. Enfin, l’intégration avec MQTT permet un flux de données IoT sécurisé et en temps réel, provenant de capteurs tels que le SenseCAP S2101.
Matériel requis
- Seeed reComputer R1X
- Module passerelle LoRaWAN WM1302
- Capteur SenseCAP S2101
→ Obtenez le vôtre sur DistrIoT
Installation de Docker
-
Mettre à jour le système
sudo apt update sudo apt upgrade
-
Installer Docker
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
-
Ajouter l’utilisateur au groupe Docker
sudo usermod -aG docker ${USER} -
Redémarrer le système
sudo reboot
-
Vérifier l’installation
docker run hello-world
-
Installer Docker Compose
sudo apt install docker-compose
Exécution du Packet Forwarder
Le module WM1302 nécessite le Semtech Packet Forwarder pour relayer les données entre le module LoRa et ChirpStack. Le reComputer R11 dispose d’un guide d’installation préconfiguré disponible sur le wiki officiel de Seeed.
1. Modifier la configuration
Ouvrez le fichier de configuration correspondant à votre région LoRa (ex : US915) :
nano global_conf.json.sx1250.US915
Modifiez la section gateway_conf :
{
"gateway_conf": {
"gateway_ID": "AA555A0000000000",
"server_address": "localhost",
"serv_port_up": 1700,
"serv_port_down": 1700
}}
Remplacez l’ID de passerelle par le vôtre et utilisez le fichier JSON adapté à votre région.
2. Lancer le Packet Forwarder
./lora_pkt_fwd -c global_conf.json.sx1250.US915
Démarrer la passerelle
Téléchargez le fichier docker-compose.yml depuis la page du reComputer et adaptez la bande de fréquences à votre configuration.
chirpstack-gateway-bridge:
image: chirpstack/chirpstack-gateway-bridge:4
restart: unless-stopped
ports:
- "1700:1700/udp"
volumes:
- ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
environment:
- INTEGRATION__MQTT__EVENT_TOPIC_TEMPLATE=us915_0/gateway/{{ .GatewayID }}/event/{{ .EventType }}
- INTEGRATION__MQTT__STATE_TOPIC_TEMPLATE=us915_0/gateway/{{ .GatewayID }}/state/{{ .StateType }}
- INTEGRATION__MQTT__COMMAND_TOPIC_TEMPLATE=us915_0/gateway/{{ .GatewayID }}/command/#
depends_on:
- mosquitto
Lancer ChirpStack
sudo docker-compose up -d
Vérifiez les conteneurs actifs :
sudo docker ps
Accès à l’interface ChirpStack
Rendez-vous sur http://localhost:8080
Identifiants par défaut :
Utilisateur : admin
Mot de passe : admin
Ajout de la passerelle
- Dans ChirpStack, allez dans Gateways → Create Gateway
- Renseignez :
- Gateway ID : AA555A0000000000
- Nom : Nom descriptif de la passerelle
Création du profil de périphérique
- Accédez à Device Profiles → Create Device Profile
- Renseignez :
- Nom : Nom de votre profil
- Région : correspondante à votre passerelle (ex : US915)
- Dans l’onglet Codec, sélectionnez JavaScript Functions et collez le codec de votre appareil.
Ajout d’un périphérique
- Allez dans Tenant → Application → Add Application
- Donnez un nom, sauvegardez, puis cliquez sur Add Device
- Renseignez :
- Device EUI : depuis le capteur (ex : SenseCAP S2101)
- Device Profile : le profil créé
- Application Key : clé du périphérique
Vérification du statut du périphérique
Dans l’onglet Events du périphérique, vous verrez les paquets de jonction et les trames montantes. Vous pouvez consulter les données comme la température et l’humidité envoyées par le SenseCAP S2101.
Intégration MQTT
ChirpStack utilise MQTT pour diffuser les données vers vos applications ou tableaux de bord.
Configurez votre client MQTT (par ex. MQTT Explorer) :
- Hôte : IP du reComputer R11
- Port : 1883
Exemple de sujet :
application/c853ffcd-53f0-4de3-83b9-5467ff895f76/device/2cf7f1c043500402/event/up
Intégration Node-RED
Visualisez les données LoRaWAN avec Node-RED via des nœuds MQTT et des fonctions personnalisées.
// Exemple de fonction Node-RED pour extraire température et humidité
let data = msg.payload;
if (typeof data === "string") {
try { data = JSON.parse(data); } catch (e) { return [null,null]; }
}
if (!data.object || !Array.isArray(data.object.messages)) return [null,null];
let tempMsg=null, humMsg=null;
data.object.messages.forEach(m=>{
if(m.type==="report_telemetry"){
if(m.measurementId===4097) tempMsg={topic:"temperature",payload:m.measurementValue};
else if(m.measurementId===4098) humMsg={topic:"humidity",payload:m.measurementValue};
}
});
return [tempMsg, humMsg];
Connectez les sorties à des nœuds Gauge ou de visualisation pour afficher les mesures.
Assistance technique et discussion
Merci d’avoir choisi nos produits ! Nous mettons à disposition plusieurs canaux de support pour garantir une expérience fluide : documentation, forums techniques et assistance directe.