Most accurate temp sensor to 125C?

I've been trying to choose a temp sensor for a project. It will be about 10 feet from the MCU, in a sauna (so let's rate for 125C). Fast response is nice. I'm hoping for ±0.9C or better.

I was trying to find the most accurate sensor throughout 0-125C. Taking the max temp error through that whole range, I find the best to be:

Si7051 at ±.25C
and
SHT-35 at ±.6C

...and after those:

LM35 ±.75C
SHT-31 ±.75C
SHT-30 ±1C
STTS22H ±1C
Si7021-A20 ±1C
MAX31820: ±2C
DS18S20 and DS18B20: ±2C

Disqualified for limited range:

BME280 - max 85C
DHT22 - max 80C
DHT20 max 85C, ±~2C

...any others I should know about or could look into? Thanks!

Looking at the maximum error tells you nothing about the accuracy of a particular sensor. You must calibrate the selected sensor in order to determine accuracy at every step in temperature.

Afaik, you will go DS18B20 because its error of ±0.5 up to +85, after that heat and beer makes you notice temperature less, then after +100 your head really begin to spin and you think "hey, 300C, I'm badass"

TMP117

but it is I2C. which does not work over 10 feet.

Use a PT1000 and calibrate it with a table in software
use a high precision thermometer for calibrating
or
be satisfied with an accuracy of 2°C

best regards Stefan

Thanks! Maybe I should rephrase: I'm looking for a temp sensor that gives me the best chance of accuracy out of the box. I might do a real calibration later, but a plug-and-play solution that is stable through the temp range would be great.

TMP117 and Si7051 look great, but... I2C. This stackechange question has some folks suggesting that you can use CAT5 cable and set a low clock speed to get some pretty long I2C connections... any thoughts on that? I need like 10 feet minimum, 15 would be best. (3-5m)

My understanding is that if I use PT1000 or LM35 they will use analogRead() and then I need to calibrate for my PSU voltage (and the sensor), right?

Are you really sure that you really need a 0,X°C precision in a sauna?
please describe the overall project and explain why you think that you need such a high precision in this project

How about putting the sensor inside the hot room close to the wall or ceiling with a wire that goes right through the wall/ceiling to the outside.
Outside you have a small microcontroller which does the measuring and then sends the measured temperatur over a standard serial connection to your main MCU?
For serial connection it is no problem to bridge a distance of 10 or 20 m

best regards Stefan

Right for the LM35, but you would use the PT1000 with a digital breakout board, Without it it won't give you the required resolution across the temp range. And a MAX31865 (SPI) could give you the same wiring problems as I2C.

Temp/humidity and temp/pressure sensors are open to the environment, and will give problems with condensation.

I think the DS18B20 is the only sensible choice. But try to get an original one. Most sites sell fakes, which is ok for experiments at room temp, but could give problems at high temps.
Leo..

A broken analog clock is exactly correct twice a day, no error. The problem is to know when to read it. I use PT100s in that range, the 4 wire version.

Yeah it's a fine line between need and want :-). I'm building a controller for the sauna, and the whole point is to see how precisely I can control the temperature in it, so I'd love to get fairly accurate (at least repeatable) readings. If I end up with something rated ±2C and have to calibrate myself to get better accuracy, I'm sure that would be fine in the end. I'm just trying to start with a simple and accurate sensor if I possibly can.

Yeah I was consider conformal coating for relevant parts of the sensor board.

Thanks -- it does look tempting. It's a digital signal it's sending back, right, so no calibration for the PSU voltage? I have seen posts about the fake DS18B20's and will be on the lookout.

I did find these extenders to allow the I2C options over longer distances:

...though I've heard that PVC jackets (on e.g. ethernet cable like the first link) break down in sauna temps...

SPI is good for a bit longer distances than I2C, right?

I have an I2C setup with 4k7 pull up on both ends of a ~5m Cat-6 wire running 24/7, without problems. SCL and SDA are on different pairs (paired with GND and VCC). Just give it a try...

SPI is usually running at a higher frequency (default is 4Mhz on an Uno R3), which is 40x the speed of default I2C. I guess SPI is worse for longer distances.
Leo..

Re: accuracy vs precision -- in the data sheets (e.g. for DB18B20) are those "error" stats basically talking about precision of the readings? In other words, even if I calibrate a DB18B20 I'm still going to be ±1C up to 125C, right? And if I take averages of readings I can mostly eliminate that error, yeah? (Edit: eliminate it up to the point of the mean error shown in the graph, anyway... and I understand it depends on how much averaging is done...)

I hope you're not measure the air/ambient temperature... You won't survive long at 125C. Water (and blood) boils at 100 degrees C.

