【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 通信及热成像等测试,为相关产品的快速开发和应用设计提供了参考。


