温度传感器
更新: 4/10/2025 字数: 0 字 时长: 0 分钟
温度传感器是指能够感知温度并将其转化为可用输出信号的传感器,它是温度测量仪器的核心部分,广泛应用于各个领域,包括天气监测、暖通空调系统、工业过程、医疗设备和消费电子等,为人们的生产和日常生活提供了便利。
准备
硬件 | 说明 | 图片 |
---|---|---|
创意盒平台 | ![]() | |
环境监测模块 | 购买创意盒附送 |
视频讲解
环境监测模块
连接
使用
原理
类型
温度传感器分为三种类型,每种类型都有独特的工作原理:
热电偶(Thermocouples)使用由不同金属组成的两根导体,在末端连接形成一个接头。当这个接头受热时,会产生一个与温度输入成正比的电压。它们可以运用在各个场景,因为不同的金属组合可以实现不同的测量范围;但它们的精度是三种类型中最低的一种。
热敏电阻器(Thermistors)可以非常小巧。它们由一个感测元件组成,可以是玻璃或环氧树脂包覆,并且有2根导线,以便连接到电路中。它们通过测量电流的电阻变化来测量温度。热敏电阻器可以作为负温度系数(NTC)或正温度系数(PTC)的形式存在,并且通常价格较低。
电阻温度探测器(RTDs)的工作原理与热敏电阻器类似,通过测量欧姆电阻来测量温度。它们与电路连接方式类似于热敏电阻器,但其温度范围更广,可以测量极端温度。
热电偶
当两种不同的导体或半导体材料在温度不同的地方连接在一起形成一个闭合电路时,由于两个材料的电子能级分布差异,电子将会从热端流向冷端,导致一个电势差的产生,即热电势。这种现象被称为塞贝克效应,是热电偶工作的基础原理。通过测量产生的电势差,可以间接测量温度差异。

热敏电阻
热敏电阻是一种感应元件。热敏电阻的电阻值会随温度的变化而改变。与固定电阻不同,它是一种在各种电子元件中广泛使用的可变电阻。与使用纯金属的电阻温度计不同,热敏电阻通常由陶瓷或聚合物制成。

正温度系数(PTC)热敏电阻在较高温度下具有较大的电阻值,在相同条件下,负温度系数(NTC)热敏电阻的电阻值较低。热敏电阻通常在有限的温度范围内具有较高的准确性,温度范围通常在-90℃到130℃之间。

电阻温度探测器
电阻温度探测器(RTD)根据导体的电阻随温度变化的规律来测量温度。 电阻温度计的温度感应元件通常由金属线制成,如铂和铜,而在低温下,常常使用碳、锗和铑铁等元素。

由于它们几乎都是由铂制成的,我们通常称它们为铂电阻温度计。精密铂电阻温度计是最准确的温度计,其温度范围大约为14到903K,其误差可以低至1/10,000摄氏度。此外,它能够再现国际实际温标。

选择合适的温度传感器
传感器类型的选择取决于精度、范围、响应时间和特定应用的要求。
不同的传感器精度不同,热电偶的精度较低,而玻璃包覆的NTC热敏电阻器精度最高。另外,不同的温度传感器可以测量的温度范围也不同,并且可能在某个范围内更准确。此外,还需要考虑传感器的尺寸和封装。如果空间有限,则需要较小的设备。
在实验中,我们选用了常见的热敏电阻温度传感器。
实验
我们提供两款温度传感器插板,一款基于 MTS01,另外一款基于 TMP102,两款的参数和控制方式略有不同。用户可以根据需求选择温度传感器插板。
温度传感器插板可直接插在平台的扩展排针上,启动平台后发送相应的 Python 脚本即可读取温度值。
用户也可自定义应用,只需要将相应的网络请求发送给传感器平台即可实现和温度传感器的交互。
参数
参数名称 | MTS01 | TMP102 |
---|---|---|
测温范围 | -70C 至 +150C | -40C 至 + 125C |
精度 | 误差一般为 0.1C 到 0.2C 之间 | 误差一般为 0.5C 到 1C 之间 |
控制接口 | I2C 接口 | I2C 接口 |
接口支持速率 | 0-100kHz | 0-400kHz |
工作电压 | 3.3V | 3.3V |
功耗 | 待机电流 0.1uA,测温电流 0.45mA | 待机电流一般在 1-10uA 之间 |
插板引脚
MTS01

I2C 地址:0x45
TMP102

I2C 地址: 0x48
读取温度数值
温度传感器通常提供两种测温模式,一种是单次测量另外一种是连续测量。
- 单次测量:主控需要发送 I2C 命令来触发温度传感器进行测温。当传感器测温结束后,结果会保存在传感器上,主控需要另一个 I2C 命令来读取温度。
- 连续测量:在连续测量模式下,温度传感器会以给定的间隔不停地进行测温。首先,主控发送 I2C 命令将温度传感器设置为连续测温模式,接下来主控只需要不断地发送 I2C 读取温度命令即可。
我们以 MTS01 的数据手册为例,下面的图展示了如何进行单次测量(MTS01 数据手册 12.8)。

- 主控需要将 I2C 地址,指令高字节,指令低字节依次发送给温度传感器。每次温度传感器收到一个字节的数据时,都会发送应答位通知主控。如果温度传感器未发送应答位,平台会返回失败码,这时请检查您的 I2C 地址是否设置正确,以及平台与温度传感器连接的引脚编号是否设置正确。
- 在主控发送完单次测温命令后,等待温度传感器测温结束(约 1ms 左后)便可以读取测温数据。主控同样需要先发送 I2C 地址,接下来的三个字节是温度传感器发送给主控的温度数值和 CRC 检验字节。
温度计算
在主控收到传感器的测温数值后,根据传感器的不同,需要计算的得到测温数值对应的摄氏度或华氏度。以 MTS01 为例,在数据手册给出的计算公式(MTS01 数据手册 9.1)为:

Python 实验脚本
用户请点击 MTS01或者TMP102下载对应的 Python 实验脚本。
请根据温度传感器与平台的连接引脚,改动SDA_PIN
和SCL_PIN
;并在PLATFORM_IP
设置正确的平台 IP 地址。运行该脚本即可读取温度数值。
$ python mts01.py
temperature: 25.00390625 C
脚本同样支持不断地读取温度数值,并将温度数值保存在文件中。下面的命令每 5 秒钟读取一次温度传感器的数值,并将结果保存在 mts01_log_temperature 文件中:
$ python mts01.py --file mts01_log_temperature --interval 5
分析实验结果
我们提供一个简单的温度结果分析脚本,该脚本读取温度结果文件,然后绘制出时间和温度的图表。命令为:
$ python matplot.py -f mts01_log_temperature
绘制样例如下:
