Today I went ahead and did it.
There were just two things left to fix and I fixed ’em both. One hardware glitch and one software bug.
That’s it. Done deal. The thermostat is live and installed.
It’s ugly and there’s wires all hanging out of it and it looks like a high-school science project and I don’t care – it works and it’s networked and it does exactly what I want, when I want, how I want, and I built it from scratch!
Now if I’m cold at 2am I don’t have to get out of bed and crank the heat – I can grope around for my laptop or iphone or ipad or whatever is nearby, log into the thermostat and twiddle the dial remotely. I’m almost looking forward to being cold in the middle of the night.
Or hot – come summer, I’ll have just as much control over the A/C as I do the heat.
Isn’t it wonderfully ugly? The red things in the wall are plugs from a previous thermostat. Apparently it was there way back when the wall was last painted, some 9 or 10 years ago.
The red glow on the wall indicates that the furnace is currently on. If the A/C were on, there’d be a blue glow up there. No glow indicates that we’re at the desired temperature.
I’d love to share a schematic with you all, but I didn’t make one. The guts are one messy tangled mix of design-and-build-on-the-fly-and-hope-it-works. There’s no internal photos for the same reason. It’d just shock and offend.
I will share the source code though – for those willing to give this a shot yourselves, there’s enough comments in the code to explain how to build the physical side of things. Well, most of it anyways. The rest, you can extrapolate for yourselves.
As mentioned in earlier posts on the subject, it is based on the Arduino IDE, although there’s no actual Arduino inside. The heart of it is a repurposed Serial LCD Kit from SparkFun. It just happens to be a small footprint Arduino-compatible board designed to fit behind a 16×2 LCD display. (updated 1104.18)
Like it’s an Arduino without the Arduino, the network side of it is an Adafruit Ethernet Shield, only without the Adafruit ethernet shield part. That is, all the thoughts and purpose and intent from the Adafruit shield is there, but to save space I didn’t actually use her shield in the final product. Just the Wiznet module, hotglued to the inside of the enclosure. Oh but it is an Adafruit Arduino enclosure, so there you go!
Anyhow, babbling aside, here’s the source code! There’s some extra features I haven’t talked about yet, and some stuff that hasn’t been implemented yet in hardware. And it’s been shelved long enough that I’ve forgot how to use half the functions. And there’s no documentation, naturally.