Adafruit forum member [Stephanie] embarked on a mission to replace the thermostat in her home with one that was far more robust and full of electronic goodies.
Her goal was to build a networked thermostat that allowed for 2-way communications between the base station and any other networked device, such as her laptop or iPhone. She wanted to not only be able to monitor her furnace and air conditioning systems remotely, but to control the units from afar as well.
The brains of the thermostat have changed throughout the project, becoming simpler as time went on. It is now controlled with just an ATMega328 mounted to the back of an LCD display with a Wiznet network module where an Adafruit Ethernet shield used to reside. The thermostat shows the current temperature, set temperature, and time on the front mounted LCD, the latter of which is provided by a Chronodot module. It also has an on board LED that can be seen from afar, indicating whether the heat or air conditioning is running,
Right now the thermostat can be controlled at the unit itself, or remotely using a Telnet session. [Stephanie] is currently happy with the setup, but future plans include creating an iPad application to provide a more user-friendly interface.
If you are interested in learning more, or building one yourself, be sure to swing by her blog for a far more in-depth look at the build process.
This is really cool, and has a great presentation. Nice work Stephanie. Also- interesting blog with lots of pictures and good descriptions. I’m a little nervous about creating my own thermostat because of the cost of failure- what if it sticks ON in heat mode while you’re on vacation in the summer? How about the opposite and you now have frozen pets?
@Dave
You’ll need a good watchdog timer for that. A tutorial for AVR micro-controllers to get you started http://www.embedds.com/using-watchdog-timer-in-your-projects/#more-4374.
You might even want to consider an external watchdog timer just to be sure.
@Gnu: That’s great advice, especially an additional external watchdog timer.
I have actually seen the occasional circuit designed to cause a forced periodic unavoidable power removal from the micro to remove any cmos lockups that may prevent even a reset signal or watchdog timer from properly resetting the micro, and then your code is written around that to save your current state to an eeprom (this failure mode is usually caused by ESD). I’d be most worried about a latent ESD failure that causes a port to drive a relay no matter what the micro tells it to do. None of this is impossible, but it’s a good deal of time to properly design your circuit and enclosure to prevent that abuse. It’s also a good idea to get an ESD gun out and test it!
The watchdog is good advice, but doesn’t completely cover Dave’s orginal question.
What if the thermostat DIES while the furnace is switched on? Will the furnace instantly turn off, or remain “on”?
Most thermostats are spec’d to – on failure – passively shut down the furnace. The circuit opens.
It’s better to have things cold or even freeze than to run the furnace at 100% non-stop.
The other things DIY thermostats don’t usually do is measure the temperature velocity. If you set it for 70F, it may shut off heat at 69F based on how quickly it went from 68 to 69. If you wait for 70F to shut off, the room will actually be 71 or 72 degrees F.
I totally want one of these networkable thermostats, but the only ones I’ve seen do these 2 things right are commercial $300+ smart panels with wasteful color LCDs and Microsoft device drivers. Way overkill.
Home depot sells one for 100 bucks that has a 802.11 card in it. Who knows how difficult it is to talk to but the package seemed to indicate a web interface so screen scraping would work.
Thermostats generally use a mechanical latching relay to be compatible with both 24v and millivolt systems. Probably if the thermostat dies all of a sudden while it’s on it would remain latched in that state.
When I did a similar hack, I used a switch in series to allow me to manually disable my smart-stat. I also left the original mechanical stat in circuit, in parallel with my smart-stat, but set to an unfeasibly high temperature, for use in case of failover. In the event I never had cause to use it ;-)
As a backup,as long as you are using the same source for the 24VAC (usually the terminals from the furnace), you could always just parallel a mechanical thermostat set to something like 45 degF and hide it in a closet.
What if somebody hacks in via your telnet link and sets the temp to 200 F? Obviously the furnace will be unlikely to produce that temperature but it may have other unintended effects.
Here in Ottawa, the Hydro company was offering free thermostats like this (actually they gave you $25 to have one installed, free). I was interested but worried about malicious hackers. Since the ‘stat was to be on the internet, someone could hack my password, and be nasty with my thermostat. Just to be malicious, they could turn off my heat in the winter, turn up the AC in summer.
I don’t need that possibility of grief (I am not a fanatic about security, but don’t need such a loophole).
I declined.
@Barry
Odds are the web connection is through your own, either wirelessly or wired to your router. In which case, you could just block it at the router, and prevent it’s traffic from making it to the general internet.
I’ve been slowly ordering parts to do this commercially, but with other motives :)
FYI when we build it and perhaps get parts made to sell it, we’d open source it and encourage mods.
I’ve been using a HAI Omnistat1 RC-90 thermostat for years. It communicates via a simple RS232 serial protocol.
The biggest plus for me was this thermostat DOES NOT void your HVAC system warranty like a homebrew solution would.