2. 硬件平台搭建:主控芯片选型、红外传感器与通信模块
做热成像测温系统,硬件选型是第一步,也是最容易踩坑的一步。我见过不少新手一上来就买最贵的芯片、最炫的传感器,结果发现要么驱动写不出来,要么数据根本传不动。说白了,选型不是堆料,是匹配。
这一章,我带你把主控芯片、红外传感器、显示屏和通信模块这几个核心部件捋一遍。我会结合自己踩过的坑,告诉你哪些参数是虚的,哪些才是硬指标。
2.1 主控芯片选型:STM32 还是 Raspberry Pi?
这是第一个选择题。我的建议很简单:看你要做手持设备还是桌面原型。
核心判断标准:
- 需要低功耗、电池供电、实时性高 → 选 STM32
- 需要图形界面、网络功能、快速原型 → 选 Raspberry Pi
2.1.1 STM32 系列
我个人习惯用 STM32F4 系列做这类项目。为什么?因为它的浮点运算单元(FPU)对红外传感器的数据处理太友好了。你想想看,MLX90640 一次输出 768 个温度点,要做温度转换、插值、伪彩色映射,没有 FPU 的话,光算浮点就能把 CPU 拖死。
我在项目中遇到过用 STM32F103 做热成像的情况。嗯,那叫一个痛苦。虽然也能跑,但帧率上不去,画面卡顿明显。后来换成 STM32F407,同样的算法,帧率直接翻了三倍。
我的推荐配置:
- 入门级:STM32F407VGT6(带 FPU,主频 168MHz)
- 进阶级:STM32H743(主频 480MHz,双精度 FPU)
- 成本敏感:STM32F411CEU6(小封装,性价比高)
2.1.2 Raspberry Pi 系列
如果你要做带触摸屏、WiFi 上传、甚至 AI 识别的热成像仪,那 Raspberry Pi 是更好的选择。我最近一个项目就是用 Pi 4B 做的,Python 写起来确实快,OpenCV 直接调库,省了不少事。
但要注意,Pi 的实时性不如 STM32。我曾经试过用 Pi 做实时测温报警,结果 GPIO 响应延迟有几十毫秒,差点误事。所以,如果对响应时间有硬性要求,还是得上 STM32。
| 对比项 | STM32F407 | Raspberry Pi 4B |
|---|---|---|
| 主频 | 168 MHz | 1.5 GHz |
| 浮点运算 | 单精度 FPU | 软件模拟/NEON |
| 功耗 | ~200 mW | ~3 W |
| 开发语言 | C/C++ | Python/C++ |
| 实时性 | 微秒级 | 毫秒级 |
| 适合场景 | 手持设备、嵌入式 | 桌面原型、AI 应用 |
2.2 红外传感器选型:MLX90640 与 AMG8833
传感器是整个系统的眼睛。市面上常见的红外阵列传感器就两款:MLX90640 和 AMG8833。我两个都用过,说说真实感受。
2.2.1 AMG8833(8×8 像素)
AMG8833 只有 64 个像素点。说白了,就是 8×8 的格子。你想想看,64 个点能看出什么?大概能分辨出人脸是个热源,但想看清五官?别想了。
不过它也有优点:便宜、I2C 接口简单、功耗极低。我早期做的一个测温门禁项目就用它,检测有没有人经过是够用的。但你要做精确测温或者成像,它就不太行了。
避坑指南:我曾经用 AMG8833 做过一个「热成像」演示,结果客户看了说「你这画面怎么跟马赛克一样?」——嗯,8×8 确实就是马赛克。所以,如果你需要成像效果,直接上 MLX90640。
2.2.2 MLX90640(32×24 像素)
MLX90640 有 768 个像素点,分辨率是 AMG8833 的 12 倍。这个分辨率下,你能看清人的轮廓、热源分布,甚至能分辨出手机在口袋里发热。
我个人的经验是:MLX90640 是热成像测温项目的「甜点」选择。再往上就是 80×64 的传感器了,价格翻好几倍,而且数据量太大,普通单片机处理起来吃力。
MLX90640 有两个版本:
- 标准版:视场角 55°×35°,适合近距离测温
- 广角版:视场角 110°×75°,适合大范围监测
我建议做测温枪或手持设备用标准版,做安防监控用广角版。
关键参数对比:
- AMG8833:8×8 像素,I2C 接口,测温范围 0~80°C,精度 ±2.5°C
- MLX90640:32×24 像素,I2C 接口,测温范围 -40~300°C,精度 ±1.5°C
2.3 显示屏与通信模块
有了主控和传感器,还得有「脸面」和「手脚」。显示屏是脸面,通信模块是手脚。
2.3.1 显示屏选型
做热成像,显示屏的要求其实挺特殊的。普通 LCD 屏幕刷新率低、色彩还原差,显示热成像伪彩色图时效果不好。
我推荐几种方案:
- TFT LCD(ILI9341):2.8~3.5 寸,320×240 分辨率,SPI 接口。性价比高,适合 STM32 方案
- OLED 屏幕:对比度高,色彩鲜艳,但尺寸小(一般 1.3 寸以下),适合做小型手持设备
- HDMI 显示器:Raspberry Pi 方案直接用,效果最好,但体积大
我在项目中踩过一个坑:用 1.8 寸的 TFT 屏显示 32×24 的热成像数据。你想想看,每个像素点放大到屏幕上占了十几个物理像素,画面粗糙得不行。后来换成 3.5 寸屏,效果才勉强能看。
我的建议:STM32 方案至少用 2.8 寸 TFT 屏,分辨率 320×240 以上。如果预算允许,上 3.5 寸 480×320 的屏,显示效果会好很多。
2.3.2 通信模块
通信模块决定了你的设备能不能「联网」。常见的方案有:
- USB 串口:最简单,调试和上传数据都用它。STM32 的 USB 虚拟串口很好用
- WiFi 模块(ESP8266/ESP32):我习惯用 ESP8266 做 STM32 的 WiFi 扩展,AT 指令控制,简单可靠
- 蓝牙模块(HC-05/HC-06):适合手机端查看数据,但传输速度慢,不适合传图像
- LoRa 模块:如果你要做远距离测温(比如变电站巡检),LoRa 是唯一选择
说实话,大部分热成像项目用 USB 串口就够了。WiFi 模块更多是为了远程监控或者数据上云。我做过一个项目,把热成像数据通过 ESP8266 传到阿里云 IoT 平台,然后在手机 App 上看实时温度分布——嗯,那个效果确实挺酷的。
2.4 本章知识体系
下面这张图是我画的选型决策流程,你可以对照着看:
这张图的核心逻辑很简单:先问自己「要不要低功耗、电池供电?」。要,就走 STM32 路线;不要,就上 Raspberry Pi。传感器方面,我强烈建议直接上 MLX90640,别在 AMG8833 上浪费时间——除非你预算真的非常紧张。
好了,硬件选型这块就聊到这儿。下一章我们开始动手搭建开发环境,把 STM32 和 Raspberry Pi 的开发工具链配好。到时候我会分享一些我常用的配置技巧,让你少走弯路。
公众号:蓝海资料掘金营,微信deep3321