The temp in my room at the moment is about 22 degrees according to an LN35 I have wired up on another board. So it makes no sense that the temp from the DHT22 climbs to 30+ degrees. RH is definitely above 1% regardless of how you look at it. I live in England, while we are having a bit of a dry spell, I would still expect 25-50% RH.
@BulldogLowell, I am using the latest version of the Adafruit library that I downloaded again this morning, it doesn't seem to have dht.getMinimumSamplingPeriod() so I am not sure which library you are using.
The data that comes off the board is just printed in HEX for ease I guess, the calc for working out the temp is doing what the data sheet is expecting:
f = data[2] & 0x7F;
f *= 256;
f += data[3];
f /= 10;
if (data[2] & 0x80)
f *= -1;
Given the code is correctly working out the values based on the bytes it reads, and the comms seems to be working because the checksum matches (in running this for an hour, I never get a read fail), the problem must reside with the sensor.
I added the delay(3000) and it reads every time without skipping as per the default Adafruit code, but it still does what it did.
My current 'out-there' theory:
- Comms work - checksum is fine for over an hour of operation
- Code works - values all match the correct math
- RH is very wrong but breathing on it does raise the RH
- Temp starts out close if left off for a while, but rises quickly
The RH bit seems like its a bit bust, and it's raising the temperature that the sensor is detecting and correctly reporting.
I think I'm going to stick with the LM35 cuz this is bugging the crap out of me ![]()