Picture of Raspberry Pi Temperature Logger

Here are the instructions to build a simple temperature 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-11931)

Solderless Breadboard
Hookup Wires

The Zagros Raspberry Pi 2 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

First, solder header pins or lead wires on to the sensor. We used headers so it would be could simply plug the sensor into a breadboard.

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




ADD0 GND (note this sets the I2C device address)



Step 2: Enable the I2C Bus

Picture of Enable the I2C Bus

*** Newer version may not require this step. If the file doesn't exist, move on to the next step.

First the I2C bus must be enabled.

There are two ways to enable the I2C bus.

The first and easiest is to do it with the raspi-config utility.

Use the command sudo raspi-config to start the utility.

Select Advanced Option to enabled the bus.

The second, but more complex way is to do it manually.

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: Update the config.txt

Picture of Update the config.txt

Run the following command to update the config.txt

sudo nano /boot/config.txt

Add the following lines to the file:



emeyeraway2 months ago

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

shaneripley2 months ago

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
firermans9311 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

cartiman1 year ago

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

date in my raspberry pi is default, not date now

AoiRegion1 year 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.