自制低成本热成像相机:树莓派 + MLX90640 实战教程
商用热成像仪动辄数千元,租赁也要 $50/天。本文教你用约 $150 打造一台分辨率 320×240 的 DIY 热成像仪,核心器件为 MLX90640(24×32=768 像素红外阵列)+ 树莓派 4B,通过 Python 插值算法提升显示分辨率,可作热泄漏检测、安防监控等用途。
DIY 热成像仪原理
万物皆发红外辐射(热特征)。热成像仪聚焦红外能量至探测器阵列,每个像素输出电信号,经处理器映射为伪彩色温度图。融合可见光图像可快速定位故障点。
热成像伪彩色图示例
普通数码相机 CCD/CMOS 本身对红外敏感,但厂家加装 IR-CUT 滤镜阻挡。拆除滤镜可看到近红外,但真正热成像需长波红外传感器(如 MLX90640)。
核心元件清单
- 树莓派 4B(建议 2GB/4GB/8GB 均可)
- MLX90640 热成像模块(24×32 像素,I²C 接口)
总成本约 $150,远低于入门级商用机($200+)。
制作步骤
步骤 1:硬件接线
MLX90640 通过 I²C 与树莓派通信,接 SDA (GPIO3) 与 SCL (GPIO5),供电 3.3V。接线图:
接线示意图
步骤 2:树莓派软件环境配置
安装 Adafruit CircuitPython MLX90640 库:
启用 I²C:
编辑 /boot/config.txt,确保 dtparam=i2c_arm=on 未被注释,重启。重启后运行 i2cdetect -y 1 应看到地址 0x33:
若显示 33 则通信正常。安装依赖库:
可选安装 Python IDLE:
测试读取平均温度:
测试代码与输出
遇刷新率报错,需提高 I²C 总线速率至 1 Mbps:编辑 /boot/config.txt 在 dtparam=i2c_arm=on 下添加 i2c_arm_baudrate=1000000。
步骤 3:实时热成像可视化
用 matplotlib imshow 实时绘制 24×32 温度矩阵:
基础可视化代码
步骤 4:插值提升至 320×240 与帧率优化
使用 scipy.ndimage.zoom 将 24×32 双三次插值为 240×320,并启用 matplotlib blitting 技术仅更新像素数据,大幅提升帧率:
Blitting 优化代码
总结
DIY 热成像仪虽分辨率不及商用机,但足以胜任热泄漏排查、设备过热监测、科研教学等场景。便携供电+屏幕即可野外作业。欢迎交流技术细节。
工业技术