Heizungssteuerung

Die alte Technik

Die hier vorgestellte Schaltung wurde entwickelt, um eine vohandene Heizungsanlage per Internet fernzusteuern.
Folgende Komponenten waren vorhanden:
Heizungsanlage Vaillant AtmoTec aus dem Jahr 1999
Raumfühler VRT-PZA ebenfalls von Vaillant
Bevor ich diese Aufgabe in Angriff genommen habe, habe ich mir Gedanken gemacht, wie sie am einfachsten zu lösen ist. Eine Möglichkeit wäre, die vorhandenen Schalter, Taster und das Potentiometer zur Temperatureinstellung auszubauen und durch Relais oder elelektroische Schalter zu ersetzen. Die Relais könnten dann mit einem Mikroprozessor der einen Internetanschluss hat angesteuert werden. Diese Variante habe ich sehr schnell verworfen, da sie keine Möglichkeit der Rückmeldung gibt. Ein weiterer Reiz war auch einen Ersatz für den Raumfühler zu schaffen.
Um keinen Eingriff in die Heizungsanlage vornehmen zu müssen, habe ich mich auf den Raumfühler konzentriert. Meine Heizungsanlage ist mit einem 7-8-9-Anschluss ausgestattet. Die Anschlüsse sind wie folgt belegt:
  • 7 - Steuersignal
  • 8 - VCC (+)
  • 9 - VDD (-)
Die einfachste Möglichkeit, um die Temperatur zu regeln, wäre ein Potentiometer, dass abhängig von der Temperatur die Stellung des Schleifers ändert. Somit ändert sich der Widerstand. Dieser kann dann von der Heizungsanlage erfasst werden und dient zur Istwerterfassung. Sowie ich gehört und gelesen habe, sollen ältere Raumfühler so gearbeitet haben.
Nach diesem Prinzip arbeitet auch der elektronische Raumfühler VRT-PZA. Bei diesem wird die Temperatur durch einen temperaturabhängigen Widerstand erfasst und ein Operationsverstärker sorgt für die Widerstandsänderung am Ausgang. Im VRT-PZA befindet sich zusätzlich noch ein Prozessor, der mehrere Timer enthällt, um zu verschiedenen Zeiten verschiedene Temperatureinstellungen zu erreichen. Dazu wird vom Prozessor der Widerstand R1 geändert und verändert somit den Ausgangswiderstand des Operationsverstärkers.
Die Heizungsanlage AtmoTec erhällt also den geänderten Widerstandswert und somit die geänderte Spannung am Anschluss 7 (Steuersignal). Da die Spannung an diesem Anschluss proportional zur Temperatur ist, kann diese Spannung als Istwert für die Temperaturregelung verwendet werden. Daraus ergeben sich bei Solltemperatur 20°C folgende Abhängigkeiten:
Raumtemperatur in °C Ausgangsspannung in % von der Betriebsspannung Ausgangspannung in V bei 15 V Betriebsspannung Vorlauftemperatur in °C
18,5 ~ 75 11,2 90
18,8
~ 71 10,7 80
19,2
~ 67 10,0 70
19,5
~ 63 9,4 60
19,9
~ 58 8,7 50
20,3
~ 54 8,0 40
20,6
~ 50 7,5 30
Die eigentliche Regelung findet im AtmoTec-Modul statt. Hier wird aber nicht die Temperatur geregelt, sondern die Spannung, die an Anschluß 7 (Steuersignal) anliegt. Bei ca. 57% der Betriebsspannung ist die Solltemperatur erreicht. Ist die Spannung an diesem Anschluß kleiner, ist die Solltemperatur überschritten und die Heizung bleibt aus. Ist die Spannung größer, so wird die Abweichung von diesem Wert ermittelt und daraus die Vorlauftemperatur errechnet. D.h. ist die Teperaturdifferenz zwischen Soll- und Isttemperatur hoch, ist die Ausgangsspannung hoch und damit auch die Vorlauftemperatur hoch. Um nun eine Regelung für verschiedene Temperaturen zu erreichen, muss nur der Nullpunkt verschoben werden. Möchte man die Temperatur auf 25 °C regeln, so muss man die Spannungsdifferenz zu 20 °C in der obigen Tabelle hinzurechnen. Es ergibt sich folgende Tabelle:
Raumtemperatur in °C Ausgangsspannung in % von der Betriebsspannung Ausgangspannung in V bei 15 V Betriebsspannung Vorlauftemperatur in °C
23,5 ~ 75 11,2 90
23,8
~ 71 10,7 80
24,2
~ 67 10,0 70
24,5
~ 63 9,4 60
24,9
~ 58 8,7 50
25,3
~ 54 8,0 40
25,6
~ 50 7,5 30

