Verarbeiten Sie MQTT-Daten mit Node-RED

Node-RED ist ein Programmiertool, um Hardwaregeräte, APIs und Online-Dienste auf neue und interessante Weise miteinander zu verbinden.

Es bietet einen Browser-basierten Editor, der es einfach macht, Flows mithilfe der breiten Palette von Knoten in der Palette, die mit einem einzigen Klick für die Laufzeit bereitgestellt werden können, miteinander zu verbinden.

Neben einigen grundlegenden Netzwerkdienstanwendungsknoten wie HTTP und WebSocket bietet Node-RED Zugriffsunterstützung für die MQTT Protokoll. Derzeit bietet es einen MQTT-Subscription-Knoten und einen Release-Knoten. Der Subscription-Knoten dient zur Dateneingabe, während der Release-Knoten zur Datenausgabe verwendet werden kann.

In diesem Artikel wird der vollständige Betriebsprozess für den Zugriff auf den MQTT-Server mithilfe von Node-RED vorgestellt, wobei die MQTT-Daten gefiltert und verarbeitet werden, bevor sie an den gesendet werden MQTT-Broker. Benutzer können schnell verstehen, wie Node-RED für die einfache Stream-Verarbeitung von MQTT-Daten verwendet wird.

Installieren Sie Node-RED

Node-RED, installiert entweder auf Ihrem PC oder Geräten wie Raspberry Pi oder Cloud-Servern, kann schnell installiert und verwendet werden. Hier sind zwei gängige Methoden für die Installation:

Verwenden npm für globale Installation:

npm install -g --unsafe-perm node-red

Verwenden Docker zum Installieren:

docker run -it -p 1880:1880 --name mynodered nodered/node-red

Laufen

Wenn Sie npm für die globale Installation verwenden und Sie aufgefordert werden, dass die Installation erfolgreich war, können Sie Node-RED sofort starten, indem Sie einfach den Befehl node-red global ausführen.

Egal, ob Docker oder npm verwendet wird, nach erfolgreichem Start müssen wir nur den Browser öffnen und die aktuelle Adresse plus 1880-Portnummer eingeben, um die Browser-Editor-Seite von Node-RED zu öffnen. Wenn Sie beispielsweise lokal ausgeführt werden, öffnen Sie den Browser und geben Sie ein http://127.0.0.1:1880. Wenn Sie die in der folgenden Abbildung gezeigte Seite sehen, bedeutet dies, dass Node-RED erfolgreich gestartet wurde:

Knoten-ROT

Verwenden Sie MQTT in Node-RED

Dieser Artikel stellt die freie Öffentlichkeit vor MQTT-Broker bereitgestellt von EMQ, das auf der Grundlage von erstellt wird MQTT-Cloud – EMQX-Cloud. Die Zugangsdaten des Servers lauten wie folgt:

In der folgenden Funktionsdemonstration zeigen wir einen einfachen Anwendungsfall für die Verwendung von Node-RED, um die empfangenen JSON-Daten mit Temperatur- und Feuchtigkeitsinformationen zu verarbeiten, dann ein Regelurteil über den Temperaturwert zu treffen und den aktuell geänderten Temperaturwert erneut über MQTT zu senden wenn sich die Temperatur ändert.

MQTT-Server verbinden

Ziehen Sie zuerst einen MQTT-Knoten per Drag & Drop in die Seite in der Menüleiste auf der linken Seite. Nachdem Sie auf den Knoten doppelgeklickt haben, wird rechts eine Konfigurationsseite zum Bearbeiten des MQTT-Knotens angezeigt. Erstellen Sie dann gemäß den Inhaltsaufforderungen neue Verbindungsinformationen, geben Sie andere Verbindungsinformationen von MQTT ein und klicken Sie auf die Schaltfläche Fertig, um den Knoten zu speichern Information.

Node-RED MQTT im Knoten

MQTT-Daten verarbeiten

Datenzugriff: Ziehen Sie einen JSON-Knoten per Drag & Drop auf die Seite, und wir können eine Aktion auf der Konfigurationsseite des JSON-Knotens konfigurieren. Dann setzen wir es auf Always Convert to Javascript Object. Da wir nicht sicher sein können, ob es sich bei den empfangenen Daten um Daten im JSON-Format oder um eine JSON-Zeichenfolge handelt, besteht der erste Schritt darin, die empfangenen Nachrichten in JSON umzuwandeln. Nach der Konfiguration verbinden wir diesen Knoten mit dem MQTT-In-Knoten.

