Home LCD Projects MLX90615 thermometer readings on LCD project

MLX90615 thermometer readings on LCD project

by shedboy71

In this article we create a thermometer based project using an LCD shield, Arduino Uno and an MLX90615 sensor.

Lets discuss the sensor first

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.

Here is a module that I bought

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 and benefits

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

 

Parts List

I used the following parts for this project

 

 

Connection

An easy sensor to connect to an LCD – here we show this

lcd shield and mlx90615 layout

lcd shield and mlx90615 layout

 

Code

This MLX90615 sensor code comes from the following library which I installed – https://github.com/skiselev/MLX90615

 

[codesyntax lang=”cpp”]

#include <Wire.h>
#include <LiquidCrystal.h>
#include <mlx90615.h>

//setup for the LCD keypad shield
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
MLX90615 mlx = MLX90615();

void setup() 
{
  //init serial for some debug
  Serial.begin(9600);
  Serial.println("Melexis MLX90615 infra-red temperature sensor test");
  //init MLX90615 sensor
  mlx.begin();
  Serial.print("Sensor ID number = ");
  Serial.println(mlx.get_id(), HEX);
  //init LCD
  lcd.begin(16,2);
  //line 1 - temperature
  lcd.setCursor(0,0);
  lcd.print("AMB = ");
  //line 2 - humidity
  lcd.setCursor(0,1);
  lcd.print("OBJ = ");
}

void loop() 
{
  //display temperature on lcd
  
  lcd.setCursor(0,0);
  lcd.print("AMB = ");
  lcd.print(mlx.get_ambient_temp());
  lcd.print(" *c");
  lcd.setCursor(0,1);
  lcd.print("OBJ = ");
  lcd.print(mlx.get_object_temp());
  lcd.print(" *c");

  delay(500);
}

[/codesyntax]

 

Output

The following video shows the sensor in action, watch the object temperature rise as I put my finger near the sensor. You will also notice the ambient temperature not changing.

 

Links

https://www.melexis.com/-/media/files/documents/datasheets/mlx90615-datasheet-melexis.pdf

 

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More