I2CChip.com: Easy 24 Channel Temperature Logger

Contents Want a fast, easy and cheap way to log lots of temperatures?

Need something cheap enough to leave permanently running?

Cheap temperature sensor IC's and an I2C-2-PC adaptor makes a 24 Channel logger with 0.06 degC resolution, for about $100!

See our more recent app note on using ADUM1034 External Diode Temp sensor IC

A host of manufacturers make I2C Bus temperature sensors commonly used in PC applications. These are cheap, less than 1USD

The I2C-2-PC adaptor has 3 I2C bus ports and up to 8 sensors can be connected to each bus. Thus a 24 Channel logger can easily be constructed.


The most common type is the LM75 which was a 9 bit temperature sensor. Later IC's (LM76, DS75, TMP100) have up to 12 bits of resolution, and all have essentially the same register configuration. The base address is 0x90. Virtually every manufacturer has a simlar SMBus temperature sensor. There are several variations on the theme between the various IC's

TI's TMP100 has resolution of 0.0625 degC, and 8 subaddresses in an SOT23-6 package.

Mnfr IC
National LM75
Dallas DS75

I2C vs 1-Wire Sensors

As well as the I2C/SMBus devices, Dallas make popular 1-wire devices. (The I2C-2-PC can also read these).

These seem to have the advantage that they can be connected together, and do not need to have addresses individually on thier pins.

In practice however, this means that you don't know which IC is which. To find out, you have to read the ID out of each separately, and label them, before fixing them into position.

With SMBus IC's, you can know which device is where by the number on its pins. Then there is the matter of cost....

In some situations the Dallas sensors are ideal. If this is what you need look at the BL233 datasheet for more information about using 1-wire devices.


We have to write one line to the each chip to initialise it, and another to read the temperature.

First we write to the configuration register in the chip to select 12 bit mode. This needs to be done once.

S 90 01 60 W 00 P
[Start][Address 0x90][point to config register][set config for max resolution][move pointer to temperature register]

Then we can just read a 2 byte temperature.

To read the 2 byte temperature:
S 91 02 P
[start][read 0x90][2 bytes][stop] [replies with 2 bytes eg 0x1910 = 25.0625C]

To make a 24 Channel logger we just have to do this for 8 IC addresses 0x90-0x9E and 3 I2C buses.

Using Realterm

To make this easy, and able to work with any plotting software at all, we will use Realterms command line.

First we make the initialisation command file, with a line for each of the 24 sensors.

Then we make a read command file with the read command for each of the 24 sensors.

Now we call realterm to send the initialisation once:

realterm.exe capture=temp_data.dat sendquit=temperature_logger_init.txt

and call it again to send the read commands every second.

realterm.exe capture=temp_data.dat senddly=1000 sendfile=temperature_logger_read.txt

Back to Top
Back to Home

School Project

If you really want to do it cheaply, why not buy the bare BL233 IC's and build it yourself? A basic RS232 temperature logger uses USD10 parts.

Back to Top
Back to Home

Contact Information

Phone +64 21 623-402

Back to Top

Comments and Suggestions

Please send us mail telling us what you think about this page and how we might improve it.

Back to Top