Is it hot or not? Contactless preciese Infra Red temperature measurement with Open Source Hardware MOD-IR-TEMP


MOD-IR-TEMP is UEXT module which could be easily connected to all our boards with UEXT connector. It has MLX90614 contactless Infra red thermometer which allow you to measure objects temperature from distance.

MLX90614 has internal temperature sensor which can sense temperature in range -40+125C and Infra red camera which can sense external objects temperature in range -70+380C with resolution 0.02C and is calibrated with precision 0.5C in range 0-50C.

There are two ways to connectMOD-IR-TEMP to other boards – first is to use UEXT connector:


MLX90614 works on +3.3V so it’s important if you use Arduino board to make sure it operates at 3.3V or you will damage the sensor.

OLIMEXINO-32U4 has jumper which selects on what voltage it operates 5 or 3.3V you must put the jumper in 3.3V.

The sensor is read via I2C, Adafruit has library included in Arduino library manager.

UEXT onOLIMEXINO-32U4 has power enable and to operate D8 pin should be placed in LOW state.

Here is code:

#include <Wire.h>
#include "Adafruit_MLX90614.h"

Adafruit_MLX90614 modIrTemp = Adafruit_MLX90614();

void setup() {
 pinMode(8,OUTPUT);   //the following two lines enable power supply 3.3V on UEXT connector
 digitalWrite(8,LOW); //you do not need them if you use wire jumpers

void loop() {

Serial.print("Ambient = "); Serial.print(modIrTemp.readAmbientTempC()); 
 Serial.print("*C\tObject = "); Serial.println(modIrTemp.readObjectTempC());

 delay(1000); // can adjust this for faster/slower updates

If you use breadboard you should connect MOD-IR-TEMP GND, 3.3V and SDA to D2, SCL to D3. In this case you do not need to set D8 LOW to operate.

MOD-IR-TEMP allow precise temperature measurement from distance, we are doing some experiments to measure PCB reflow temperature from distance and to measure body temperature.

Our experiments show that how good the temperature is measured depend on object surface. Dark objects temperature is measured better than shiny objects.

If you place your hand in the front of the sensor the temperature is measured correctly from distance 0 to about 5 cm, then the measurement start to register lower temperature. Our guess is that the build in optics has limitation, if you want to measure temperature from greater distance you should add proper optics.


2 Comments (+add yours?)

  1. Radoslav Kolev
    Mar 23, 2018 @ 12:08:30

    If you plug an emissivity coefficient somewhere in your formulas and adjust it for the surface type you should get better results for reflective materials. It’s mentioned in the datasheet that this coefficient can be ‘easily customized’, but I couldn’t see any details how.

    The sensor measures a cone with a certain angle and averages the temparature, so that’s why you get lower readings. When the hand is far enough it doesn’t cover the whole cone cross section and you get an averaged reading including some of the the background. According to the datasheet the angle is 72 or 80 degres depending on the model (AA or AB).

    Unfortutanely only very special optics like ZnSe, GaAs, or Germanium can be used.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: