×

Prolonged severe weather across the U.S. is causing delays including the ability to transport and deliver packages in certain cities. Please see here for more details. Thank you for your continued support and patience.

×

Please see all COVID-19 updates here as some shipments may be delayed due to CDC safety and staffing guidelines. If you have an order or shipping question please refer to our Customer Support page. For technical questions please check out our Forums. Thank you for your continued support.

This tutorial shows you how to get data from a CCS811 breakout board with the I2C interface.

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

**Skill Level: Noob** - You don't need to reference a datasheet, but you will need to know basic power requirements.

See all skill levels

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our **Technical Assistance** page.

*No reviews yet.*

An absolute

bargainat only 5.5 times the cost of buying the exact same component in single-unit quantities from digikey and/or mouser ($1.95 versus $0.35) ... or if you buy in lots of 100, you get an even better deal at 7.9 times the cost of the same order. $156 for 100 from SparkFun, $19.70 for 100 from digikey.Come on SF, add VALUE, not just COST.

Well here's the value, say you need one of these, and your buying a really nifty BOB, but you don't need to do a digikey order and with digikey you're looking at 5-10 for shipping, so for $1.7 extra you can save 5 on the shipping. I don't know about you, but I go to Digikey and the like for large orders of generic stuff, I made one large order from them and haven't bought from them since, I figure 500 1k resistor wouldn't be much, now I know it's a life time supply =P Spark fun has a niche. the various extra stuff they carry isn't that niche but it's a convenience that I love because I know that this is the thermistor that will work for 99.99% of my thermistor needs I'll gladly pay that extra $1.7 than having to sort through 12,732 results for thermistor. Haters gonna hate.

I mean, they're not forcing you to buy this. They probably don't make any money selling things for less than $2.

They should probably sell a 5 pack for $3 or something, or sell them with resistors so Arduino users can immediately use them. That would be nice!

Lets not just complain though, lets try to suggest improvements when we can!

The pack of 5 for $3 would be nice.

Simple library for this thermistor based from code on Arduino Playground. Download the zip file here:

http://code.google.com/p/thermistor10k/downloads/list

Didn't see the datasheet on the Vishay site. Anyone have better luck?

Interesting that a major company such as National Instruments buys from Sparkfun. Here is a link to one of NI's LabView tutorials using this 10K thermistor purchased from Sparkfun. http://www.ni.com/example/31408/en/ Listed in Step 3... "What you need":

Can someone tell me if the coating on the thermistor can withstand constant exposure to boiling water?

Not sure if this will help anyone but I had to make a blog about something so I made one on how to make an electronic thermometer. It uses a thermistor and explains some basics of it: http://josephcorleto.wordpress.com/category/electronic-thermometer-2/

Hope this helps!

Anyone ever tried using this for skin temperature measurement?

I can't get a reasonable temperature to come up. It thinks room temperature is ~107 C with the http://www.arduino.cc/playground/ComponentLib/Thermistor2 code. It's clearly just a math problem, because maxm's libary uses totally different multipliers.

maxm's library looks great, but I am not enough of a coder to figure out how to make it work! Is there any "example code" or something?

This information is in the datasheet, albeit difficult to read. If I didn't have a datasheet and were starting from scratch with an unknown thermistor, here's how I would do it, which isn't the only way.

Using a known good thermometer, I'd try and get on the order of five points where you record both the known temperature and the analog value coming from your thermistor circuit. Ice water (0C) and boiling water (100C) are easy, and get a few other points in between, the more evenly spaced the better.

Now if you graph those pairs of points (real temperature vs. analog value), you'll start to see a curve. What you need is the equation of that curve, where real_temperature = f(analog_value). This is known as curve fitting. If you have (and remember) the math background, you can find a polynomial equation that fits the points. If not, there are online calculators that do the hard work for you (use a degree of 3 or 4 and be sure to hit "show graph" to see how well the curve matches the points).

When you're done, you'll have an equation that's something like y = A x^3 + B x^2 + C x + D (where A,B,C,D are numbers that come from your curve-fitting calculations) that you can use to directly translate your analog measurement to temperature. (The datasheet uses a similar equation and provided numbers if you want to go that route.) You'll need to use floating point numbers in the Arduino, but that's a small price to pay. I hope this helps, good luck! =)

Whoops, sorry, I messed up. I meant that Fabio Ornellas' library looks great, not maxm's. It's here: https://github.com/fornellas/sketchbook/tree/416ae0f095d1d6ba232a5951ccbb620a85386ca8/libraries/Thermistor . I think Fabio has already figured out all these constants for us, saving me (and anyone else) all the work you suggest above.

