Best Temperature & Humidity Sensors for Embedded Devices (Buying Guide)
⚠️ Affiliate Disclosure: This post contains Amazon affiliate links. If you purchase through our links, we may earn a small commission at no extra cost to you. We only recommend parts we have researched and verified. Prices change often — always confirm the live price on Amazon before buying.
Ultimate Buying Guide 2026
🌡️ Best Temperature & Humidity Sensors for Embedded Devices
10 sensors ranked for Arduino, ESP32 and Raspberry Pi — from the $2 DHT11 to lab-grade Sensirion modules — with real specs, honest verdicts and direct Amazon links.
A temperature and humidity sensor is one of the first parts you reach for in almost any embedded project — a weather station, a greenhouse controller, a smart-home thermostat, a data logger, or a 3D-printer filament dry-box. But the moment you start shopping, you hit a wall of cryptic part numbers: DHT11, DHT22, BME280, SHT31, AHT20, Si7021, HTU31, HDC1080. They all read temperature and humidity, yet they differ enormously in accuracy, interface, power draw and price.
The right choice depends on what you are building. A blinking-LED hobby project is fine with a $2 DHT11; a battery-powered IoT node needs a microamp-class I2C part; a serious indoor air-quality monitor wants pressure and gas sensing too. This guide ranks 10 temperature and humidity sensors across every budget and use case, with the specs that actually matter — accuracy, interface, voltage and power — so you can match the sensor to your board and your project instead of guessing from the part number.
💡 Reality check before you buy: Cheap analog-style sensors (DHT11/DHT22) are simple but slow and only accurate to a few percent — fine for learning, not for calibrated data. Digital I2C sensors (BME280, SHT31, AHT20, Si7021, HTU31) are far more accurate but need a clean I2C bus and the right library. A very common gotcha: many cheap boards sold as “BME280” are actually BMP280 chips that only measure pressure and temperature — no humidity at all. Check the chip marking. And remember almost none of these are waterproof: for outdoor or condensing environments you need a PTFE filter or a sealed, cabled probe.
🌡️ Quick Comparison — All 10 Temperature & Humidity Sensors
Accuracy figures are typical values from the manufacturer datasheets. Prices are intentionally not listed because they change often — tap any View → button to check the current Amazon price yourself.
🔍 What to Look for in a Temperature & Humidity Sensor
🎯
Accuracy
DHT11 is ±5% RH / ±2°C; DHT22 ±2–5% / ±0.5°C; good I2C parts (SHT31, HTU31, AHT20, HDC1080) hit ±2% / ±0.2–0.3°C. Match accuracy to whether you need calibrated data or just a rough reading.
🔌
Interface
Single-wire (DHT) is dead simple but one sensor per pin and slow. I2C lets you chain several sensors on two wires and read fast — the better choice for anything beyond a beginner project. BME280 also offers SPI.
⚡
Power Draw
For battery and coin-cell projects, sleep current matters most. The HDC1080 sleeps at ~100 nA; Si7021 and SHTC3 are also frugal. DHT sensors and always-on BME680 gas heating are thirstier.
📦
Extra Channels
Need more than T&H? BME280 adds barometric pressure (and altitude); BME680 adds a VOC gas channel for air-quality projects. If you only need temperature and humidity, skip the extras and save money.
💧
Environment & Filter
For dusty, humid or condensing places, choose a part with a PTFE filter (SHT31, Si7021) or a sealed cabled probe (AM2302/AM2301B). Bare breakouts belong indoors, away from splashes and direct sun.
The Bosch BME280 is the sensor we recommend to most makers because it does the most for the money: temperature, humidity and barometric pressure in one tiny part, over either I2C or SPI. Accuracy (±3% RH, ±1°C, ±1 hPa) is more than enough for weather stations, room monitors and altitude logging, and library support on Arduino, ESP32 and Raspberry Pi is excellent. Buy a quality board so you get a genuine BME280 — not a humidity-less BMP280 clone.
✅ Pros
Temp + humidity + pressure in one chip
I2C and SPI; chainable on a bus
Doubles as an altimeter (±1 m)
First-class library & community support
❌ Cons
±3% RH — good, not lab-grade
Pricier than a bare DHT
Clones are often BMP280 (no humidity)
🎯 Verdict: The best all-round environmental sensor. If you want one part that covers nearly every project, get the BME280.
When the numbers actually matter — calibration rigs, lab logging, precise climate control — the Sensirion SHT31-D is the one to reach for. It delivers ±2% RH and ±0.3°C over a true I2C interface, ships with a PTFE membrane that protects the sensing element from dust and splashes, and offers two selectable I2C addresses plus an on-chip heater to clear condensation. Sensirion sensors are the quiet industry standard, and this breakout makes one trivial to wire up.
✅ Pros
Excellent ±2% / ±0.3°C accuracy
PTFE filter for harsh spots
Two I2C addresses on one bus
On-chip heater clears condensation
❌ Cons
Among the pricier picks here
Header needs soldering
Stock can come and go
🎯 Verdict: The accuracy benchmark of this guide. If you need data you can trust, the SHT31-D earns its premium.
The DHT22 (AM2302) is the sensor most people meet first, and for good reason. The 3-pin module has the pull-up resistor built in, so you just wire power, ground and one data line and load the Adafruit DHT library. It reads the full 0–100% humidity range and works down to −40°C — a big step up from the DHT11 — making it the go-to for greenhouse, weather and learning projects where you want real data without fuss.
This little combo board pairs the modern AHT20 humidity/temperature sensor with a BMP280 pressure sensor on one I2C bus, giving you BME280-style 3-in-1 data for noticeably less money. The AHT20 is genuinely accurate (±2% RH, ±0.3°C) and far more reliable than the old DHT parts, and the two chips sit at different I2C addresses so they coexist happily. You load two libraries instead of one, but for a budget weather node it’s hard to beat the value.
✅ Pros: 3-in-1 data at a low price; modern AHT20 accuracy; pure I2C; tiny footprint.
❌ Cons: Needs two libraries; no SPI; generic board quality varies between sellers.
🎯 Verdict: The best value if you want pressure too. Almost a BME280 for less — just expect to wire up two libraries.
The blue DHT11 is the cheapest way to put temperature and humidity into a project, often sold in multi-packs for the price of a coffee. It wires up exactly like a DHT22 and uses the same library, so it’s perfect for first Arduino lessons, classroom kits and throwaway prototypes. Just respect its limits: 0–50°C only, no sub-zero readings, ±2°C and ±5% RH — fine for “is it humid in here?” but not for anything you’d call data.
✅ Pros: Rock-bottom price; faster 1 Hz sampling; same easy library as DHT22; great for learning.
❌ Cons: Narrow 0–50°C range; low accuracy; no sub-zero; not for real weather or logging.
🎯 Verdict: The best sensor to learn on. Buy a pack, prototype freely, then graduate to a DHT22 or an I2C part.
🌫️ BEST FOR AIR QUALITY · ⭐ 4.5/5
6. BME680 Environmental Sensor
Bosch · I2C + SPI · temp/humidity/pressure + VOC gas
The BME680 takes everything the BME280 does — temperature, humidity, pressure — and adds a MOX gas sensor that responds to volatile organic compounds, letting you build indoor air-quality monitors and “is the room stuffy?” dashboards. It speaks both I2C and SPI and runs on the same Bosch ecosystem. The gas channel needs a burn-in period and gives a relative air-quality index rather than calibrated PPM, but for hobby IAQ projects it’s the most capable single sensor here.
✅ Pros: 4-in-1 incl. VOC gas; I2C and SPI; ideal for air-quality dashboards; Bosch BSEC library.
❌ Cons: Gas needs burn-in/calibration; IAQ is relative, not absolute PPM; priciest pick.
🎯 Verdict: The best choice when you want air quality on top of climate. Overkill for a simple thermostat, perfect for an IAQ monitor.
The Si7021 from Silicon Labs is a tidy, reliable I2C temperature/humidity sensor that sips power, making it a favorite for battery-powered ESP32/Feather nodes and wearables. It reads ±3% RH and ±0.4°C, includes a PTFE filter to keep the sensing element clean, and runs happily on 3.3V or 5V. It only measures temperature and humidity — no pressure or gas — but it does that job cleanly and efficiently with a well-documented Adafruit library.
✅ Pros: Low power for battery nodes; PTFE filter; compact; solid I2C reliability; 3V/5V safe.
❌ Cons: Single fixed I2C address; ±3% RH (not lab-grade); humidity best within 0–80%.
🎯 Verdict: The best low-power I2C pick for battery IoT. Efficient, dependable and easy to drop into a Feather project.
🆕 BEST MODERN DHT SWAP · ⭐ 4.6/5
8. Adafruit HTU31
TE · I2C · ±2% RH · ±0.2°C · CRC data · on-board heater
If you like the simplicity of a DHT but want real accuracy, the HTU31 (TE’s third-gen HTU sensor) is the upgrade. For about the same price as a DHT22 it gives you ±2% RH, ±0.2°C, a clean I2C interface with two selectable addresses, CRC-checked data so you can trust each reading, and an on-board heater to evaporate condensation. It’s the sensor to choose when “good enough” isn’t, but you don’t want to pay Sensirion money.
✅ Pros: DHT-price but far more accurate; CRC data integrity; two I2C addresses; heater; plug-and-play QT.
❌ Cons: Header needs soldering; I2C only (no single-wire); temp+humidity only.
🎯 Verdict: The best modern replacement for a DHT22. Same money, dramatically better data — an easy recommendation.
When battery life is everything, the HDC1080 from Texas Instruments is the part to know. It combines ±2% RH and ±0.2°C accuracy with a sleep current of roughly 100 nanoamps — low enough to run for years on a coin cell. The common CJMCU-1080 breakout puts it on a tiny I2C board for very little money. Build quality on generic boards varies, and it’s temperature/humidity only, but for a sleepy LoRa or BLE sensor node nothing here sips less power.
✅ Pros: Ultra-low ~100 nA sleep; good ±2% / ±0.2° accuracy; tiny and cheap; ideal for coin-cell nodes.
❌ Cons: Generic board QC varies; I2C only; no enclosure or filter; temp+humidity only.
🎯 Verdict: The best pick for battery-powered nodes. Choose it when runtime measured in years matters more than features.
The AM2302 is a DHT22 in a chunky plastic body on the end of a ~23 cm cable, with the pull-up resistor already inside — purpose-built for placing the sensing element away from your board, outside a box, or near a vent. That cabled form factor is what makes it the easy choice for outdoor weather stations and remote logging. Note that the original Adafruit AM2302 is being phased out in favor of the sealed AM2301B (wired AHT20), which is more accurate; if you want the freshest design, consider that successor.
✅ Pros: Cabled probe for remote/outdoor placement; built-in pull-up; rugged body; same easy DHT library.
❌ Cons: Slow 0.5 Hz; only ±2–5% RH; not waterproof; original AM2302 being replaced by AM2301B.
🎯 Verdict: The best pick when the sensor must sit away from the board. Great for sheltered outdoor and remote setups.
🛒 How to Choose the Right Sensor
🚀
Just Starting Out?
Grab a DHT11 multi-pack to learn on, or jump straight to the DHT22 for real range and accuracy with the same simple library.
🏠
Weather / Room Monitor?
The BME280 adds barometric pressure for forecasting and altitude, all on I2C/SPI — the best all-rounder for environmental projects.
🎯
Need Real Accuracy?
The SHT31-D (±2% / ±0.3°C) or the cheaper HTU31 (±2% / ±0.2°C) give you data you can actually log and trust.
🔋
Battery-Powered Node?
The HDC1080 sleeps at ~100 nA; the Si7021 is also frugal. Both are ideal for LoRa/BLE sensors that must last on a coin cell.
🌫️
Air-Quality Project?
The BME680 adds a VOC gas channel on top of temp/humidity/pressure — the one to pick for indoor air-quality dashboards.
🌧️
Outdoor / Remote Spot?
Use the cabled AM2302 (or its sealed AM2301B successor) so the probe sits away from your board, sheltered from sun and splashes.
⚙️ Key Specs Compared — Side by Side
Spec
BME280
SHT31-D
DHT22
AHT20+BMP280
HTU31
DHT11
Measures
T/H/Press ⭐
T/H
T/H
T/H/Press
T/H
T/H
Interface
I2C+SPI ⭐
I2C
1-wire
I2C
I2C
1-wire
RH accuracy
±3%
±2% ⭐
±2–5%
±2%
±2% ⭐
±5%
Temp accuracy
±1.0°C
±0.3°C
±0.5°C
±0.3°C
±0.2°C ⭐
±2°C
Sub-zero?
Yes
Yes
Yes
Yes
Yes
No
Best use
All-round ⭐
Lab / logging
Beginners
Budget 3-in-1
DHT upgrade
Learning
❓ Frequently Asked Questions
DHT22 or BME280 — which should I pick?
If you only need temperature and humidity and want the absolute simplest wiring, the DHT22 is fine. But the BME280 costs only a little more, adds barometric pressure, uses I2C/SPI so you can chain it with other sensors, reads faster, and is more accurate. For most projects beyond a first lesson, the BME280 is the better long-term buy — just make sure you receive a real BME280 and not a BMP280.
Why does my “BME280” show no humidity reading?
You almost certainly received a BMP280, not a BME280. They look nearly identical and share most of the register map, but the BMP280 has no humidity sensor at all. Check the chip marking or the I2C chip-ID register, and buy from a reputable seller (or a branded Adafruit/SparkFun board) if humidity is non-negotiable. This swap is the single most common complaint with cheap modules.
Is I2C better than the single-wire DHT protocol?
For anything beyond a beginner project, yes. I2C lets you put several sensors on the same two wires (SCL/SDA), reads quickly, and has robust, well-maintained libraries. The DHT single-wire protocol needs precise timing, allows only one sensor per data pin, and limits you to a reading every 1–2 seconds. The DHT’s only real advantages are simplicity and cost — which is exactly why it’s still great for learning.
How accurate do I actually need?
It depends on the job. A fan or thermostat trigger is happy with ±2°C / ±5% RH (DHT11 territory). A weather station or comfort monitor wants ±0.5°C / ±2–3% RH (DHT22, BME280, Si7021). Calibration, scientific logging or HVAC validation needs ±0.2–0.3°C / ±2% RH — that’s where the SHT31, HTU31, AHT20 and HDC1080 shine. Buying more accuracy than you need just costs money and, sometimes, power.
Can I use these sensors outdoors?
Only with care. None of these breakouts are waterproof, and condensation or direct sun will ruin readings. For sheltered outdoor use, pick a part with a PTFE filter (SHT31, Si7021) and mount it in a vented radiation shield out of the rain, or use a sealed cabled probe like the AM2302/AM2301B. Keep the PCB and electronics inside an enclosure; expose only the sensing element to the air.
🏁 Final Verdict — Our Top Picks
The right temperature and humidity sensor for every project and budget:
🥇 Best Overall — BME280: temp + humidity + pressure on I2C/SPI, the all-rounder
No single sensor is perfect for everything, but every pick on this list will get accurate temperature and humidity into your project. For most makers the BME280 is the one to buy — it covers temperature, humidity and pressure on a flexible interface at a fair price. If you need data you can defend, step up to the SHT31-D or the great-value HTU31; if you’re just starting, a DHT22 (or a pack of DHT11s) is all you need; and if you’re chasing battery life, the HDC1080 is in a class of its own. Pair your new sensor with our Arduino, ESP32 and Raspberry Pi tutorials and start logging today.
💬 Not sure which sensor fits your project — a weather station, a battery IoT node, or an air-quality monitor? Tell us what you’re building in the comments below and we’ll point you to the right pick.
All Amazon links above use our affiliate tag (microlab05-20). Purchasing through them supports microcontrollerslab.com at no extra cost to you. Prices and availability change frequently — always confirm the current price on Amazon before buying.