Newbie Project: Arduino Ear Thermometer using Thermopile

Hi!

I have a computer science / software engineering background and would like to start tinkering with hardware.

For my first project I'd like to create an Arduino based device that accurately and continuously measures core body temperature over a few days. After some research, I found that most ear thermometers use thermopiles to measure core body temperature.

I'd like to keep it relatively compact, light, and portable. I'm thinking of using a lilypad arduino and one of the following thermopiles e.g. TPS333 Excelitas Technologies Sensors - TPS333/3182 - Thermopile Detector, 75 Kiloohms (Typ.), TPS 333 Series - RS , TPiD 012B or TPiD 022B http://www.excelitas.com/Downloads/TPiD%20012B%20TPiD%20022B%20Thermopile.pdf.

A few questions:
What hardware would you recommend i.e. which arduino, thermopile, modules, etc. ?
Can I directly connect one of these thermopiles to an Arduino?
How do I read the temperature data from the thermopile?
UPDATE for clarification: How can I store and retrieve the temperature readings so that I can analyze them on my computer (about 24 - 48 hours worth, read about once every second, so about 172800 readings, assuming a 2-byte integer, would yield about 337.5 kilobytes of data to store)?
What else would I need in terms of hardware besides an Arduino and Thermopile?
What kind of battery should I use?

Since I'm admittedly complete newbie to hardware, I would love to get more experienced users' design and implementation ideas. I'm very excited to get started!

Thank you!

bodhibyte

I would be wondering about the infrastructure. For example, what battery would you use? What holds it all while you shove it into your ear? Where do you read out the temperature?

I'm no expert of thermopiles but it looks to me like Arduino / Atmega328 or similar would do the basic job.

You could probably run it off 2 x AA or AAA batteries, the processor can run at a reasonable rate with 3V power.

You probably want to investigate a compact LCD screen to show the temperature, or maybe a couple of 7-segment LEDs, providing you power them off quickly to save power.

To give you an alternative for the sensor:

http://shop.boxtec.ch/product_info.php/cPath/39_71/products_id/40658

This one offers you medical accuracy (at least in the temperature window of a human body), is read using I2C (you don't have to twiddle with amps and the like, everything included) and is quite focussed (5°). I use it for something similar, although I use it only for a momentary measurement, not for constant wearing.

With a clever programming (longer sleep periods) you should be able to drive it from a not to big battery together with a minimal arduino setup (an ATtiny might be enough).

I don't think body core temperature is usually measured in the ear - I think it's usually measured rather lower down. :wink:

You might have some memory of your childhood... :slight_smile:

Today in-ear infrared thermometers are quite a fast way to get a good approximation of the body core temp. Go to your MD and ask for your temperature, most probably she will hold such a thermometer into your ear and tell you immediately.

pylon:
You might have some memory of your childhood... :slight_smile:

Today in-ear infrared thermometers are quite a fast way to get a good approximation of the body core temp. Go to your MD and ask for your temperature, most probably she will hold such a thermometer into your ear and tell you immediately.

Um ... don't think I'll risk it just in case, thanks. You never know, my GP might turn out to be 'old school' as well. :smiley:

Basically, I'm thinking of having the thermopile inside an in-ear earphone-style earbud (yes, I like to use the word ear a lot... ear ; ) ) and wearing it like I would wear my earphones, expect I only really need it in one ear. I'm not too worried about the housing.

Cool, thanks!

Great!

Hmm, I actually want to save the temperature readings to read them on my computer, so there's no need for a screen really. I'm trying to store and retrieve the temperature readings so that I can analyze them on my computer (about 24 - 48 hours worth, read about once every second, so about 172800 readings, assuming a 2-byte integer, would yield about 337.5 kilobytes of data to store).

pylon:
To give you an alternative for the sensor:

http://shop.boxtec.ch/product_info.php/cPath/39_71/products_id/40658

This one offers you medical accuracy (at least in the temperature window of a human body), is read using I2C (you don't have to twiddle with amps and the like, everything included) and is quite focussed (5°). I use it for something similar, although I use it only for a momentary measurement, not for constant wearing.

With a clever programming (longer sleep periods) you should be able to drive it from a not to big battery together with a minimal arduino setup (an ATtiny might be enough).

Thanks for the alternative sensor info. I saw slightly cheaper model on Sparkfun before Infrared Thermometer - MLX90614 - SEN-09570 - SparkFun Electronics but wasn't sure if it's as good as the ones I listed. Looks like it might be easier to use if the other don't have I2C.

I found more info on the Melexis MLX9061 thermopiles here: MLX90614 I2C Infrared Thermometer | Mbed

How can I store and retrieve the temperature readings so that I can analyze them on my computer (about 24 - 48 hours worth, read about once every second, so about 172800 readings, assuming a 2-byte integer, would yield about 337.5 kilobytes of data to store)?

In that case you are talking about 86400 to 172800 readings. Even at a byte each, that is far more than the available EEPROM (1 Kb).

You could scale down a bit (a reading every couple of minutes) or get some external storage. An SD card in a small adapter might do the trick, eg.

Or an EEPROM chip, eg.

Thanks Nick! Microsd sounds great! And it's not too expensive.

How can I store and retrieve the temperature readings so that I can analyze them on my computer (about 24 - 48 hours worth, read about once every second, so about 172800 readings, assuming a 2-byte integer, would yield about 337.5 kilobytes of data to store)?

Just how fast do you expect your subject's core body temperature to change? Once a minute is probably overkill.

PaulS:
Just how fast do you expect your subject's core body temperature to change?

That's exactly one of the questions I'm trying to answer! Which is why I want the higher sampling rate that would otherwise be way overkill.

PaulS:
Just how fast do you expect your subject's core body temperature to change? Once a minute is probably overkill.

He might get frightened by having a microprocessor shoved up his ear. That might alter results. :wink:

That's exactly one of the questions I'm trying to answer!

I wouldn't think that you would need to collect data away from a PC for two days to determine that.

Get a volunteer subject to wear the device, while connected to a PC, and try different things to raise (strenuous exercise, exposure to heat, etc.) and lower (stick the subject in a walk in freezer) the subjects core temperature. Plot the temperature as you get it, and learn how quickly the core temperature changes under extreme conditions.

For people not subject to extreme conditions, the rate of change of core temperature is pretty low. Measuring the temperature every second will, I'm nearly positive, be unnecessary.

OI course, one of the hardest things to do with your test subject is going to be preventing outside factors from affecting the temperature reading that you get. That is, measuring what you think/hope you are measuring, and nothing else.

You're not going to get core temperature in the ear but you will get solid information on how warm the body is running, the brain is a pig when it comes to blood supply.

I dunno if it's going to work but I have a $2 PIR sensor on order. No lens or board, just the sensor. I plan on masking one of the apertures and seeing if the difference reading gives me anywhere near right temperatures. I'm sure the mask will vary but I don't need high accuracy to check a house for heat leaks at night do I?