1. 体温测量原理:红外测温与接触式测温的物理基础
做嵌入式体温计设计,第一个绕不开的问题就是:温度到底怎么测?
我刚开始接触这个领域时,也以为体温计就是「把传感器贴上去读个数」这么简单。直到有一次项目调试,红外测温数据飘得离谱,我才意识到——不懂物理原理,你连数据对不对都判断不了。
这一节,我们就从最底层的物理基础讲起。别怕,我会用大白话把黑体辐射、Stefan-Boltzmann定律这些东西讲清楚。
1.1 接触式测温:热传导的直觉
接触式测温,说白了就是「贴上去测」。你想想看,把温度传感器贴在皮肤上,热量从皮肤传到传感器,直到两者温度相等——这时候读到的就是体温。
这里有个关键点:热平衡需要时间。我记得有一次做可穿戴体温贴项目,测试时发现读数要等 5 分钟才稳定。后来一查,是传感器和皮肤之间的导热胶没选对。
接触式测温的典型代表有:
- 热电偶——宽量程,但精度一般
- 热敏电阻(NTC/PTC)——灵敏度高,但非线性
- 数字温度传感器(如DS18B20、TMP117)——集成度高,直接出数字
但接触式有个硬伤:必须接触。测额头、测耳温这种场景,就不太方便了。
1.2 红外测温:非接触的物理魔法
红外测温就不一样了。它不需要接触,隔空就能测。原理是什么?
其实很简单:任何有温度的物体都在向外辐射红外线。温度越高,辐射越强。红外测温传感器就是捕捉这个辐射,然后反推出温度。
嗯,这里要注意:不是所有物体辐射都一样。这就引出了黑体的概念。
1.3 黑体辐射定律:理想模型与现实差距
黑体是什么?一个完美的辐射体。它能吸收所有入射的电磁辐射,也能以最大效率辐射能量。
现实中不存在完美的黑体,但我们可以用这个模型来校准传感器。我做过一个项目,用黑体炉校准红外体温计——那玩意儿就是一个带温控的空腔,内部涂黑,温度精确到 0.01°C。
核心公式:普朗克黑体辐射定律
M(λ, T) = (2πhc²) / (λ⁵ · (e^(hc/λkT) - 1))
其中:
- M(λ, T) —— 光谱辐射出射度
- h —— 普朗克常数(6.626×10⁻³⁴ J·s)
- c —— 光速(3×10⁸ m/s)
- k —— 玻尔兹曼常数(1.38×10⁻²³ J/K)
- λ —— 波长
- T —— 绝对温度(K)
这个公式看着复杂,但你只需要记住一个结论:体温(约 310K)对应的红外辐射峰值波长在 9-10μm 左右。这就是为什么红外体温计通常工作在 8-14μm 波段。
1.4 Stefan-Boltzmann定律:总辐射能量与温度的四次方关系
如果说普朗克定律告诉你「每个波长辐射多少」,那 Stefan-Boltzmann 定律就告诉你「总共辐射多少」。
公式很简单:
M = ε · σ · T⁴
其中:
- M —— 总辐射出射度(W/m²)
- ε —— 发射率(0~1,人体皮肤约 0.98)
- σ —— Stefan-Boltzmann常数(5.67×10⁻⁸ W/(m²·K⁴))
- T —— 绝对温度(K)
注意看,温度是四次方关系。这意味着什么?
体温从 36°C 升到 37°C,只差了 1°C,但辐射能量变化可不是线性的。我当年第一次算这个的时候还吓了一跳——四次方关系让红外测温对温度变化非常敏感,这是好事,但也意味着噪声会被放大。
避坑指南:我曾经在一个项目中忽略了发射率 ε 的影响。测金属表面温度时,ε 只有 0.2 左右,结果读数比实际低了 30°C。后来加了发射率补偿才搞定。
人体皮肤的 ε 约 0.98,接近黑体,所以红外体温计相对好做。但如果你要测其他物体,一定要查发射率表。
1.5 热电堆传感器:红外测温的核心器件
好了,理论讲完了,该说说实际器件了。
热电堆传感器,说白了就是把红外辐射变成电信号的器件。它内部由多个热电偶串联而成,每个热电偶由两种不同金属(或半导体)组成。
工作原理:
- 红外辐射照射到传感器的吸收层
- 吸收层温度升高
- 热电偶的热端(接吸收层)和冷端(接衬底)产生温差
- 塞贝克效应产生电压信号
- 电压大小与辐射强度成正比
我常用的热电堆传感器有这些:
| 型号 | 厂商 | 响应度 | 视场角 | 典型应用 |
|---|---|---|---|---|
| MLX90614 | Melexis | 4.5 mV/K | 90° / 35° | 额温枪、工业测温 |
| TS305-11C55 | TE Connectivity | 3.0 mV/K | 55° | 耳温枪 |
| TPS-334 | Excelitas | 2.5 mV/K | 80° | 多通道阵列 |
选型建议:
- 测额温:选视场角 35° 左右的,避免环境干扰
- 测耳温:选响应快的,热时间常数 < 50ms
- 工业场景:选宽温范围的,-40°C ~ 125°C
1.6 热电堆的输出特性与信号处理
热电堆的输出电压非常小——典型值只有几十微伏到几毫伏。这就带来了两个问题:
- 噪声问题:微伏级信号很容易被噪声淹没
- 温漂问题:冷端温度变化会影响输出
我习惯的做法是:
- 用高精度仪表放大器(如 AD620、INA333)放大 100-1000 倍
- 加低通滤波器,截止频率 1-10Hz
- 做冷端补偿——用另一个温度传感器测环境温度
- ADC 采样率不用太高,10-100Hz 就够
举个例子,MLX90614 内部已经集成了放大、ADC 和补偿算法,直接 I²C 读出温度值。但如果你用裸热电堆(比如 TS305),就得自己搭信号链。
信号链设计要点:
热电堆 → 仪表放大器(×100) → 二阶低通滤波(10Hz) → ADC(16bit) → MCU
注意:PCB 布局时,热电堆到运放的走线要短,周围不要放开关电源这类强干扰源。
1.7 两种测温方式的对比与选型
最后,我做个对比总结:
| 对比项 | 接触式 | 红外非接触式 |
|---|---|---|
| 响应时间 | 几秒到几分钟 | 几十毫秒到几秒 |
| 精度 | ±0.1°C 可做到 | ±0.2°C(需校准) |
| 使用便利性 | 需接触,消毒麻烦 | 隔空测量,方便快捷 |
| 成本 | 低(几毛到几块) | 中(几块到几十块) |
| 典型场景 | 腋下、口腔、直肠 | 额头、耳道、工业 |
我个人建议:做消费级体温计,优先考虑红外方案。虽然精度略低,但用户体验好太多。如果做医疗级,那就得接触式 + 高精度数字传感器,比如 TMP117,精度能做到 ±0.1°C。
好了,这一节的内容就到这里。下一节我们讲热电堆传感器的接口电路设计——怎么把微伏级信号变成稳定的数字量,到时候我会分享一些我踩过的坑。