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 热电堆传感器:红外测温的核心器件

好了,理论讲完了,该说说实际器件了。

热电堆传感器,说白了就是把红外辐射变成电信号的器件。它内部由多个热电偶串联而成,每个热电偶由两种不同金属(或半导体)组成。

工作原理:

  1. 红外辐射照射到传感器的吸收层
  2. 吸收层温度升高
  3. 热电偶的热端(接吸收层)和冷端(接衬底)产生温差
  4. 塞贝克效应产生电压信号
  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 热电堆的输出特性与信号处理

热电堆的输出电压非常小——典型值只有几十微伏到几毫伏。这就带来了两个问题:

  • 噪声问题:微伏级信号很容易被噪声淹没
  • 温漂问题:冷端温度变化会影响输出

我习惯的做法是:

  1. 用高精度仪表放大器(如 AD620、INA333)放大 100-1000 倍
  2. 加低通滤波器,截止频率 1-10Hz
  3. 做冷端补偿——用另一个温度传感器测环境温度
  4. 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。

好了,这一节的内容就到这里。下一节我们讲热电堆传感器的接口电路设计——怎么把微伏级信号变成稳定的数字量,到时候我会分享一些我踩过的坑。