# Temperature sensor / weatherstation

Create a weatherstation or temperature monitor using the very cool digital temperature sensor DS1820.

I use this setup to monitor a server room, and as a weatherstation.

This project consists of:

• A Dallas 1-Wire bus network
• Interface between RS-232 and the Dallas 1-Wire system
• Digital temperature sensors connected to the Dallas 1-Wire bus (DS1820/DS18s20)
• Software setup to gather and graph temperatures

Updated 2007-11-18 to include automatic graphing scripts and pictures of real life implementations of this system.
Remove these ads by Signing Up

## Step 2: Build the RS232 interface

I like to build the 1-Wire busmaster so small that it can just sit in the back of the computer in the rs232 port.

Step 1)
Figure out how small you can make it.
Put all the components on a perfbaord. Place them with the circuit in mind. We don't want to add any wires to the bottom of the circuit! Se image.

Step 2)
Cut out the right size perfboard.
Just drag a sharp knife a few times over the row of holes where you want to cut.
Do this on both sides, then just break it in two. It usually breaks at the fault line you created.

3)
Solder the components in place. and connect the solder points to complete the circuit.
awilliams1021 month ago

Where can i find the trmpsensor-0.1.tar.gz file?

makerghost2 months ago
Cool Stuff! I made the device and used a USB to serial adapter. changed tty0 to ttyUSB0 and all worked perfectly. Now the charts. I am unable to get the files to be able to complete the charts. can any one help? I am currently running a cron job with some scripts to change the data to CSV type file to be able to chart the data using other software.
humall9 months ago
Same here, just need the tempsensor tar file, can someone send it to me, thanks in advance.
hi,
anyone would be nice enough to send me the tempsensor-0.1.tar.gz file ?
it seems that the file is unavailable since Mar, 6...

shikilee10 months ago
Hi all, can anyone sent me the link of tempsensor-0.1.tar.gz ?
hello all

rfa.ak471 year ago
Cool! Excellent instruction.
alantch1 year ago
I just finished making one of these, but will not be able to test it out until I receive my sensors. In the meantime, I'm getting a voltage of 5.75V between GND and DQ. Would this be too high as I read that the DS18S20's operating voltage range is 3.3-5.5V?
Can i use 1N5819 instead of 1N5818?
humall2 years ago
I have little experience with soldering so I made a breadboard version of the circuit, see pdf file I added, I used Ubuntu for Digitemp and everything works fine, rrd-tool and web server setup. Tried to use Windows version of Digitemp, did not work. Thanks for making this instructable, it showed me how to use 1-wire bus.
garacs2 years ago
This is EXACTLY what I am looking for, but unfortunately it uses DALLAS DS1820 sensors, I do not have handy at the moment.

Would this also work with a LM35DZ? If so, what would be the differences in the scheme?

BTW, great instructable.
andy707072 years ago
Will this interface work with other 1-wire devices such as iButtons? And can it do bi-directional serial (read+write) or just simply reading from the device?
Wavy2 years ago
Great Instructable! Using a breadboard, everything worked out smoothly. I also used the MartyBugs' schematic to confirm the setup. Very nice and fun, thanks!
titan444 years ago
Is it possible to make this work with a db25 instead of a db9?
3 years ago
Db25:
Pin 2 Transmit
Pin 7 Ground
Pin 20 DTR (if using non-parasitic)
mattccc4 years ago
(removed by author or community request)
3 years ago
The 18S20 is a 1 wire serial device
Your printer port will only talk to parallel devices.
thermoelectric4 years ago
I tried this on Linux (Ubuntu) and when I typed this into the terminal "digitemp -s /dev/ttyS0 -i" i get this

"DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers

Searching the 1-Wire LAN"

