Introduction: Phone Jack Thermometers
Climate sensor network for home, using unused telephone wires.
The system uses an Arduino board (~$30) and special sensors that are able to take measurements and report the data without additional hardware. This is done using a MicroLan or "One wire" network. It allows many sensors to be connected using one data line an a ground wire.
Old household telephone cables have 4 wires, only 2 of which are usually used, so you should be able to use the other 2 wires to communicate with the sensors, this allows you to have cheap sensors that plug into the phone jacks and send the data to an Arduino board plugged into another phone jack.
The Temperature sensors cost about $4USD. Humidity sensors are also available.
I was unable to get this to work in my house, I think this was because of the phone wires (we broke some when we removed the wallpaper), so I was not able to get the full system to work. I am posting an outline of the system, hopefully someone will find this interesting or useful.
Arduino UNO R3 board with DIP ATmega328P
DS18B20 Wire Digital Temperature Sensor IC
Step 1: Wire the Sensor
This sensor takes the temperature and can communicate it through a MicroLan or "One Wire" network. It can communicate and draw power from one communication wire and one ground wire.
I used a surface mount version because I had one on hand. There is a through hole version that is easier to work with.
The data sheet is here;
You can buy it here for $4.25:
Step 2: Connect to Phone Cable
Typical (old) telephone cables have 4 wires. This supports 2 telephone lines. Line one uses the Green and Red wires. If you have a land line with one telephone number, then it is probably using these wires. The Black and Yellow lines wires are left for a second telephone number, I've wired the temperature sensor to the yellow and black wires.
Step 3: Wire to Arduino
Here is the wiring to and Arduino board.
From the sensor: Ground and Vdd both go to the Arduino Ground. DQ goes to digital pin 10. A resistor goes from pin 10 to 5V.
Step 4: Program the Arduino
There is Arduino code readily available for this sensor.
You can get it here:
Also you need this library:
Step 5: Test It Out
I have one telephone cable wired to the Arduino, and another wired to the sensor. When I connect these with a connector, the Arduino is able to read the temperature and output the info to a USB port.
Step 6: Try It With the Wires You Already Have in the Wall
The same network should work even with a long wire, such as the ones in the walls. Unfortunelty it turned out that telephone wires in my house are all messed up.
Step 7: Fix the Wires - Outside and Inside the House
I found two junctions where there were many cut or broken wires. The first was outside, where the regular telephone lines used to come into the house. The second was in a bedroom where several lines met behind one regular phone jack.
Every phone jack had its own cable, that ran to two grey boxes on the side of the house. All the cables had been cut, some in multiple spots. I used a wire nuts to connect all the black wires to each other, and all the yellow wires.
Inside the house the house, I took off all the phone jacks and reconnected the wires has needed. In one spot 3 cables came together behind one jack. Several wires had to be reconnected.
Step 8: Success!
With the wires fixed, everything worked.
I have thermometers (4$ each) plugged into 3 unused phone jacks, in different rooms. At another jack I have an Arduino streaming the data to a laptop.
I am just using the example program included in the One Wire library. It shows the address of each chip, the raw data, and the temperature in C and F.
Step 9: Now What....
The next step is to store and display the data in a useful way. I plan to use Processing for this, but I have not done it yet. It is nice to know that the idea works.
Step 10: Plot
This shows the readings from 3 thermometers in different rooms. Temperature in is deg-F
I am not sure of the timescale -- this is either 30 min (until the screen saver came on) or 3 days.....
Runner Up in the
SciStarter Citizen Science Contest