Aus Raspberry Pi Geek 02/2019

Node-RED auf dem Raspberry Pi (Seite 3)

Abbildung 6: Das Konfigurationsmen&uuml; des Nodes <span class="ui-element">rpi gpio</span>. Hier orientieren Sie sich an den Pin-Nummern.

Abbildung 6: Das Konfigurationsmenü des Nodes rpi gpio. Hier orientieren Sie sich an den Pin-Nummern.

Node-RED beschriftet die GPIOs nach BCM-Notation, nicht nach WiringPi-Notation, wie im Schaltplan zum Testboard. Für die GPIO8 wählen Sie den PIN 3 aus, als Type verwenden Sie Digital output. Ein Klick auf Done schließt die Konfiguration ab, worauf das rote Dreieck verschwindet.

Da es sich bei dem Switch um ein Element auf dem Dashboard handelt, benötigt er Informationen, wie und wo er dargestellt werden soll. Erstellen Sie zunächst eine neue ui_group mit dem Namen Outputs auf dem Home-Tab. Dieser Gruppe fügen Sie später noch die restlichen Ausgänge hinzu.

Geben Sie nun dem switch den Namen Out 0; die übrigen Einstellungen belassen Sie bei den Vorgabewerten. Jetzt geht es daran, den ersten Flow auszurollen – erst danach zeigt sich, ob er wie gewünscht funktioniert. Drücken Sie dazu auf den Schalter Deploy. Zur besseren Übersicht öffnen Sie das Dashboard in einem gesonderten Browserfenster (http://raspberrypi:1880/ui).

Abbildung 7 zeigt das Dashboard und den Flow nebeneinander. Neben dem Flow sehen Sie im Reiter debug auch die Nachrichten, die der Node switch an den Node rpi gpio sendet: beim Einschalten ein true, beim Ausschalten ein false.

Abbildung 7: Flow und Dashboard f&uuml;r einen digitalen Ausgang.

Abbildung 7: Flow und Dashboard für einen digitalen Ausgang.

Sehen Sie sich nun an, wie ein digitaler Input auf dem Dashboard erscheint. Zur Anzeige verwenden Sie wieder den switch-Node. Er lässt sich so konfigurieren, dass er als Statusanzeige arbeitet (Abbildung 8). Den Input-Node rpi gpio konfigurieren Sie genauso wie den Output-Node. Hier gibt es allerdings einen kleinen Fallstrick: Only Digital Input is supported — input must be 0 or 1 – behalten Sie den Tipp von der Konfigurationsseite im Hinterkopf.

Abbildung 8: So richten Sie den Switch zur Anzeige von digitalen Werten ein.

Abbildung 8: So richten Sie den Switch zur Anzeige von digitalen Werten ein.

Um den zweiten Test-Flow fertigzustellen, verbinden Sie den switch-Node noch mit dem digitalen Input. Um den Nachrichtenfluss zwischen den beiden Nodes einzusehen, bauen Sie einen debug-Node mit ein. Nach dem Ausrollen sieht erst einmal alles gut aus. Bei einem ersten Test des Eingangs fällt jedoch auf, dass zwar eine Nachricht gesendet wird, der Switch aber nicht reagiert.

Der Debug-Output schafft hier schnell Klarheit: Der switch-Node versteht nur Boolean-Werte wie true oder false, der GPIO-Pin sendet aber 0 und 1. Daher verstehen sich die beiden Nodes nicht. Um diese kleine Klippe zu umschiffen, bauen Sie einen function-Node, der zwischen den beiden übersetzt (Abbildung 9). Abbildung 10 zeigt, wie Sie den function-Node in den Workflow integrieren.

Abbildung 9: Den Node <span class="ui-element">function</span> ben&ouml;tigen Sie zum &Uuml;bersetzen von <span class="ui-element">0</span>&nbsp;und&nbsp;<span class="ui-element">1</span> in <span class="ui-element">false</span> und <span class="ui-element">true</span>.

Abbildung 9: Den Node function benötigen Sie zum Übersetzen von 0 und 1 in false und true.

Abbildung 10: Hier ist der <span class="ui-element">function</span>-Node in den Workflow eingebaut.

Abbildung 10: Hier ist der function-Node in den Workflow eingebaut.

Die Debug-Ausgaben zeigen anschließend den veränderten Payload der Nachricht. Am Eingang des debug-Nodes zeigt sich, dass sich die Nachrichtenkanäle nicht nur trennen, sondern auch zusammenführen lassen. Sie wissen nun, wie man die Ein- und Ausgänge des RasPi an Node-RED anbindet, was sich leicht auf die restlichen GPIOs übertragen lässt.

Der Thermometer-Node benötigt einen Auslöser, damit er weiß, in welchen zeitlichen Abständen er messen soll. Der Node mit dieser Funktion heißt inject. Abbildung 11 zeigt eine Konfiguration, mit der er einen Messwert in der Sekunde liefert.

Abbildung 11: Konfiguration des Timer Nodes.

Abbildung 11: Konfiguration des Timer Nodes.

Den Ausgang des inject-Nodes verbinden Sie nun mit dem Eingang des Nodes rpi-ds10b20. Dessen Ausgang schließen Sie wiederum an den Eingang des gauge-Nodes an, der Zahlen mithilfe einer analogen Anzeige darstellt. Allerdings müssen Sie darauf achten, dass die Messwerte zum Anzeigebereich passen, sonst schlägt der Zeiger direkt an das Ende der Skala aus.

Jetzt haben Sie genug Erfahrung mit Node-RED, um eigene kleine Flows zu erstellen. Abbildung 12 zeigt noch einmal den kompletten Flow, mit dem dazugehörigen Dashboard aus dem Beispiel.

Flows lassen sich über die Funktionen import und export in das und aus dem Clipboard verschieben, was ermöglicht, sie zu speichern und zu übertragen. Den Beispiel-Flow aus diesem Artikel finden Sie im Download-Bereich der RPG-Webseite.

Abbildung 12: Der komplette Flow aus unserem Beispiel.

Abbildung 12: Der komplette Flow aus unserem Beispiel.

Fazit

Node-RED ist ein rundum ausgereiftes Modellierungswerkzeug für Workflows im IoT-Bereich. Es läuft selbst auf einem RasPi der ersten Generation überraschend schnell, allerdings dauern dort die Installation und das Starten etwas länger. Das ändert aber nichts daran, dass sich mit Node-RED leicht viele unterschiedliche Geräte miteinander verbinden lassen. Mit wenig Aufwand implementieren Sie selbst komplexere Abläufe. Durch die Vielzahl vorhandener Nodes kommen Sie nur selten in die Verlegenheit, für ein Problem eine eigene Lösung bauen zu müssen. 

Der Autor

Martin Mohr hat eine Vorliebe für alles, was blinkt. Nach dem Studium der Informatik entwickelte er überwiegend Java-Applikationen. Mit dem RasPi erwachte die alte Liebe zur Elektronik wieder.

Infos

  1. Node-RED: https://nodered.org
  2. Übersicht der Nodes: https://flows.nodered.org
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben