2014 Reading Temperature from TMP102 (Temperature Sensor) using Raspberry Pi Author: Praveen Kumar R #9/3,Shree Lakshmi complex,2nd Floor,Opp,To Vivekananda Park,Girinagar,Bangalore-560085.www.tenettech.com Introduction: The TMP102 temperature sensor breakout from Sparkfun is an easy to use thermometer that connects via I2C. This quick example shows how to use a TMP102 with Raspberry Pi and some simple Python code to get the current temperature. Step 1: Prerequisites Run the following commands to install required packages: sudo apt-get update sudo apt-get upgrade sudo apt-get install i2c-tools sudo apt-get install python-smbus Step 2: Enabling I2c device in Raspberry Pi. Pi is ready to go with I2C as far as enabling the hardware goes. You will need to open LX Terminal and enter the following command: sudo nano /etc/modules And add these two lines to the end of the file: i2c-bcm2708 i2c-dev #9/3,Shree Lakshmi complex,2nd Floor,Opp,To Vivekananda Park,Girinagar,Bangalore-560085.www.tenettech.com Step 3: Depending on your distribution, you may also have to edit a file which comes under sudo nano /etc/modprobe.d/raspi-blacklist.conf blacklist spi-bcm2708 blacklist i2c-bcm2708 Edit and comment the above two lines by putting a “#” infront of them #blacklist spi-bcm2708 #blacklist i2c-bcm2708 Step 4: Now add a new user to the i2c group: sudo adduser pi i2c #9/3,Shree Lakshmi complex,2nd Floor,Opp,To Vivekananda Park,Girinagar,Bangalore-560085.www.tenettech.com Step 5: Reboot the machine by sudo reboot sudo reboot Step 6: Connections: (GPIO.BOARDSetmode) TMP102 Raspberry Pi GND PIN 6 SCL PIN 5 SDA PIN3 V+ 3.3v ADD0 GND(PIN 9) When connected as above, the TMP102 uses the I2C address 0x48. To confirm this, run the following at the command line: sudo i2cdetect -y 1 #9/3,Shree Lakshmi complex,2nd Floor,Opp,To Vivekananda Park,Girinagar,Bangalore-560085.www.tenettech.com The resulting diagram should show the device at 0x48 by printing 48 in the corresponding cell. Code import smbus import time bus = smbus.SMBus(1) data = bus.read_i2c_block_data(0x48, 0) msb = data[0] lsb = data[1] print (((msb << 8) | lsb) >> 4) * 0.0625 #printing the temperature value in Celsius. #9/3,Shree Lakshmi complex,2nd Floor,Opp,To Vivekananda Park,Girinagar,Bangalore-560085.www.tenettech.com Execution of the code: sudo python tmp102.py Training Daily and weekly Deals Youtube channel For queries: [email protected] Contact: 080-26722726 #9/3,Shree Lakshmi complex,2nd Floor,Opp,To Vivekananda Park,Girinagar,Bangalore-560085.www.tenettech.com
© Copyright 2026 Paperzz