Super-duper Heat Pump Thermostat

I’ve decided to build my own thermostat. Yes, I know it’s been done before and there’s tons of ideas and designs out there but I want this to be my own (sort of, with a little help here and there no doubt).

I want to put my 30 years of electronics experience to good use. First off I like to think I can do most anything I try to which gets me into trouble when things don’t go so well but like all of us, gives me tons of satisfaction when they do. I’ve built an arduino based watering system for my herb garden boxes that monitors soil moisture and waters each box according to the moisture settings for each seperate box, so these aren’t uncharted waters for me but I’m not what you’d call accomplished at working with microcontrollers.

That said, I need to explain things in an orderly fashion for myself and since I’m the kind who likes to share what I know (sometimes even when I shouldn’t because my wife says it makes me sound like a know-it-all sometimes [I can’t help myself sometimes]) and maybe teach someone else besides myself along the way. So here goes my attempt to lay this out:

Reasoning (and rambling)

I’ve looked for a good digital thermostat at some of the hardware stores and they are either labeld as “not for heat pumps” or just plain not worth it. I live in an “empty nest” so now I can’t blame the kids for messing with the thermostat. Those of us who are married or partnered know what this means and how it makes you feel when you wake up sweating in the middle of the night. In my case it’s a worst case scenario. My wife is experiencing “the change of life” and according to her the house changes temperature every 5 minutes. We recently remodeled the house and now have all hardwood floors or ceramic tile in every room except the bedrooms. Our house was built in '79 so it’s a little drafty sometimes which makes your feet colder than they should be sometimes. I live in South Alabama which means that winter is the most connfusing time of the year for heating and cooling a house. Yesterday I went to work in short sleeves and today it may snow but this weekend it’s expected to be in the high 70s. It is extremely common to run the air conditioner and the heater in the same day and within the same 24 hour cycle you may even have to turn on the emergency heat. Now the primary reasoning is I want the temperature control to be as easy as possible for those of us in the house who don’t want to have to learn how to operate a device with more controls than an electric mixer. (Remember my “empty nest” comment earlier? Not pointing fingers but…)

Design parameters

I plan to tackle these one at a time for simplicity.

Not counting the Arduino(s), I want to stay below $100. Any more than that and it’s not tinkering to me. (If it fails I haven’t lost too much except my time.)

Arduino based (love these things) and/or Spark Core (these would be new to me but may be my best bet but not sure yet. I have an Arduino Mega 2560 and a Leonardo to start off with so the Mega can handle lots of inputs if needed for the sensors.

Needs to monitor the temperature in multiple places around the house and maybe even at different levels. Maybe have temperature sensors mounted at floor level and chest level and maybe near the front door so the heat doesn’t come on just because someone created a breeze by walking in the door or maybe one in the kitchen to monitor when we’re cooking and to turn on the A/C preemptively.

Maybe an air flow sensor to monitor if I have my 1200cfm range hood on. (I only crank it up to high when I’m using 3 or more burners and the kitchen still gets pretty toasty.)

Needs a responsiveness adjustability in software so I can change how long the measured temperature remains at a certain temp before it turns on the heat or a/c. This would eventually be a fixed constant but until it’s nailed down I’d like to be able to change it till I’m (she’s) happy with it.

Needs to be able to control switching between Heat, A/C, Aux Heat, and Emergency Heat (these last two may be the same thing but not sure until I get deeper into this project).

Ability to display outside weather conditions and use these readings to make preemptive decisions on what to do next.

I want the system to be able to determine that even though the air conditioner has been running all day that the barometric pressure and outside air temperature are falling so delaying the next a/c “on” cycle by half an hour or so might be better than adding cold air to the house that within the next hour or so is going to need to be heated.

Ability to be viewed and controlled remotely over the web with my cell phone if I’m away. (This is NOT a requirement but just an idea for future additions to the project.) If I do this I’d like to be able to see the current temps inside and outside the house and the barometric pressure outside with maybe a graphical representation of the trend. Knowing the barometric pressure outside is only useful if you know which way it’s going. Down here in South Alabama a falling barometric pressure doesn’t mean its going to get colder. Usually it gets warmer, then it rains, then it gets cooler.

I like the Nest thermostat’s look and simplicity - One big transparent knob and an easy to read display. Any ideas where to get that enclosure or something like it? I want the knob to be attached to an encoder with a pushbutton. Normally the multicolor, multisegment led display will show the measured house temp in one color but has a sleep mode where it’s totally dark. Push the button to wake it up and it shows the current temp in one color; push it again and you see the thermostat setting and mode (cooling, heat, aux heat, emer. heat) in a different color; one more push and you see the outside conditions (temp, baro, and trends of both). If you turn the encoder it reverts to setting mode and you are changing the setting temp.

Being a heat pump control, it doesn’t need a timer to be on and off at certain times. Heat pumps work best when they are used to “maintain” a temperature rather than have to overwork to achieve one.

Must be relatively compact. I cant’t have a big project box hanging on the wall or wires hanging everywhere. I plan on mounting a project box across the hall inside the air conditioner closet but have the control and display located on the wall opposite the air conditioner closet where the original thermostat currently is.

Some ideas for an open source thermostat here: http://blog.spark.io/2014/01/17/open-source-thermostat/

I started a similar project about 10 years ago. Here are some things that I implemented:

  • numerous temperature sensors using DS18B20

  • get the time of day using NTP (eliminates need for a battery)

  • primary interface is via web browser; backup interface is switches & display

  • controller & relay board are near the heat pump compressor; sensors are remote

Jake