Temperature sensor / weatherstation
9 Steps
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
 1-40 of 87 Next »
deadbrain says: May 10, 2013. 4:23 AM
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...

shikilee says: Apr 22, 2013. 9:47 PM
Hi all, can anyone sent me the link of tempsensor-0.1.tar.gz ?
bogaskilop says: Mar 6, 2013. 12:03 AM
hello all

rfa.ak47 says: Nov 19, 2012. 12:04 AM
Cool! Excellent instruction.
alantch says: Aug 1, 2012. 10:53 PM
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?
gadragon says: Dec 12, 2011. 8:29 AM
Can i use 1N5819 instead of 1N5818?
humall says: Nov 4, 2011. 8:32 AM
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.
garacs says: Sep 23, 2011. 12:14 PM
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.
andy70707 says: Apr 17, 2011. 6:13 AM
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?
Wavy says: Mar 16, 2011. 11:13 PM
Great Instructable! Using a breadboard, everything worked out smoothly. I also used the MartyBugs' schematic to confirm the setup. Very nice and fun, thanks!
titan44 says: Aug 28, 2009. 8:19 PM
Is it possible to make this work with a db25 instead of a db9?
Brafferton says: Jan 27, 2011. 10:35 AM
Db25:
Pin 2 Transmit
Pin 7 Ground
Pin 20 DTR (if using non-parasitic)
mattccc says: Nov 18, 2009. 9:53 AM
(removed by author or community request)
Brafferton says: Jan 27, 2011. 10:28 AM
The 18S20 is a 1 wire serial device
Your printer port will only talk to parallel devices.
thermoelectric says: May 8, 2009. 9:09 PM
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....
Brafferton says: Jan 27, 2011. 10:27 AM
It's not physically working. Check all the components are correctly polarised (My goof was wiring the D"18S20 back to front)
darkcape says: Jul 6, 2009. 1:47 PM
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?
Brafferton says: Jan 27, 2011. 10:25 AM
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-Neutron says: Sep 5, 2010. 3:29 AM
you have to work in weather forcast
eng_islam_h says: Apr 10, 2010. 5:21 PM
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
salimi says: Jun 23, 2009. 9:38 PM
hi please write vb code for monitoring graph
thermoelectric says: May 22, 2009. 9:36 PM
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 bhp0528 says: Apr 30, 2009. 10:51 AM 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?
bhp0528 says: Apr 30, 2009. 10:58 AM
After looking at the site a little longer I found a number of different adapters (USB, Serial, etc). Has anyone tried these?

Solargoat says: Apr 4, 2009. 7:17 AM
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!
Solargoat says: Apr 4, 2009. 7:35 AM
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) says: Apr 4, 2009. 7:22 AM
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.
ax89 says: Nov 27, 2008. 9:17 PM
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.)
thermoelectric says: Mar 6, 2009. 12:47 AM
It will tell you how many sensors can be connected on the datasheet of the 1-wire sensor.
thermoelectric says: Mar 6, 2009. 12:46 AM
Hey, I'm back. I have been able to make it run on Windows but it can't dectect my interface, Is there a way to test what I have wired incorrectly?

BTW to get it to run on windows you need to
• find the digitemp.exe file in the digitemp file
• copy that to WINDOWS/system32
• Go into command prompt and type "digitemp", That will give you the syntax of the command
Hope I could help anyone that is trying to use it on Windows...
thermoelectric says: Feb 23, 2009. 12:57 PM
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) says: Feb 23, 2009. 1:09 PM
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...
thermoelectric says: Feb 24, 2009. 11:05 PM
By the way, Why do you reccommend using CAT5 cable over telephone cable?
chr (author) says: Feb 25, 2009. 2:43 AM
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.
thermoelectric says: Feb 25, 2009. 12:57 PM
Issues? What was happening with the telephone wire to cause major issues?
thermoelectric says: Feb 23, 2009. 1:33 PM
Oh, Thanks anyway, I might just have to try the alternate install of Ubuntu (128mb RAM)
thermoelectric says: Feb 25, 2009. 11:43 PM
That is a definite thing i'm going to have to do since I can't get it to work in windows....
thermoelectric says: Mar 6, 2009. 12:46 AM
Scratch that :-)
BCHurricane89 says: Aug 31, 2008. 2:52 PM
looks good, nice job. just wondering, because someone asked before, and I have the same question, but it wasnt answered: Can i use a DS18S20+ sensor? the DS1820 is discontinued, and I can get the DS18S20+ free, as a sample. :) plz respond, THANKS!
chr (author) says: Feb 23, 2009. 1:12 PM
I think any DS18*20* would work. try googling the digitemp documentation..
 1-40 of 87 Next »