Projekt Webserver zur Heizungssteuerung

Ziel des hier beschriebenen Projekts ist es, eine Steuerung für Heizungsanlagen zu bauen, und die entsprechende Software dazu zu programmieren. Es müssen also Temperaturen erfasst, und nach vorgegeben Parametern, Relais geschalten werden.

Hardware

Als Hardware dazu dient der Webserver ETH_M32_EX, den Ulrich Radig auf Basis eines Atmel ATMega644 Mikrokontrollers und des Ethernetchips ENC28J60 entwickelt hat. Zusätzlich kommt eine Erweiterung um eine SD/MMC Karte zum Einsatz, um unter anderem Temperaturmessungen über einen längeren Zeitraum zu speichern. Die Anbindung erfolgt über einen SD Karten Sockel, der auf die freie Lochrasterfläche oben aufgelötet wird. Der Anschluss an den Kontroller erfolgt dann per SPI von unten:

Anschluss des SD Karten Sockels Anschlussschema
Anschluss des SD Karten Sockels Anschlusschema der Erweiterung

Die Temperaturen werden mit hilfe des AD-Wandlers im ATMega über die dafür vorgesehenen Dioden KTY83-120 Gemessen. Sie werden über einen 1k Ohm Serienwiderstand zwischen 5V und Masse betrieben. Damit erhält man eine Auflösung von ca. 0,5°C pro Bit, was für diese Anwendung ausreicht.
Damit die Temperaturfühler problemlos am jeweiligen Messpunkt anzubringen sind, habe ich die kleinen Dioden an ein flexibles Koaxialkabel angelötet, und mit Epoxykleber auf ein Stück Kupferblech verklebt. Die gute Kopplung an das Trägerblech bietet neben dem Schutz des Sensors noch den Vorteil, dass die Eigenerwärmung des Sensors durch den hindurchfließenden Strom minimiert wird. (Kühlkörper). Bisher habe ich zwei Varianten hergestellt:
Sensor flach Sensor rund Sensor rund mit Hülse
Falcher Sensor zu Anbringung auf glatten Stellen, wie Rohren oder Heizkörpern. Kann einfach mit Kabelbindern an Rohren befestigt werden.
Runder Sensor, z.B. zum Einsatz in Tauchhülsen eines Warmwasserspeichers.
mit vollverklebter Hülse aus Kuferblech

Software

Verwendete Komponenten

Grundlage ist der, Ende 2007 neu entwickelte TCP/IP Stack von Ulrich Radig. Dieser bietet unter anderem bereits folgende Anwendungen, die hier direkt verwendet oder erweitert werden:
Weiterhin wird von ihm, aus einem separaten Projekt, ein Treiber zur Ansteuerung der SD Karte eingesetzt.
Organisiert wird deren Speicherbereich als FAT16 Dateisystem. Der eingesetzte Treiber MikroFAT16 wird auf mikro-control.de angeboten. Damit ist es möglich, folgende Vorgänge auf der bereits als FAT16 formatierten Speicherkarte vorzunehmen:
Leider steht keine Möglichkeit zur Verfügung, den Inhalt eines Verzeichnisses aufzulisten, was evt. für den FTP Server interessant ist.

Entwickelte Erweiterungen

Dieses Projekt wäre kein echtes, würde es nicht auch spezielle erweiterungen geben. Diese sind:
Der FTP Server arbeitet ausschließlich im passiv Modus. Der Server ist also listener auf dem Port für den Datenkanal.
Als FTPClient habe ich FileZilla in Version 3.0.6 (download) getestet.
Version 3.0.7 scheint Probleme zu haben. :(

Anwendung

Damit können komfortabel folgenden Dinge ermöglicht werden. Die Temperaturkoeffizienten zur Berechnung der Temperatur aus den Gemessenen AD Werten, Solltemperaturen, Ein-/Ausschaltverzögerung sowie Loginterval können ohne Neuprogrammierung des Mikrokontrollers angepasst werden, und über SD Karte der Schaltung zugeführt werden.
Ebenso wird das Logfile regeläßig um einen Datums-/Zeitstempel in Verbindung mit den gemessenen Temperaturen erweitert. Dieses kann dann über den FTP-Server heruntergeladen werden, und steht z.B. zum Import in eine Tabellenkalulation zur Verfügung. Daraus lassen sich Diagramme wie das folgende erstellen:
Templog Diagramm

Bekannte Einschränkungen

Probleme beim Download größerer Dateien (ca. 100kb) per FTP.
Die Übertragungsrate ist extrem langsam (ca. 1kb/s).
Der FTP Server gibt nur fest eincompilierte Dateien als Directorylisting aus.

Download

Hier biete ich den, im Rahmen des Projekts entstanden mini ftpserver zum Download an. Er greift auf den erwähnten FAT16 Treiber und den TCP/IP Stack zu:

ftpd-001.zip (14.2.2008)

Links

http://www.ulrichradig.de - ETH_M32_EX
mikro-control.de - MikroFAT16 V1.23
sourceforge.net - FileZilla FTP Client Version 3.0.6