The data all looks reasonable from my test with a fan. I found that all sensors respond very quickly to temperature changes. Going from ~68°F air inside to ~33°F air outside, all 6 DHT11 sensors reported constant temperatures 33 in 90 seconds (±offset error of course). The humidity was a bit different. Of my 6 sensors, 4 reached steady values within 6 minutes. However, the last 2 were still slowly climbing after 13 minutes. As a guestimate, I'd say another 10-15 minutes would be required for those to reach a steady value.

I know the first 3 or 4 sensors used resistors from one package. The last 2 or maybe 3 were from a different package (the outliers). I don't remember off the top of my head if these were the same resistance, but I don't see why it would matter. The last 2 sensors were also from a different order a month or so later. I don't mind just using the first sensors that work correctly, but I'm curious if there's something that could explain the different response? If I have a sensor fail in service, I don't want to have to remove all of them and perform this calibration test again. I'd prefer to just install everything and build a calibration routine into the setup function.

That's understandable. But, the way I was planning on calibrating them was to use all of them against each other and then just use the average values as "correct". It would be better to use a different approach that used a true correct temperature/humidity. I'm not sure how to get there though. I hadn't planned on building a calibration chamber. If that were required, I'd be better off just spending a bit more on better quality sensors. Perhaps the answer I'm approaching is that these sensors are not good enough for my purpose.

Upon review of my data, I found that the sensors are not nearly as bad as I initially thought. While there are 2 units that do not display the same humidity as others at the time I stopped collecting data, the other 4 were all nearly the same (within ±1%RH, ±2°F). The 2 that were not responding as quickly could be bad, but looking at the data, it appears that they would have approached the same values given more time. It appears that if I let all sensors sit in an environment for at least 30 minutes, they would all approach the same temperature and humidity readings given a large environment change. I think I can get what I need out of these sensors by simply increasing the fan on/off times.

Tested four sensors overnight and found a small difference between them that I want to correct. One was actually unstable and has been removed from the group. I'm doing a comparison study so they don't have to be calibrated but do need to be matched. The errors were consistent through the night so I'll not need to do the fmap() trick but just use a simple offset. Since I don't have a reliable calibration device, the average value of four good units will be the reference point.

The offset can be determined by putting the units together in a stable environment and collect 20 samples at one minute intervals. The data for each unit will be least-squares curve fitted to a straight line. The offsets will be taken at the same time value and somewhere within the measurement period.

"Don't worry about what anybody else is going to do… The best way to predict the future is to invent it. Really smart people with reasonable funding can do just about anything that doesn't violate too many of Newton's Laws!" - Alan Kay