Der neue Raumfühler

Grundlage für den neuen Raumtemperaturregler ist ein fertiges Mikroprozessorboard, dass einen Ethernetanschluss hat - ein Bausatz AVR-NET-IO-Board von der Firma Pollin. Dieses Board ist preiswert und es gibt im Internet Programme, die als Freeware verfügbar sind. Bei diesem Board sind fast alle Pins des Prozessors nach aussen geführt. Leider liegen diese auf verschiedenen Steckverbindern. Allerdings ist der Nachbau relativ leicht, da der Schaltplan im Internet verfügbar ist. Eine Komponente wurde von Anfang an ausgetauscht. Es handelt sich um den Prozessor. Im Original ist ein ATmega32 verbaut, dieser wurde gegen einen ATmega644 gewechselt. Er bietet einige Vorteile: mehr Flashspeicher, mehr RAM und PCINT für alle Ports. Beim Einsatz des neuen Prozessors ist nichts weiter zu beachten, da die beiden AVRs pinkompatibel sind. Nicht bestückt wurden der Spannungsregler für 5 Volt (IC1) und alles was davor ist. Dazu zählen D1..D5, C2, C3 und J1. Für die Stromversorgung wird ein Step-Down-Regler eingesetzt.
Grundlage für die Software war ein fertiges Programm von U. Radig, dass bereits den Ethernetstack enthält. Es hat die Bezeichnung ETH_M32_EX. Diese Software bietet die Möglichkeit, Signale des Prozessors auf der HTML-Seite darzustellen und Signale bzw. Zustände an den Prozessor zu geben. Somit werden dann Temperatur, Uhrzeit, Timer und andere Zustände auf der HTML-Seite dargestellt bzw. können beinflusst werden.
Das AVR-NET-IO-Board wurde mit folgenden Komponenten erweitert:
  • Farbiges Grafikdisplay mit 176 x 132 Punkten (aus einem alten Handy S65)
  • Tastenfeld mit 9 Tasten
  • Temperaturfühler (I2C)
  • RTC und RAM (I2C)
  • Stromversorgung; verschiedene Spannungsregler für 5 V, 10,4 V und 2,9 V
  • Verstärker für die Ausgabe des Signals
