Wie kann ich ein LoraWan-Netzwerk mit MQTT verbinden?


8

Ich habe an einem Projekt gearbeitet, bei dem ein LoraWan-Netzwerk erstellt wird mit:

  • Dragino lg01 als Gateway.
  • Ein Arduino Uno und ein Dragino Lora Schild mit einem einfachen LM35 Temperatursensor
  • Was den Server betrifft, habe ich nach etwas Open Source gesucht, das mit LoraWan kompatibel ist. Ich habe den Wso2 IoT-Server gefunden und einige davon gestartet. Ich denke, ich muss Apache ActiveMQ JMS Provider damit installieren und habe es nicht getan Fachwissen.

Um die Daten vom Gateway an den Server zu senden, verwende ich MQTT.

Zur Visualisierung der Daten werde ich eine Anwendung mit AngularJS erstellen.

Das Problem, das ich hatte, ist, dass ich verwirrt war, den Knoten mit dem Server zu verbinden, da ich zwei Methoden gefunden habe (drahtlose Aktivierung und Aktivierung durch Personalisierung). Hat dies Auswirkungen darauf, wie das Gateway und der Server programmiert werden sollten?

Werde ich das Gateway auch so programmieren, dass Daten mit MQTT an den Server gesendet werden, oder erfolgt die gesamte Programmierung auf dem Knoten?

Antworten:


10

Stellen Sie sich Ihr Netzwerk als Venn-Diagramm vor, in dem ein Satz LoraWan und der andere MQTT ist.

Geben Sie hier die Bildbeschreibung ein

Elemente in den Sets sollten nur über ihre Sets Bescheid wissen.

  • Knoten, die LoraWan verwenden (im LoraWan-Set enthalten), müssen sich also nicht um MQTT oder den Server kümmern. Sie senden / empfangen nur Daten zum / vom Gateway. Das Gateway ist das Ende ihrer Welt.
  • Das Gateway befindet sich im Schnittpunkt der beiden Sets LoraWan und MQTT. Der MQTT-bezogene Teil sollte hier gehostet werden, da dieses Element Teil beider Sets ist. Seine Aufgabe besteht darin, die gesammelten Daten von den LoraWan-Knoten an den Server weiterzuleiten, indem die entsprechenden Knotendaten für ein bestimmtes MQTT-Thema veröffentlicht werden. Hier sollte die Logik implementiert werden, die Daten zwischen den richtigen MQTT-Themen verteilt.

  • Der Server kann den MQTT-Broker so hosten, wie er im MQTT-Set enthalten ist, und hat nichts mit LoraWan zu tun.


Wenn Sie nach einem LoraWan-kompatiblen Server suchen und LoraWan-fähige Knoten haben, verstehe ich nicht, wo Sie Ihr Gateway benötigen. Das Gateway soll Interoperabilität zwischen zwei verschiedenen Netzwerken bieten. In Ihrem Fall zwischen einem LoraWan-Netzwerk und einem TCP / IP-Netzwerk oder dem Internet.


Vielen Dank für den Rat, den ich klarer sehen kann, wie das Netzwerk verbunden werden soll, und um ehrlich zu sein, habe ich nicht genau verstanden, welche Art von Server ich verwenden werde, also dachte ich mir, ich sollte einen verwenden, der mit Lorawan kompatibel ist, aber Nach ein wenig Recherche fand ich heraus, dass wso2 iot mit mqtt arbeiten kann und so programmiert werden kann, dass Daten vom Gateway empfangen werden. Und nochmals vielen Dank, dass Sie dieses ganze Geschäft für mich geklärt haben !!
Mohamed Achref Dridi

1

Ein Ansatz, den viele Menschen verfolgen, besteht darin, einfach die Knoten und das Gateway beim kostenlosen, Community-basierten TTN ( The Things Network ) zu registrieren . TTN erledigt alle notwendigen Dinge, um Ihren Knoten mit den LoRaWAN-Schlüsseln und entweder ABP oder OTAA zu versorgen, abgesehen von der eigentlichen Programmierung der Firmware des Knotens (Sie verwenden wahrscheinlich die Arduino IDE oder VSCode + PlatformIO dafür).

Sie können dann (1) die Nachrichten Ihres Knotens auf seiner Konsole (sowie den Gateway-Verkehr) anzeigen, was beim Debuggen sehr hilfreich ist, und Sie können (2) die Nachrichten bei ihrem MQTT-Broker abonnieren.

Der nächste Schritt könnte eine DIY-Installation von Node-RED, Telegraf und Grafana sein, mit der Sie ein leistungsstarkes Testfeld für die Verarbeitung und Visualisierung Ihrer Daten erhalten.

Übrigens spricht das Gateway kein MQTT mit dem Server IIRC. Es ist eine Art JSON über UDP.

All dies ist im Web sehr gut dokumentiert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.