Also if you move the temperature sensor a couple of feet, or wait a minute, you'll get a different reading.

The data sheet gives the maximum error for three different temperature ranges. e.g. the +/- 2ºC error is for the range -55ºC - 125ºC. It gets better as you narrow the range.

I’m not sure how you’re defining “precision” but you can set the number of bits in the result to a “resolution” of 9-12 bits. At 12 bits the reading would be to the nearest 0.0625ºC. That is not the same as accuracy though.

I'm measuring ambient air, but I'm definitely not intending to take 125C saunas. :slight_smile: (That said, many people do brief saunas in the >100C range.)

Thanks, yeah, I was not meaning resolution; I was thinking of accuracy as "that which can be corrected by a static offset at a particular temp" and precision as "that which can be corrected by averaging at a particular temp". Thinking about it more, I think I'm understanding that Figure 1 in the data sheet is showing both... if I want more precision I can take averages, and if I want more accuracy I'm just going to have to calibrate at various temperatures (as @Paul_KD7HB said in post #2).

Figure 1 on the data sheet describes the error you can expect from sampling thousands of devices. The accuracy you get on your particular device will fall within that range typically. You might be lucky enough to get one that is dead on.

Now, since this is a digital device, its repeatability is not a function of ambient signal noise, etcetera. Therefore averaging lots of samples won’t give you a more accurate value. You are likely to only see a fluctuation in the least significant digit of the reported value. Analogously to the reading of a stable voltage with a digital voltmeter. Calibrating your individual device is the way to get more accurate readings as @Paul_KD7HB has suggested.

Inside your sauna-system you have to consider more that just the accuracy of the momentary measured temperature.

There is the mass of the oven/heating, the mass of the wood, there are turbulances in the air while heat is distributed through the air.

For a very very precise temperature-control-system that is able to control temperature as precise as holding the temperature constant with a maximum deviation of 0,2 °C
you would have to take in account
the mass of the oven/heating, the mass of the wood, and their change-rates over time depending on the heating-power.
Heating up the oven produces a time-lag until the heat reaches the air

Additionally you would have to use a sensor each 50 cm in the whole volume of the room inside for measuring how the temperature is distributed inside the sauna.
And then do very complex calculations how all this plays together and what this means in highly dynamically increasing/decreasing the power of the heating. These calculations are way beyond what an arduino can do.

So the practical approach is to be satisfied with a hysteresis of 3°C to 5°C.
People that uses a sauna
some may want a "low"-temperature sauna on the 45 to 50°C level
some may want a medium-hot sauna on the 65 to 70°C level
and some may want a real "hot" sauna on the 85°C to 90°C level

I'm not an sauna-expert but I guess depending on things like

  • how much experience with sauna
  • actual physical conditions like beeing real fit, a little bit ill, having eaten a lot and fat etc.

Will determine what temperature-level and/or the time staying in the sauna much more than
if the sauna is 45°C or 52°C
which is still away from a medium hot sauna on the 65°C to 70°C

best regards Stefan

Ah, ok, the "repeatability" is what I was most curious about, and what I misunderstood Figure 1 to show. It sounds like it's going to be very repeatable, so that's great.

@StefanL38 -- thanks, I am anticipating the thermal inertia of the overall system. In fact that's why I started this project: the thermal inertia of the overall system + the thermostat that comes with the stove is terrible, causing hysteresis of 17C/30F (after lots of tweaking, I got that down to about 10C, but that seems to be the best the thermostat can achieve). I'm hoping that with some clever programming I can narrow that window a lot. (There are other motivations for the project as well, but this is the main one.)

BUT! The major heat carrier in that air is water! When moisture in the air condenses on your thermostat, it will RELEASE a tremendous amount of heat energy to the thermostat. Any temperature measuring sensor will have the same problem.
The DB18B20 has a limit of 125C and will return an error code of -127C until it is reset by removing the power

Really? :upside_down_face:

I'm not an sauna-expert. My assumption is: though water is poured onto hot stones to vaporise immidiately that the relative humidity is way below 100%.

If it would be 100% or near 100% sweating would not have an effect on trying to cooling down the human body. I did a quick reading about relative humidity in saunas. There are various types of saunas.
The one with high air-temperatures 60°C and above have a real low relative humidity. So my guessing is condensation on the temperature-sensor will not be a problem.

For a "classical" finish-sauna, I found this table. The classical finish-sauna has a temperature-gradient with 100°C on the ceiling going down to 40°C on the floor.

If you plan your sauna as some kind of a "steam-bath" with temperatures around 35-45°C and 100% relative humidity it might be different. In this case I would use a ventilator that blows air over the temperatur-sensor in fast moving air it is unlikely that condensation happens on the sensors surface.