USB Temperatures Integrated with Motion Webcams

After some damn hot days 3-4 weeks back I wanted to know exactly how hot it was both inside our house and in the Mancave/shed. I found this webpage and bought way more 1-Wire  sensors than  needed. All up I bought 10 DS18S20’s, 9 ttl to USB convertors, 5 water proof probes (DS18S20’s  included) and 2 RS-323 serial probes (DS18S20’s  included).

I have 2 low powered Open-WRT devices that now have sensors connected to them via USB to TTL convertors – a wireless router and a HP T5510, both have a squeezeslave client and a security webcam.

Project Summary

The program used to retrieve the temperatures from the sensors is Digitemp, the output is then piped to a file on the server via NFS share. From there it gets picked up by Collectd and graphed. Another cron job sends the temperatures to Motion.

  • Solder a chip to the TTL convertor (described here) and plug it into the PC/router – you may also have to download the driver for the USB convertor like I did.
  • Type lsusb (lsbutils or similar is required) or dmesg, look for the convertor chipset name, then check available packages to see if you can download it easily. Example; opkg list|grep  <chipset>, or maybe “aptitude search <chipset>” – depending on your OS of choice.
  • Setup a share between the device and server if it’s not being saved to the same device. I used NFS, because it was already setup.
  • Install and configure digitemp – available through most package managers. Followed most of this guide to setup the conf and cron job. Not all of it is required to output to a simple text file.
  • Setup Collectd to use the output file as a source of information:


<Plugin exec>
Exec nobody “/etc/collectd/”



sleep “$INTERVAL”; do
VALUE1=`/usr/bin/tail -n 1 /home/public/data/temperatures/mancave`
echo “PUTVAL dcerouter/HouseTemps/temperature-House interval=$INTERVAL N:$VALUE0”
echo “PUTVAL dcerouter/HouseTemps/temperature-Shed  interval=$INTERVAL N:$VALUE1”

  • Create cron job to add temperatures to Motion images


CONDITIONS=`cat /home/public/data/temperatures/mancave`
/usr/bin/wget –delete-after “ Temp – $CONDITIONS c”
CONDITIONS=`cat /home/public/data/temperatures/496`
/usr/bin/wget –delete-after “ Temp – $CONDITIONS c”

And now the results!

The webcam images below are from the kitchen and mancave, you can see the current temp (sampled in 5 minute increments) at the bottom left of each. The graph shows a history of the temperatures. This setup would be great for cool rooms, server rooms, and any other environment controlled room or container.



2 thoughts on “USB Temperatures Integrated with Motion Webcams

  1. Hi,
    Very nice article.I have installed digitemp and one DS18s20 via USB to serial. But I would like to help me with installing collectd on WR703N and saving data on the temp folder on the same device + collectd temps to be accessible via simple web page..

    • Is it possible to move the data to a different device? Collectd can use a fair chunk of processing for rendering the graphs. Maybe keep the data on the wr703n but run collectd on a different PC?
      Sorry for the delay.

Leave a Reply

Your email address will not be published. Required fields are marked *