Node-RED JSON-Knoten

Datenfilterung: Nachdem wir die empfangenen Nachrichtendaten konfiguriert und formatiert haben, ziehen Sie einen Filterknoten per Drag & Drop auf die Seite. Konfigurieren Sie nach dem Doppelklicken auf den Knoten die Regeln auf der Konfigurationsseite. Wählen Sie zuerst einen Modus und legen Sie ihn als Block fest, es sei denn, der Wert ändert sich. Die Filterregel lautet, dass der Wert der aktuell empfangenen Daten geändert werden muss. Derzeit sind die Daten im JSON-Format, und was wir beurteilen sollten, ist ein bestimmter Wert in den JSON-Daten, also müssen wir den Wert als msg.payload.temperature in Property festlegen. Klicken Sie nach Abschluss der Konfiguration auf die Schaltfläche Fertig, um die Konfiguration des Datenfilterknotens zu speichern, und verbinden Sie den Knoten nach der vorherigen Konfiguration schließlich mit dem JSON-Knoten.

Node-RED-Filterknoten

Vorlage verwenden: Ziehen Sie nach dem Filtern der Daten einen Vorlagenknoten auf die Seite, und doppelklicken Sie auf den Knoten, um den Vorlageninhalt zu konfigurieren, sodass die gefilterten Daten über die Vorlage ausgegeben werden können. Natürlich können die gefilterten Daten direkt ausgegeben werden, indem dieser Schritt übersprungen wird.

Node-RED-Vorlagenknoten

Veröffentlichen Sie die verarbeiteten MQTT-Daten

Senden Sie abschließend die verarbeiteten Daten per MQTT nach der obigen Datenverarbeitung und Filterung, ziehen Sie einen MQTT-Out-Knoten per Drag-and-Drop auf die Seite, geben Sie die gleichen Verbindungsinformationen wie den MQTT-In-Knoten ein, konfigurieren Sie ein Thema für Benutzer zum Empfangen von Daten, speichern Sie es, Verbinden Sie ihn dann mit dem Vorlagenknoten und klicken Sie auf die Schaltfläche Bereitstellen in der oberen rechten Ecke, um die aktuelle Regelanwendung online bereitzustellen.

Node-RED MQTT-Ausgangsknoten

Prüfen

Nach Abschluss der Funktionsanordnung der gesamten Stromdatenverarbeitung verwenden wir MQTT 5.0-Client – MQTT X um die Verwendbarkeit dieser Funktion zu testen und zu validieren. Wir erstellen eine neue Verbindung, verbinden sie mit der zuvor in Node-RED konfigurierten MQTT-Cloud-Service-Adresse und tragen dann das Topic in den MQTT-In-Knoten ein, um eine Nachricht zu senden, damit Node-RED die von uns gesendeten MQTT-Daten empfangen kann.

Dann abonnieren wir ein im MQTT X-Knoten konfiguriertes Thema, um die verarbeiteten Nachrichtendaten zu erhalten. Wenn Nachrichtendaten mit Temperatur- und Feuchtigkeitsinformationen gesendet werden, können wir eine Nachricht empfangen, die gemäß der von uns festgelegten Nachrichtenvorlage gesendet wird, aber wir können sie nicht erneut empfangen, wenn sie erneut gesendet wird.

MQTT X-Veröffentlichungsnachrichten

Da sich der Temperaturwert zu diesem Zeitpunkt nicht geändert hat und wenn wir den Temperaturwert erneut ändern, werden wir feststellen, dass wir eine weitere Nachricht erhalten haben, die uns daran erinnert, dass sich der Temperaturwert geändert hat.

MQTT X empfängt Nachrichten

Jetzt haben wir den gesamten Prozess der Installation und Verbindung mit dem MQTT-Cloud-Dienst abgeschlossen, indem wir Node-RED verwendet, MQTT-Nachrichtendaten gefiltert und verarbeitet und schließlich die verarbeitete Datennachricht gesendet haben.

Die Interaktion und Verwendung von Node-RED, d. h. die Verwendung von UI zur Beschreibung der allgemeinen Geschäftslogik, kann die Einstiegshürde für nicht-professionelle Entwickler senken. Um ein visuelles Tool zum schnellen Erstellen der erforderlichen komplexen Ausführungsaufgaben zu verwenden, können Benutzer komplexe Aufgaben durch einfache Knotenverbindungen erstellen, was sehr hilfreich ist, insbesondere für einige IoT-Anwendungsszenarien.

Ursprünglich erschienen bei

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *