alle Bilder: © Michael Brauckmann

Raspberry PI: Heizungstemperaturen plotten

Aktueller Bestand für diese Seite: 2 Bilder

Ziel dieses Projekts sollte es sein, mittels eines Raspberry Pi Computers die wichtigsten Temperaturen an meiner Heizung vollautomatisch, autark und permanent zu erfassen, zu strukturieren und grafisch für jeden Tag aufzuarbeiten. Nach diversen Heizungsproblemen in der Vergangenheit, hatte sich gezeigt, dass Datenplotts bei der Funktionsbeurteilung und Fehlersuche ein große Hilfe sein können. Auch können die Handwerker hiermit gut auf eventuelle Probleme aufmerksam gemacht werden, wodurch eine wehsentlich zielgerichtetere Vorgehensweise möglich wird. Folgende Komponenten werden benötigt:

  1. Sensoren: Maxim DS18B20. Diese bieten (je nach Ausführung):

    • Hochwertiges Edelstahl Sondengehäuse (siehe Bild weiter unten)

    • Wasserfest und korrosionsbeständig (laut ebay Anbieter)

    • Messbereich: -55°C bis +125°C (–67°F to +257°F) (laut Datenblatt)

    • Genauigkeit: ±0.5°C (-10°C to +85°C) (laut Datenblatt)

  2. Raspberry Pi B mit SD-Karte und BS

  3. USB WLAN-Stick

  4. Netzteil mit USB-Kabel

  5. Ein C-Programm zur Verarbeitung und Protokollierung der Sensordaten

  6. Ein Bash-Skript zur Ansteuerung von Gnuplot

Der Raspberry Pi

Für dieses Projekt habe ich einen Raspberry Pi vom Typ B eingesetzt. Als Betriebssystem kommt Raspbian zum Einsatz.

Der USB WLAN-Stick

Zunächst lief der Rapi mit einem EDIMAX EW-7811UN und war somit im lokalen WLAN erreichbar. Mittlerweile habe ich aber einen WLAN-Stick mit echter externer Antenne verbaut (siehe ebay). Der kleine knubbelige EDIMAX schien mir nicht stabil genug für die Verbindung KG - EG.

Die Temperatursensoren

Nach meinem Arduinoprojekt habe ich mich wieder für die Maxim DS18B20 Temperatursensoren entschieden. Der Rapi und sein Betriebssystem sind hierfür schon bestens aufgestellt. Es müssen nur noch die Module w1-gpio und w1-therm nachgeladen werden.

Damit das nicht nach jedem Reboot fällig wird, habe ich sie in die modules Datei (/etc/modules) eingetragen. Nun werden die Module bei jedem Reboot automatisch mit geladen.

Wie noch zu sehen sein wird, gibt es in diesem Projekt fünf Sensoren. Das ist einzig darauf zurück zu führen, dass ich bei ebay ein Angebot mit fünf Sensoren erstanden habe. Diese Sensoren hatten jeweils ein 3 Meter langes Anschlusskabel und einen fertig konfektionierten Stecker.

Das C-Programm

Das C-Programm sammelt kontinuierlich die Daten ein und schreibt diese in eine ASCII-Plotdatei.

Fehlertoleranz

Bei Auswertung der ersten Plotdaten musste ich leider feststellen, dass die Sensoren immer wieder Messfehler mit dem Wert -0,06 abliefern. Auch war mal ein Ausreißer nach oben ( > 200 Grad) dabei. Zunächst habe ich diese Fehler händisch mit einem Texteditor korrigiert. Das war natürlich keine Lösung. Ich habe daher das C-Programm um eine Fehlerabfangfunktion erweitert. Wenn ein Messwert kleiner 1 oder größer 100 ist, wird er verworfen und statt dessen der vorhergehende Wert erneut verwendet. Das funktioniert seit dem wunderbar und fällt bei einem Messraster von einer Minute auch überhaupt nicht auf.

Das Bash-Skript

Das folgende Bash-Skript übergibt die zu bearbeitenden Daten an Gnuplot und passt ein paar Einstellungen jeweils an. Bearbeitete Protokolldatendateien werden umbenannt um eine erneute Bearbeitung am Folgetag zu unterbinden. Über Cron (siehe Kommentar im Skript) wird dieses Skript einmal am Tag um 04:44 Uhr aufgerufen.

Nach einem Power-Up-Reset

Nach einem Power-Up-Reset muss das Programm noch gestartet werden. Hierzu muss man zunächst in das entsprechende Verzeichnis wechseln und dann das Programm unabhängig von dem Konsolenfenster als Hintergrundanwendung starten.

cd C/tempsens/
./Heiztemp & disown

Jetzt kann man sich ausloggen und die Datenaufzeichnung und Bearbeitung läuft.

Hilfreiche Quellen

Bei diesem Projekt habe ich auf Informationen oder Programmcode aus folgenden Quellen zurückgegriffen:

arduino.playground
die Katzenseite
1-wire-tutorial
elchs-kramkiste
macherzin.net

Sollte ich weitere Quellen vergessen haben, hier aufzuführen, so bitte ich dies zu entschuldigen und sich in diesem Falle bei mir zu melden. Eine böse Absicht steckt nicht dahinter, ich habe das dann schlichtweg vergessen und den Überblick verlohren.

Bilder zum Projekt

Hier folgen nun ein paar Bilder zum Projekt.

Sensoren DS18B20 von Dallas

TemperatursensorenTOP

So sehen die von mir eingesetzten Sensoren aus. Bei ebay kann man unterschiedliche Ausführungen erwerben.

Beispiel einer Tageskurve

Tagesaktuelle GrafikTOP

Als Ergebnis der Bemühungen erzeugt der Raspberry Pi an meiner Heizung nun für jeden Tag eine solche DIN A4 Grafik. Die kann ich dann via SSL oder über den Webbrowser abholen.