SHT30, SHT31 and SHT35 are all members of Sensirion’s SHT3x digital temperature and humidity family, but they target different accuracy levels. For most ESP32 and Home Assistant projects, SHT31 is the best balance. SHT30 is the lower-cost option, while SHT35 is the premium version for applications where humidity and temperature accuracy genuinely matter.
The differences are smaller than many online product listings suggest. All three share the same basic I²C interface, two selectable addresses, integrated heater, factory calibration, similar power consumption and the same 2.5 × 2.5 mm package. The main reason to move upward through the range is tighter accuracy tolerance, not extra features.
There is also an important specification detail that is often oversimplified: Sensirion currently lists the SHT30-DIS-B at ±2% RH typical over 10–90% RH. SHT31 is also around ±2% RH typical, but is the standard-grade device with a tighter tolerance envelope across the wider operating range. SHT35 is the clear high-accuracy model at ±1.5% RH typical and ±0.1°C typical temperature accuracy.
SHT30 vs SHT31 vs SHT35 at a Glance
| Feature | SHT30 | SHT31 | SHT35 |
|---|---|---|---|
| Family position | Low-cost | Standard | High-end |
| Typical RH accuracy | ±2% RH over the main mid-range | ±2% RH | ±1.5% RH |
| Typical temperature accuracy | ±0.2°C in main range | ±0.2°C over a wider range | ±0.1°C in central range |
| Humidity range | 0–100% RH | 0–100% RH | 0–100% RH |
| Operating temperature | -40 to 125°C | -40 to 125°C | -40 to 125°C |
| Humidity response time | ~8 s | ~8 s | ~8 s |
| I²C addresses | 0x44 / 0x45 | 0x44 / 0x45 | 0x44 / 0x45 |
| I²C speed | Up to 1 MHz | Up to 1 MHz | Up to 1 MHz |
| Integrated heater | Yes | Yes | Yes |
| ESPHome support | Yes | Yes | Yes |
| Best use | Low-cost monitoring | General-purpose sensing | Higher-accuracy measurement |
All accuracy figures above refer to the bare Sensirion sensors under the conditions defined in the datasheet. A finished breakout board, enclosure, regulator, nearby ESP32 and installation position can easily introduce more temperature error than the difference between two sensor grades.
What the SHT3x Family Has in Common
SHT30, SHT31 and SHT35 use the same general digital architecture. They provide:
- Temperature measurement.
- Relative humidity measurement.
- Factory calibration.
- Temperature compensation and linearised digital output.
- I²C communication.
- Two selectable I²C addresses.
- An integrated heater.
- Single-shot and periodic measurement modes at chip level.
- Programmable alert limits in the SHT3x-DIS family.
That common architecture is why the same Arduino and ESPHome drivers usually work across the family. You normally do not need different application code just because you replace an SHT30 with an SHT31 or SHT35 on a compatible board.
SHT30: the Lower-Cost SHT3x
Sensirion positions SHT30 as the low-cost member of the SHT3x range. It still performs very well for ordinary room monitoring. The current SHT30-DIS-B product specification gives ±2% RH typical accuracy in the 10–90% RH region and approximately ±0.2°C typical temperature accuracy through its main temperature range.
The reason SHT30 is considered the entry-level model is not that it suddenly becomes a poor sensor. Its maximum tolerance envelope is wider than the SHT31/SHT35 grades, particularly toward the edges of the environmental range. For home automation this is often unimportant.
If you are measuring a bedroom, loft, greenhouse or utility room and only need sensible trends and automation thresholds, SHT30 is already good enough. A 0.5% RH difference between two rooms is rarely actionable, and many installations have larger errors from sensor placement and self-heating.
SHT31: the Best General-Purpose Choice
SHT31 is the standard model and the one most users should choose. Sensirion specifies approximately ±2% RH typical humidity accuracy and ±0.2°C typical temperature accuracy, with a tighter overall tolerance envelope than SHT30.
It is also extremely common on hobby breakout boards, which means strong Arduino, ESPHome and Home Assistant support. If you buy from a reputable supplier, an SHT31 breakout is usually the least risky purchase in the SHT3x family.
For room sensing, HVAC feedback, bathrooms, bedrooms, greenhouses and general data logging, SHT31 is accurate enough that sensor placement becomes the bigger design issue. Putting it in a poorly ventilated box beside an ESP32 regulator can easily distort the temperature more than upgrading to SHT35 would improve it.
If you are starting a completely new design, also compare it with the newer SHT4x family. Our SHT31 vs SHT40 vs SHT45 comparison explains why SHT40 is often the better new-design choice while SHT31 remains attractive for its mature ecosystem and wide supply range.
SHT35: When Higher Accuracy Is Worth Paying For
SHT35 is the high-end version. Sensirion specifies ±1.5% RH typical humidity accuracy and approximately ±0.1°C typical temperature accuracy in its central operating region.
That sounds dramatically better, but whether it matters depends on the application. If you simply want Home Assistant to show whether a room is 45% or 47% RH, SHT31 is already excellent. If you are comparing two test chambers, calibrating HVAC behaviour, studying condensation conditions or logging small temperature differences, SHT35 becomes much easier to justify.
SHT35 also makes sense where you want better agreement between multiple sensors without manually applying large offsets. Even then, mechanical design still matters: airflow, heat conduction from the PCB, enclosure venting and direct sunlight can overwhelm the difference between the sensor grades.
Humidity Accuracy: Do Not Judge from One Number
Humidity-sensor listings often compress the whole specification into a single headline number. The real Sensirion datasheet includes tolerance curves across both humidity and temperature.
At comfortable indoor conditions, SHT30 and SHT31 can look very similar. The distinction becomes clearer as you move toward the edges of the specified range. SHT31 keeps tighter limits across more of that operating space, while SHT35 is tighter again.
For a normal house operating roughly around 20–25°C and 30–70% RH, all three are capable sensors. If the project regularly operates close to saturation, in very dry air, or over a broad temperature range, the tolerance curves matter much more than the marketing headline.
Temperature Accuracy: SHT35 Is the Clear Winner
The temperature difference is easier to understand. In the central part of the range:
- SHT30 is typically around ±0.2°C.
- SHT31 is typically around ±0.2°C but maintains tighter limits over a broader temperature range.
- SHT35 reaches approximately ±0.1°C typical between about 20°C and 60°C.
For a room display, ±0.2°C is already very good. For comparative measurements, calibration work or thermal analysis, ±0.1°C is much more attractive.
Remember that the sensor measures its own package temperature. If the breakout PCB is warmed by the ESP32, voltage regulator, display or enclosure, the reported value can be consistently high even though the sensing element itself is operating within specification.
I²C Addresses and Wiring
The SHT3x digital sensors use I²C and normally support two addresses:
0x44 default
0x45 alternate
That allows two SHT3x sensors on one I²C bus without a multiplexer, provided the breakout exposes the address-selection pin or solder jumper.
A typical ESP32 connection is:
| SHT3x breakout | ESP32 |
|---|---|
| VIN / VCC | 3.3 V |
| GND | GND |
| SDA | Selected SDA GPIO |
| SCL | Selected SCL GPIO |
The bare SHT3x-DIS family supports a wide supply range, roughly 2.15–5.5 V depending on the exact variant. For an ESP32, 3.3 V is the simplest choice because it keeps the sensor and I²C bus in the same logic domain.
Breakout boards are not all identical. Some include regulators and level shifting; others connect the sensor directly. Do not assume every module labelled “SHT31” can safely be wired to 5 V on SDA/SCL just because its VIN pin accepts 5 V.
I²C Speed
The SHT3x-DIS family supports I²C communication up to 1 MHz. For ESP32 projects there is usually little reason to push the bus that fast. Standard 100 kHz or Fast-mode 400 kHz is more than enough for a sensor that is normally read every few seconds.
If several devices share the bus, run at a speed supported by the slowest peripheral. A display, EEPROM or older sensor may be the limiting device even though the SHT3x itself supports faster operation.
The Integrated Heater: What It Is Actually For
All three SHT3x models include an internal heater. Its purpose is often misunderstood.
The heater can help in conditions where the sensing element has been exposed to condensation or very high humidity. Warming the sensor can help evaporate moisture and return it to normal operation.
It is not a heater for the room, enclosure or air sample, and it should not normally be left on continuously during ordinary measurements. Turning it on changes the local temperature around the sensing element, which pushes the temperature reading upward and the apparent relative humidity downward.
Current ESPHome exposes this through heater_enabled. Leave it disabled unless you have a specific reason to use it.
ESPHome Configuration for SHT30, SHT31 and SHT35
ESPHome uses the sht3xd platform for the SHT3x digital family. The same basic YAML works for SHT30, SHT31 and SHT35:
i2c:
sda: GPIO21
scl: GPIO22
scan: true
sensor:
- platform: sht3xd
address: 0x44
temperature:
name: "Room Temperature"
humidity:
name: "Room Humidity"
update_interval: 60s
If the sensor appears at 0x45 in the I²C scan, change the address accordingly. ESPHome defaults to 0x44.
For most Home Assistant room sensors, a 30- or 60-second update interval is plenty. Reading every second does not make the physical sensor respond instantly and increases bus traffic without adding useful information.
ESPHome Heater Example
ESPHome can enable the heater at startup:
sensor:
- platform: sht3xd
address: 0x44
heater_enabled: true
temperature:
name: "SHT3x Temperature"
humidity:
name: "SHT3x Humidity"
update_interval: 60s
Do not use this as the normal configuration for an indoor sensor. ESPHome’s own documentation warns that the heater can increase measured temperature and reduce the reported relative humidity. Use it only for a deliberate condensation-recovery strategy.
Arduino Example
The Adafruit SHT31 library is commonly used with SHT3x digital breakout boards. A basic ESP32 example is:
#include <Wire.h>
#include <Adafruit_SHT31.h>
Adafruit_SHT31 sht = Adafruit_SHT31();
void setup() {
Serial.begin(115200);
Wire.begin(21, 22);
if (!sht.begin(0x44)) {
Serial.println("SHT3x not found");
while (true) {
delay(1000);
}
}
}
void loop() {
float t = sht.readTemperature();
float h = sht.readHumidity();
if (!isnan(t) && !isnan(h)) {
Serial.printf("Temperature: %.2f C\n", t);
Serial.printf("Humidity: %.2f %%RH\n", h);
} else {
Serial.println("Read failed");
}
delay(5000);
}
Using more decimal places in the serial output does not increase sensor accuracy. A sensor specified around ±0.2°C can still report a value such as 22.437°C numerically, but those extra digits are not equivalent to ±0.001°C measurement accuracy.
Resolution Is Not the Same as Accuracy
The SHT3x family provides very fine digital resolution. That often leads to a misleading assumption: if the sensor outputs hundredths of a degree or hundredths of a percent RH, it must be accurate to that level.
Resolution is the smallest change the digital result can represent. Accuracy describes how close the measurement is expected to be to the real physical value. For buying decisions, accuracy tolerance matters much more than how many decimals the library prints.
Response Time: SHT35 Is Not Faster
Moving from SHT30 to SHT35 mainly improves accuracy, not response time. Sensirion gives roughly the same humidity response time of around 8 seconds for the SHT3x-DIS family.
If fast humidity response is a priority, the newer SHT4x generation becomes more interesting. Our SHT31 vs SHT40 vs SHT45 guide covers that comparison; SHT40/SHT45 have a faster humidity response and lower power consumption.
Breakout Board Quality Matters
Buying an SHT35 does not guarantee an accurate finished module. A poor breakout board can undermine the advantage of the more accurate chip.
- Keep the sensor physically away from warm regulators and the ESP32 module.
- Provide airflow around the humidity opening.
- Avoid covering the sensor with conformal coating unless the design specifically protects the sensing opening.
- Keep it away from direct sunlight.
- Do not place it directly above a heat source inside the enclosure.
- Be cautious with unknown marketplace modules that may use a different chip despite the listing title.
For indoor measurements, enclosure design and airflow often dominate the final temperature error. A carefully mounted SHT31 can easily produce more useful data than an SHT35 placed beside a hot ESP32.
Self-Heating from the ESP32
The sensor itself uses very little average power, but an ESP32 can dissipate substantially more energy when Wi-Fi is active. If both are mounted on the same compact PCB or inside a closed box, the SHT3x may read the local board temperature rather than the true room temperature.
Useful design choices include mounting the sensor at the edge of the PCB, adding thermal isolation slots, ventilating the enclosure and keeping the antenna/regulator section away from the sensing element.
For battery-powered nodes, deep sleep also reduces self-heating. Our ESP32 battery-powered sensors and deep-sleep guide covers the wider power strategy.
SHT30 vs SHT31 for Home Assistant
For Home Assistant, the practical difference is often tiny. Both work through the same ESPHome component and both are sufficiently accurate for automations such as:
- Turn on a bathroom fan above a humidity threshold.
- Track bedroom temperature.
- Monitor greenhouse humidity.
- Calculate dew point in Home Assistant.
- Detect long-term heating or ventilation trends.
If SHT31 costs only slightly more, buy SHT31. If you already own a genuine SHT30 module, there is usually no reason to replace it purely for ordinary home automation.
SHT31 vs SHT35: Is the Upgrade Noticeable?
It can be noticeable when comparing calibrated measurements, but it is not automatically visible in everyday room monitoring.
Suppose two rooms actually differ by 0.2°C. SHT35’s tighter temperature tolerance makes it a better tool for studying that small difference. If the question is simply whether a bedroom is 21°C or 24°C, SHT31 is already more than adequate.
The same applies to humidity. A ±1.5% RH sensor is attractive for environmental logging and tighter process control, but most ventilation automations do not require that precision.
SHT35 vs Newer SHT45
If you are considering SHT35 because accuracy is the priority, also look at SHT45. It belongs to the newer SHT4x generation and reaches approximately ±1.0% RH typical humidity accuracy and ±0.1°C temperature accuracy, while using less average power and responding faster.
SHT35 still has advantages in existing designs, especially where you already use the SHT3x footprint, interface and wide supply-voltage range. But for a clean-sheet design, SHT45 is often the more logical premium choice.
See our SHT31 vs SHT40 vs SHT45 comparison for the newer family.
Which Sensor Should You Buy?
Buy SHT30 when cost matters most and you need a good-quality temperature/humidity sensor for ordinary monitoring. It is not a poor sensor; it is simply the lowest-cost grade in the family.
Buy SHT31 for most ESP32 and ESPHome projects. It offers a very good accuracy/price balance, mature software support and predictable performance. This is the default SHT3x recommendation.
Buy SHT35 when measurement accuracy is genuinely important and you specifically want to stay with the SHT3x family. It is the best SHT3x sensor, but many home-automation projects will not benefit enough to justify a large price premium.
For a completely new project, also compare SHT31/SHT35 with SHT40/SHT45 before buying. The newer SHT4x family is now the stronger choice in many designs.
Common Problems
| Symptom | First checks |
|---|---|
| No device on I²C scan | Check 3.3 V, GND, SDA/SCL, pull-ups and whether the module uses 0x44 or 0x45. |
| Temperature always reads high | Move the sensor away from the ESP32/regulator and improve enclosure airflow. |
| Humidity reads low when heater is enabled | This is expected; the heater changes the local sensor conditions. |
| Two identical modules disagree | Check placement and airflow first, then compare against the datasheet tolerance. |
| Sensor appears slow | The SHT3x humidity response is around 8 s; reducing the software interval does not remove that physical response time. |
| Readings jump after condensation | Allow the sensor to recover; use the heater deliberately if required by the application. |
| ESPHome cannot find the device | Enable I²C scanning and confirm the address before changing the sensor platform. |
SHT30 vs SHT31 vs SHT35 FAQ
Is SHT31 much better than SHT30?
Not dramatically for normal indoor sensing. SHT31 has the tighter overall tolerance specification and is the better default purchase, but a genuine SHT30 is already a strong sensor.
Does SHT35 use different code?
Normally no. It belongs to the same SHT3x digital family and works with the same ESPHome sht3xd platform and common SHT31-compatible Arduino libraries.
Can I use two SHT31 sensors on one ESP32?
Yes, if one uses 0x44 and the other 0x45. If you need more than two identical-address devices, use an I²C multiplexer or additional bus where supported.
Should I leave the heater enabled?
No. Leave it off for normal measurement. Use it only when you deliberately need to recover from condensation or very high humidity exposure.
Which one is best for ESPHome?
SHT31 is the best-value SHT3x choice for most ESPHome projects. All three use the same ESPHome component.
Related ESP32 Sensor Guides
- SHT31 vs SHT40 vs SHT45 — compare SHT3x with the newer SHT4x family.
- Complete comparison of Sensirion SHT sensors — SHT1x through SHT4x.
- Best temperature and humidity sensor for ESP32 — SHT45, BME280, AHT20 and DHT22 compared.
- ESP32 battery-powered sensors and deep sleep — power-efficient environmental sensing.
Datasheets & External Resources
- Sensirion SHT3x-DIS datasheet — accuracy curves, heater, I²C commands and electrical specifications.
- Sensirion SHT30-DIS-B product page.
- Sensirion SHT31-DIS-B product page.
- Sensirion SHT35-DIS-B product page.
- ESPHome SHT3X-D component — address, update interval and heater configuration.