Radiator Fan for a Panel Radiator

The plan

Who does not know that. Since it is directed his new apartment, or designed something and must always take consideration of these lively radiators. If you build the radiator, the room can no longer heat up. The problems:

  • The radiator operates on the one hand by radiation. If a piece of furniture is located in front of the radiator, this is heated instead of the room.

  • On the other hand with convection, i. Warm air rises up, from below, cold air must flow.

If you narrow these airways, the radiator works only restricted. Remedy can be used if the radiator is forced to force the radiator, e.g. with simple fans. This effectively increases the heating power of the radiator. And so you can compensate for the losses caused by our furniture.

The control of the fans should also be done via the radiator thermostat. Unfortunately, the usual thermostatic valves have no ext. Connections, but you can simply measure the temperature of the radiator near the valve. Opens the valve for heating, the temperature of the radiator increases. This temperature change can be measured. Now you can switch on the fans to support. If the room is warm enough, the valve will rule down the radiator again. Again, this can be read at the temperature and stop the fans again.

At low temperature heaters, there could be problems with this procedure because the temperature difference is low. This is then to be checked in individual cases and adjusting the threshold temperature accordingly. Of course, the fans should run very quietly.


Partial list

For a small double plate radiator in the bathroom you need:

Circuit description

The DS18B20 is a 1Wire temperature sensor. He is connected in our case with all 3 pins. So mass on pin 1, + 5V (from the microcontroller) on pin 3 and the bus connection (pin 2) is connected to pin 2 from the microcontroller. In addition, one needs a pullup resistance on the bus line of 4k7 ohms against + 5V.

The second component requires a driver for the fans. Of course, one can also be a relay module (such as: https://www.az-delivery.de/collections/sensoren/products/relais-modul) Use. Since the fans I use here, but only have a low power consumption, each fan needs about 150mA, a simple MOSFET circuit with a BS 170 is sufficient. This can, according to the data sheet, switch at a DS voltage of 5V about 300mA. This is enough for the two fans. For the BS 170 to be accidentally switched upon when removing the microcontroller, and the fans are dropped with it, the gate is still dispensed with a 100K resistance to ground. The gate is connected to D10 of the microcontroller.


For the insiders (;-)) among you, here once a real circuit diagram.

circuit diagram

And once a plan for building on a breadboard / breadboard board.

Breadboard circuit diagram

If you want to operate more than 2 fans, you can also build the BS170 level per fan.

Board with fan


First, you build a frame for the fans and the microcontroller made of aluminum profiles. So that the frame does not survive, this should be a little narrower than the lower depth of the radiator. Also, the fans still have to be well screwed. You may need to buy a slightly wider aluminum profile so that the fans can be screwed into the frame. If the frame protrudes too far into the fan wings, you can cut out something from the aluminum. The impeller should be largely free, otherwise there are air noises. When mounting the fans, make sure that the fans are mounted up with the correct side. The fans must suck the air from below and push upwards. Seen here from the bottom:


For such a small frame, 35x8cm, 1m 20x20mm Alu Angle profile is enough. First, one cuts 2 pieces A 35cm. Then you place the fans and marks the mounting holes for the fans. After drilling you can now screw the fans to the althers. Leave some distance to the sides, so there is still room for the electronics as in the photo. Now you can measure, cut and attach the side panels. I just riveted the side panels with 4 pop rivets. On the side where the electronics come to, you have to drill a 8mm hole for the DC socket.


For the microcontroller, you can print a small housing with a 3D printer. Here is an example: https://www.tinkercad.com/things/lkais5ID0VJ. Or you build the board in a small plastic housing, which is then attached to the frame.

For the connection of the DS18B20 you need about 1m 3 sentence cable. (Or you get directly DS18B20 sensor with cable) The cable with the DS18B20 (best shrunk completely in shrink tubing) is attached with good thermal contact near the valve at a radiator plate.

The whole frame must now be attached from below below the radiator. Either you build stilts on which the frame is then, or you attach the whole thing with long Velcro straps. Another alternative would be strong magnets that are sticked to the frame and then attached to the frame below the radiator. So nothing scares, you can still glue 4 felt glides to the frame so that it is not right on the heater. Now plug the power adapter plug and start it.



Stop stop! Do not you forget something else?

But sure the software for the microcontroller.

Installation of the libraries

In order to compile the program, the Dallas temperature library must first be installed. To do this, go to "Integrate Sketch / Library / Manage Libraries"

Library administrator

In the library manager, see "Dallas" and install the "Dallas Temperature" library.

Dallas temperature lib



You can now integrate the library into the program.

