Dht11 vs dht22

Hi guys I’ve been using DHT 11 for a few days and I’ve noticed DHT 11 readings can vary into what I believe to be incorrect values; so I want an opinion as to how much better the DHT 22 is then the DHT 11. I have read the specs and I understand the differences in accuracy but that’s all good on paper but I wanted to know other people‘s experiences with these two sensors.

I understand the DHT 22 might be more precise than the DHT 11 but if it’s more precise around an incorrect temperature (which is actually accuracy) then it’s still pretty useless. I know the spec sheets call for accuracy but most of the time I believe manufacturers mean precision.

The DHT22 can measure the temperature. That is all there is to say about those two sensors.

The humidity of the DHT22 is useless and the DHT11 is even worse. The accuracy mentioned in the datasheet is just a number, it has nothing to do with reality.
Some have a DHT22 sensor that is not so bad, but others have one that is useless.

If you want to know the humidity, then you can start here: Compare different i2c temperature and humidity sensors (SHT2x, SHT3x, SHT85, ..) - Sensors - Arduino Forum.

The BME280 has good results in different tests. The SHT85 stands out, but it costs more.

Ok one question about these temp sensors. I dropped the DHT11 and moved over to dht22. Ive noticed that its pretty accurate on temp, maybe a couple or few degrees off, which for my needs is fine. But I have noticed something odd...as you can see here from a graph, temp goes up during the day, its pretty hot and the dht22 registers 39 around 3pm (15:00) but then it stays there, the readings, for the next few hours even up until 7pm where i have my last reading on this graph. I know the temp very likely reached 39C during the day around 2-3pm, i have other thermometers in there reading 37-38C at around 3pm. But Im also sure that after 4 or 4pm, that temp drops to around 33-30C. Im positive its not still 39C in that warehouse at 7pm, and the thermometers confirm it reading 33C. That puts the difference at 6C.

It almost seems like the reading gets stuck there. So Im wondering, is it possible that cycling the sensor's data pin (by sending it LOW or HIGH or something) might fix this?

Screenshot 2019-09-04 19.29.18.png

Screenshot 2019-09-04 19.29.18.png

As far as I know, the temperature of the DHT22 is accurate. You have to add another sensor to be able to compare it. The DS18B20 is accurate to ±0.5°C.

For the DS18B20 there is something weird about it. It does not only measure the air temperature but it seems also to collect heat from heat sources. When the DS18B20 is near a hot voltage regulator or near a device that gets warm, then the DS18B20 seems to collect that heat and measures a higher temperature.
I don't know if the DHT22 does collect heat as well.

Another thing is "self-heating" by requesting the temperature at the maximum rate. A few seconds pause in between should be enough to minimize that problem.

Why are you still using the DHT11 / DHT22 ? It is time to upgrade to a serious temperature sensor :wink:
The DS18B20 is the best temperature sensor to start with. There are more accurate temperature sensors, for example: https://www.tindie.com/products/closedcube/tmp116-02degc-10degc85degc-temperature-sensor/

It's just what I had lying around.

I have dht11/22, I have 2 x hdc1080s, I have bmp1080s I believe, and I just remembered I have bmp180s and ds18b20's!!!

So ds18b20's right!? Thx

Install the OneWire library and the DallasTemperature library. Use an example of the DallasTemperature library. You can use "by index" or use the unique identifier.

When you have more than one DS18B20 connected to a single 1-Wire bus, then there is a certain order. The "by index" finds the sensors and put them in a certain order. How that order is, is impossible to predict. You have to go with the order of the algorithm that finds the sensors.

In the Arduino IDE Library Manager:

  • DallasTemperature by Miles Burton, and others
  • OneWire by Jim Studt, and others