1. 项目概述
mlx90939是一款来自Melexis的红外温度传感器芯片,而adafruit-circuitpython-mlx90939则是Adafruit为其开发的CircuitPython驱动库。这个组合在嵌入式温度测量领域相当流行,特别是在需要非接触式测温的创客项目和工业原型开发中。
我第一次接触这个传感器是在一个智能农业监测项目中,需要同时测量作物表面温度和土壤温度。相比传统的DS18B20等接触式传感器,MLX90639的远距离测温特性(最远可达5米)和32x24像素的红外阵列让它成为解决这个问题的理想选择。不过当时在CircuitPython环境下使用它时,确实花了不少时间研究这个驱动库的各种"隐藏技巧"。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心功能解析
2.1 传感器硬件特性
MLX90639本质上是一个红外热成像传感器,但不同于动辄几十万的工业级热像仪,它提供了更亲民的价格和足够的分辨率(32x24像素)。几个关键硬件参数需要特别注意:
- 视场角(FOV):55°×35°,这意味着在1米距离时能覆盖约1m×0.6m的区域
- 测温范围:-40°C到300°C(工业版可达125°C)
- 刷新率:最高16Hz(通过配置寄存器可调)
- 通信接口:I2C(默认地址0x24)
注意:实际使用中,环境温度会显著影响测量精度。建议搭配MLX90614等单点传感器作为环境温度参考进行补偿。
2.2 驱动库架构
adafruit-circuitpython-mlx90939库采用典型的CircuitPython设备驱动结构,主要包含三个核心类:
MLX90639:主设备类,处理底层通信MLX90640_Sensor:数据采集类(虽然型号不同但内部实现复用)RefreshRate:枚举类,定义可选的刷新率(0.5Hz到16Hz)
库的安装非常简单,在CircuitPython设备上只需将adafruit_mlx90639.mpy文件复制到lib文件夹即可。但要注意依赖关系:
python复制# 必需依赖库
adafruit_bus_device
adafruit_register
3. 关键API详解
3.1 初始化配置
传感器初始化是使用中最容易出问题的环节。以下是经过验证的可靠初始化代码:
python复制import board
import adafruit_mlx90639
i2c = board.I2C() # 使用默认I2C引脚
mlx = adafruit_mlx90639.MLX90639(i2c)
# 必须执行的初始化序列
try:
mlx.refresh_rate = adafruit_mlx90639.RefreshRate.REFRESH_8_HZ
mlx.start_mea
