Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use MLX90614: Examples, Pinouts, and Specs

Image of MLX90614
Cirkit Designer LogoDesign with MLX90614 in Cirkit Designer

Introduction

The MLX90614 is a non-contact infrared temperature sensor designed to measure the temperature of objects without requiring direct physical contact. It utilizes advanced infrared thermopile technology and an integrated signal processing unit to provide accurate temperature readings. The sensor is capable of outputting data via I2C or PWM, making it versatile and easy to integrate into a wide range of applications.

Explore Projects Built with MLX90614

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP32 and ESP32-CAM Based Wireless Temperature Monitoring System
Image of PLER: A project utilizing MLX90614 in a practical application
This circuit features an ESP32 microcontroller interfaced with an MLX90614 temperature sensor and an ESP32-CAM module for image capture. The power supply is managed by a 12V battery, a 7805 voltage regulator for 5V, and an AMS1117 regulator for 3.3V, ensuring stable operation of the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino Mega 2560-Based Autonomous Robot with GPS, Bluetooth, and Environmental Sensors
Image of botfinal: A project utilizing MLX90614 in a practical application
This circuit is a robotic system controlled by an Arduino Mega 2560, which uses multiple sensors including temperature sensors (MLX90614), gas sensors (MQ-136), a GPS module, and a Bluetooth module to navigate and detect environmental conditions. The system drives motors via an L298N motor driver and displays information on a 16x2 I2C LCD, with the ability to receive commands via Bluetooth.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Infrared Thermometer with I2C LCD Display
Image of infrared thermometer: A project utilizing MLX90614 in a practical application
This circuit features an ESP32 microcontroller powered by a 18650 Li-Ion battery, with a TP4056 module for charging the battery via a USB plug. The ESP32 reads temperature data from an MLX90614 infrared temperature sensor and displays it on an I2C LCD 16x2 screen. The ESP32, MLX90614 sensor, and LCD screen are connected via I2C communication lines (SCL, SDA), and the circuit is designed to measure and display ambient and object temperatures.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Infrared Thermometer with I2C LCD Display
Image of infrared thermometer 2: A project utilizing MLX90614 in a practical application
This circuit features an ESP32 microcontroller interfaced with an MLX90614 infrared temperature sensor and a 16x2 I2C LCD display for temperature readouts. A tactile button is connected to the ESP32 to trigger temperature measurements, and an LED indicates when a measurement is in progress. The circuit is powered by an 18650 Li-Ion battery, with appropriate resistors for LED current limiting and button debouncing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with MLX90614

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of PLER: A project utilizing MLX90614 in a practical application
ESP32 and ESP32-CAM Based Wireless Temperature Monitoring System
This circuit features an ESP32 microcontroller interfaced with an MLX90614 temperature sensor and an ESP32-CAM module for image capture. The power supply is managed by a 12V battery, a 7805 voltage regulator for 5V, and an AMS1117 regulator for 3.3V, ensuring stable operation of the components.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of botfinal: A project utilizing MLX90614 in a practical application
Arduino Mega 2560-Based Autonomous Robot with GPS, Bluetooth, and Environmental Sensors
This circuit is a robotic system controlled by an Arduino Mega 2560, which uses multiple sensors including temperature sensors (MLX90614), gas sensors (MQ-136), a GPS module, and a Bluetooth module to navigate and detect environmental conditions. The system drives motors via an L298N motor driver and displays information on a 16x2 I2C LCD, with the ability to receive commands via Bluetooth.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of infrared thermometer: A project utilizing MLX90614 in a practical application
ESP32-Based Infrared Thermometer with I2C LCD Display
This circuit features an ESP32 microcontroller powered by a 18650 Li-Ion battery, with a TP4056 module for charging the battery via a USB plug. The ESP32 reads temperature data from an MLX90614 infrared temperature sensor and displays it on an I2C LCD 16x2 screen. The ESP32, MLX90614 sensor, and LCD screen are connected via I2C communication lines (SCL, SDA), and the circuit is designed to measure and display ambient and object temperatures.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of infrared thermometer 2: A project utilizing MLX90614 in a practical application
ESP32-Based Infrared Thermometer with I2C LCD Display
This circuit features an ESP32 microcontroller interfaced with an MLX90614 infrared temperature sensor and a 16x2 I2C LCD display for temperature readouts. A tactile button is connected to the ESP32 to trigger temperature measurements, and an LED indicates when a measurement is in progress. The circuit is powered by an 18650 Li-Ion battery, with appropriate resistors for LED current limiting and button debouncing.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Temperature monitoring in HVAC systems
  • Medical devices such as thermometers
  • Industrial automation and process control
  • Consumer electronics for touchless temperature measurement
  • Automotive climate control systems