So I'm just trying to figure out how to call the library function or whatever. I'm trying "Thermistor thermistor(0)" and "thermistor.read()" and things like that (based on this tutorial: http://arduino.cc/en/Hacking/LibraryTutorial ), but I really have no idea what I'm doing.

Fabio, you're awesome! Why did you not give us any example code? >:^( . ;^)

what is the B coefficient for this part?

You first need to find voltage across Thermistor at particular temperature than you can find the Resistance of thermistor using Voltage divider equation: Rt = R (Vin/Vout) – 1 Then after getting the resistance value at that particular temperature we can get the temperature in kelvin using the below Stein-Hart equation: T = 1 / (A + B

ln(Rt) + Cln (Rt)ln (Rt)ln (Rt) ) where A, B, C are constants whose value, you can find in datasheets of Thermistor or you can derive these value by taking three different resistance value at three different temperature. using this calculator: http://www.thinksrs.com/downloads/programs/Therm%20Calc/NTCCalibrator/NTCcalculator.htmThis all will be possible with Arduino to get Temperature in degrees with thermistor: Source: https://circuitdigest.com/microcontroller-projects/arduino-thermistor-interfacing-code-circuit

This looks great!

+1 to maxm's comment. i like the approach of putting the computation in a separate function. just know that you need to replace "Wprogram.h" with "Arduino.h" in the files. Plus, the equation works well. Measured within 2 degrees F in both boiling water and an ice bath.

Any idea if these are waterproof?

no, water bridging between the wires alters the signal.

Arduino library for part #: NTCLE100E3103JB0. Works independently of VCC (eg. 3.3V or 5V).

Having some inexplicable difficulties with thermistor measurements (using this NTCLE100E3103JB0)

First, I breadboarded the thermistor in a voltage-divider using a 10K resistor. Fine - no problems. Then I took 2 x five ft. lengths out of an ethernet cable (measured the resistance of each strand - less than 2 Ohms - solid copper ), and put the thermistor on the extension. Now the temperature fluctuates up and down by about + and -1F. Makes no sense to me.

Any ideas anyone?

Is my simple V-divider circuit inadequate? (Arduino Uno, 5-v supply, 10K resistor, and this thermistor).

I would like to use this in conjunction with an XBee Series 2 where the voltage is 3.3v. Since the maximum voltage that can be measured on the XBee analog pins is 1.2v, based on the O'Reilly sensor networks book, a quick way to bring the max measured voltage down to 1.2v is to have fixed resistor that is approximately double that of the maximum resistance of the sensor. However, the advertised resistance of these types of thermistors is at room temperature or 25C (in this case 10K Ohms). Does anyone know what the maximum resistance of this sensor is? I couldn't figure it out from the Vishay datasheet since they don't show the specs for the 10k at 25C model.

Nevermind. Found the PDF mentioned by TomA above (was page 10 actually). Resistance of this thermistor ranges from 332,094 Ohms (-45C) to 182.6 Ohms (150C).

Here's the code for measuring temperature with Arduino for those who need it.

I'm measuring the voltage drop across the thermistor instead of the 10K resistor.(log(ts1/10000)))+(.000002620131*remember to include the math.h library

5v|---|10kOhms|---|----|Thermistor|----|GND

A0

float ts1 = analogRead(A0);

ts1 = ts1 * 5 / 1023;

ts1 = ts1/((5 - ts1)/10000);

ts1 = 1 / ((.003354016)+(.0002569850

(pow((log(ts1/10000)),2)))+(.00000006383091(pow((log(ts1/10000)),3))));ts1 = ts1 - 273.15;

Serial.print("Sensor 1 Temperature = ");

Serial.print(ts1);

Serial.println(" Celcius ");

Stupid question, but does this come with one or three thermistors?

Only one, according to the product description.

Like the above post, it works great with the arduino code.

My comment on it is why doesn't the equation provided in the .pdf work? And why does it have an extra log (as compared to the Steinhart-Hart equation)

What do you mean the equation in the datasheet doesn't work? The equation is the "extended" Steinhart-Hart, so it has an extra squared term, but it's essentially the same.

Worked great with the arduino code (and schematic) from here: http://www.arduino.cc/playground/ComponentLib/Thermistor2

To save some of you time the ....3103 thermistor data of R vs. Temp. is on page 11 of the Thermistor23816403-1.pdf file ( Vishay's page 84).

I think you meant:

http://www.vishay.com/docs/29049/23816403.pdf

http://www.vishay.com/docs/29051/2381645.pdf