DHT22 alternative

Does anyone have a recommendation for a low cost alternative to the temperature and humidity sensor DHT22?


Does anyone have a recommendation for a low cost alternative to the temperature and humidity sensor DHT22?

I don’t have any direct experience with these, but found this hygrometer comparison article.


The very similar DHT11 is lower cost and not as good tolerances (surprise!)..

Example HERE

Some details HERE

Example code for LCD display of DHT11 HERE

DISCLAIMER: Mentioned stuff from my own shop...

Normally I like the one in the attached link because it already have the wires and can be mounting easily. You can buy it in Ebay.

Ebay link:

@yelkenli The big question here is, do you need both or just the temperature?

Dallas makes a nifty series of 1-Wire temp sensors.

Here's some compared:


I've used a DS18B20 before (on a pi). It was quite painless to get working.

Here's a link to someone here who made on earlier.


DHT21. Although recently I have just moved over to an HTU21 which doesn't seem to get as saturated as much as the DHT's. Readings from both sensors on the same day and position

DHT21 - 99.9% HTU21 - 82%

You do need to re code and wire as it uses the I2C bus

-- Mark

I tried the Si7021 modules and loved them: http://www.ebay.ca/itm/Industrial-High-Precision-Si7021-Humidity-Sensor-with-I2C-Interface-Arduino-/331800608735?hash=item4d40db7fdf Available from many sellers...

How fast are the Si7021 modules? The DHT22/11 allow a sampling or reporting period no smaller than 1.7 seconds, and then there is settling time of the sensor - I notice in the DS18B20 there are long settling times for higher resolution (10 bit is probably all I need).

Any comments on the accuracy of these, lets say at 10 bit. does the 0.25C accuracy come with a similar precision?

Thanks Ted

Also, how many of these are the same device, just different packaging and comm protocol?

AM23xxx device or same I2C type?

The DS18B20 is a very different beast from the DHT11 or 22. One wire protocol is an interesting project on it's own even. The pi for example has a library for it. Stick a one wire sensor on a pin and it shows up in /sys. There's a few ppl who made arduino versions. You can even stick multiple on the same wire. Imagine a bus network and you're not too far away from how it works in principle.

As for precision, you can sacrifice response time for a bit of precision even beyond the 12 bit the DS18B20 offers by averaging results.

Say the time between reads should be 750 ms keep to that and read it precisely every 750 ms. Keep a buffer of 7 , remove the highest and lowest then average the rest. Every read remove the oldest, add the new and do the same. Your resulting stream should have be 3.75 seconds behind, respond a bit slower but be more accurate. If there's a weird read for some reason ( it happens with the DHT11 for example ) it will be cut out, and if there's two with less than 7 places in between it will be averaged out and not screw up your results too much. All this taking into account the massive amount of DHT11 reads which have CRC errors should be ignored of course.

Edit: Also remember, DS18B20 is temp only, I2C isn't one wire, Si7021 is a humidity sensor.

Phoenixxl: Si7021 is a humidity sensor.

But like the DHT, it's also a temp sensor.

But like the DHT, it’s also a temp sensor.

I only looked at the item description before. Looking closer at the features now I see it’s both.

Why don’t you buy one of those “X in one” sensor collections there’s always a few in there you’ll know you need and always some you’ll find a surprise use for.
You can supplement it with the temp/humidity sensors that aren’t in the kit.

I bought this one some time ago, at the time it was the cheapest I could find. Most of the items in it worked.37 Sensors Kit Aliexpress
There’s probably temperature only kits around too.

Also knowing your intended usage ( not for being nosy ) can help a lot when replying.
If you need a temp only sensor to stick in a humid place like a freezer or a fridge for example I would recommend something that’s not on a pcb and can be lathered in epoxy.

Once you tested all the modules together you can compare their output and decide which ones work best for your project. Maybe even use multiple if you know some work better in certain temperature ranges. Or use a precise/slow one for logging and a less precise quick one for reacting to changes.

https://edwardmallon.files.wordpress.com/2016/02/ed_ds18b20_1.jpg http://robotshop.com/letsmakerobots/files/field_primary_image/P9032320.JPG https://fstab.nl/sites/default/files/ds1820epoxy.jpg

As you can see mileage can vary even if using the same sensor.

An interesting read here too: