← 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| Pin | Name | Functions | Notes |
|---|---|---|---|
| 1 | SCL | I2CSPI | Serial clock |
| 2 | GND | GND | Ground |
| 3 | ALERT | GPIO | Overtemperature alert. Open-drain output; requires a pullup resistor. |
| 4 | ADD0 | GPIO | Address select. Connect to GND or V+ |
| 5 | V+ | POWER | Supply voltage, 1.4 V to 3.6 V |
| 6 | SDA | 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
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| V+ | +3V3 | 3V3 | 1.4-3.6 V part - do NOT use 5 V |
| GND | GND | GND | |
| SCL | A5/SCL | GPIO22 | I2C clock |
| SDA | A4/SDA | GPIO21 | I2C data |
| ADD0 | GND | GND | Address select -> 0x48 |
Typical uses
- Low-power digital temperature
- Board / battery temperature monitoring