If you have a dual-stage furnace or a heat-pump system, or if you find additional or different
wire colors, you’ll need to do more research into
your installation. The basic control scheme will be
the same as described here, but the logic may be
more complicated and include restrictions.
NOTE
5V
SCL
SDA
GND
this would give coarser time resolution.
To carry the I/O expander, relay circuits,
and RTC, I built an Expander Board (Figures
A and B), and used screw terminals for all the
external connections.
Of course, a thermostat needs a temperature sensor. I used a Sensirion SHT11 2-wire
combination thermometer and humidistat
connected to Arduino digital I/O pins 2 and 3.
You can mount this on the Expander Board,
but I left it dangling on wire leads for better
mounting in the project box (Figure C).
Instead of using separate cables to connect
power and Ethernet from my DC transformer
and router to the thermostat, I used a Power
over Ethernet (PoE) cable set that “injects”
both into one CAT5 Ethernet cable, then splits
them back apart at the other end.
SDA
SCL
GND
5V
RTC
Screen contrast (VO)
I2C Expander
Screen backlights
R
G
B
10K
W-Heat
HEAT
B
A
LOCAL CONTROL
The thermostat is controllable over the network, but 2 buttons and a small LCD also support local control, like a traditional thermostat. The buttons set the target temperature
up and down, and the screen displays the current setting. Figure D shows how these components connect, along with the Arduino and
Expander Board. You can omit the buttons
and screen to make the project simpler, and
for any programming, such as time-based
control, you’ll use the network interface.
For the screen, I used a 16×2-character LCD
and followed Adafruit’s great tutorial on how
to control these with an Arduino ( ladyada.net/
learn/lcd/ charlcd.html). My only deviation
was moving the Arduino digital pin connections from pins 7–12 to pins 4–9, because the
Ethernet Shield needs pins 10–13. To prepare
the LCD board, solder long wires onto its back
for each connection needed (Figure E), and
mount the separate screen contrast trimpot
on the Expander Board.
1.2K R or Rh
COOL
Y-Cool
R or Rc 1.2K
C
CONSTRUCTION AND INSTALLATION
Cut a plywood mounting plate to fit your
box, then drill and screw-mount it inside, and
mount the Arduino using #4-40 hardware
and spacers (Figure F). This project fits tightly
56 Make: makezine.com/30