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 显示屏:TFT LCD 传感器:MLX90640 显示屏:HDMI/触摸屏 注:两种方案均推荐 MLX90640 传感器,AMG8833 仅适合低成本入门场景

这张图的核心逻辑很简单:先问自己「要不要低功耗、电池供电?」。要,就走 STM32 路线;不要,就上 Raspberry Pi。传感器方面,我强烈建议直接上 MLX90640,别在 AMG8833 上浪费时间——除非你预算真的非常紧张。

好了,硬件选型这块就聊到这儿。下一章我们开始动手搭建开发环境,把 STM32 和 Raspberry Pi 的开发工具链配好。到时候我会分享一些我常用的配置技巧,让你少走弯路。


公众号:蓝海资料掘金营,微信deep3321