Technical Specifications

The MLX90614 is available in various models, but the following are the general specifications for the most commonly used version:

Parameter Value
Operating Voltage 3.6V to 5V
Operating Current 1.5mA (typical)
Temperature Range (Object) -70°C to +380°C
Temperature Range (Ambient) -40°C to +125°C
Accuracy ±0.5°C (typical, for 0°C to +50°C)
Communication Protocols I2C, PWM
Field of View (FOV) 35°
Resolution 0.02°C

Pin Configuration and Descriptions

The MLX90614 typically comes in a 4-pin TO-39 package. Below is the pinout:

Pin Name Description
1 VDD Power supply (3.6V to 5V)
2 VSS Ground
3 SDA I2C data line
4 SCL I2C clock line

Usage Instructions

How to Use the MLX90614 in a Circuit

  1. Power Supply: Connect the VDD pin to a 3.6V to 5V power source and the VSS pin to ground.
  2. I2C Communication: Connect the SDA and SCL pins to the corresponding I2C pins on your microcontroller. Use pull-up resistors (typically 4.7kΩ) on both SDA and SCL lines.
  3. PWM Output (Optional): If using PWM mode, configure the sensor to output temperature data via the PWM pin (consult the datasheet for configuration details).
  4. Bypass Capacitor: Place a 0.1µF ceramic capacitor between VDD and VSS for noise filtering.

Important Considerations

  • Field of View: Ensure the sensor is positioned such that the target object is within its 35° field of view for accurate readings.
  • Ambient Temperature: Avoid placing the sensor near heat sources that could affect its ambient temperature readings.
  • I2C Address: The default I2C address of the MLX90614 is 0x5A. Ensure no address conflicts if multiple devices are on the same I2C bus.
  • Calibration: The sensor is factory-calibrated, but additional calibration may be required for specific applications.

Example Code for Arduino UNO

Below is an example of how to interface the MLX90614 with an Arduino UNO using the I2C protocol:

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

// Create an instance of the MLX90614 library
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  Serial.begin(9600); // Initialize serial communication at 9600 baud
  Serial.println("Initializing MLX90614...");

  if (!mlx.begin()) {
    Serial.println("Error: Could not find MLX90614 sensor. Check connections.");
    while (1); // Halt execution if sensor initialization fails
  }

  Serial.println("MLX90614 initialized successfully.");
}

void loop() {
  // Read object and ambient temperatures
  double objectTemp = mlx.readObjectTempC();
  double ambientTemp = mlx.readAmbientTempC();

  // Print the temperatures to the Serial Monitor
  Serial.print("Object Temperature: ");
  Serial.print(objectTemp);
  Serial.println(" °C");

  Serial.print("Ambient Temperature: ");
  Serial.print(ambientTemp);
  Serial.println(" °C");

  delay(1000); // Wait 1 second before the next reading
}

Notes on the Code

  • The Adafruit_MLX90614 library is used for simplicity. Install it via the Arduino Library Manager.
  • Ensure the SDA and SCL pins of the MLX90614 are connected to the corresponding I2C pins on the Arduino UNO (A4 for SDA, A5 for SCL).

Troubleshooting and FAQs

Common Issues

  1. No Data or Incorrect Readings:

    • Check the wiring and ensure proper connections between the sensor and the microcontroller.
    • Verify that pull-up resistors are present on the SDA and SCL lines.
    • Ensure the sensor is powered with the correct voltage (3.6V to 5V).
  2. I2C Address Conflict:

    • The default I2C address is 0x5A. If multiple devices are on the same bus, ensure they have unique addresses.
  3. Inaccurate Temperature Readings:

    • Ensure the target object is within the sensor's field of view.
    • Avoid reflective surfaces that may interfere with infrared measurements.
    • Allow the sensor to stabilize for a few seconds after powering on.

FAQs

Q: Can the MLX90614 measure the temperature of liquids?
A: Yes, but ensure the liquid is within the sensor's field of view and avoid splashes or condensation on the sensor.

Q: How far can the MLX90614 measure?
A: The effective range depends on the size of the target object and its emissivity. For small objects, the range is typically a few centimeters, while larger objects can be measured from farther distances.

Q: Can I use the MLX90614 with a 3.3V microcontroller?
A: Yes, the sensor operates down to 3.6V. However, ensure proper level shifting for I2C communication if the microcontroller operates at 3.3V.

Q: Is the MLX90614 waterproof?
A: No, the sensor is not waterproof. Use appropriate enclosures for outdoor or humid environments.