We went to Poland for the Easter holiday. When we got there the house was really cold (6°C), having been vacant for several months. We’ve got a fairly substantial solid-fuel furnace in the basement and a large room full of coal to burn. We have a gas boiler too, but we want to get rid of the coal to repurpose the space it occupies. Burning it is the most logical solution, but it involves some work. But I’ve tried to make it a bit more fun.
The furnace is an interesting beast. It’s taken me a long time to partially tame it, and I still get it wrong sometimes. There’s an electric pump which pumps the heating water round the system. There’s also a fan that is used to exert a measure of control over the fire.
There’s a microcontroller sitting on top of the furnace that switches on the pump when the furnace water temperature reaches 35°C and shows the current temperature via a 7 segment display. It also ensures that the fan is blowing air up through the fire if the furnace water temperature is below the chosen setting (I use 70°C for rapid-heating and 45°C for maintaining a reasonable temperature.) It always overshoots though and control is quite a bit less good than I would like it to be.
Here’s a video showing what I’ve put together…
What’s The Duino Being Used For?
The main nuisance is that the furnace is in the basement and I have my RasPi.TV Polska HQ two floors above. I don’t really want to be running up and down the stairs every 15 minutes to see how the fire is doing. So, last year, I came up with a way of remotely monitoring temperatures of the furnace water and the water pumping round the system. I used a Raspberry Pi B+, RasPiO Duino, two temperature sensors and a PiHut wifi dongle. This year I added a 20×4 LCD to the RasPiO Duino so that I could monitor these temperatures directly from the furnace room (kotłownia) as well as remotely via ssh.
The TMP36 analog temperature sensors are connected to two analog ports on the RasPiO Duino, which reads their values and reports them to the Pi via the serial port. From the comfort of my first floor office, I can log into the Pi via ssh and run a Python script to show me the furnace water temperature and the pipe loop water temperature.
Our Heating System Is Fussy
That way I know when the furnace water temperature drops too low and it’s time to chuck some more coal on the fire. But the system is a bit fussy. If you overload it, the control is not all that good. It may be that the seals on the furnace need replacing or the fan control on the microcontroller is too liberal. WJDK exactly. But, if you fill it up with coal, it will massively overheat and boil the water. So I prefer to control it by restricting the fuel and monitoring the temperatures.
I Want Better ControlBut my long-term aim is to take total control of the heating system using a RasPiO Duino instead of the existing micro-controller.
From observation, I know exactly how the current system works. I know when the fan and pump switch on and off. For example the fan comes on for about 15 seconds once every 5 minutes – even when the furnace water is way too hot. There is enough air leakage on the furnace that this needs to stop if we want proper control! So my game-plan is to use the RasPiO Duino and a couple of solid-state relays to control the furnace fan and the water pump and take total control of the system. The ultimate aim would be to be able to just load up the furnace once a day and leave it. Or even to be able to remotely tweak the settings without having to go to the basement.
Temperature Feedback From Within The House
But I will need temperature feedback from inside the house as well – and I’ve got the measurement side of that covered too. I also set up two other Raspberry Pis with temperature sensors to monitor different places in the house.
I set up a Raspberry Pi 3B with a prototype analog board on. This uses GPIO Zero to drive and display the output from two TMP36 sensors. One sensor was attached to the RasPi.TV Polska office radiator and the other was dangling in free air a couple of centimetres above the window sill where the Pi sat. The onboard wifi proved very useful and worked without a hitch for the whole two weeks we were there.
Still More Readings Needed
But I wanted more readings, so I soldered another RasPiO Duino directly to a Pi Zero and used that to read two more temperature sensors dangling in free air in the middle of the office. This could obviously be placed anywhere in the house. You could even have one in every room, but that might be a bit over the top. This Pi Zero was connected to wifi using an Edimax dongle. I assembled it without the headers and with its LED bent down as I wanted it to be as low-profile as possible so I could fit a Pimoroni Display-o-tron 3000 on top.
I could log into all three of these monitoring Pis to monitor the temperatures. This is what it looked like on my screen…
Next Step – Take Control!
So you can see the system is coming together nicely. Temperature monitoring is achieved. The next step is to take control of the fan and pump, which will require some hardware and software work. But ultimately I’d like to incorporate feedback, from the sensors in the house, into the control system as well. When the house is warm enough, the furnace water temperature can be turned down and the fire can be maintained at an absolutely minimal level. Who knows, maybe ultimately it could incorporate the outdoor temperature and weather forecast data for accurate predictive control. That would be ultra-cool, but is obviously several steps ahead!
Where Can I Get These Shiny Toys From?
You can get the RasPiO Duino here,
The analog board is not out yet (coming soon).