Picture of Raspberry Pi Temperature Logger
Here are the instructions to build a simple termperature logger using a $5.00 I2C temperature sensor.  The data is stored to the SD card and can be easily imported into excel.  Simply by changing or adding other sensors other types of data can also be collected.

The following components are used for this project:
Raspberry Pi (single board computer)
Temperature Sensor (SF-SEN-09418) 
Solderless Breadboard
Hookup Wires

The Zagros Raspberry Pi starter kit also includes everything needed for this project except the temperature sensor!
Remove these adsRemove these ads by Signing Up

Step 1: Wire up the Temperature Sensor

Picture of Wire up the Temperature Sensor
Make the following connections to the Raspberry Pi GPIO port.  The ADD0 connection to ground determines the device I2C address.  More than one sensor can be connected to the I2C bus, but they must each have a unique address.

              Sensor             RPi GPIO
                VCC                 +3.3V
                SDA                  SDA

                 SCL                  SCL
                GND                 GND

                ADD0               GND                  (note this sets the I2C device address)

                 ALT                 N/C


Step 2: Enable the I2C Bus

Picture of Enable the I2C Bus
First the I2C bus must be enabled.  By default the bus is disabled.  To do this, edit the configuration file /etc/modprobe.d/raspi-blacklist.conf

Use the command:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Now change the file contents from:

# blacklist spi and i2c by default (many users don't need them)

blacklist spi-bcm2708
blacklist i2c-bcm2708

To this:

# blacklist spi and i2c by default (many users don't need them)

blacklist spi-bcm2708
#blacklist i2c-bcm2708

Step 3: Set I2C Module to Load at Boot

Picture of Set I2C Module to Load at Boot
The I2C module should be set to load when the Raspberry Pi starts up.  Do this by editing the /etc/modules file.

The following command can be used to edit this file:

sudo nano /etc/modules

Add the following line to the end of the file:


emeyeraway7 days ago

Works great! But I want to connect TWO of these sensors. How do I change the address of the second one?

I like it. Thanks. I ran into a few different troubles and think I found the solutions Has anyone else had an issue with i2cdetect finding the file? I added these steps and it started working afterwards:

If you are running a recent Raspberry Pi (3.18 kernel or higher) you will also need to update the/boot/config.txt file. Edit it with sudo nano /boot/config.txt and add the text



  1. sudo nano /etc/modules

and add these two lines to the end of the file:

  1. i2c-bcm2708
  2. i2c-dev
firermans939 months ago

excuse me sir if i used thermocouple type k ,can it work using your method?? please reply as soon as possible.thx :D

cartiman11 months ago

How to set time, date and timezone in raspberry pi without RTC.

date in my raspberry pi is default, not date now

AoiRegion11 months ago

Thanks a very awesome tutorial, ZRob314
Could you show us how to write your logger record to online SQL database like in Windows Azure's Management Portal?

dnicol11 year ago
Hey i am also in Toronto. Very cool projects you have. Would you be i nterested In a paid project? Need something done right away.