I am building an infrared contactless thermometer using this sensor, the MLX90614, but I always face the same problem.
Firstly, I bought the BAA version of that sensor, but it always measured lower temperatures than it should. I thought it was because of the wide FOV, so I secondly bought the DCC version, which supposedly was more accurate. However, I still had the same problem, so I ended up buying the most expensive one, the DCI version, which has medical accuracy and a FOV of only 5 degrees. However, I still have now the same problem.
When I place the sensor maybe 0.5 cm away from my forehead, it always measures lower temperatures than it should. It measures 34 celsius degrees or so, and human temperature should be something closer to 36 or 37 degrees.
I am using the example program of the Adafruit library, so I believe the code is correct. What should I do? Should I recalibrate it somehow?
I know, but according to what I have found in internet the temperature should be higher. In addition, according to the datasheet of this product, it has better accuracy between 36 and 39 degrees, which are the expected for corporal temperature.
Ha! The temperature will be what it is. Just calibrate your sensor with a water bath, use another thermometer in the water to check its temperature independently. As I said the forehead temperature depends on the envrionment you are in, how active you are, your actual temperature and not on what the internet says!
The forehead is the least reliable indication of body temperature, its just the least invasive. It doesn't work outdoors, note.
You really need a reliable temperature source to be certain of anything , using your head as a reference won’t be accurate .
( something like an aluminium block with the sensor and a reference thermometer inserted )
I know my forehead is not the best option, but I believe this sensor, which has medical accuracy and is intended to be used to measure human temperature, is designed to measure in my forehead. Isn’t it?
No, its designed to measure the temperature of any surface with high emissivity in the far infra-red as it senses infra red radiation. It will work for water, many plastics and painted surfaces, but not for bare metal surfaces which are not emissive in the far IR at room temperature.
That's why I said calibrate with water - definitely not aluminium block, that would be very misleading.
Google drywell reference , temperature controlled blocks with holes are commonly used for calibrating prts etc by enclosing the sensor .I don’t think that sensor can be submersed and I don’t know the emissivity of water so reading water temperature above the water might not give the right reading either.
These sensors measure IR radiation, so for example a white object and a black one both at the same temperature will give different readings from the sensor .
“ The emissivity ε (Epsilon) has a central importance, if the temperature is measured through radiation. The emissivity defines the relation of the radiation value in real and of the black body. This is maximal 1 for a black body. But only few bodies meet the ideal of the black body. For the calibration of sensors contact faces of radiators are generally used, which consists of the favoured wave length of 0.99. ”
Its an infra-red thermometer, you can't place it in a well!! its looks at the surface and receives photons from it! If the surface is bare metal it acts as a mirror to infra-red photons and it doesn't work. Use water as I have already explained twice, water has excellent emissivity for far IR and would be a simple way to calibrate..