1-Wire HVAC monitoring system for a residential Geothermal
After going to the trouble of designing and building an energy efficient house
with a variety of energy efficient HVAC
components, I wanted to validate my efforts. I wanted to
- Is the design working? If not, why not?
- How much energy is being expended to heat/cool the house to keep the
- Is there a better way to use the various heating and cooling elements to
increase efficiency or comfort?
- What would I do differently if I had the opportunity.
To answer any of these questions I needed a quantitative means of measuring the
performance of my various active and passive HVAC components. Since this
is essentially a thermodynamics problem, the first thing I had to do was to look
at the various heat flows in the system. I quickly realized that I needed to
measure a LOT of different temperatures because there are lots of different
active and passive heat transfers going on in the system. (See System
The conventional monitoring approach would be to install a bunch of analog
temperature sensors, and wire them to individual Analog-Input channels on a centralized, or
distributed, PC-based monitoring system. As my list of test points
escalated, and I realized that they were dispersed all around my house, I knew
that the conventional approach was going to be expensive, and somewhat
cumbersome. So I started researching other options. I soon
discovered the 1-Wire
network concept pioneered by Dallas
Semiconductor (A division of Maxim).
The 1-Wire concept is pretty unique. It revolves around the idea that just a
single pair of wires can be used to transmit power and data between a set of
cooperating network components. This is achieved by utilizing low-power
devices that can extract enough power from the data-line during the
"1" state of the line. (A great technical description of this
network can be located online).
My key interest in 1-Wire grew when I discovered that Dallas had a Temperature
that was accurate to +/- 1°F and only cost a few dollars. Woo-Hoo!!
This was fantastic because all I needed to connect my many devices, was a
single twisted-pair. Not only that, but since the sensors read and convert the temperature
locally, I didn't have to worry about signal noise on the sensor wires (as with
an analog sensor). I decided to use a single run of UTP (Unshielded
Twisted Pair) throughout my Equipment
Room, and when I needed a sensor in a remote location, I'd tap into an unused
pair of my Cat5 Ethernet network wiring (since I only use 100-BaseT, every cable
run has two unused twisted pairs), or some spare conductors in the existing
To read the Temperature Sensors, you just need an inexpensive ($35) Serial
Port adapter plugged into your PC. Since software is my game, I
quickly adapted an existing program to locate and read the DS18S20 devices, and
make the temperatures available to display, chart and log. Once I got the system up and running, I discovered a bunch of things that
needed to be tweaked, and even a few that needed to get the HVAC guys out to fix
(adding a check-valve and removing an expansion tank). Next I figured out
a way to get the live temperature data online so everyone can peek in on my
I started out with the software running on an old windows PC, but I soon
realized that I wanted a more robust "instant start" system that I
could depend on to keep running non-stop. Since I also had a
pie-in-the-sky idea of one day selling control systems, I wanted a more compact
and economical system. I searched around and located a neat family of
embedded computer board products manufactured by Z-World.
These boards are based on a highly integrated CPU called a "Rabbit"
processor. The boards also came with an embedded C compiler (called Dynamic
C) which provided native support for all the integrated peripherals,
including TCP/IP networking.
I quickly ported my existing C++ code to Dynamic C, and started having a
really FUN time with the Coyote
(BL2500) board I purchased from Z-World. The combination of the
built-in interfaces and the Multi-tasking capabilities of Dynamic C let me
integrate several cooperating processes. These include:
- A 6 Second Poll of all 34 1-wire temperature sensors.
- Once per minute Posts the live system data to this very website (watch
- Web Server presenting a web site to my home LAN for changing set-points and
displaying HVAC status.
- Continuously updating a 30" LED sign displaying zone temperatures
and other settings.
- Interrupt based pulse counting from a 193Hz WattNode power meter.
- On-Demand remote software downloads via the home LAN.
Check out the photos and descriptions below. Click on an
image for a larger picture.
||This is the temporary monitoring and logging
station. It's just an old Windows PC running my HVAC program. The
program is built using the Active Control Suite (ACS) software I wrote for
controlling underwater Remotely Operated Vehicles (ROV's).
The PC attaches to the 1-Wire network via an adapter on it's serial
link. The screen shows a diagram of the HVAC system with all the
temperature values. The PC also logs all the system values into a
text file once a minute. This file can be imported into Excel for
||Here's the original PC screen shot showing the local live
display. The graphic shows the geothermal ground loop, the domestic hot water
circuit, the 4 slab zones, and the ducted air path, complete with energy
The screen also depicts the house floor-plan with air temperature
Click on this image to see a more recent and detailed screen shot.
Note that the top graph shows air temps (color coded the same as the numeric values on the diagram). Likewise with the lower graph
showing water temps.
||Here's the new Monitoring and Control
The small white box houses the Coyote control board from Z-World.
Above it is an external relay board which I used to override the existing
thermostat relays distributed throughout the house and utility room.
To the left is the exiting zone control box for the radiant floor heat
system. This is where I tapped into the system.
The Coyote board performs many functions:
- Monitors all 34 1-wire temperature sensors.
- Posts the live data values online at this website (watch
- Serves up a web page to my home LAN for setting setpoints and
- Runs a 30" LED sign displaying zone temperatures
- Monitors a WattNode power meter.
- Permits remote software downloads via the house LAN
||This picture shows six (6) complete 1-Wire sensors ready to
Each sensor is actually the size of a plastic transistor (see the black
tip at the end of the yellow part). To enable them to be attached to
the main distribution line, I've soldered a pair of leads (one white, one
red) to the two active pins on each device, and then heat shrunk them for
strength. At the end of each wire, I've attached a
"Quick-Crimp" connector to enable me to snap them onto the main
distribution line without needing to strip and solder each
||This shot shows one sensor mounted to a copper pipe.
Click the image to see a wide shot of this part of the installation.
Note the way the sensor is simply crimped onto the main data network line.
After a quick analysis of the data, I've decided that I need to ensure
a better thermal contact with the pipe, so I'm looking for a good thermal
epoxy that I can use to anchor the sensor and provide more accurate
||Just another close-up to show the current mounting
Since these photos were taken, I've improved the thermal accuracy by
using a Thermal Epoxy to bond the sensors to the copper pipe (see image
below). This greatly improved the temperature accuracy and response
||This two part epoxy was used to bond the
sensors to the copper pipes. Since it is dispensed from the syringes,
you can mix small patches at a time. The 5 Min curing time enabled
me to do about 4-5 sensors at a time.
Notice the Website: www.arcticsilver.com
This epoxy is available from many online stores. Do a google
search to find the cheapest :)
|Here's two pics showing how I also added
temperature sensors to my existing thermostat locations. I just used
two spare wires to extend the 1-wire bus.
||Here's a look inside the enclosure I used for the Coyote
Embedded Computer. The CPU is in the center. This board has an
Ethernet link, analog and digital interfaces, real-time clock, 265K of
Flash memory and 128K of Static RAM.
The iButtonLink 1-wire interface adapter is the thin white rectangle to
the left. At the bottom are connectors for Power, Ethernet and Power
Monitoring. At the top are connectors for the 1-Wire link, Beta-Brite
sign, and Relay board.
||This is the Power Meter I have interfaced to my monitoring
system. It's made by Continental
Control Systems and it has an optically isolated pulse output that
I feed into an interrupt on the Coyote board.
This Pulse-Output WattNode
unit is one of several meters that CControlSys makes. They also have
a unit that attaches to a LonWorks Bus. My unit measures two phases
by using two current transformers and two voltage taps. I ordered a
high frequency output model so I could get good low power accuracy.
I have the unit tied into my Utility Room sub-panel.
© 2000-2012, Phil and Lisa's relaxed lifestyle home.
An exercise in Energy Smart, Not So Big living.
www.OurCoolHouse.com - Ideas@OurCoolHouse.com
This site is all about building a cool, energy efficient house,
that makes maximum use of earth sheltered design, passive solar heating and cooling,
geothermal exchange energy management, and right sizing of the house for it's designated use.
The home's placement is on a south-facing hillside in Deep Creek Lake, Maryland.
This site describes the design process, the technologies used and the expected results.
We also have a comprehensive Links Page for anyone who is also interested in designing a