Problem is it doesn't show any sensors....
3 years ago
It's not physically working. Check all the components are correctly polarised (My goof was wiring the D"18S20 back to front)
darkcape4 years ago
Loving this I have wanted to do this ever since reading about it in the linux toys book. on question I have though what is the maximum number of sensors that the 1 wire network can handle?
3 years ago
Depends on whether it's in parasitic mode or non parasitic. From the number of components used, I'd say it in parasitic mode. Therefore, no more than 3.
In non-parasitic mode (2 more components required) 10 or 12 would be quite happy. With a separate 5 volt PSU, several thousand.
Waren-Neutron3 years ago
you have to work in weather forcast
eng_islam_h3 years ago
thats really great,i've done it and it works really fine with the 1 wire driver from maxim, now i'm trying to read the data in LabView and i'm really close
great job
thanks
salimi4 years ago
hi please write vb code for monitoring graph
thermoelectric4 years ago
I don't know if I have done it right, but when I try to run the logdata script manually I get a error. What do you suggest? beau@beau-desktop:~$php /etc/tempsensor/graphdata.php ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory ERROR: opening '/var/log/digitemp_rrd/0.rrd': No such file or directory Warning: fopen(/var/www/temperature/index.html): failed to open stream: Permission denied in /etc/tempsensor/graphdata.php on line 75 Warning: fwrite(): supplied argument is not a valid stream resource in /etc/tempsensor/graphdata.php on line 76 Warning: fclose(): supplied argument is not a valid stream resource in /etc/tempsensor/graphdata.php on line 77 Warning: fopen(/var/www/temperature/index_0.html): failed to open stream: Permission denied in /etc/tempsensor/graphdata.php on line 102 Warning: fwrite(): supplied argument is not a valid stream resource in /etc/tempsensor/graphdata.php on line 103 Warning: fclose(): supplied argument is not a valid stream resource in /etc/tempsensor/graphdata.php on line 104 Warning: fopen(/var/www/temperature/index_all.html): failed to open stream: Permission denied in /etc/tempsensor/graphdata.php on line 102 Warning: fwrite(): supplied argument is not a valid stream resource in /etc/tempsensor/graphdata.php on line 103 Warning: fclose(): supplied argument is not a valid stream resource in /etc/tempsensor/graphdata.php on line 104 bhp05284 years ago I'm a little shy (actually lazy) when it comes to circuit boards and solder. I noticed a similar tutorial was using a http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2982 to interface from serial to RJ-45. Looking at the documentation it appears this would do the same as your diodes and soldering and give you a RJ-45 to boot. The site appears to spec the device for$21. Any idea how that would compare to soldering diodes in price and functionality?
4 years ago
After looking at the site a little longer I found a number of different adapters (USB, Serial, etc). Has anyone tried these?

Solargoat4 years ago
I built it, but having zero electronics experience, and not much software experience, I am not sure if it works. After downloading various programs to read it, including 1-WireViewer, Lampomittari, and I can't seem to get it to recognize my interface. I guess it is a hardware problem in how I constructed it. What can I do to troubleshoot this device with a multimeter? What is the proper voltage that should be coming out of my serial port on my Dell Latitude D620 notebook? I am getting 4.98 Volts now. If someone could get me started, I would be eternally grateful!
4 years ago
That was a quick reply! I have an iMac and a Gigaware USB-serial converter. I guess I'll try that, but now that will introduce its own issues with software.
chr (author)  Solargoat4 years ago
Some notebooks don't output the full RS232 voltage of +/- 12-ish volts. Try the device on a desktop computer first to figure out if the voltage level is causing the problem.
ax895 years ago
Very neat! How many sensors can you hook up? (I apologize if this was asked and answered but I didn't see it when I read through.)
5 years ago
It will tell you how many sensors can be connected on the datasheet of the 1-wire sensor.
thermoelectric5 years ago
Wow, After attempting to make the interface, I can safely say that you are GREAT at using protoboards.

Do you know how I can use this on windows?
I have tried what you said below but it doesn't work, What does the digitemp -aq > c:\path\to\webserver\root\temperature.txt mean?
chr (author)  thermoelectric5 years ago
Thanks, -a means aquire, -q means quiet the "> file" means put the output into this file I don't know if this is the right syntax in windows. I don't know anything about windows, so I can't help you there...
5 years ago
Oh, Thanks anyway, I might just have to try the alternate install of Ubuntu (128mb RAM)
5 years ago
That is a definite thing i'm going to have to do since I can't get it to work in windows....
5 years ago
Scratch that :-)
5 years ago
By the way, Why do you reccommend using CAT5 cable over telephone cable?
chr (author)  thermoelectric5 years ago
I had some major issues when using telephone cable. I have an installation using cat5 with about 50 meters of cable, and that one works just fine.
5 years ago
Issues? What was happening with the telephone wire to cause major issues?