The program

   A small program for controlling radiator fans.
   The fans are turned on due to the elevated temperature on the intake valve,
   And only after a certain runtime and the switchtetic temperatr again turned off.
   Measurement of the temperature is made with a DS18B20
   Copyright 2020 Wilfried Klaas
   Licensed under the Apache License, Version 2.0 (The "License");
   You may not use this file except in Compliance with the License.
   You May Obetain A Copy of the License at
   Unness Required By Applicable Law Or Agreed to In Writing, Software
   Distributed Under the License is distributed on "AS IS" basis,
   Without Warranties Or Conditions of Any Child, Eithher Express or Implied.
   Lake The License For The Specific Language Governing Permissions and
   Limitations Under the License.
 // pin at which the DS18B20 is infected
 #define one_wire_bus 2
 // loop delay
 #define looptime 500
 // Counter How many loops of the fan should be at least one / off
 #define delaytime 10
 // Connection for the fan
 #define fan_pin 10
 // temperature threshold
 #define treshold_temp 32.00
 // ONWIRE Communication object
 Onewire onewire(One_Wire_Bus);
 // DS18B20 Dallas temperature sensor
 Dallast temperatures sensor(&onewire);
 void set up() {
   // umbilical cord
   Serial.Println("Starting Up");
   // Define Pins
   pinmode(LED_BUILTIN, OUTPUT);
   pinmode(Fan_pin, OUTPUT);
   // Start DS18B20 sensor
   Serial.Println("Starting Operation");
 // loop counter
 byte counter = 1;
 // temporary temperature storage
 float Temp;
 // fan is on or off
 boot fanon = false;
 long truck = 0;
 contam int DelayCount = (Delay * 1000) / Looptime;
 void loop() {
   IF ((truck + Looptime) < millis()) {
     // Get temperatures of all sensors
     sensor.requester(); // Send The Command to Get Temperature
     // Since only one is connected, please read the 1
     Temp = sensor.gettempcbyindex(0);
     // and spend
     // Counting loop counter
     // If the loop counter is 0
     IF (counter == 0) {
       // Counter set to 1 so that the next pass is at least here again.
       counter = 1;
       // Test if the temperature is high enough to turn on the fan
       IF (Temp > Treshold_temp) {
         // OK, then turn on fan if not happened.
         IF (!fanon) {
           // fan a
           digitalWrite(Fan_pin, 1);
           digitalWrite(LED_BUILTIN, 1);
           // At least so many loops no longer switch
           counter = DelayCount;
           Serial.Println("Fan a");
           fanon = true;
      } Else {
         IF (fanon) {
           // fan off
           digitalWrite(Fan_pin, 0);
           digitalwrite(LED_BUILTIN, 0);
           // At least so many loops no longer switch
           counter = DelayCount;
           Serial.Println("Fan off");
           fanon = false;
     // loop delay

Sketch as a download

After loading the sketch on the microcontroller, you can now control the outputs with the serial monitor. About 2 times the second should be output the current temperature. And behind the loop counter. If the threshold is exceeded, the fan turns on, and the waiting time begins. If within this waiting time (DELAYTIME) The temperature drops again, but the fan remains on. Thus, it is prevented, which is constantly switched on and off at a fluctuating temperature, the fan. This time is given in seconds. The threshold temperature can be over TRESHOLD_TEMP be adjusted.


Have fun with the replica. I hope you also like this little blog. Until next time!

Wilfried Klaas

For arduinoProjects for beginnersSensorsSmart homePower supply




Das ganze liese sich auch wunderbar zweckentfremden um damit die Kühlung von Absorptionskühlschränken in Wohnmobilen bzw. Wohnwägen zu verbessern. Bei hohen Außentemperaturen staut sich gerne die warme Luft im Lüftungsschacht des Kühlschranks, wodurch dessen Kühlleistung deutlich verringert werden kann. Die Lüfter helfen eben durch die Zwangsbelüftung das Problem etwas zu lindern. Dafür gibt es sogar eine ganze Reihe kommerzieller Produkte, die genau das selbe machen. Finde das Projekt ist eine schöne Lösung für den Eigenbau.

Wilfried Klaas

Wilfried Klaas

Hallo Micha. Hier gilt, wie bei allen Selbstbauprojekten aus dem Internet und Magazinen, bitte vorsichtig sein!
Aber normalerweise sind Heizungen geerdet und auch der Rahmen wie auch die anderen metallischen Teile sollten richtig geerdet sein. Der Controller samt restlicher Elektronik sollte natürlich auch in ein entsprechendes Gehäuse gebaut werden. Und ich habe mir den Spaß tatsächlich jetzt mal gemacht und mein Netzteil (Das ist ein typisches LED Lampennetzteil mit 12V/5.8W ohne Erdung) gegen das Heizungsmetall (an einer blanken Stelle) gemessen. Tatsächlich zeigte sich dort ein Kurzschlussstrom von 40uA. Das ist weit genug von den 10mA entfernt, die die FI Schalter im Bad haben sollten.
Aber richtig ist, sobald wir mit Strom hantieren, sollten wir die Grundlagen kennen.

Wilfried Klaas

Wilfried Klaas

Hallo Jürgen, natürlich kann man auch den W1209 verwenden. Dann bitte auf Kühlung stellen. Der Baustein ist tatsächlich deutlich größer und schaltet dann den Lüfter per Relais. Funktioniert aber genauso. BTW.: Auch der W1209 arbeitet intern mit einem uC, in dem Fall mit einem STM8S003F3P6.

Wilfried Klaas

Wilfried Klaas

Hallo Herr Rahn, ich habe mit vielen verschiedenen Anordnungen gespielt. Diese Version mit den 2 Lüftern in der Mitte war diejenige, die für diesen Heizkörper am besten funktioniert hat. Es werden sogar noch weitere Lamellen pro Lüfter durchlüftet, die vom Lüfter nicht abgedeckt werden. Dort wird die Luft einfach mitgerissen. Von den 60cm Heizkörper werden mit den 2x 80mm Lüftern 40cm zwangsbelüftet. (Erfahrungswert) Nur bei die äußersten Enden bleibt es bei der normalen Konvektion. Wenn man eine größere Abdeckung wünscht, kann man natürlich entsprechend mehr Lüfter verwenden. Natürlich kann man auch einen kompletten Luftkanal unter den Heizkörper bauen. Der hat aber auch Nachteile: zunächst sieht es einfach nicht besonders schön aus und viel wichtiger, nach diesem Umbau funktioniert der Heizkörper nur noch mit der Zwangskühlung. Die Variante mit den offenen Lüftern lässt auch ohne Lüfter noch genügend Luft durch. Zum 2. Teil mit den HKVs haben Sie natürlich völlig recht. So wie bei allen Blogeinträgen hier und im Allgemeinen alle Beiträgen aus dem Internet oder Magazinen muss man selber schauen, in wie weit rechtliche Belange betroffen sind.

Wilfried Klaas

Wilfried Klaas

Hallo Oliver, ja klar, aber Sie können ja mit dem Bau schon mal anfangen ;-), dann sind Sie im Herbst fertig. Oder Sie verwenden zwischenzeitlich die Lüfter als Ventilatoren.



Halt, noch etwas vergessen.
Die Schaltbetzteile dürfen laut EU-Vorgaben bis zu 80μA gegen Masse/Erde abführen. Im Bad???
Die Leitungen müssen echt Berührungssicher verlegt werden. Nicht die magische Grenze von 30mA (FI/RCD) ist tötlich, sondern sehr viel weniger.
Mess mal den Strom zwischen +/-, deiner 5V, und Heizung(serde). Kann schnell nach hinten los gehen, da viele die in china „liebevoll“ gebauten Netzteile verwenden werden.

Setze bitte bei solchen Projekten viel viel wert auf Berührungssicherheit.



Thomas Rothmund

Thomas Rothmund

Darauf habe ich schon lange gewartet.

Besten Dank



Interessant für die Einarbeitung in Arduino. Für die dargestellte Lösung ist es aber einfacher, den Temperaturbaustein W1209 zu verwenden.

Werner Rahn

Werner Rahn

Die in diesem Blog beschriebene mechanische/thermische Konstruktion hat einen Mangel!
Auf dem Bild sitzen die Ventilatoren im mittleren Bereich des Heizkörpers. Im inneren Bereich zwischen den Platten sind vertikale , dünne Bleche an den Platten angeschweißt. Sie bilden senkrechte Luftleitkanäle. Die beiden Ventilatoren blasen hauptsächlich in je zwei bis drei solcher Luftleitkanäle. Besser wäre es aus Pappe oder ähnlichem unten am Heizkörper einen Zufuhrkanal zu bauen, der am einen Ende einen Ventilator hat und am anderen Ende die Luft über den ganzen unteren Lufteintrittsquerschnitt des Heizkörpers gleichmäßig verteilt. Ein Ventilator dürfte ausreichen, da die mit dem Ventilator erzwungene Konvektion deutlich stärker sein dürfte als die freie Konvektion. Bei Heizkörpern mit nur einer Platte funktioniert die Zwangskühlung noch weniger effizient.
Achtung juristisches:
wenn an dem Heizkörper ein Heizkostenverteiler (HKV) angebracht ist, kann mit einer gezielten, konzentrierten Luftführung die Temperatur im Bereich des HKV reduziert werden. ( Die HKVs haben zwei Temperaturfühler und eine Realtimeclock (RTC), der eine Fühler erfasst die Temperatur an der Vorderseite der Heizkörperplatte, der zweite Fühler erfasst die Lufttemperatur an der Luft- bzw. Außen-Seite des HKV. Die Temperaturdifferenz wird mit der Zeitdifferenz der RTC multipliziert und abgespeichert.) Da der nicht zwangsgekühlte Bereich des Heizkörpers wärmer ist, als der übrige Bereich, wird der HKV geringere Werte anzeigen, als ohne diese ILLEGALE Manipulation. Auch wenn der ganze Heizkörper zwangsweise gekühlt wird, zeigt ein HKV geringere ‘Verbräuche’ an, als bei freier Konvektion. Also Finger weg von Zwangskühlung von Heizkörpern mit HKV. HKVs werden normalerweise in Mehrfamilienhäusern verwendet. Betrogen durch eine oben genannte Manipulation werden die übrigen Mieter. Auch wenn es dem Vermieter egal sein kann, kann das im Extremfall zum Verlust bzw. zur Kündigung der gemieteten Wohnung führen.
W. Rahn

Oliver Rohr

Oliver Rohr


Idee gut, aber es ist Sommer.. da wäre ein Projekt das Kühlt schöner…



Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN