Überwachung meines Zentralheizungskessels
Hardware
Da ich den PC durch einen Pi ersetzt habe, habe ich hier nur die Pi-spezifische Hardware aufgelistet, da die Relaiseinheit gleich bleibt:
- Modell B Pi
- Digitale Schnittstellenkarte von Piface
- Dallas Semiconductor (Maxim) DS9490R 1-Draht-USB-Adapter
- Dallas Semiconductor (Maxim) DS18S20 1-Draht-Thermometer
Das folgende Blockschaltbild zeigt die allgemeine Anordnung der Hardware. Eine Schnittstelle zu einem GSM-Modem zum Senden von Textalarmen kann zu einem späteren Zeitpunkt hinzugefügt werden.
Software
Die Raspberry Pi-Programme umfassen:
- Ereignislogger – kommuniziert mit einer PiFace Digital-Karte und zeichnet den Status von drei Eingängen auf:Netzstrom, Pumpe läuft und Brennerfeuerung. Es schreibt Ereignisdaten in eine tägliche Datei.
- Temperaturlogger – kommuniziert mit dem 1-Wire-Netzwerk und zeichnet die Temperaturen an verschiedenen Stellen des Kessels auf und schreibt die Daten in eine Tagesdatei.
- CGI-Programm – dieses Programm wird von Apache aufgerufen und generiert einen Kalender und zeigt Grafiken von Kesselereignissen und Temperaturen an.
Die Programme wurden alle ursprünglich in C für Windows geschrieben und liefen auf einem Dell GX11 PC mit Windows/2000 Server. Der ursprüngliche Ereignislogger kommunizierte mit einer Velleman K8055 USB-Schnittstellenkarte, aber da die Programmierung völlig anders war als bei PiFace, habe ich den größten Teil des Programms neu geschrieben.
Der ursprüngliche 1-Wire-Temperaturlogger verwendete die DalSemi-DLLs, aber die OWFS-Software verbirgt die ganze Komplexität und so wurde dieses Programm mit Ausnahme der E/A-Abschnitte größtenteils neu geschrieben.
Das CGI-Programm ist das komplexeste, weil es seinen eigenen Kalender und Inline-SVG für das Balkendiagramm und das Diagramm generiert, sich jedoch mit nur wenigen Codierungsänderungen als am einfachsten zu konvertieren herausstellte. Diese Änderungen ersetzten Funktionsdefinitionen und Aufrufe von _stat() (Windows) durch statfs() (Linux) für Dateisystemstatistiken. Ich habe auch ein paar Korrekturen am Code vorgenommen, der Zeichenketten einliest.
Die Struktur des Dateisystems wird hier angezeigt. Standard-Linux- und Apache-Verzeichnisse werden in Gelb angezeigt; benutzerdefinierte Verzeichnisse in blau. Alles geht unter /1-Draht mit Quelldateien, Ereignisdaten und Temperaturdaten, die zusammen mit den Daemons, die die Daten sammeln, in ihre eigenen Unterverzeichnisse gehen.
Schritt 1
Erstellen Sie die Verzeichnisstruktur:
sudo su
cd /
mkdir /1-adrig
mkdir /1-wire/src
mkdir /1-Wire/Ereignisse
mkdir /1-adrig/temperaturen
Schritt 2
Laden Sie die Programme herunter und kompilieren Sie sie:
wget http://www.noveldevices.co.uk/rpdl/logger.c -O /1-wire/src/logger.c
wget http://www.noveldevices.co.uk/rpdl/1-wire.c -O /1-wire/src/1-wire.c
wget http://www.noveldevices.co.uk/rpdl/server.c -O /1-wire/src/server.c
gcc -L/usr/local/lib -lpiface-1.0 -o /1-wire/events/logger /1-wire/src/logger.c -lm
gcc -L/usr/local/lib -o /1-wire/temperatures/1-wire /1-wire/src/1-wire.c -lm
gcc -L/usr/local/lib -o /usr/lib/cgi-bin/server /1-wire/src/server.c -lm
Schritt 3
Laden Sie einige Beispielkonfigurationsdateien und eine CSS-Datei herunter:
wget http://www.noveldevices.co.uk/rpdl/1-wire.conf -O /1-wire/temperatures/1-wire.conf
wget http://www.noveldevices.co.uk/rpdl/server.conf -O /usr/lib/cgi-bin/server.conf
wget http://www.noveldevices.co.uk/rpdl/boiler.css -O /var/www/boiler.css
Schritt 4
Die Datei 1-wire.conf enthält Konfigurationsinformationen für das 1-wire-Programm und für das CGI-Programm, das die Grafiken erstellt. Jeder Eintrag wird im Folgenden beschrieben (die tatsächliche Reihenfolge der Datensätze spielt keine Rolle):
- [Interval]=n – Abfrageintervall in Sekunden, aber siehe Hinweis unten
- [DataDirectory]=Verzeichnis, in das Datendateien geschrieben werden sollen (mit einem abschließenden /)
- Für jeden Sensor:[DevicePath]=full-path-to-OWFS-directory-(with-trailing-/) plot-colour sensor-description
plot-colour ist eine Standard-Webfarbe als #RRGGBB, #RGB CSS-Farbe.
Sensor-Beschreibung ist ein kurzer Satz, der auf dem Temperaturdiagramm erscheinen sollte
Das Abfrageintervall kann eine beliebige Anzahl von Sekunden betragen, aber Sie müssen bedenken, dass OWFS normalerweise zwei Sekunden benötigt, um die Temperatur von jedem Sensor zu erhalten. Das Programm berechnet die tatsächliche Intervallzeit basierend auf der Start- und Endzeit des Datenerfassungsprozesses neu, damit die Erfassungsstartzeiten nicht abweichen.
Für weitere Details:Überwachung meines Zentralheizungskessels
Herstellungsprozess
- Solarheizung
- Temperaturüberwachung auf dem Raspberry Pi
- Überwachen der Temperatur mit Raspberry Pi
- Wetterfernüberwachung mit Raspberry Pi
- CO2-Überwachung mit K30-Sensor
- Kontaktloses Temperaturüberwachungstor
- Verbinden Sie Ihre Zentralheizung mit Arduino
- Was ist ein keramisches Heizelement?
- 3 Hauptvorteile der Fernüberwachung
- Optimierung der Energieeffizienz mit zentralen Steuerungen und Fernüberwachung