Fast, high resolution temperature sensor needed

Dear Builders,
I've made many test measurements with usual/cheap sensors in the past few months. None of them reached the minimal requirements to my project. So now, I'm looking forward for a temperature sensor with the following features:
-- measurement interval: 0,1 second (100 ms),
-- relative measurement accuracy: 0,1 degrees Celsius (0,05 degrees Celsius recommended),
-- absolute measurement accuracy: not really important, acceptalbe range may around +/-3 degrees Celsius(*)
-- measuring range: 20–120 degrees Celsius,
-- communication via serial protocol (SPI/1wire/I2C)
-- watertight (IP67 / NEMA 6 or better, IP69/IP69K would be excellent)
-- at least 50 cm long cable
-- small, flat probe (around 5×5×2 mm, the flatter/smaller the better)
-- thin wire (2,5 mm diameter max), the more flexible is better.

(*) My goal is to measure the temperature change through time with a very accurate relative curve with a big vertical (temperature) and horizontal (time) resolution. Absolute accuracy is not important at this point (+/- 3 degrees difference is not a big deal).

Start temperature may around 50 degrees Celsis, maximum should not exceed 110 degrees Celsius.

Price range is not important. I'll need one or two pieces via ebay or direct order (within EU).

Thanks in advance for any suggestion.

Regards,
Tamas

Which sensors have you tried sofar?
(so we do not advice these again)

First thoughts:

  • 0.1 second is fast,
  • I would not use I2C as this is a relative slow protocol

Use an analog sensor as these can be sampled up to 100's of times per second.
You could average 256 readings to get precision you need
( you might need to calibrate it first to get the offset right)

uint32_t sum = 0;
for (int i=0; i<256; i++) sum += analogRead(A0);
float rawTemp = sum * 1.0/256.0; // compiler will optimize this
float temperature = func(rawTemp);

Fast temperature measurements are often not possible with a sensor due to the thermal capacity of what you are trying to measure. A sample time of 0.1 seconds sounds fast.

We were investigating heat flow in a car's break. The only way we found was to use a non contact measurement system with infra read sensors, the sort used in thermal cameras.

It's not clear in which way your existing sensors failed to meet your requirements. If their accuracy is within ±3°C, and their response time is adequate, then perhaps they could still be used.

measuring range: 20-120 degrees Celsius

This gives a 100°C span, so with 10-bit ADC, you're just under 0.1° per step which meets your requirement.

The input would need to be scaled in hardware to get 0-5V on the analog input for the 20-120°C temp range. With oversampling, your 0.05° recommended requirement could be met.

How fast does the temperature change in your tests?

Hi,
First of all, thanks for the answers,

robtillaart:
Which sensors have you tried sofar?

First thoughts:

  • 0.1 second is fast,
  • I would not use I2C as this is a relative slow protocol

I've tried:

  • 18B20 with direct contact (thermo gel used). Problem: too big, not precise enough.
  • DHT11 (just for testing). Problem: this is DHT11.
  • LM35. Problem: too big, not precise enough.

Of course, these are far off my requirements, and all of them used for prototype testing (to be exact, to test my ideas).

I2C – clear, it's my last chance, if everything else fails.

Analog sensor sounds interesting, but which one?

Grumpy_Mike:
[...] The only way we found was to use a non contact measurement system with infra read sensors, the sort used in thermal cameras.

At this point, it's impossible (see below).

dlloyd:
How fast does the temperature change in your tests?

First of all, there is an ideal curve of temperature change, which starts from around 90 degrees and rises over 99 degrees within a few seconds, then slowly drops down by 1-2 degrees within the next 30 (+/- 10) seconds. At this point, there is no need to a 0.1 s sampling rate (I bet, 0.5 s should be far enough), meanwhile a good "vertical" resolution is a must (0.1 degrees C or even better).
As we compare measurements to each other, among ideal circumstances, each curve should look the same within a very narrow boundary on both axes. Of corse, circumstances are never close to ideal, so each measurement should show a little difference. These differences may point out a problem in the whole process. At this point, high sampling rate can help to find the source of the problem.
(It's better to compare this whole process to the analogue waveform analysis on oscilloscopes.)

For better understanding. I'm going to make high precision temperature measurements within coffe machine filter holders to check the temperature during the brewing process. For raw measrements (without coffee in the machine) a Scace thermocoupler/grouphead can be used (see Scace 2 Espresso Machine Thermofilter | Espresso Parts). This is good to measure the machine itself (which is a must, but can go forth enough to find out all the possible problems). What I actually need is a thermocoupler/sensor small, fast and accurate enough to put inside a filter holder (portafilter: http://www.espressoparts.com/la-pavoni-portafilter-body-chrome and the filter basket (Portafilter Basket - 14 Gram Ridgeless Style).

Thanks in advance,

Tamas

This temperature transducer looks interesting.

Temperature measuring transducer - MCR-T-UI-NC - 2814100

A few of it's details:

  • Configurable/programmable
  • The response time for the MCR-T/UI for a mV signal is 11ms and for a thermocouple/RTD is 166ms.
  • D/A resolution ± 12 bit
  • Current output signal 4 mA ... 20 mA
  • Maximum transmission error = 0.1 % (of maximum range, ±6 mV or ±12 µA at output)
  • Maximum temperature coefficient = 0.01 %/K
  • Temperature coefficient, typical 0.005 %/K
    Note: If you're using the Arduino Due, this could be a good match because the Due's A/D resolution is also 12-bit and its input range is ⅙ to ⅚ of 3.3V. If the transducer is programmed for 4-20mA and a 137.5Ω load resistor is used, it will exactly match this range.

A technical rep could offer better advice to match the product to your application and requirements.

dlloyd:

  • The response time for the MCR-T/UI for a mV signal is 11ms and for a thermocouple/RTD is 166ms.

I don't think that includes the response time of the sensor itself. How could it? The response depends not only on the type of sensor but also the geometry and the medium it is measuring. What grumpy mike said, the sensor (and its insulation) have to be heated, and that takes time.

I am also curious what is available. I have used bead thermistors for a similar application. They are quite small (<2mm) and very sensitive (0.1°C) but the time constant is closer to 1s. And that refers to the time to reach 63% (1-1/e) of the temperature change. To get to 95% takes three periods and 99% takes 5, so there is a lag of a few seconds and high frequency peaks are missed.

Do you really need that kind of resolution for espresso temperature profiling?