Sunday, March 30, 2014

Digital Space Heater Temprature Control

A problem common to most electric space heaters on the market is that the thermostat that controls the heater is enclosed within the case of the heater itself.  As the heater runs the case heats up and the thermostat shuts it back off again.  This means that the thermostat reading is only loosely related to the actual temperature of the room, the thermostat mostly just sets the duty cycle for the heater.

My room gets fairly cold at night so during the winter I run a space heater but because of the lack of sensitivity of space heater thermostats my room can get colder as the temperature outside get colder and then uncomfortable hot in the morning when the sun comes through the window.

Using an Arduino Uno, a small servo and two 3D printed components I retrofitted a digital thermostat onto my old space heater so it could more accurately control the temperature in my room.

The Arduino has a temperature sensor hooked up to one of the analog pins in the board to read the temperature of the room.  I can then set a temperature for the room and the Arduino switches the space heater on and off via a servo connected to a dial on the heater.  I considered using a relay controlled by the Arduino to switch the heater on and off but I didn't want start tampering with the wires inside the heater and risk creating a fire hazard.

I used 3D printed components to couple the servo arm to the shaft that the dial was on and another component, bolted to the heater body, to hold the base of the servo in place.  The design was very simple and only took about 2 hours from measurements to having a finished model ready to be printed.


This setup works perfectly and my room is always at a stable temperature.  I plan on soldering the whole project onto a prototype board and flashing an Atmega 328 so I can make this installation permanent since it works so well.




No comments:

Post a Comment