(M)eine kleine Wetterstation mit einem Raspberry Pi (Teil 6)

Sensoren

Temperatur mit dem DS18B20

Aus dem Internet habe ich mir seinerzeit ein paar Temperatursensoren vom Typ Dallas (Maxim) DS18B20 beschafft. Der Stückpreis für einen solchen Sensor liegt mittlerweile weit unter 1 Euro. Der Vorteil dieses Sensors ist, dass er mit dem I2C-Protokoll angesprochen werden kann. Somit kann er mit einem Raspberry Pi direkt kommunizieren. D.h. man stellt ein Anfrage an das Device und man erhält eine Antwort. In diesem Fall die Temperatur des Gerätes. Die Kommunikation findet dabei von Haus aus über den GPIO 4 des Raspberry statt und kann im Grunde direkt angeschlossen werden.

Um aber keinen unkontrollierten Datenwust auf der Leitung zu bilden, benötigt der Daten-Pin GPIO 4 einen Pull-Up-Widerstand von irgendwas zwischen 1 und 47 kOhm gegen VDD (3,3V). Da es sich bei dem I2C-Anschluss um einen sog. Bus handelt, können an dieser Leitung mehrere Devices unabhängig voneinander angeschlossen werden. Sie unterscheiden sich voneinander erstmal in ihrer I2C-Bus-Nummer. Der DS18B20 hat zudem noch eine eigene Seriennummer, die über den Bus mit ausgeliefert wird. Dadurch kann man jeden einzelnen Sensor direkt mit seiner individuellen ID ansprechen und bestimmte Ausgaben zuordnen.

Der DS18B20 ist in einem TO-92-Gehäuse untergebracht und sieht demnach aus wie ein kleiner Transistor. Hier ein Bild mit der Pin-Belegung:

DQ ist dabei die Datenleitung, VDD ist die Stromversorgung 3,3V und GND eben die Masse (0V). Die nachfolgenden Anschluss-Bilder habe ich bei instructables.com ausgeliehen.

Single Anschluss DS18B20

 

Multipler Anschluss DS18B20

Natürlich nimmt man die Verkabelung im stromlosen Zustand des Raspberry vor. Nach dem Neustart des Raspberry kann man an der Konsole das Vorhandensein des Sensors abfragen.

Der DS18B20 Sensor mit der ID 28-00000756f09e ist somit ordentlich erkannt.

Nun braucht man natürlich noch eine Software zur Kommunikation mit dem Sensor. Nodered kann dafür einen zusätzlichen Knoten bereit stellen. Über den Paletten-Manager im Nodered wird das Modul node-red-contrib-sensor-ds18b20 dazu nachinstalliert. Bitte auf die Schreibweise achten, es gibt auch andere Nodes, die ähnlich geschrieben werden.

Nach der Installation ist in der Palette der Node zu sehen.

In der Node-Liste Raspberry Pi taucht nun auch der Knoten zur weiteren Verwendung auf:

Ich brauche diesen Node zweimal auf meinem Flow und schiebe dazu noch einen Chart- und einen Gauge-Node auf den Flow. Jetzt verbinde ich den ersten Sensor-Node mit dem Chart-Node und den zweiten Sensor-Node mit dem Gauge-Node.
Mit jeweils Doppelklick auf die Nodes öffnen sich die Eigenschaften. Beim Sensor-Node werden in einer Dropdown-Liste alle verfügbaren DS18B20-Sensoren angezeigt. Im ersten Node setze ich eine 300-Sekunden-Abfrage an meinen Sensor. Die zurückgegebene Temperatur wird dann im Chart-Node ausgegeben.

Einstellung des ersten Sensor-Nodes

 

Einstellung des Chart-Nodes

Nun die Einstellungen für den zweiten Sensor-Node und der verbundene Gauge-Node.

 

 

Einstellung des zweiten Sensor-Node

 

Einstellung des Gauge-Node

 

Mit dem Klick auf Deploy wird dieser Flow nun generiert und veröffentlicht.

Das sieht dann nach 7 Tagen Laufzeit in etwa so aus:

Dabei aktualisiert der Temperatur-Zeiger alle 10 Sekunden und die Temperatur-Kurve alle 5 Minuten.

Das sieht nun schon recht fluffig aus. Jedoch werden die Daten im Chart-Node nur solange zwischengespeichert, wie der kleine Rechner läuft. Nach jedem Neustart des Raspberry Pi beginnt der Node mit leeren Daten und füllt das Chart alle 5 Minuten mit einem neuen Wert auf.

Also wieder 7 Tage warten? Nicht doch… Das führt mich nun dahin, dass ich solche Daten in einer Datenbank ablege und nach Bedarf eine Darstellung von aktuellen sowie historischen Daten generiere. Wie man das macht erkläre ich im nächsten Teil 7 (m)einer kleinen Wetterstation.

Andere Sensoren

Der Vollständigkeit halber: Es gibt für den schmalen Geldbeutel eine Menge weiterer Sensoren und Aktoren für die unterschiedlichsten Anwendungen. Eine Übersicht findet man im Internet z.B. auf dieser Seite https://tutorials-raspberrypi.de/raspberry-pi-sensoren-uebersicht-die-50-wichtigsten-module/

 

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.