Die zusätzliche Schaltung, die an das AVR-NET-IO-Board gebunden wurde, beinhaltet einen elektronischen Temperaturfühler DS1631, der per I2C mit dem Prozessor kommuniziert. Er wird im 10-Bit-Modus betrieben. Somit ist eine Genauigkeit von 0,25 °C möglich. Zur Messung der Zeit und zur Speicherung der Timer wurde ein Schaltkeis PCF8583P verwendet, der ebenfalls über I2C an den Prozessor angebunden ist. Der PCF8583P beherbergt nicht nur einen RTC-Baustein, sondern auch einen RAM, welcher gleich zur Speicherung der Timer und Solltemperaturen verwendet wird. Um das System gegen Stromausfall zu sichern, wurde der PCF8583P mit eimen Gold-Cap versehen, der es ermöglicht, diesen Baustein für ca. 1 Tag weiterlaufen zu lassen.
Um das Gerät auch per Tasten bedienen zu können, wurde ein Tastenfeld und ein Display vorgesehen. Das Tastenfeld beinhaltet 9 Tasten, die zu einer Matrix mit 3x3 Leitungen angeschlossen sind. Das Display ist aus einem ausgedienten Handy S65 und hat eine Auflösung von 176 x 132 Punkten mit einer Farbtiefe von 16 Bit. Das Display wurde quer angeordnet, sodass die Anschlüsse auf der rechten Seite liegen. Die Hintergrundbeleuchtung ist über einen PWM-Ausgang des Prozessors angeschlossen, damit die Helligkeit reguliert werden kann. Das Display selbst ist über 5 Leitungen angeschlossen, die ein Soft-SPI ergeben. Um das Display anzusteuern, werden Spannungsteiler verwendet, die die Signale auf das Niveau des Displays herabsetzen.
Achtung!
Beim Anschluss des Gerätes ist zu bachten, dass VCC (+) im AtmoTec Verbindung zu “Erde” hat. Somit kann sein, dass wenn das LAN-Kabel geschirmt ist und auch mit “Erde” verbunden ist, es zu einem Kurzschuss kommt. Eine Sicherung im AtmoTec spricht an. Also sicherheitshalber eine Sicherung mit 1,25 A bereitlegen. Ich habe das Problem gelöst, indem ich ein ungeschirmtes LAN-Kabel verwendet habe.
Die Stromversorgung des Gerätes wird mit einem Step-Down-Regler MC34063AP realisiert. Dieser erzeugt aus den 15 V, die von der Heizungsanlage kommen, 5 V. Daraus werden alle anderen Spannungen erzeugt. Für die 3,3 V des Ethernetadapters wird der Festspannungsregler, der zum AVR-NET-IO-Board gehört, verwendet. Für das Display werden 2 Spannungen benötigt. Die 10,4 V für die Hintergrundbeleuchtung werden auch mit einem MC34063AP erzeugt, der hier aber als Step-Up-Regler ausgeführt ist. Die 2,9 V Betriebsspannung des Displays werden mit einem einstellbaren Spannungsregler LM317 erzeugt.
Für die Erzeugung des Steuersignals am Anschluss 7 wird ein Operationsverstärker LM358N verwendet, der mit einem PWM-Signal aus dem Prozessor gespeist wird.
Die Software ETH_M32_EX ist in C geschrieben. Diese wurde entsprechend den Anforderungen des Raumfühlers angepasst. Die HTML-Seite wurde komplett überarbeitet und zeigt nun Uhrzeit, Temperatur und Timer an. Bisher wurde auf Bilder verzichtet. Damit die grafische Darstellung etwas aufgewertet wird, wurden verschiedene Farben verwendet. Um die hier dargestellten Werte anzeigen zu können, wurde auch die entsprechende Datei (httpd.c) angepasst.
Im Hauptprogramm wurden Programmänderungen durchgeführt, die die Darstellung der Uhrzeit auf dem Display betreffen.
Der wichtigste Teil befindet sich in der Datei timer.c. Hier wird die Temperaturmessung durchgeführt. Auch die Berechnung des PWM-Wertes für die Ausgangsspannung wird in diesem Programmteil vorgenommen. Dazu werden die Timer ausgewertet und es wird die Solltemperatur ermittelt. Die Abfrage erfolgt alle 15 Sekunden.
Die Software wurde mit avr-gcc (GCC) 4.2.2 (WinAVR 20071221) übersetzt.
Download der unbereinigten Software
Bilder vom Versuchsaufbau
Haftungsausschluss: Ich kann auf die dargestellten technischen Sachverhalte keine Gewähr geben. Für alle Schäden, die aus dem Nachbau entstehen, bist Du selbst verantwortlich.