Aus Raspberry Pi Geek 02/2019

Node-RED auf dem Raspberry Pi

© bedya, 123RF

Einer schafft an

Martin Mohr

Mit der ursprünglich von IBM entwickelten Software Node-RED lassen sich unterschiedliche IoT-Geräte einfach miteinander verbinden und steuern.

Mit Node-RED [1] lassen sich über ein grafisches Webinterface IoT-Komponenten auf einfache Weise miteinander verbinden. Die ursprünglich von IBM entwickelte Software steht mittlerweile unter der Apache-2.0-Lizenz, die das freie Verwenden und Erweitern gestattet.

Funktionsbausteine, sogenannte Nodes, bilden alle Funktionen der Software ab, von denen es zwischenzeitlich weit über 200 000 gibt [2]. Einige der Nodes enthält die Software von Haus aus, andere müssen Sie nachladen.

Raspberry vorbereiten

Als Betriebssystem für den RasPi kommt Raspbian “Stretch” Lite zum Einsatz. Diese abgespeckte Variante genügt vollkommen, weil Sie Node-RED über den Browser vom Desktop-PC aus bedienen. Schreiben Sie das Image mit einem Tool Ihrer Wahl auf eine SD-Karte und stecken Sie diese in den Raspberry Pi. Nach dem Booten sollten Sie das Passwort des Users pi ändern und SSH aktivieren (5 Interfacing Options | P2 SSH). Beides erledigen Sie mit dem Tool Raspi-config.

Um Node-RED auf Ihrem RasPi zu installieren, verwenden Sie das Kommando aus Listing 1. Die vom Installer gestellten zwei Fragen beantworten Sie mit Ja, die nachfolgende Installation benötigt einige Zeit.

Listing 1

$ bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)

Der Node-RED-Server arbeitet als Dienst auf dem RasPi. Sie verwenden entsprechend die bekannten Kommandos, um ihn zu starten, zu stoppen, zu restarten oder den Status abzufragen (Listing 2, Zeile 1 bis 4). Damit Node-RED beim nächsten Reboot des RasPi automatisch startet, führen Sie das Kommando aus Zeile 5 aus.

Listing 2

$ sudo systemctl start nodered.service
$ sudo systemctl stop nodered.service
$ sudo systemctl restart nodered.service
$ sudo systemctl status nodered.service
$ sudo systemctl enable nodered.service

Nach dem Start des Servers erreichen Sie ihn über einen Webbrowser per HTTP auf dem Port 1880, beispielsweise mit http://raspberrypi:1880 (Abbildung 1).

Abbildung 1: Der Node-RED-Willkommensbildschirm, noch ohne definierte Flows.

Abbildung 1: Der Node-RED-Willkommensbildschirm, noch ohne definierte Flows.

Testboard

Um die ersten Versuche mit Node-RED zu starten, bauen Sie ein kleines Testboard auf. Dabei verwenden Sie die GPIO-Anschlüsse 0 bis 7 als digitale Eingänge, an die Sie Taster mit Pulldown-Widerständen hängen. Die GPIO-Anschlüsse 8 bis 15 dienen als digitale Ausgänge, an denen Sie über Vorwiderstände LEDs anschließen. Die GPIO 16 verbinden Sie mit einem Temperatursensor des Typs DS18B20.

Das Testboard besteht aus einer Prototyp-Platine (Abbildung 2), den Schaltplan zeigt Abbildung 3. Um das Board zu testen verwenden Sie das Tool gpio, das Sie mit dem Befehl sudo apt install wiringpi auf dem Raspberry Pi installieren.

Abbildung 2: Das Testboard, mit dem Sie die GPIOs des Raspberry&nbsp;Pi testen.

Abbildung 2: Das Testboard, mit dem Sie die GPIOs des Raspberry Pi testen.

Abbildung 3: Der Schaltplan zum Testboard aus <a href="#artRef-f2">Abbildung&nbsp;2</a>.

Abbildung 3: Der Schaltplan zum Testboard aus Abbildung 2.

Stellen Sie zunächst einmal sicher, dass das Testboard selbst fehlerfrei arbeitet. Zum Prüfen der digitalen Eingänge verwenden Sie die readall-Option von Gpio. Mit dem folgenden Kommando rufen Sie Gpio alle 0,2 Sekunden auf:

$ watch -n 0.2 gpio readall

So sehen Sie, ob sich der Status eines digitalen Eingangs ändert, wenn Sie einen der Taster betätigen (Abbildung 4). Um zu testen, ob die digitalen Ausgänge einwandfrei arbeiten, versetzen Sie zuerst die GPIOs 8 bis 15 in den Output-Modus. Danach schalten Sie alle Ausgänge nacheinander für jeweils eine Sekunde an und wieder aus (Listing 3).

Abbildung 4: Mit dem <code>gpio</code>-Tool testen Sie die Eing&auml;nge des GPIO auf korrekte Funktion.

Abbildung 4: Mit dem gpio-Tool testen Sie die Eingänge des GPIO auf korrekte Funktion.

Listing 3

$ for i in {8..16}; do gpio mode $i out; done
$ for i in {8..16}; do gpio toggle $i; sleep 1; gpio toggle $i; done
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