Node-RED

Nach Bearbeitung dieses Kapitels können Sie ...

  • ... Node-RED installieren und weitere Nodes und Flows hinzufügen.
  • ... Flows erstellen.
  • ... Werte auf einem Dashboard visualisieren und auf Eingaben reagieren.
  • ... einen Arduino mit dem Node-RED-Server verbinden und digitale und analoge Ein- und Ausgaben mit dem Dashboard ermöglichen.
  • ... Werte in eine Datenbank schreiben.

Node-RED ist ein sehr einfaches und gleichzeitig sehr leistungsstarkes, serverbasiertes Programmiertool für das Internet der Dinge. Ein Web-Server ist integriert und die Bedienung erfolgt im Browser.

Neben der Installation auf einem PC kann Node-RED auch auf einem Raspberry o.ä. betrieben werden, dann kann auch direkt auf dessen GPIO-Pins und die Tastatur und Maus zugegriffen werden. Die lokale Installation ist für die Entwicklung von Flows vorteilhaft, da kein zusätzlicher Pi benötigt wird und man unabhängig von einer Internetverbindung arbeiten kann. Für den späteren Realbetrieb sind die anderen Varianten besser, da der PC nicht dauernd eingeschaltet sein muss.

Außerdem lässt sich Node-RED auch in der Cloud nutzen z.B. FRED.

1 Installation

  • Installieren Sie Node-RED lokal auf Ihrem PC.
  • Starten Sie Node-RED indem Sie in der Eingabeaufforderung C:\Users\UserName>node-red eingeben.
  • Öffnen Sie im Browser die Seite http://localhost:1880.

2 Flows erstellen

Node-RED kann jetzt benutzt werden. Nodes, die eine Eingabe machen, erkennen Sie an den Verbindungskonten auf der rechten Seite. Die Nodes mit den Verbindungsknoten auf der linken Seite erzeugen eine Ausgabe, z.B. der debug-Node. Ziehen Sie die Nodes, die Sie benutzen wollen auf Workspace in der Mitte. Die Nodes lassen sich dann durch Doppelklick bearbeiten und mit Drag-and-Drop über die Verbingsknoten verbinden. Wenn der Flow fertig gestellt ist, klicken Sie zum Ausführen oben rechts auf 'Deploy'. Unter halb von Deploy ist der Button, mit dem Sie die Debug-Messages anzeigen lassen können.

Flows können gesichert werden, indem man sie markiert und im Menü Export - Clipboard auswählt. Auf dem Dialog noch auf formatted umschalten und Export to clipboard anklicken. Anschließend in einem Editor (z.B. Notepad++) einfügen und als Datei speichern.

Arbeitsauftrag:

  1. Installieren Sie zusätzlich die Email-Nodes.
  2. Erstellen Sie einen Flow, der im Abstand von 10 Sekunden Ihren Posteingang überprüft und den Inhalt (payload) der Nachricht im Debug-Fenster und auf der Konsole ausgibt. Schicken Sie sich eine Test-Mail. Falls im Schulnetz die Ports gesperrt sind, verwenden Sie Ihren Hotspot.

3 Dashboard

Um Node-RED zu erweitern stehen grundsätzlich zwei Wege zur Verfügung:

  1. Vor der Installation muss Node-RED beendet werden.
    Zunächst muss das Dashboard mit dem Befehl 'C:\Users\UserName\.node-red>npm i node-red-dashboard' installiert werden.
    Starten Sie Node-RED erneut und aktualisieren Sie den Browser.
  2. Alternativ können Sie das Dashboard und zusätzliche Nodes im Menü über den Dialog Manage palette hinzufügen. Geben Sie unter Install im Suchfeld 'node-red-dashboard' ein und installieren Sie es.

Jetzt stehen Ihnen die Steuerelemente zur Verfügung. Das Dashboard erreichen Sie über die Adresse http://localhost:1880/ui/

Wenn Sie ein neues Steuerlement hinzufügen, muss dieses einer Gruppe (ui_group) und einem Tab hinzugefügt werden.

4 MQTT anbinden

Über die enthaltenen MQTT-Nodes können Nachrichten mit einem MQTT-Broker sehr einfach ausgetauscht werden. Es steht sowohl ein Input-Node zur Verfügung, der Nachrichten vom Broker unter einem festgelegten Topic erhalten kann, als auch ein Output-Node, der Nachrichten an einen Broker sendet.

Arbeitsauftrag:

  1. Erstellen Sie auf dem Dashboard einen Schalter und senden Sie den Zustand des Schalters an einen Broker. Kontrollieren Sie den Payload mit einem beliebigen MQTT-Client.
  2. Erstellen Sie einen weiteren Schalter und verändern Sie dessen Zustand durch Nachrichten von einem Broker. Beachten Sie hierbei, dass der Datentyp des payloads string ist.

5 Arduino einbinden

Der Arduino muss über die serielle USB-Verbindung mit dem PC verbunden sein.

  • Zur Kommunikation zwischen Node-RED und dem Arduino muss das Firmata-Protokoll auf dem Arduino installiert werden.
    Öffnen Sie hierzu in der Arduino-IDE das Beispiel 'Datei - Beispiele - Firmata - StandardFirmata' und laden Sie das Skript ansonsten unverändert auf den Arduino.
    Schließen Sie die Arduino-IDE und den Seriellen Monitor, da die Verbindung zwischen Node-RED-Server und Arduino nicht von anderen Anwendungen blockiert werden darf.
  • Anschließend muss in Node-RED der 'node-red-node-arduino'-Node über Manage palette - Install hinzugefügt werden.

Arbeitsauftrag:

  1. Platzieren Sie ein switch-oder Button-Node auf dem Workspace und verbinden Sie es mit einem Arduino-Node. Schließen Sie an dem Arduino eine LED mit Vorwiderstand an. Konfigurieren Sie die Nodes so, dass mit dem switch- oder Button-Node die LED geschaltet werden kann.
  2. Schließen Sie an dem Arduino zusätzlich einen Taster mit Pull-Down-Widerstand an. Platzieren Sie ein Arduino-Node auf dem Workspace. Konfigurieren Sie die Nodes so, dass die LED auch mit dem Taster geschaltet werden kann.
  3. Schließen Sie an einem analogen Eingang einen Poti an und visualisieren Sie den Wert auf dem Dashboard.
  4. Verbinden Sie zusätzlich zu der LED ein email- oder twitter-Node und versenden Sie eine Nachricht, wenn der Taster betätigt wird.

Links:

  • Diese Anleitung fasst die Schritte nochmal zusammen.