Arduino (Nanode) Internet Thermostat alpha-version

It’s been getting cold lately, here in Holland. This is the first winter I have actual control over the central heating in my home. It’s also the first time I have to pay for the energy costs myself. To save myself some cash, live more comfortably and save the environment, I wanted a good thermostat. Thermostat 2.0, you could say.
It had to be controllable over the internet. It should document historical values, for greater insight. Nest does exactly that. It’s a great product. But, it’s $250. And not yet available, even in the US. And I’m freezing when I get home.

So I had to build one myself. Below is the first alpha-stage prototype, running a test. It’s based on the great Arduino platform, incarnated as a nanode. On top is a Grove-shield from Seeed studio for easy prototyping, with a relay that controls heating. (During the test, the relay is the heating element itself.) Wired into a breadboard is a DS18B20 OneWire digital temperature sensor.

20111121-174004.jpg

 

And a sample from my Pachube feed:

Sample of temperature

 

 

 

 

 

 

Notice the temperature bouncing around, but being relatively stable around 22 degrees Celcius. I’m curious to see if this will also be the case when I hook it up to my central heating. There’s still a lot to be done before I can actually call this an “Open Source Nest”, but for me the basic functions are here.

I can now adjust the temperature of my home about half an hour before I get home! I will post my findings after actually using it for a while.

Here is some basic info about the sketch:

Nanode + Pachube + DS18B20 temperature sensor + relay = internet controlled thermostat

Code relies heavily on the following arduino sketches:
EtherShield ENC ReadPachube example
PacubeV3_WithoutNode by WickedDevice
The Dallas Temperature library and its examples

Features:
DHCP
DNS
Onewire temp sensing

Todo:
PID control
Local Override
Failsafe (no connection, weird data, …)
Neater temperature getting from pachube (“Z,”)
Pachube normal temperatures (no *100; floats instead)
Timing (programming) (better yet: self programming)

Scheme:
Nanode or Arduino with ENC ethernet shield
Relay on pin 5
OneWire temp sensor (DS18B20) on pin 4

Download the sketch

 




Like this? You might be interested in my latest project. It's a desk light made completely from a single sheet of printed circuit board. Check it out:


vlak-1

One thought on “Arduino (Nanode) Internet Thermostat alpha-version

  1. Pingback: Using Adaboot bootloader with modern Arduino | Gregor van Egdom

Leave a Reply

Your email address will not be published. Required fields are marked *