DIY Thermostat, from the Adafruit forums – Stephanie writes -
I’ve been working on this on-and-off since December, but finally got around to completing it.
The goal was a networked programable thermostat that did just about everything you’d expect of a normal off-the-shelf thermostat, but was also accessable through a network / internet connection. I could cut some corners and simplify a few things, eg. eliminate most of the ‘set-up’ functions, since I’d be able to hard-code certain things and not need a UI to set them (24-hour clock, temp. in farenheit, programmed temp. schedule, etc.)
All the normal functions are accessable from the thermostat itself — one can temporarily override the temperature up or down, it can be set to ‘hold’ a fixed temperature, and if ‘holding’ it can be set back into ‘run’ mode. The display shows time, current temp, program mode, heat/cool mode, and target temp. If the thermostat is off, then it displays time, temp and date. There’s a few other functions and features too, that aren’t directly thermostat-related.
Over a network connection, one can access all the information and controls that you get at the thermostat itself. It’s an unformatted ‘raw’ protocol, with the intention being that later I can write an iOS app for my phone that will give it a nice interface. In the meantime, I just use a telnet client and have to remember the command protocol that I set up.
The brains of the operation is basically an Arduino Deumilanova compatible. It went through several physical iterations (Freeduino, Boarduino, etc.) and now is basically just an ATMega 328p hanging off the back of an LCD display. Likewise the network adaptor started off as an Adafruit ethernet shield, but gradually got whittled down to just a bare Wiznet module hotglued to the inside of an enclosure.