In this article we will look at the mlx90615 infrared thermometer connect it to a chipkit, in this case we used a chipKit Max32 but the other boards should work as well
The MLX90615 is a miniature infrared thermometer for non-contact temperature measurements. Both the IR sensitive thermopile detector chip and the signal conditioning ASIC are integrated in the same miniature TO-46 can.
The infrared thermometer comes factory calibrated with a digital SMBus output giving full access to the measured temperature in the complete temperature range(s) with a resolution of 0.02 °C. The sensor achieves an accuracy of ±0.2°C within the relevant medical temperature range. The user can choose to configure the digital output to be PWM.
Features
Factory calibrated in wide temperature range: -20 to 85°C for sensor temperature and -40 to 115°C for object temperature
High accuracy of 0.5°C over wide temperature range (0..+50 C for both Ta and To)
Medical accuracy of 0.2°C in a limited temperature range
Measurement resolution of 0.02°C
SMBus compatible digital interface for fast temperature readings and building sensor networks
Customizable PWM output for continuous reading
3V supply voltage with power saving mode
Layout
Here is a layout which shows how to connect the sensor to a chipkit
Code
This particular example comes from the following library which I installed for testing – https://github.com/skiselev/MLX90615
[codesyntax lang=”cpp”]
#include <Wire.h> #include <mlx90615.h> MLX90615 mlx = MLX90615(); void setup() { Serial.begin(9600); Serial.println("Melexis MLX90615 infra-red temperature sensor test"); mlx.begin(); Serial.print("Sensor ID number = "); Serial.println(mlx.get_id(), HEX); } void loop() { Serial.print("Ambient = "); Serial.print(mlx.get_ambient_temp()); Serial.print(" *C\tObject = "); Serial.print(mlx.get_object_temp()); Serial.println(" *C"); delay(500); }
[/codesyntax]
Output
Open the serial monitor and you should see something like this displayed
Melexis MLX90615 infra-red temperature sensor test
Sensor ID number = 876736
Ambient = 19.13 *C Object = 20.55 *C
Ambient = 19.13 *C Object = 20.55 *C
Ambient = 19.09 *C Object = 20.49 *C
Ambient = 19.09 *C Object = 20.49 *C
Ambient = 19.09 *C Object = 20.61 *C
Ambient = 19.09 *C Object = 20.65 *C
Ambient = 19.09 *C Object = 20.49 *C
Ambient = 19.13 *C Object = 20.45 *C
Ambient = 19.13 *C Object = 22.91 *C
Links
https://www.melexis.com/-/media/files/documents/datasheets/mlx90615-datasheet-melexis.pdf
1PCS MLX90615 Digital Infrared Temperature Sensor for Arduino