April 2, 2020 Von marco 1

Temperatursensoren über Node RED an das IOT anbinden

Im Beitrag über den BrauhausPi wurde beschrieben, an welchen Stellen Sensoren vom Typ DS18B20 verbaut wurden. Ursprünglich wurden diese über eine Python Library direkt in eine Cloud IIoT Lösung geladen.
Aufgrund einer Änderung des Preismodels des Anbieters, sollen diese nun jedoch im heimischen Netz verarbeitet werden.

Statt der Python Bibliothek soll NodeRED verwendet werden, um die Werte auszulesen und über MQTT im heimischen Netz bereitzustellen.

Vorbereitung des Raspberry Pi

Damit der Pi überhaupt einen Zugriff auf die Sensordaten erhalten kann, muss das one-wire interface aktiviert werden:

sudo raspi-config
sudo reboot

Nach dem reboot kann man (optional) die Angeschlossenen Sensor-IDs über folgenden Befehl auslesen.

cat /sys/devices/w1_bus_master1/w1_master_slaves

28-0417c1edbeff
28-0517c1a4f1ff
28-0517c1b589ff
28-0417c1de63ff

NodeRED

Für Edge Devices in IoT Lösungen empfiehlt sich die Installation eines minimalen Raspbians (wie hier beschrieben). Bei diesem Betreibssystem muss NodeRED nachträglich installiert werden.

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Die Frage, ob auch die „Pi specific Nodes“ installiert werden sollen, muss mit „Y“ beantwortet werden.

sudo systemctl enable nodered.service
sudo reboot

Danach kann man sich wie gewohnt über den Browser mit NodeRED verbinden. Zur sehr einfachen Anbindung der Sensoren kann der Node node-red-contrib-ds18b20 installiert werden

Der komplette Flow sieht wie folgt aus:

Ein Inject Node triggert den Flow alle 15 Sekunden. Über den soeben installierten rpi-ds18b20 Node werden alle angeschlossenen Sensoren ausgelesen. Es ist keine Konfiguration erforderlich.

Damit die Sensor-Werte aber mit einem individuellen Topic über MQTT versendet werden können, ist ein Switch Node nötig.

Dieser muss zwischen den verschiedenen Sensor IDs (übergeben in msg.topic) unterscheiden. Die Sensor IDs können über die optionale Abfrage (oben) in Erfahrung gebracht werden oder über einen Debug Node, den man kurzfristig hinter den Sensor Node hängt.

Zu letzt werden die Werte dann über den MQTT out Node publiziert. Hierzu wird einmalig der MQTT Broker angegeben und dann nur noch das Topic der einzelnen Nachrichten definiert.

Configuration des MQTT Broker
Angabe des Topic

Fazit

Dank des speziell auf den DS18B20 angefertigten Nodes, ist das Auslesen der Sensor-Werte über NodeRED sehr einfache. MQTT als Zwischenschritt lässt Optionen für die Weiterverarbeitung offen.

To be continued…