Accurate and consistent temperature sensor

I am trying to control temperature in a space of air (for either fermentation or growing plants)

for this I have a heating element and a temperature sensor which checks if the heater needs to activate.

The problem is that I want to have a temperature range of 1C
I ordered this DHT11 sensor which I then tested. It was completely off by 3C
I assumed it was defective and ordered another one from a different seller.
This time it is quite accurate... sometimes.
When I start my arduino it starts reading the actual temperature (with 1C accuracy), however if I turn up the temperature to 25C and then down to 20C, it reads 17-22C at random.
This makes me feel like the DHT11 sensor is not what I am looking for.

Is there any sensor you know of which is cheap and has a consistency and accuracy?

The biggest problem is avoiding self-heating from the rest of the Arduino. Make sure it isn't getting any heat from any other source.

Most sensors are not calibrated. They may be accurate, but until you've checked them against a reference, then you will be wrong by 3 degrees or more.

NubeBuster:
Is there any sensor you know of which is cheap and has a consistency and accuracy?

Like the saying goes, you can only pick one.

I never found the two DHT11 sensor I got to be very accurate.

As you will find with many sensors, they can appear very sensitive and the slightest draught can cause the reading to vary .

You are much better taking several readings with a few seconds between each reading, then running the results though an averaging routine, before applying any change to the state of the heater.

Also if you do not have a good delay between on and off you end up with relay chatter and burn outs.

Find the DS18B20 much better for temperature only readings, but you could try the DHT22 which has better parameters than the DHT11.

If you want much better humidity control , at a price, then look at the Sensiron SHT1x / 2x range of sensors.

The greater the accuracy, the higher the price.

Do you think that there could be quite a few degrees C variation in your gardening room and some pockets of cooler air wafting in and out of the serrated palmatisect leaves of your plants ? Could there be a column of warmer air wafting upward and outward at times? That is best tested by observing an airflow tracer such as smoke. If it is the nonuniformity of heating in your room which is making your sensor see temperature variations, then could you arrange a pc fan near to your T probe and average the measurements over a long enough time such as a minute ? The brewers equivalent is to stir the mixture and ensure a measurement averaging time of more than three circulations.

The DS18B20 is an obvious choice, and will reliably measure to a fraction of a degree, but you need to expect the unexpected. The variations you see may be environmental. In short the device is doing its job properly.

Hi,
Placement of the sensor is also important and what are you using to check the calibration of the DHT11?
I think you mean a resolution of 1DegC.

Is it sitting in free air, that is, the body is not bolted or connected to a solid body that can influence the DTH11 body temperature.

If you have significant humidity in the air and the sensor is directly in the air flow, not a good idea, then you will have some cooling due to wind chill.

To prevent chatter or temperature hunting up and down , you will have to code in some hysteresis to the temp setpoint.

Tom.... :slight_smile:

I work in a laboratory and I can say with much certainty that sensors need to be calibrated. How you do that is dependent on your budget and how accurate you need to be with your readings. You should take a reference device that reads accurately the readings and either directly or indirectly correlates the output to the temperature. For hobby projects, you can use the best thing at your home that regulates temperature such as HVAC. Set the temperature at say, 68 F, let the room equilibrate for several minutes then take readings. Set the temperature to 72 F, then do the same. Set the temperature to 74 deg, etc. Plot your readings vs the readings you set the thermostat as y=ax + b. Then program a correction such that if your sensor gets a reading of x, then it really is y, based on the a and b you calculated earlier.

jseery:
I work in a laboratory and I can say with much certainty that sensors need to be calibrated. How you do that is dependent on your budget and how accurate you need to be with your readings. You should take a reference device that reads accurately the readings and either directly or indirectly correlates the output to the temperature. For hobby projects, you can use the best thing at your home that regulates temperature such as HVAC. Set the temperature at say, 68 F, let the room equilibrate for several minutes then take readings. Set the temperature to 72 F, then do the same. Set the temperature to 74 deg, etc. Plot your readings vs the readings you set the thermostat as y=ax + b. Then program a correction such that if your sensor gets a reading of x, then it really is y, based on the a and b you calculated earlier.

OK, so being in the commercial HVAC world, I would offer that human response and perception is the goal.
if you 'feel' like it is too hot and in your mind 73 F is hot, then you can set the calibration to 73.....

as for calibration, you have some PRIMARY sources available.
boiling water at sea level cannot exceed 212 degree F ( or 100C)
if it does, it turns to steam

water that is not boiling is less then 212 degrees. The farce of 'man caused global warming' is revealed in what is called phase change. the amount of energy required to change 212 water to 212 steam is roughly the same amount of energy as it takes to turn 32 degree water to 211 degree water. a phenomenal amount of energy to alter the PHASE but not change the temperature.

ditto 32 water and 32 degree ice. it takes about the same amount of energy to turn 32 ice into 32 degree water as it takes to turn 33 degree water into 175 degree water. melting glacial ice requires phenomenal amount of energy.

So, what this means is that you have a HUGE around of energy poured into your ice water and it stays at 32 degree F for the entire range. take some crushed ice, add water till it is just floating and the water in the center of the ice pack is 32 degrees.

boil water with an open pot and the water, as long as there is water in the pot and as long as it is boiling, is 212 degrees.

so, you have two spots of temperature that are based on the laws of physics and have noting to do with any mechanical devices or human evaluation.

as for the CURVE of your sensor... that is quite another matter.

if you want to purchase a calibrated mercury thermometer, you should be able to get one for less than $50 and have a Standard that will not change in the next few decades.

but calibrate it for 32 and 212, then find out it's output at 72, and adjust your software to read 72 at that point.
from then on; it should output the same value

as a note, air speed has no effect on temperature. that is except for the heat generated by the friction between surfaces.
so, the only temperature change you can get is generation of heat. but that requires speeds far in excess of what you can generate in an incubator.