Gas Therme, Messungen, Version 2
Mittlerweile
bin ich durch einige Bastelarbeiten ein Anhänger der Mikro
Controller geworden. Ich bedanke mich für die Anregungen die ich
im WWW gefunden habe. Besonders möchte ich erwähnen:
Mikrocontroller.net
und
die Seiten von Ullrich
Radig.
Ohne diese Quellen wäre das hier beschriebene Gerät nicht
entstanden.
Ziel des Gerätes: Alle wichtigen Werte der
Heizung sammeln und später am PC grafisch auswerten.
Mittlerweile ist die Gas Therme im Haus 15 Jahre alt (Buderus
GB112-24), eine Erneuerung ist absehbar. Es ist daher sinnvoll seine
Heizleistung zu kennen.
Temperatur Messungen von Vorlauf,
Rücklauf, Außen, Warmwasser und Gewächshaus.
Gasverbrauch
Messungen: Summe sowie der Anteil für das
Warmwasser.
Stromverbrauch der Heizung messen.
Diese
Messwerte müssen gespeichert werden um sie nachträglich
auszuwerten. Die Daten sollen jede Minute gesichert werden, dazu muss
jeder Messreihe einem Zeitstempel haben. Eine vorhandene kleine
Alarmanlage mit einer DCF77 Uhrzeit wurde erweitert und sendet die
Zeit über ein RS232 ähnliches Interface ( 20mA Strom und
Optokoppler).
Nach einigen Probemessungen mit verschiedenen
Sensoren habe ich mich für den DS1822 Sensor als
Temperatursensor entschieden.
Der Gasverbrauch wird über
einen kleinen Reed Kontakt am Balgen-Gaszähler ermittelt, so
erhält
man je 0,01m³ einen Impuls.
Am 3-Wegeventil der Heizung
wurde ein Mikro Schalter angebracht zur Erkennung ob die Therme das
Warmwasser aufheizt.
Die Strommessung erfolgt mit einem
kleinen Einbauzähler mit einem S0 Ausgang. Dieser liefert 1000
Impulse je kWh.
Die Messwerte werden auf eine SD-Karte
gespeichert und einmal im Monat ausgewertet. Ein Display zeigt alle
Messwerte an sowie die aktuelle Leistung der Therme je
Gasimpuls.
Wegen
der Sektorgröße von 512Byte schied ein Atmega8 aus. Die
Entscheidung viel auf den Atmega32, der sich als ausreichend erwiesen
hat (Takt 14,7456MHz). Im Keller war schon eine
12V Versorgung (Steckernetzteil) für eine kleine Alarmanlage,
damit soll dieses Gerät auch versorgt werden. Als sog.
Standard-Leitungen benutze ich 4 adrige Telefonleitungen. Diese sind
ausreichend da die UART-Signale nur mit 600Baud gesendet werden. Der
Standort des Gerätes ist neben der Heizungsanlage. Wegen der
Leitungsoptimierung wurden 2 Temperatur Sensoren in die Alarmanlage
ausgelagert und diese Messwerte werden ebenfalls über UART
geliefert. Zur Programm Vereinfachung betreibe ich jeden DS1822
Sensor an einem eigenen Port. Die Schalter und reed Kontakte werden je
alle 10msek ausgewertet. Das ist für den Gasimpuls
unproblematisch da dieser relativ lange ansteht. Die SD-Card
Schreibroutinen verhindern Unterbrechungen, so wird der S0 Impuls mit
dem
T0 Counter gezählt (S0 Impuls 90msec). Zuerst wurde das S0 Signal
nach dem Optokoppler direkt auf den T0 Eingang geschaltet, dies
gab jedoch sporadische Messfehler. Ein attiny24-Kontroller wurde als
Signalfilter dazwischen geschaltet, seitdem
ok. Wie aus der Schaltung
zu
entnehmen ist, sind die Signale für die SD-Karte und ISP fast
gleich. Ein unbenutzter Pin des ISP Steckers wird mit dem fehlenden
Signal belegt und so wird die SD-Karte über den ISP Stecker
betrieben. Zur Wartung oder zum Wechsel der SD-Karte kann über
das in der Kurzanleitung
beschriebene
Menü die SD-Aufzeichnung angehalten werden.
Für die Version 2 wurde eine einlagige Platine für die
3 Mikrocontroller entworfen, die Bedienung über einen
Drehimpulsgeber. Die Anzeige ist eine kleines 4*20 LCD-Modul (EA
DIP204-4)
und wird über eine 8Bit
Port
Erweiterung angesteuert. Die Erweiterung wurde notwendig da ich die
Daten der Heizung und des Regenmessers einen mini-Webserver
übertrage.
Ich benutzte WinAVR-20100110.
Die Quelltexte des Verzeichnisses \abc hier
Die
Quelltexte des Verzeichnisses \gmess_sd hier
inklusive S0 und Drehimpulsgeber
Für
die Speicherung der Daten ist das Programm gatag.exe (cmd Zeilen
Version) vorgesehen.
Daten Daten werden jeweils in Monatsfiles
abgelegt. Die grafische Auswertung erfolgt über ein Java-Applet,
dazu muss mit dem Programm gmess2html eine html-Seite erstellt
werden. Im Programm gmess2html ist ein Java Aufruf Mytool1
implementiert. Dies war notwendig da die Monatsdaten mit vielen Infos
den Browser überforderten.
Mytool1 komprimiert die Daten über
die java.zip Methode deflate und expandiert sie auf ein base64 Format.
gmess2html Eingabe auf cmd:
gmess2html gmd1011.bl3 >
test1011.html
Die Batchprogramme
in c (für Open Watcom IDE )
Das Java
Programm und das Applet inclusive einer Korrektur für die
Anzeige der Temperatur.
Für die Darstellung der
html-Seite ist der Firefox Browser zu benutzen oder der appletviewer
aus dem JDK.
Beispiel November 2010
Update Dezember 2011
Von meinem Netzbetreiber wurde im November 2011 eine neue Gasuhr eingebaut. Leider das neueste elektronische Modell, Landis G350.Diese Gasuhr kann man nur manuell auslesen. Sie hat zwar ein sog. MBus Interface, aber mit diesem könnte man maximal die Summe einer Stunde auslesen. Kein Impuls je 10l Gas möglich. Es gibt Experten, die mir zu einem eigenen Balgen-Gaszähler raten, den ich hinter dem vorhandenen einbauen lasse. Mein Heizungsbauer sagt: Kostet in der Summe ca. 1000€........ Jetzt lese ich nur manuell monatlich aus. Für die Messung der Heizleistung und des Anteils für das warme Wasser habe ich genug Daten gesammelt. Eine Solaranlage für das warme Wasser kommt mir daher nicht aufs Dach, bis sich die rentiert sehe ich von unten das Gras wachsen.....