Multi ple Therm ometer – A small AVR µController based datalogger to display and record the output from multiple DS18x20 thermometers.
This began as a simple monitor for a friend to keep track of the temperature of his bicycle dynamometer. It was envisioned as a device to grab the temperature information from a couple of Dallas Semiconductor DS18x20 1-Wire® Thermometers and send the information to a serial port of a laptop computer for logging and subsequent graphing and analysis. It evolved into what is presented here.
The current device, based on an Atmel AVRMega168 µController can monitor up to 16 DS18x20 thermometers, with a variable logging rate of 5 to 9999 seconds. The data is displayed on a multi-page LCD display for immediate viewing as well as being sent via RS232 at 19200 baud for recording. Data is time-stamped with an optional on-board 1-Wire real time clock.
The Development and Test Setup
Development work was done on an Atmel STK500 development board, using AVR Studio 4, and the AVR-GCC “C” programming environment plug-in. The development board, in the center of the photo, has common things like LEDs, switches, serial ports, and power regulators already on it so you can just concentrate writing your program.
At the top of the photo is an Atmel JTAGICE MkII for programming and debugging support. Critical timing analysis of the 1-Wire bus signals was accomplished with an Intronix Logicport 32-channel logic analyzer located in the lower left. The Logicport was instrumental in debugging the timing critical 1-Wire communication routines.
In this image, we see the 1-Wire attention signal containing a presence pulse, followed by four 0s and four 1s. That’s the 1-wire command to search the 1-wire bus for sensors.