MLX90640-D55 Thermal Camera
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品简介
MLX90640-Dxxx Thermal Camera是一款红外热像仪模块支持Raspberry Pi,ESP32,STM32等主控,MLX90640远红外热传感器阵列,可精确检测特定区域和温度范围内的目标物体,尺寸小巧,可方便集成到各种工业或智能控制应用中.
- 采用MLX90640远红外热传感器阵列,32×24像素
- 支持I2C接口通信,可设置为快速模式(速率可达1MHz)
- 噪声等效温差(NETD)仅为0.1K RMS@1Hz刷新率,噪声性能好
- 板载电平转换电路,可兼容3.3V/5V的工作电平
产品参数
- 工作电压:3.3V/5V
- 工作电流:<23mA
- 通信接口:I2C (地址为0x33)
- 视场角(水平视角×垂直视角):
- MLX90640-D55 Thermal Camera:55°×35° (角度小,适合远距离测量)
- MLX90640-D110 Thermal Camera:110°×75° (角度大,适合近距离测量)
- 工作温度:-40℃~85℃
- 目标温度:-40℃~300℃
- 检测精度:±1℃
- 刷新速率:0.5Hz~64Hz (可编程设置)
- 产品尺寸:28mm×16 mm
- 固定孔尺寸:2.0mm
硬件说明
MLX9064x-Dxx Thermal Camera 有4个引脚需要连接至控制器,目前支持Raspberry Pi系列, STM32F405R, ESP32系列.具体连接查阅使用说明章节
上图中, MLX9064x-Dxx Thermal Camera板载电平转换电路
- VCC,GND引脚为电源供电端,VCC连接控制 3.3V或 5V 电源,GND对应连接GND
- SDA为I2C的数据端, 连接至控制器的GPIO,无需外部加上拉电阻
- SCL为I2C的时钟端, 连接至控制器的GPIO,无需外部加上拉电阻
主要用途
- 高精度非接触性物体温度检测
- 红外热像仪、红外测温仪
- 智能家居、智能楼宇、智能照明
- 工业温度控制、安防、入侵/移动检测
通信协议
MLX90641-D55 Thermal Camera的通讯协议为I2C,支持I2C高速模式(最高可达1MHz),只能作为I2C总线上的从设备,SDA和SCL端口可以承受5V电压,可以直接接入到5V的I2C总线中,模块的设备地址是可以编程的,最多可以有127个地址,出厂默认值为0x33. 与一般I2C总线一样,在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号
开始信号: SCL为高电平, SDA由高电平转换为低电平.
结束信号: SCL为高电平, SDA由低电平转换为高电平.
可以看出开始信号和结束信号都是在SCL总线为高电平时刻完成的.
应答信号: 在每个字节传输之后的第9个时钟期间内, 发送数据端设备释放SDA总线, 接收数据端设备拉低SDA总线表示收到字节(ACK), 或者是SDA总线为高电平不应答(NoACK).
设备地址:主机通过在START条件后发送7位从机地址来寻址从机. 前七个位是该地址专用, 第8个是读/写(R / W)位. 该位指示传输方向,其中高电平表示主机将从从机读取数据,
低电平表示主机将向从机发送数据.
MLX90641-D55 Thermal Camera共768个IR传感器(也称为像素)组成. 每个像素的行和列位置标识为Pixel(i,j), 其中i是其行号(从1到24), j是其列号(从1到32),像素具体到某一平面可以参照上图
- 需要说明的是传感器原厂在传感器出厂时允许有4个以内的坏点, 每个坏点都在EEPROM表中有标识, 所以模块可能会有一定几率存在坏点, 也就是说这不能作为退换货的依据, 对此原厂的建议是使用相邻像素的平均值代替.
内存及寄存器
上图为MLX90640的RAM区和控制寄存器分布图,其中RAM区的两种数据模式,EEPROM用于存储校准常数和设备的配置参数, 如下图所示:
MLX90641支持8种刷新率,最高可达64Hz,刷新率由控制寄存器1(0x800D)控制,如下图:
8种刷新率的设置是取决于控制寄存器1(0x800D)的位7, 位8, 位9, 其中有国际象棋模式(出厂默认设置), 电视交错模式,如下图所示:
两种模式在子页面的更新方式上不同, 这里需要注意的是传感器仅在国际象棋模式下进行过出厂校准, 因此在国际象棋模式下可以获得更好的固定图案噪声行为, 因此为了获得最佳效果建议使用国际象棋棋盘模式, 两种模式的设定取决于控制寄存器1(0x800D)的位12.
测温原理和测量距离
测温原理
什么是红外测温?(引用自OPTRIS)
在测量领域,“温度”是仅次于“时间”的常用的物理参数之一。基于普朗克和玻尔兹曼辐射定律的原理,红外测温仪通过吸收被测物体发出的红外辐射来测定其温度。那么,非接触测温是如何实现的呢?
凡是温度高于绝对零度(0 K或-273.15℃)的物体,均会自表面向外发出电磁辐射,且该辐射与物体的固有温度成比例。在这种辐射中,包含用于实现测温的红外辐射。当该辐射贯穿大气后,借助专用镜头便能将其聚集在探测器上。随后,探测器会生成与该辐射成比例的电信号。该信号得到放大,并通过接受连续的数字信号处理而转化为与物体温度成比例的输出信号。如此一来,在显示器上便会显示出温度的测量值,或为信号形式输出。
在利用辐射实现测温时,辐射率ε(Epsilon)起到了至关重要的作用。它表明了实际物体与黑体的辐射值之间的关系。黑体的辐射率为1(最大值)。不过,能够满足黑体这一理想条件的物体并不多。在校准传感器时,一般会用到辐射体的接触面(包含所推荐的波长:0.99)。
就其波长而言,许多物体通常具有恒定的辐射率,但其辐射能力远不如黑体。它们被称作灰体。若物体的辐射率取决于其温度和波长(诸如金属类),则此类物体被称作选择性辐射体。在这两种情况下,所缺失的辐射部分通过辐射率的明确加以补充。当使用选择性辐射体时,需要牢记所测定的波长(针对金属,选择短波)。
除了自物体表面发出的辐射之外,红外传感器还能接受到周围环境的反射辐射,或许还有被测物体的贯穿红外辐射。
测量距离
对于非接触式红外测温模块, 很重要的一个概念是"视场 (FOV)". 视场是由温差电堆接收到50%的辐射信号来确定的, 并且和传感器的主轴线相关. 测得的温度是视场内被测物体的温度加权平均值, 所以当被测物体完全覆盖FOV视场时的准确度是最高的.
关于测量距离和视场关系可参考Melexis提到的如下图所示的计算公式
使用说明
Raspberry Pi 4B
硬件连接
1. 传感器器件工作中注意避免双手直接接触核心器件,做好防静电,上电前检查电源防反接
2. 传感器工作时避免幅度过大振动,带电拔插操作,不要使用过长线缆连接通信,容易导致EEPROM写入错误而失效
PI-4B | MLX90640 Thermal Camera |
5V | 5V |
GND | GND |
SDA(BCM2) | SDA |
SCL(BCM3) | SCL |
环境设置
- 推荐已安装好库的镜像进行测试,使用镜像进行测试请忽略下面环境设置等操作
- 百度云盘树莓派镜像提取码64ax,谷歌云盘树莓派镜像,镜像用户名和密码都是test
- 使能 Raspberry Pi 的 I2C 总线,设置后要求重启,建议设置完下一步骤后再重启
- 调整 I2C 速率, 在/boot/config.txt 文件中加入速率参数,更改后需要重启生效,如下指令所示
sudo nano /boot/config.txt dtparam=i2c_arm=on,i2c_arm_baudrate=400000
- 若自行安装库和下载 C/C++ 示例程序,请参考如下指令
cd ~ wget https://www.waveshare.net/wiki/%E6%96%87%E4%BB%B6:Mlx90640-thermal_camera.zip unzip Mlx90640_thermal_camera.zip cd mlx90640_thermal_camera/RaspberryPi/cpp/ chmod +x install.sh sudo ./install.sh
- 若自行安装库和下载 python 示例程序,请参考如下指令
sudo apt update pip3 install opencv-python==4.6.0.66 pip3 install pithermalcam sudo apt-get install libatlas-base-dev
C/C++示例
- 树莓派终端输入如下指令执行示例程序,效果如下图所示
make sudo ./main #若使用 Windodws MSTSC 远程登录,则需要使用下面命令 sudo -E ./main
python示例
- 感谢 tomshaffner 开源 pithermalcam , 详细安装操作参考链接
- 树莓派终端输入如下指令执行示例程序,本地网络视频推流示例执行后,其它移动设备或电脑打开浏览器输入树莓派终端打印信息,效果如下图所示
python3 import pithermalcam as ptc # 执行本地网络视频推流示例 ptc.stream_camera_online() # 执行实时视频流显示示例,参考终端打印信息操作 ptc.display_camera_live()
- 如果画面显示红色且画面不清晰,请重新安装更新numpy:
sudo pip3 uninstall numpy sudo pip install numpy sudo pip3 install --upgrade numpy
STM32
硬件连接
1. 传感器器件工作中注意避免双手直接接触核心器件,做好防静电,上电前检查电源防反接
2. 传感器工作时避免幅度过大振动,带电拔插操作,不要使用过长线缆连接通信,容易导致EEPROM写入错误而失效
STM32405R | MLX90640 Thermal Camera |
5V | 5V |
GND | GND |
SDA(PB11) | SDA |
SCL(PB10) | SCL |
ESP32
硬件连接
1. 传感器器件工作中注意避免双手直接接触核心器件,做好防静电,上电前检查电源防反接
2. 传感器工作时避免幅度过大振动,带电拔插操作,不要使用过长线缆连接通信,容易导致EEPROM写入错误而失效
ESP32 | MLX90640 Thermal Camera |
5V | 5V |
GND | GND |
SDA(P21) | SDA |
SCL(P22) | SCL |
软件安装
操作步骤
- 下载例程
- 解压,进入下图所示目录,双击MLX90640_Thermal_Camera.ino文件
- 点tools选择开发板和端口
- 点击箭头上传
- 上传结束后点击串口管理器,查看输出信息
资料
文档
程序
软件
数据手册
FAQ