Frostwächter

Keiner benötigt einen Frostwächter für ganze Kellerräume, sondern nur für Wasserleitungen und -Behälter. Das was es an Rohrheizungen gibt ist viel zu teuer und viel zu Energie fressend: Alles was gesichtet wurde hat eine Einschalttemperatur von 5 °C und eine Ausschalttemperatur von 15 °C. Bimetallschalter eben. Ich will doch keinen Warmwasserbereiter! Hingegen die chinesischen Frostwächter-Platinen erscheinen besser geeignet; allerdings muss man sie mit Eiswasser kalibrieren.

In jedem Fall muss die Rohrheizung sauber verlegt und thermisch isoliert werden. Dafür bietet es sich heutzutage an, mit Klingeldraht zu arbeiten und das Ganze mit Schutzkleinspannung aus einem Schalt-Steckernetzteil zu versorgen. Größere Objekte wie Wasseruhren sollten mit entsprechend mehr Draht umwickelt werden: Drahtmenge proportional zur Oberfläche.

In einem Keller ist es zudem sinnvoll, den bodennahen Bereich bis zu allen Ablasshähnen mit Gasbetonsteinen zu ummauern und eine Reihe dieser Steine als Abdeckung zu verwenden, als zusätzlichen Kälteschutz.

Spezifikation

Umsetzung

Die Temperaturmessung erfolgt mit mehreren DS18B20 am OneWire-Bus. Die zweiadrige Leitung ist einfach zu verlegen. Die Sensoren werden an verschiedene Punkte der Wasserleitung verteilt und einfach parallel geschaltet. Analoge Sensoren müssten erst kalibriert werden. Da der prompte Einsatz wichtig ist, erscheint der Einsatz werkskalibrierter Sensoren angemessen. Der Sensor mit der niedrigsten Temperatur ist für die Schaltvorgänge entscheidend.

Geräteansicht

Zurzeit fallen viele DSL-Splitter an, in die eine 1½-stellige Anzeige VQB21 (gemeinsame Katode) oder VQB23 (gemeinsame Anode) optisch gut hineinpasst. Denn das Gerät soll ja nur Temperaturen um 0 °C anzeigen. Diese Anzeigen wurden massenhaft bei Pollin verkauft und sind sonst zu nichts nütze. Man kann die Firmware auch auf 2-stellige Anzeigen umstellen. Gemeinsame Katode oder Anode ist egal. Die Stromversorgung erfolgt in diesem Fall über die USB-Buchse und ein USB-Steckernetzteil.

Für Netzbetrieb empfiehlt sich auch das Ausschlachten einer Funksteckdose an; die dafür erforderlichen Leergehäuse wären viel zu teuer. Auch kann man einen Teil der eingebauten Elektronik wiederverwenden: Das Kondensatornetzteil und das Relais. Knifflig ist hier das knappe Platzangebot.

Der Datenlogger wird über USB ausgelesen. Naheliegend wäre auch das Auslesen mittels KNX via Stromnetz. Aber da weiß ich nicht wie das geht.

Als perfekter Mikrocontroller für diese Aufgabe erscheint der PIC16F1459. Dieser enthält bereits einige wichtige Komponenten:

Schaltplan

OneWire: SearchROM

Bei ISA-PnP hieß das „Enumeration“, „Aufzählung“. Hier ist es erklärt (englisch). Mit Bugs, denn der Kode für SearchROM ist sehr oft noch mit 0Fh (statt richtig 0xF0) angegeben. Ursprünglich wollte ich den Algorithmus für 8-Bit-Mikrocontroller günstiger gestalten, aber der angegebene Algorithmus (mit den Variablen lastDiscrepancy und lastZero) ist dafür bereits optimal. Zur eigenen Veranschaulichung die Schleifenfunktion für 4 Geräte mit 2 Bit ROM-ID (mehr geht dann logischerweise nicht da 22 = 4 und es gibt stets Kollisionen ☇).

Beispielablauf für 4 Geräte mit 2 Bit ROM-ID
DurchlaufbitlDLesenEntscheidungSchreibenlZROMgefunden
Initialisierung00 0
Erster100 0 ☇bit > lD ⇒ 010 0
20 0 ☇bit > lD ⇒ 020 0
200
Zweiter120 0 ☇bit < lD010 0
20 0 ☇bit == lD ⇒ 110 1
101
Dritter110 0 ☇bit == lD ⇒ 101 1
20 0 ☇bit > lD ⇒ 021 0
210
Vierter120 0 ☇bit < lD101 0
20 0 ☇bit == lD ⇒ 101 1
0= Ende (lD == 0)11

Was PIC-Compiler aus der dort angegebenen C-Quelle machen erscheint unverzeihlich schlecht! Daher in Assembler neu geschrieben: