Startseite>Node-RED auf dem Raspberry Pi
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

Um den Temperatursensor zu testen, müssen Sie die Konfiguration von Raspbian anpassen. Zunächst aktivieren Sie das Onewire-Interface des RasPi mithilfe von Raspi-config unter 5 Interfacing Options | P7 1-Wire.

Da der Sensor nicht an den Standard-GPIO-Anschluss für die Onewire-Kommunikation angeschlossen ist, müssen Sie auch Änderungen an einigen Systemdateien vornehmen: In der Datei /boot/cmdline.txt fügen Sie am Ende der Zeile den Parameter bcm2708.w1_gpio_pin=15 hinzu. Die Datei /boot/config.txt ergänzen Sie um die Zeile dtoverlay=w1-gpio-pullup,gpiopin=15,extpullup=on. Nun folgt noch eine Änderung in der Datei /etc/modules, der Sie w1-therm hinzufügen. Das sorgt dafür, dass Raspbian den Treiber für den DS18B20 lädt.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland