Mass calibrating 4,000 DS18B20 sensors

Hi,

So I just finished doing preliminary experiments for a soil temperature monitoring project and I'm looking to upscale the experiment.

My current experiment has 20 DS18B20 sensors hooked to an Arduino and placed inside some soil. To calibrate these, I used two point calibration (0deg C and 100deg C) by manually measuring the value that each sensor reads at 0degs C and 100degs C, and then hard coded these values in my program to calibrate them.

The result of my experiment was good and I would like to scale it by a factor of 200 - so 4,000 sensors. Calibrating 20 sensors took me half a day (as well as getting the individual addresses of each sensors) so maths tells me that I would need 100 days to calibrate all of the 4,000 sensors.

You obviously know my question... how on earth can I mass calibrate of all them?

have some sort of a calibration process as part of the software and have the operator run it when the 4000 sensors will be physically installed..

I suspect there is way more time invested in this than in just calibrating...

1 Like

How many Arduinos do you have?
Write a program to supply the address when you press a button and log it in a file.
Insert a sensor and press the button to for a circuit that you'll build to connect the power and your program will detect this and read and log the sensor ID. Then box them in order to match the file as you go.
Calibrate them after you have the IDs and the sensors wired in line. You can use a single large tub with all of the sensors in the same temperature.
I'm sure there are better ways, but that's my take on it.

1 Like

How accurate are the current readings before calibration? How accurate do you need? Would using an average calibration work?

1 Like

4000 'real' DS18B20 is a lot of money (you can almost buy a new car for that),
so I assume you're going to order them from a cheap source.

Almost every chip I bought cheap comes from China, and is fake.
Most of the times you can get away with the minor problems,
but I wouldn't want any problems with that amount of sensors.
Good luck (a lot will be needed).
Leo..

1 Like

How badly inaccurate were the ones you calibrated?

1 Like

As wildbill said, since you tested 20 sensors with 2 measurements (0 and 100°C), you therefore have a set of offset data at 0°C and 100°C, or 40 values. Can you tell us what is the standard deviation and dispersion of your set of values? This can give you an idea of the accuracy of your 20 probes. How accurate do you need to be for the final project?

1 Like

You are right, I will almost certainly be using clones. But I tested around 40 cloned sensors (from 3 different local supplier) in near-submerged condition and the results suggest that even clones are stable and accurate over the long run.

... but yes, the uncertainty of cloned sensors haunt me every night :joy:

I tested them at 0degs C and 100degs C. Here were the values recorded for the first 20 sensors:
{1.31, 100.00},
{1.50, 100.56},
{1.12, 99.12},
{1.06, 99.31},
{0.72, 110.03},
{0.72, 98.83},
{1.15, 100.47},
{1.09, 99.34},
{1.88, 99.50},
{1.15, 99.19},
{1.25, 99.40},
{2.47, 99.56},
{1.63, 99.40},
{1.63, 99.15},
{1.63, 99.53},
{1.19, 99.62},
{1.62, 99.90},
{1.56, 99.97},
{1.25, 99.56},
{0.91, 99.97},

So generally it varies between 0.5-1.5 degs C. And then you have the occasional 10 degrees off :joy:
After calibration and a month of underwater usage, at the same ambient temperature, 95% of the sensors would be within 0.5 degs C of each other.

My current experiment has 20 DS18B20 sensors hooked to an Arduino and placed inside some soil. To calibrate these, I used two point calibration (0deg Well! the shift of the measurement at 0°C seems a bit important to me, I didn't notice that on my tests. What is the reference measurement, with which thermometer? Can you describe a little more precisely your way of proceeding?
(edit : this message seems to be mixed with another one )

@J-M-L
Yes, and the easier the process is the better as I will not be the one who will be physically calibrating them - all of this will be done remotely by a team of people that are unfamiliar with Arduino!

@missdrew
Anything error under 3/4 degrees is acceptable, under 1/2 a degree is perfect. I though of an average calibration formula but for the purpose of the research, accuracy is important.

@Wawa
You are right, I will almost certainly be using clones. But I tested around 40 cloned sensors (from 3 different local supplier) in near-submerged condition and the results suggest that even clones are stable and accurate over the long run.

... but yes, the uncertainty of cloned sensors haunt me every night :joy:

@wildbill
I tested them at 0degs C and 100degs C. Here were the values recorded for the first 20 sensors:
{1.31, 100.00},
{1.50, 100.56},
{1.12, 99.12},
{1.06, 99.31},
{0.72, 110.03},
{0.72, 98.83},
{1.15, 100.47},
{1.09, 99.34},
{1.88, 99.50},
{1.15, 99.19},
{1.25, 99.40},
{2.47, 99.56},
{1.63, 99.40},
{1.63, 99.15},
{1.63, 99.53},
{1.19, 99.62},
{1.62, 99.90},
{1.56, 99.97},
{1.25, 99.56},
{0.91, 99.97},

So generally it varies between 0.5-1.5 degs C. And then you have the occasional 10 degrees off :joy:
After calibration and a month of underwater usage, at the same ambient temperature, 95% of the sensors would be within 0.5 degs C of each other.

@PatMax
This is what I get:

Well! the shift of the measurement at 0°C seems a bit important to me, I didn't notice that on my tests. What is the reference measurement, with which thermometer? Can you describe a little more precisely your way of proceeding?

I wrote a bit quickly... you didn't make a comparison with a reference thermometer, you made a standard deviation on the set of measurements, with melting ice, and boiling water.

And how are you going to protect them.
Note that the waterproof DS18B20 sensors (metal tube) are not waterproof.
Leo..

We've done a lot of testing in crushed ice water and found at best 1/2 deg C variation. And we were immersed in the water not "partially immersed".

Boiling water (at about 200 ft altitude) was always a degree or 2 below 100. I don't think you can get consistent temperature with these methods much closer that a few Deg C.

I would discard the 110 Deg Sensor and the 2.47 deg sensor (in the trash) and use the rest.

So at what accuracy will your experiment be inconclusive? You would have a tough time convincing me you could do measurements within a degree C.

Firstly
Spring loaded terminal on your board.

Second soft code. Not hard code.

Run your cal tests and have the sketch print out the data.

Easy to cut and paste to hard code.

Laser ptint the ID. Cut out papsr

Clear heat shrink the papsr to the cable

Water only boils at exactly 100 degrees centigrade under STP conditions... even some cooking recipes have to take account of that...

Of course, that is the definition of 100 deg C. However if you take a pot of water at somewhere above sea level the number drops. I have observed water boiling at 98 - 99 deg C at 200' to 300' above sea level. (Using a calibrated platinum thermometer). Was tested to confirm a bet.

I'm not familiar with the one wire sensors, however wouldn't the factors need to be paired with the unit ID? I don't think it matters which one is which.

Each DS18B20 has a unique Serial numer or address.
You pole the device and ask its address.

If you connect a few score sensors
Create an array
Poll them.
The lowest ID will respond first. The highest, last.
Now you have all the addresses.
If you run tests the data will be stored with the device ID if hard or soft coded.

If you dip each one in cold water it alone will show cold thereby identify the unique probe to the unique data set.

By creating a serial output of the sensor ID
You can print it on paper, cut it out and with clear heatshrink label it forever.

IMHO hard coding for testing is a waste of time.

Once you write the sketch you serial print the ID and Bobs your uncle.
Copy paste in a sketch without ever typing a letter number. Or punctuation.