Body Temp wit LM35 Sensor away from Board

Greetings:

Working on a science project with my child and have a technical issue we are trying to solve.

The project is designed to take a person's body temperature and then send out a message (first LED and then email) when that temperature reaches over a 100 degrees.

He is using the Arduino starter kit and the included Uno board and LM35 temperature sensor. We know the sensor is not super accurate, but it is accurate enough for our purposed and we are lowering the actual target temp accordingly.

Here is the problem:

In order to demo, the user has to put his fingers around a small piece (LM35) on top of a breadboard. We want to get this piece away from the breadboard.

Can we use a JST Jumper 3 Wire Assembly to do that? So that visitors can hold the sensor in their hand?

If not, what can we use?

any help appreciated!

I'd probably solder wires onto the terminal and cover with heat-shrink tubing.

But the temperature sensor will probably plug-into a female JST connector (if that's what you're talking about). You might have to trim the leads if they are too-long and exposed. And, you might want to add a drop of hot glue or RTV or something so it doesn't get pulled-out. (You might want to buy a couple of extra parts if you are altering them so you can to keep the starter kit intact.)

when that temperature reaches over a 100 degrees.

The LM35 is calibrated for centigrade so you'll have to make a conversion in software if you're not doing so already. (The LM34 is calibrated for Fahrenheit.)

but it is accurate enough for our purposed and we are lowering the actual target temp accordingly.

I believe it's stable enough so you should be able to calibrate it to be accurate-enough for a fever thermometer.

The project is designed to take a person's body temperature...

...In order to demo, the user has to put his fingers around a small piece

I don't think hand/finger temperature correlates very well with overall body temperature. :wink:

DVDdoug:
The LM35 is calibrated for centigrade so you'll have to make a conversion in software if you're not doing so already. (The LM34 is calibrated for Fahrenheit.)

Factory calibration and mV/degree is totally irrelevant once you connect an analogue sensor to an A/D.

YOU must calibrate again, and decide on the scale in which you display.

DO use the internal 1.1volt Aref with the LM35, otherwise resolution and stability is poor.
Even with 1.1volt Aref, you don't get better than 0.1F resolution.
Example code attached.
Leo..

// LM35_TMP36 temp
// works on 5volt and 3.3volt Arduinos
// connect LM35 to 5volt A0 and ground
// connect TPM36 to 3.3volt A0 and ground
// calibrate temp by changing the last digit(s) of "0.1039"

const byte tempPin = A0;
float calibration = 0.1039;
float tempC; // Celcius
float tempF; // Fahrenheit

void setup() {
  Serial.begin(9600);
  analogReference(INTERNAL); // use internal 1.1volt Aref
}

void loop() {
  tempC = analogRead(tempPin) * calibration; // use this line for an LM35
  //tempC = (analogRead(tempPin) * calibration) - 50.0; // use this line for a TMP36
  tempF = tempC * 1.8 + 32.0; // C to F
  Serial.print("Temperature is  ");
  Serial.print(tempC, 1); // one decimal place
  Serial.print(" Celcius  ");
  Serial.print(tempF, 1);
  Serial.println(" Fahrenheit");

  delay(1000); // use a non-blocking delay when combined with other code
}
  1. Thank you for the suggestion re: soldering or glue. That totally makes sense and would avoid the project ending because some kid walks away with the goods.

  2. yes, we have figured out and worked the conversion formula.

  3. NO! It turns out the temperature in your fingers does NOT correlate well with body temperature, as we are not able to get it higher than 82 degrees F. However, we are calibrating accordingly. This is not for sale it is for a science project, so imperfections are allowed, along with full disclosure.

  4. Thanks for the code Leo, and for the documentation on the LM35 v TPM36, which we did order, but have not yet received.

There is a body temperature sensor available that is very accurate around normal body temperature- worth a google .

The TMP36 is temp wise exactly the same as the LM35. It only has a 500mV offset.
If you want a "better" one, then order some "waterproof DS18B20" sensors.
The "waterproof" part being a metal tube with the sensor protected inside.
They are digital, so the use of an A/D doesn't stuff up the factory calibration.
Resolution is also several times higher than the LM34/35/TMP36 sensors with a 10-bit Arduino A/D.
DS18B20 example sketch for tempF attached.
Leo..

#include <DallasTemperature.h>
#include <OneWire.h>

OneWire oneWire(6); // pin D6
DallasTemperature sensors(&oneWire);
float temp;

void setup() {
  Serial.begin(9600);
  Serial.println("DS18B20 thermometer");
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures(); // takes <=750ms to get temps
  temp = sensors.getTempFByIndex(0); // note the 'F'
  Serial.print("Temp is ");
  Serial.print(temp, 1); // one decimal place
  Serial.println(" Fahrenheit");
}

I did not think that the waterproof probe would have been fine enough for body temp. Now Im unhappy I did not get that one. Thanks for the info, though.

I have a simple 10k thermistor soldered on 2 meters single stranded wires from an old internet cable. If you don't need tons of accuracy no problem.