AHT10 I2C Temperature & Humidity Sensor
A tiny I2C sensor that packs temperature and humidity sensing into the smallest footprint possible.
A compact I2C temperature/humidity sensor that replaced the DHT11/DHT22 in many designs thanks to its digital calibration and low power draw.
Specifications
| Supply voltage | 2.2V–5.5V (breakout modules commonly run at 3.3V or 5V via onboard regulation) |
| Operating current | ~0.25 mA during measurement, <0.01 mA average in idle/standby |
| Humidity range | 0-100% RH |
| Humidity accuracy | ±2% RH (typical, 0-100% range) |
| Temperature range | -40°C to +85°C |
| Temperature accuracy | ±0.3°C (typical) |
| Resolution | 0.024% RH, 0.01°C |
| Interface | I2C, up to 400kHz (Fast mode) |
| I2C address | 0x38 (fixed, not configurable) |
| Response time | ~8 seconds to 63% of a step change |
Pinout
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power, 2.2–5.5V DC depending on breakout |
| 2 | GND | Ground |
| 3 | SCL | I2C clock line |
| 4 | SDA | I2C data line |
Fixed I2C address — the AHT10 has no address-select pin, so its 0x38 address cannot be changed. If your project needs two AHT10s on one bus, you'll need an I2C multiplexer (e.g. TCA9548A) rather than an address pin trick.
Pull-up resistors — most breakout boards already include their own 10kΩ pull-ups on SDA/SCL. If you're combining several I2C breakouts on one bus, having pull-ups on every single board isn't harmful but is redundant — it just lowers the effective resistance a bit. It only becomes a real problem with many boards stacked at once.
Initialization matters — unlike the DHT11/22, the AHT10 expects a specific init sequence after power-up (a calibration-enable command, typically 0xE1 0x08 0x00) before its first reading is trustworthy. Most libraries (Adafruit_AHTX0, etc.) handle this automatically — if you're talking to it with raw Wire.h calls, check the datasheet command table first.
Check the calibration bit — each status byte returned by the sensor includes a "calibrated" flag. Skip acting on the very first reading after power-up until that bit is set, or you risk reading pre-calibration noise as valid data.
Variants
The AHT10 is the safe default for most builds and has the largest base of example code. If you're starting a new design from scratch, the AHT20 is worth the small price bump for better accuracy and a faster response — it uses the exact same I2C address and library calls, so swapping later requires no code changes either way.
| Variant | Temp range | Hum range | Accuracy | Protocol | Price |
|---|---|---|---|---|---|
| AHT10 | ~$1-3 | ||||
| AHT20 | ~$2-4 | ||||
| AHT21 | ~$2-4 | ||||
| DHT22 | ~$3-5 |