Inaccurate Humidity with DHT22, bad sensor?

I got a new DHT22 sensor recently and it was returning humidity values that are 15-25% lower than they should be. I thought it might be a bad sensor so I got another from a different supplier and it has the same issue.

I have a Photon powered temp/humidity device that’s been working fine for 2 years with a DHT22. If I swap sensors with one of these two I get the bad humidity result. I thought maybe the new ones were more sensitive to the voltage so I setup a Core with just the sensor. I tried both 3.3V and 5V along with 4.7k and 10k resistors. I tried different DHT libraries include PieTech, along with different pins and wires. In all cases data is received fine and temperature agree but 2 of the 3 sensors have abnormally low humidity. The 1 ‘good’ sensor’s humidity reading agrees with all my standalone weather stations around the house which is why I think it’s the good one.

Has anyone else had this issue and/or have an idea what else I should try?

They might just be poorly-specced sensors (or cheap - manufacturer?)… there’s a similar discussion on the RPi forums about this sort of thing, along with tips on how to more definitively test them:

However, if two sensors are right next to each other and being read continuously and the readings are that far out of whack as the humidity levels slowly vary over the course of a day or whatever, it sounds to me like one has a permanent inaccuracy that’s out of spec.

Another similar situation - I didn’t know normal handling could have an adverse effect:

More about hygrometers (including others that might be more accurate):

Thanks. Someone mentioned they can get out of whack and that there’s a procedure to fix that:

Step one: Keep the DHT sensor at the condition of Temperature 50~60Celsius, humidity <10%RH for 2 hours;
Step two: Keep the DHT sensor at the condition of Temperature 20~30Celsius, humidity >70%RH for 5 hours.

So I’ll give that a try and see if it can resolve my issue.

1 Like

I’d be curious to know how you end up doing that (especially if you don’t have lab equipment that can create a controlled temperature and humidity environment in which to accomplish this).

Personally, I’m not impressed with the DHT22… I’m giving the SHT31-D a try as soon as it arrives.

I used a hair dryer on low for step 1 and zip lock bag with a shot glass of water for step 2. I put one of those la crosse sensors next to them to confirm i got the right temp and humidity.

Unfortunately it made no difference. The bag was reading about 85% humidity and the highest I could get these sensors to go was 40% after spending a night in the bag. I’m sending these back and am hesitant to try another. From all the other threads I read it sounds like the Bosch BME280 sensor may be a good option though I’m curious to hear how the SHT31 works for you.

There is a salt/water slurry test that you can use to calibrate hygrometers. You could google that.

Generally, because of the proliferation of manufacturers, DHT 22 is now a poor thermometer and even worse hygrometer, IMHO.

Yea, it’s 1 teaspoon salt and enough water to make a paste. In a sealed bag it should end up at 75% humidity in 12hrs. I didn’t want to wait that long plus the instructions just said I needed 70%+.

Other salts can be used to test against other humidity levels:

Followup! I got the SHT31-D recently and integrated into my environmental sensor testbed… its reading are surprisingly close to my lowly RHT03/DHT22… well-within a degree and a couple of percent RH, respectively, consistently.

I was surprised at this… the MS5637 that I expected to be the gold standard for this is reading hotter by more than 2 degrees (corrected per the docs)… turns out that’s the disappointing sensor thus far. I suspected self-heating but the polling rate is too low for that to be likely.

Then it dawned on me, moments ago: the board with the MS5637 also has a BNO-055 9-DOF device on it… a quick look with a small FLIR reveals that the latter device puts out a surprising amount of heat:

(Looking at the carrier board, BNO-055 9-DOF sensor is the relatively hot device in the middle, while the MS5637 is the little silver square on the lower left… seen as thermally relatively cool in the FLIR image.)

It’s a neat little board but I now think it’s too bad I bothered to get the MS5637 on it versus on an independent board.


Good day ladies and gentlemen. I am a newbie with Raspberry Pi. Since December 2016, I started to build a low cost temperature and humidity data logger using a Raspberry Pi 3 and 4 DHT22 sensors. I bought 5 DHT22 sensors, unfortunately 1 of them is faulty because it gives ridiculous temperature and humidity reading.

The screenshot above is some of the sample of the temperature and data recorded using 4 data sensors. All the sensors were put side by side with each other during the recording. As you can see, the value of the temperature and humidity for all the sensors are different from each other.

I tried to search the inaccuracy values for both the temperature and humidity for DHT22. However, I found 2 slightly different inaccuracy values from 2 different versions of data sheet The link to the sources and their declared inaccuracy is listed below:

  1. Temperature: ± 0.2 °C, Humidity: ± 2% RH (Max 5% RH)
    Data Sheet Source 1
  2. Temperature: ± 0.5 °C, Humidity: ± 2% RH (Max 5% RH)
    Data Sheet Source 2
    Data Sheet Source 3
    Data Sheet Source 4

If I follow the first inaccuracy values, al least one of my DHT22 sensors is/are faulty for temperature reading, because the biggest Max Value Sensor - Min Value Sensor for all recording is 0.7 °C, which is greater than 0.4 °C (± 0.2 °C). However, all my sensors are fine if I follow the second inaccuracy values for temperature and humidity.

At this moment, I decided to follow the second inaccuracy values (unless if someone can confirm with me that the first accuracy value is the most accurate/latest. Please also advise me if there is any other way for me to improve the accuracy of my sensors.

Thank you and have a nice day.

This link from post #2 in this thread is worth a read

The sensors are just not very good. See here

1 Like

Thank you everyone for the feedback. If BME280 is better than DHT22, then I think I might have to spend some time to learn how to use it with Raspberry Pi 3.

IMHO, DHT22’s are relics from an age long past. They are cheap and simple to get up and running but terrible from a long term product/project perspective to keep running accurately.
The protocol is unique to these sensors so once you learn enough about it to implement workarounds you’re better off spending your time/money/tinker-effort on a sensor that works 10x better and has a modern protocol (i2c, spi, etc) that can translate to other sensor projects.


I was looking for some help on alternatives to DHT22 sensors and came across this thread. Very interested to hear other peoples experiences with these sensors.

Having set up an experiment to calibrate the sensors along the lines detailed here (Test and Calibrate DHT22 Hygrometers - Kimberly and Roberts) I was taken aback by the variance in the first two devices I’m testing. One of them is pretty much spot on, the other 10 %RH difference in reported values. That’s a 13% variance and way outside the 2-5% tolerance that’s reported for these things.

I need reasonably accurate and reliable results for my application (beehive humidity monitoring) so I’ll definately be looking for an alternative.

I recommend the SHT-31D


Spooky… Bought a couple this afternoon :grin:
Thanks for the fast response.