【DigiKey好物畅享】MLX90640介绍、工程测试

【DigiKey好物畅享】MLX90640介绍、工程测试

MLX90640ESF-BAB-000-TU Melexis Technologies NV | 传感器,变送器 | DigiKey

本文介绍了MLX90640热成像模块的相关信息,包括外观、参数特点、引脚定义等,并使用树莓派、ESP32 等主控和 MicroPython 编程语言驱动,实现 IIC 通信及热成像等测试。

介绍

MLX90640 是一款高性能的 32x24 像素红外热成像传感器,支持非接触式温度测量,广泛应用于工业监控、智能家居和科研实验等领域。

包装

包装采用坚固美观的塑料管,两端使用橡胶加以固定。

外观

MLX90640传感器为圆柱形,侧面采用喷砂工艺标注产品编码;

正面为红外热传感器接收镜头;

底部引出 IIC 通信的四个引脚;

参数特点

  • 工作温度范围为 -40 至 85°C,可在严苛的工业环境中部署;

  • 可测量的物体温度范围为 -40 至 300°C;

  • 典型目标物体温度精度为 1°,可在整个测量范围内保持高精度水平;

  • 具有出色的噪声性能。

  • 不同于微测热辐射计替代品,传感器不需要频繁的重新校准,从而确保连续监测、同时降低系统成本;

  • 采用紧凑型 4 引脚 TO39 封装,集成了必需的光学元件;

  • 两种不同的视角 (FoV) 可供选择:标准 55°x35° 和 110°x75° 广角

  • I²C 兼容型数字接口可简化集成。

工程测试

这里使用 ESP32 开发板和 MicroPython 编程的方案实现 MLX90640 传感器的驱动和热成像工程测试。

代码

打开 Thonny IDE 新建文件,并添加如下代码

import machine
import network
import time
from micropyserver import MicroPyServer

# mlx90640.py 置于根目录
from mlx90640 import MLX90640, RefreshRate, init_float_array

class IrCameraServer:
    def __init__(self, ssid=None, password=None):
        # I2C配置
        self.i2c = machine.I2C(0, sda=machine.Pin(6), scl=machine.Pin(7), freq=400000)
        
        # 初始化MLX90640
        try:
            self.mlx = MLX90640(self.i2c)
            self.mlx.refresh_rate = RefreshRate.REFRESH_2_HZ
            self.frame = init_float_array(768)
            print("MLX90640 initialized successfully")
        except Exception as e:
            print(f"MLX90640 init error: {e}")
            raise
        
        # 连接WiFi
        if ssid and password:
            self.connect_wifi(ssid, password)
        
        # 初始化Web服务器
        self.server = MicroPyServer()
        self.server.add_route('/', self.show_index)
        self.server.add_route('/result.bytes', self.show_result)

    def connect_wifi(self, ssid, password):
        """连接WiFi网络"""
        wlan = network.WLAN(network.STA_IF)
        wlan.active(True)
        
        if not wlan.isconnected():
            print(f"Connecting to {ssid}...")
            wlan.connect(ssid, password)
            
            # 等待连接
            max_wait = 10
            while max_wait > 0:
                if wlan.isconnected():
                    break
                max_wait -= 1
                time.sleep(1)
        
        if wlan.isconnected():
            print("WiFi connected")
            print("IP address:", wlan.ifconfig()[0])
            return True
        else:
            print("WiFi connection failed")
            return False

    def show_index(self, request):

    def show_result(self, request):

    def run(self, port=80):
        """启动服务器"""
        print(f"Starting server on port {port}...")
        self.server.start(port=port)

# 直接运行
camera_server = IrCameraServer(ssid="SSID", password="Password")
camera_server.run()

保存代码。

效果

  • 运行程序,终端打印调试结果,包括 IIC 通信、WiFi连接等信息;

  • 打开目标网页服务器 192.168.2.162:80 ,显示实时热成像信息

总结

本文介绍了MLX90640热成像模块的相关信息,包括外观、参数特点、引脚定义等,并使用树莓派、ESP32 等主控和 MicroPython 编程语言驱动,实现 IIC 通信及热成像等测试,为相关产品的快速开发和应用设计提供了参考。