It is quite easy, I do it all the time. You need a reference voltage, or two voltage measurements, and a second resistor, similar in value to the base resistance of the thermistor.
Here is the page from ,y notebook that describes how to do it.
To implement this I usually measure and average the voltages over a few seconds. In my set up, with a 16 bit ADC and precision voltage reference, it seems pretty reproducible.
I use it to run temperature control loops and etc., and for all of those experiments, it is part of the recorded data. But, that said, no guarantee or warrantee of any sort whatsoever is given, implied nor anything else. You have to check it for yourself. Good luck, enjoy.
P/S Re Calibration:
- The base resistance and B are usually specified for the thermistor. I find those are usually pretty good. Note that larger base resistance means less susceptibility to other resistances in your circuit. Nowadays, I use a 100K thermistor.
(My analog input happens to have a 100K resistor to ground and my DAQ has a 2.5 precision voltage output, so it is all pretty convenient.)
-
To calibrate, you need a ground truth reference that you are sure is better than your thermistor.
-
Fitting a curve between your readings and your reference is easiest, fitting B is not to tough. Fitting R0 is a little tougher because of the logarithm. Try measuring it instead.
Nota bene! (And P/S to the above).
One think that I neglected to mention, is that I use an instrumentation amplifier to read the divider network. The very high impedance of the InAmp lets you read the divider without effecting the voltage you read in a discernible way.
From the number of posts about this on forums, it that connecting a thermistor divider directly with an Arduino input is popular misstep. The main reason is because the large resistor in the upper arm of the divider adds to the series resistor built into the analog input and lengthens the settling time for the sampling capacitor. A divider with a 10K thermistor is large enough that the sampling capacitor is not yet at the right voltage by the end of the sampling interval and converter sees the wrong voltage.
That said, if you dont happen have an InAmp, there is another very simple solution, with not too many part, and may have something on hand that will do it. Make
an opamp follower, it looks like this. You are reading slow voltages, so you can even breadboard it if you have to (and a bit breadboard noise is not a problem).
Think of this as one side of an InAmp in one key way, it gives you a high input impedance to read the divider, a low output impedance so that you do not effect the settling time (or more than enough current) for the analog input of the Arduino.
But also, remember the analog input still has its own internal 5k'ish resistor, so be sure to set a long enough sampling time, it may need a few usecs to settle to an accurate voltage reading.