Programmable thermostats are cool things. They let you set the room temperature according to your schedule and will automatically make those adjustments for you. If you use them the way they’re intended to, they could be a great way to save on home energy costs. They work perfectly for people with fixed daily schedules. You can set one temperature during the time you are at home and to another when you are away. But what if your everyday routine is not the same? Then you have to manually adjust the temperature every time you are in and out. Ed Van Every was facing the same issue and he came up with a nice DIY solution for this. He wanted his place to be heated to 70ºF when it is occupied, and to 55ºF when it is not. So he made his own dual set point thermostat which allows him to implement his “working temp” with a single hit of a push button and his “away temp” with another push button.
Like most other DIY thermostats, Ed also used an Arduino board as the main brain of the thermostat and DHT22 for sensing ambient temperature and humidity. For controlling the heater, an electromechanical relay breakout board was used. A 16×2 character LCD displays the temperature setting that is currently active, its set-point value, the actual room temperature and humidity. In the event when the heater is turned on, an asterisk symbol * is displayed in the lower middle of the display indicating that the relay circuit is closed. The room temperature and humidity are refreshed every 2½ seconds and the LCD backlight automatically turns on for 60 seconds when a button is pressed on the thermostat. Ed also 3D printed a nice enclosure for his thermostat to give it a more professional look.