← All parts

TMP102 Digital Temp Sensor

TMP102

Texas Instrumentssensor environment

TMP102 is a digital temperature sensor with SMBus, two-wire, and I2C interface compatibility, designed for portable electronics and power-supply temperature monitoring.

In stock

Specifications

8
Operating Voltage
1.4V to 3.6V
Supply Current
7.5µA (active), 0.35µA (shutdown) (max)
Interface
I2C, SMBus, two-wire
Resolution
12 bits
Range
-40°C to 125°C
Accuracy
±0.5°C (25°C to 85°C), ±1°C (-40°C to 125°C) (max)
Temperature Range
-55°C to 150°C
Package
SOT563 (1.6mm × 1.6mm)

Pinout

6
PinNameFunctionsNotes
1SCL
I2CSPI
Serial clock
2GND
GND
Ground
3ALERT
GPIO
Overtemperature alert. Open-drain output; requires a pullup resistor.
4ADD0
GPIO
Address select. Connect to GND or V+
5V+
POWER
Supply voltage, 1.4 V to 3.6 V
6SDA
I2CSPI
Serial data. Open-drain output; requires a pullup resistor.

Interactive pinout

Highlight:
TMP102

Click a pin to copy its name · tap a tag above to spotlight a bus.

Starter code

Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.

Arduino (C++)

arduino
// TMP102 I2C temperature sensor — community starter example
// No library needed: read the 12-bit temperature register (0x00).
#include <Wire.h>

const byte ADDR = 0x48;   // ADD0 -> GND

float readTempC() {
  Wire.beginTransmission(ADDR);
  Wire.write(0x00);                 // temperature register
  Wire.endTransmission();
  Wire.requestFrom(ADDR, (byte)2);
  int raw = (Wire.read() << 4) | (Wire.read() >> 4);   // 12-bit
  return raw * 0.0625;
}

void setup() {
  Serial.begin(115200);
  Wire.begin();
}

void loop() {
  Serial.print(readTempC()); Serial.println(" C");
  delay(1000);
}

MicroPython

python
# TMP102 (ESP32) — community starter example
# No driver needed: read the 12-bit temp register
from machine import Pin, I2C
import time

i2c = I2C(0, scl=Pin(22), sda=Pin(21))
ADDR = 0x48

while True:
    d = i2c.readfrom_mem(ADDR, 0x00, 2)
    raw = (d[0] << 4) | (d[1] >> 4)
    print(raw * 0.0625, "C")
    time.sleep(1)

Wiring

PinArduino Uno R3ESP32 DevKitC (WROOM-32)Notes
V++3V33V31.4-3.6 V part - do NOT use 5 V
GNDGNDGND
SCLA5/SCLGPIO22I2C clock
SDAA4/SDAGPIO21I2C data
ADD0GNDGNDAddress select -> 0x48

Typical uses

  • Low-power digital temperature
  • Board / battery temperature monitoring

Related parts

6