The SHT31 temperature sensors
Typical current
150µA (active)
Price
Medium
Maximum precision
±0,3 °K
Measurement range (°C)
−40 / +125
Resolution
16 bits
Power supply voltage
2,4→5,5V
Sampling rate
1 to 10Hz
I²C Address
0x44
The SHT31 is an integrated digital temperature and humidity sensor developed by Sensirion (Switzerland).
It succeeds the SHT21 and SHT15, offering improved accuracy, long-term stability, and immunity to contaminants (thanks to its optional protective coating).
It is a preferred component for all ambient measurement applications where reliability and calibration are essential.
The SHT31 uses two internal sensing elements:
- an integrated temperature measurement diode (for compensation calculation),
- a capacitive humidity sensor whose dielectric constant varies with moisture content.
These two measurements are converted into digital values via a 16-bit ADC and transmitted via I²C.
The conversion equations are standardized by Sensirion:

where S_T and S_RH are the raw values read (16 bits).
| Raw measurement (hex) | Temperature (°C) | Humidity (%) |
| 0x0000 | −45,0 | 0,0 |
| 0x8000 | +42,5 | 50,0 |
| 0xFFFF | +130,0 | 100,0 |
💡 The output is linear and factory calibrated — no additional correction needed.
+3.3V │ [SHT31] │ SDA ─────────┐ │ SCL ─────────┤── [I²C Microcontroller] │ ADDR (option) │ GND
💡 ADDR connected to GND → 0x44; to VCC → 0x45.
Two SHT31 sensors can coexist on the same bus.
🌤️ Connected weather stations
🧠 IoT and home automation systems
⚙️ Climate chambers and HVAC
🧪 Environmental instrumentation
🏭 Industrial humidity/temperature monitoring
Should I choose an SHT31 sensor?
Here are 3 strengths and 3 weaknesses to help you make your choice.
Strengths points
-
🎯 High precision double measurement
→ ±0.3 K in temperature and ±2% RH, factory calibrated. - 💨 Fast response time→ Complete measurements in less than 10 ms — ideal for dynamic applications.
-
🧱 Compact and protected case
→ Available with PTFE coating or hydrophobic protection filter. -
⚡ Stable digital calibration
→ Each sensor is individually calibrated with internal EEPROM coefficients.
Weak points
-
🌬️ Sensitivity to deposits and contaminants
→ Without protection, the sensor can drift in dusty or oily environments. -
📡 Interface only I²C
→ No SPI version — some industrial applications prefer the differential bus. -
💸 Cost higher than a simple temperature sensor
→ But justified by the dual measurement and the reliability of Sensirion.
Useful information
Here is some useful information regarding the SHT31 sensors.
| Command (hex) |
Mode | Description |
| 0x2400 | High repeatability, no clock stretching | Complete measurement (T + RH) |
| 0x240B | Medium repeatability | Less precise, faster |
| 0x2416 | Low repeatability | For energy savings |
| 0xE000 | Read status register | State reading |
| 0x30A2 | Soft reset | Software reset |
i2c_start(); i2c_write(0x44 << 1); i2c_write(0x24); i2c_write(0x00); delay(15); // Waiting for conversion i2c_start(); i2c_write((0x44 << 1) | 1); MSB_T = i2c_read_ack(); LSB_T = i2c_read_ack(); CRC_T = i2c_read_ack(); MSB_RH = i2c_read_ack(); LSB_RH = i2c_read_ack(); CRC_RH = i2c_read_nack(); i2c_stop(); S_T = (MSB_T << 8) | LSB_T; S_RH = (MSB_RH << 8) | LSB_RH; temp = -45 + (175.0 * S_T / 65535.0); rh = 100.0 * S_RH / 65535.0;
✅ Example:
S_T = 29,000 → T = 31.6 °C
S_RH = 36,000 → RH = 54.9 %
3.3V ───────────┐ │ [SHT31] │ SDA ───────┐ │ SCL ───────┤── MCU (Arduino, ESP32, STM32…) │ GND
💡 Provide pull-up resistors of 10 kΩ if not included on the module.
| Bit | Nom | Description |
| 15 | Alert pending | An alert is active |
| 11 | Heater | Internal heating activated |
| 4–0 | CRC status | CRC verification of data |
| Temperature (°C) | Error (K) | HR Error (%) |
| −40 | ±0,5 | ±3,0 |
| 0 | ±0,3 | ±2,0 |
| 50 | ±0,3 | ±2,0 |
| 100 | ±0,4 | ±3,0 |
💡 The SHT31 remains accurate even after hundreds of humidity cycles — its typical annual drift is <0.25% RH.