Die Steuerung umfasst die Regelung der Raumtemperatur und der Vorlauftemperatur sowie die Ansteuerung der Pumpen für die Solaranlage.
Hardware: PC, Temperatursensoren, Aktuatoren (Schalten von Pumpen, etc.), ansteuern von Ventilen
Software: Linux, C++, Program auf Basis von Digitemp mit integriertem Webserver
Das Herzstück unseres Hauses ist ein sparsamer PC, auf dem eine Standard-Linux-Distribution läuft. Dieser PC besteht im wesentlichen aus einem VIA Mini-ITX mainboard [1]und zwei sparsamen Festplatten, von denen eine als Backup dient und im laufenden Betrieb abgeschaltet ist. Der Energieverbrauch liegt bei nur ca. 20 Watt.
Neben seiner eigentlichen Aufgabe als Fileserver für Musik, Video und Daten steuert dieser PC auch Heizung, Solaranlage und einige andere Dinge in unserem Haus. Die Heizung besteht aus einem Scheitholzvergaser und einer 24 Quadratmeter großen Solaranlage. Beide heizen einen 2660 Liter fassenden Pufferspeicher auf. Ein im Puffer integrierter Wärmetauscher sorgt für Warmwasser und ein Dreiwegeventil mischt das Heizungswasser direkt aus dem heißen Pufferwasser und dem kalten Heizungsrücklauf. In userer Wohnung befinden sich ausschließlich Flächenheizungen (Fußboden und Wandheizung) und keine Heizkörper. Die Vorlauftemperatur liegt meistens unter 30°C.
Die Steuerung von Heizung und Solaranlage beinhaltet die folgenden Funktionen:
1) Messung von Temperaturen: Im Puffer, an Rohren, des Sonnenkollektors, der Wohnräume und der Außentemperatur
2) Ein- und Ausschalten von Verbrauchern, hauptsächlich Pumpen.
3) Öffnen und Schließen der Ventile für die einzelnen Heizkreise
4) Steuerung des Dreiwegeventils für die Vorlauftemperatur der Heizkreise
Hardware
Jedem dieser vier Punkte möchte ich innerhalb der nächsten Wochen einen eigenen Artikel widmen. Die eingesetzte Hardware möchte ich aber schon hier kurz vorstellen:
1) Messung von Temperaturen
Mit Ausnahme der Kollektortemperatur messe ich alle Temperaturen mit Dallas DS18S20 Sensoren. Diese Sensoren kommunizieren über eine 1-Wire-Schnittstelle. Das heißt, sie benötigen neben einer Masse-Leitung nur einen weiteren Leiter, der gleichzeitig Spannungsversorgung und Datenleitung ist. Alle 1-Wire-Sensoren hängen an einem zwei-adrigen Kabel, welches durch das gesamte Haus verläuft und am seriellen Port des PCs endet. Mehr dazu.
Die Temperaturmessung an den Sonnenkollektoren übernimmt ein PT1000-Sensor, da die maximale Temperatur der Sonnenkollektoren außerhalb des Messbreichs der 1-Wire-Sensoren liegt. Der PT1000-Sensor ist lediglich ein Thermo-Widerstand so dass hier der Widerstand gemessen und mittels ADC und Parallel Port in den PC übertragen wird.
2) Schalten von Verbrauchern
Für diese und einige andere Aufgaben habe ich mir einen IOWarrior56 [3] besorgt. Dies ist ein kleiner Chip (geliefert und momentan noch betrieben auf einer Experimentier-Platine) der per USB-Schnittstelle mit dem PC Verbindung aufnimmt und bis zu 56 digitale Ein- oder Ausgänge bereit stellt. Damit schalte ich Netzspannung(*) mittels normaler (elektromechanischer) Relais und einiger Halbleiterrelais (Solid-State-Relais).
3) Ventile für die Heizkreise
Auf den Ventilen am Heizkreisverteiler sitzen thermische Stellantriebe von Möhlenhoff [4], die mit einer Spannung von 24V arbeiten. Diese werden ebenfalls vom IOWarrior angesteuert. Mehr dazu im Artikel Regelung der Raumtemperatur.
4) Dreiwegeventil
Das Dreiwegeventil wird von einem Proportional-Stellantrieb gesteuert, welcher ein 0-10 Volt Signal (fast) proportional zur Öffnung des Ventils umsetzt. Damit kann die Menge des zugemischten Kaltwassers (und damit die Vorlauftemperatur) präzise gesteuert werden. Das 0-10 Volt-Signal erzeuge ich mittels Pulsweitenmodulation ebenfalls mit dem IOWarrior. Mehr dazu im Artikel Regelung der Vorlauftemperatur.
Einige Leser werden sich sicher fragen, wieso ich für die Steuerung einen PC und keinen Mikro-Controller verwende, der die benötigten Ein- und Ausgänge bereits mitbringen würde. Für mich ist es so jedoch einfacher, da ich mit dem PC auch einige aufwändigere Dinge erledige, z.B. Bildchen mit Temperaturkurven erzeugen. Alternativ kann man jedoch den IOWarrior gegen einen selbst programmierbaren Mikro-Controller austauschen, der dem PC die Messwerte liefert und einige Dinge evtl. selbst regelt.
Software
Die Software für das Auslesen der Sensoren und die Steuerung der Aktoren besteht aus einem selbst entwickelten, eigenständigem Programm, welches auf einer älteren Version des 1-Wire-Tools Digitemp [2] basiert um die Temperatursensoren abzufragen. Es beinhaltet außerdem einen kleinen Webserver, der die Benutzerschnittstelle darstellt. Hier können Parameter geändert und Daten, auch in grafischer Form, abgerufen werden. Dazu haben wir in unserer Küche einen weiteren (Mini-)PC mit Webbrowser und Touchscreen stehen, der die zentrale Anlaufstelle für (fast) sämtliche Fragen des täglichen Lebens darstellt (Dank Google und Wikipedia).
(*) Ich muss darauf hinweisen: Arbeiten am Stromnetz dürfen nur von Fachleuten durchgeführt werden.
Quellen
1) PC Mainboard: Via Mini-ITX
2) Digitemp
3) IOWarrior
4) Stellantriebe von Möhlenhoff