Comment puis-je interfacer un réseau LoraWan avec MQTT?

8

Je travaille sur un projet qui consiste à créer un réseau LoraWan en utilisant:

  • Dragino lg01 comme passerelle.
  • Un Arduino Uno et un bouclier Dragino Lora avec un simple capteur de température LM35
  • En ce qui concerne le serveur, je cherchais quelque chose d'open source et compatible avec LoraWan, j'ai trouvé le serveur Wso2 IoT et je l'ai démarré, je pense que je dois installer Apache ActiveMQ JMS Provider avec lui et je ne l'ai pas fait savoir-faire.

Pour envoyer les données de la passerelle au serveur, je vais utiliser MQTT.

Quant à la visualisation des données, je vais créer une application utilisant AngularJS.

Donc, le problème que j'ai eu, c'est que j'étais confus quant à la connexion du nœud au serveur car j'ai trouvé deux méthodes (activation en direct et activation par personnalisation) et cela affecte-t-il la façon dont la passerelle et le serveur doivent être programmés?

Vais-je aussi programmer la passerelle pour envoyer des données au serveur avec MQTT ou toute la programmation se produit-elle dans le nœud?

Mohamed Achref Dridi
la source

Réponses:

10

Imaginez votre réseau comme un diagramme de Venn où un ensemble est LoraWan et l'autre est MQTT.

entrez la description de l'image ici

Les éléments des ensembles ne doivent connaître que leur ou leurs ensembles.

  • Ainsi, les nœuds utilisant LoraWan (sont dans l'ensemble LoraWan) n'ont pas à s'embêter avec MQTT ou avec le serveur. Ils envoient / reçoivent simplement des données vers / depuis la passerelle. La passerelle est la fin de leur monde.
  • La passerelle est à l'intersection des deux ensembles, LoraWan et MQTT. La partie liée au MQTT devrait être hébergée ici car cet élément fait partie des deux ensembles. Sa tâche consiste à transmettre les données collectées des nœuds LoraWan au serveur en publiant les données de nœud appropriées dans une rubrique MQTT spécifique. La logique qui répartit les données entre les sujets MQTT corrects doit être implémentée ici.

  • Le serveur pourrait héberger le courtier MQTT tel quel dans l'ensemble MQTT et n'a rien à voir avec LoraWan.


Si vous recherchez un serveur compatible LoraWan et que vous avez des nœuds compatibles LoraWan, alors je ne comprends pas où avez-vous besoin de votre passerelle. La passerelle est censée assurer l'interopérabilité entre deux réseaux différents. Dans votre cas entre un réseau LoraWan et un réseau TCP / IP ou Internet.

Bence Kaulics
la source
Merci pour les conseils que je peux voir plus clairement comment le réseau va être connecté, et pour être honnête, je ne comprenais pas exactement quel type de serveur je vais utiliser, donc je me suis dit que je devrais en utiliser un qui est compatible avec Lorawan, mais après un peu de recherche, j'ai découvert que wso2 iot peut fonctionner avec mqtt et peut donc être programmé pour recevoir des données de la passerelle, et merci infiniment encore d'avoir clarifié toute cette affaire pour moi !!
Mohamed Achref Dridi
1

Une approche adoptée par de nombreuses personnes consiste simplement à enregistrer le ou les nœuds et la ou les passerelles avec le TTN ( The Things Network ) gratuit et communautaire . TTN fait tout le nécessaire pour approvisionner votre nœud avec les clés LoRaWAN et ABP ou OTAA, à part la programmation du firmware du nœud (vous utilisez probablement Arduino IDE ou VSCode + PlatformIO pour cela).

Vous pourrez ensuite (1) afficher les messages de votre nœud sur leur console (ainsi que le trafic de la passerelle), ce qui est très utile pour le débogage, et vous pouvez également (2) vous abonner aux messages auprès de leur courtier MQTT.

La prochaine étape pourrait être une installation DIY de Node-RED, Telegraf et Grafana qui vous offrira un banc d'essai puissant pour le traitement et la visualisation de vos données.

BTW, la passerelle ne parle pas MQTT avec le serveur IIRC. C'est une sorte de JSON sur UDP.

Tout cela est très bien documenté sur le web.

Stefan
la source