Thermal Camera Unit (MLX90640)

via M5Stack
$191.57
SKU M5-U016
Description

THERMAL is a thermal imager Unit contains a thermopile sensors named MLX90640. It can be used to measure the surface temperature of an object and form a thermographic image by a temperature gradient composed of different surface temperatures. The image resolution is 32 x 24.

The MLX90640 Infrared (IR) sensor array combines high resolution and reliable operation in harsh environments, providing a cost-effective alternative to more expensive high-end thermal imaging cameras. Unlike the case of a microbolometer, the sensor does not require frequent recalibration, ensuring continuous monitoring and reducing system cost.

The field of view (FoV) option includes a standard 55° x 35° version and a wide angle version of 110° x 75° for distances up to 7m. This Unit is 110°×75° FoV, also known as the BAA package.

The Unit communicates with the M5Core through the Grove A interface, IIC address is 0x33

Product Features

  • Operating Voltage: 3V ~ 3.6V
  • Current Consumption: 23mA
  • Field of View: 55°x35°
  • Measurement Range: -40°C ~ 300°C
  • Resolution: ±1.5°C
  • Refresh Rate: 0.5Hz-64Hz
  • Operating temperature: -40°C ~ 85°C
  • Two Lego-compatible holes

Kit includes

  • 1x THERMAL Unit
  • 1x Grove Cable

Application

  • High precision non-contact temperature measurements
  • Intrusion / Movement detection
  • Visual IR thermometers
Documents
Learn

Example

Arduino IDE

The code below is incomplete. To get complete code, please click here

/*
    MLX90640.ino
*/
#include <M5Stack.h>
#include <Wire.h>
#include "MLX90640_API.h"
#include "MLX90640_I2C_Driver.h"

// declaration
uint16_t eeMLX90640[832];//32 * 24 = 768
int SetRefreshRate;

// initialization
/* load system parameter */
MLX90640_DumpEE(MLX90640_address, eeMLX90640);
/* load extraction parameter */
MLX90640_ExtractParameters(eeMLX90640, &mlx90640);
SetRefreshRate = MLX90640_SetRefreshRate(0x33, 0x05);
M5.Lcd.fillScreen(TFT_BLACK);
infodisplay();

// display heat map
M5.update();
infodisplay();
interpolate_image(reversePixels,ROWS,COLS,dest_2d,\
                    INTERPOLATED_ROWS,INTERPOLATED_COLS);

More information

Schematic

PinMap

M5Core (GROVE A) GPIO22 GPIO21 5V GND
THERMAL Unit SCL SDA 5V GND