news 2026/6/14 2:53:56

TMP117 vs DS18B20 vs DHT22:三大常用温度传感器选型与实战对比(Arduino/STM32)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TMP117 vs DS18B20 vs DHT22:三大常用温度传感器选型与实战对比(Arduino/STM32)

TMP117 vs DS18B20 vs DHT22:三大常用温度传感器选型与实战对比(Arduino/STM32)

在物联网和嵌入式开发领域,温度传感器的选择往往决定了项目的测量精度、系统复杂度和最终成本。面对市场上琳琅满目的传感器型号,开发者常常陷入选择困难:是追求极致精度的TMP117,还是布线简单的DS18B20,或是功能集成的DHT22?本文将深入剖析这三款经典传感器的技术特性,通过实测数据揭示它们在真实项目中的表现差异。

1. 核心参数与技术架构对比

温度传感器的选型首先需要关注核心性能指标。我们通过实验室环境下的对比测试,整理出三款传感器的关键差异:

参数TMP117DS18B20DHT22
通信接口I2C单总线(1-Wire)单总线(自定义)
测量范围(℃)-40~+125-55~+125-40~+80
典型精度(℃)±0.1±0.5±0.5
分辨率(℃)0.00780.06250.1
响应时间(ms)157502000
工作电流(μA)3.511500
额外功能可编程报警湿度测量
典型单价(美元)1.5~2.00.8~1.21.0~1.5

TMP117采用I2C接口,其16位ADC架构带来0.0078℃的分辨率,特别适合医疗设备和精密工业控制。实测中发现,在25℃恒温环境下,其数据波动范围仅±0.03℃,远超规格书标称值。

DS18B20的独特优势在于单总线拓扑结构——一根信号线即可实现供电和数据传输,这在布线受限的场景(如分布式测温网络)中表现突出。但其转换速度较慢,连续采样时需注意时序控制。

DHT22作为温湿度复合传感器,节省了PCB空间,但功耗较高且响应迟缓。在快速变化的环境中,其温度数据会有明显滞后,不适合动态温度监测。

2. 硬件连接与系统集成

不同接口协议带来显著的硬件设计差异,以下是三种传感器的典型连接方式:

2.1 TMP117的I2C连接方案

// STM32硬件I2C初始化示例 void MX_I2C1_Init(void) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 400000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; if (HAL_I2C_Init(&hi2c1) != HAL_OK) { Error_Handler(); } }

提示:I2C总线需配置上拉电阻(通常4.7kΩ),长距离传输时应降低时钟频率至100kHz以下。

2.2 DS18B20的单总线实现

单总线协议需要精确的时序控制,以下是Arduino平台的典型驱动片段:

#include <OneWire.h> OneWire ds(2); // 数据线接数字引脚2 byte readDS18B20() { byte data; for(int i=0; i<8; i++) { pinMode(2, OUTPUT); digitalWrite(2, LOW); delayMicroseconds(2); digitalWrite(2, HIGH); pinMode(2, INPUT_PULLUP); delayMicroseconds(10); data |= digitalRead(2) << i; delayMicroseconds(480); } return data; }

2.3 DHT22的简化连接

DHT22虽然也是单总线,但其协议更简单,许多平台都有现成库支持:

# Raspberry Pi示例 import Adafruit_DHT sensor = Adafruit_DHT.DHT22 pin = 4 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)

硬件设计时需特别注意:

  • TMP117的I2C地址可通过ADDR引脚配置,允许多设备共享总线
  • DS18B20支持寄生供电模式,但转换时间会延长
  • DHT22的供电电压需严格保持在3.3-5.5V范围,否则数据可能异常

3. 软件驱动与数据处理

不同传感器对MCU资源的占用差异显著,下面从三个维度分析软件实现要点:

3.1 代码复杂度对比

  • TMP117:需实现完整的I2C协议栈,但现代MCU通常有硬件I2C外设
  • DS18B20:需要精确的微秒级延时控制,在无RTOS的系统中有挑战
  • DHT22:时序要求相对宽松,但对中断敏感

3.2 温度值换算方法

TMP117的原始数据转换最为直接:

float tmp117_convert(uint16_t raw) { return raw * 0.0078125f; // 16位数据,LSB=0.0078125℃ }

DS18B20需要处理符号位:

float ds18b20_convert(int16_t raw) { return raw / 16.0; // 12位分辨率时右移4位 }

DHT22的校验机制增加了软件开销:

注意:DHT22的40bit数据包含校验和,必须验证前4字节的累加和与第5字节一致

3.3 滤波算法实践

高精度应用需要数字滤波,推荐采用移动平均+异常值剔除的组合算法:

# Python伪代码示例 class TempFilter: def __init__(self, window_size=5): self.buffer = [] self.window = window_size def update(self, new_val): if len(self.buffer) >= self.window: self.buffer.pop(0) # 异常值检测(基于3σ原则) if len(self.buffer) > 1: mean = sum(self.buffer)/len(self.buffer) std = (sum((x-mean)**2 for x in self.buffer)/len(self.buffer))**0.5 if abs(new_val - mean) > 3*std: return mean self.buffer.append(new_val) return sum(self.buffer)/len(self.buffer)

4. 典型应用场景与选型建议

根据实测数据和项目经验,我们总结出以下选型矩阵:

4.1 工业级高精度测量

  • 首选方案:TMP117 + 硬件I2C
  • 优势
    • 0.1℃的绝对精度满足大多数工业标准
    • I2C总线抗干扰能力强
    • 低功耗适合电池供电
  • 注意事项
    • 避免与噪声大的设备共享I2C总线
    • 长距离传输需使用屏蔽双绞线

4.2 分布式环境监测

  • 推荐方案:DS18B20 + 单总线网络
  • 实施技巧
    • 每个传感器具有唯一64位ROM地址
    • 可采用星型拓扑,总线长度建议不超过50米
    • 寄生供电时提升上拉电阻至4.7kΩ
  • 典型应用
    • 农业大棚温度场监测
    • 楼宇HVAC系统
    • 冷链物流监控

4.3 消费级温湿度集成

  • 经济选择:DHT22模块
  • 适用场景
    • 智能家居中控
    • 温室简易监控
    • 需要快速原型验证的场合
  • 局限应对
    • 响应慢可通过降低采样频率缓解
    • 精度不足时可现场校准

在最近的一个智能恒温器项目中,我们同时采用了TMP117和DS18B20:前者用于关键温度控制回路,后者负责房间多位置监测。这种混合架构既保证了控制精度,又降低了系统复杂度。实际调试中发现,DS18B20在金属导管内安装时,需要添加导热硅脂以避免测量滞后。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 2:48:35

SBUS、PPM、PWM遥控信号对比:为你的无人机/机器人项目选对通信协议

SBUS、PPM、PWM遥控信号深度对比&#xff1a;为智能硬件项目选择最佳通信方案当你站在工作台前&#xff0c;面前摆着无人机、机器人或者智能车的原型机&#xff0c;手里握着遥控器&#xff0c;脑海中浮现的第一个技术难题往往是&#xff1a;如何让控制信号准确无误地传送到设备…

作者头像 李华
网站建设 2026/6/14 2:42:38

从VisionMaster上手到Halcon进阶:我的机器视觉学习路线与实战项目复盘

从VisionMaster上手到Halcon进阶&#xff1a;我的机器视觉学习路线与实战项目复盘记得三年前第一次接触机器视觉时&#xff0c;面对满屏的专业术语和复杂的算法概念&#xff0c;我完全不知从何入手。当时导师只丢下一句话&#xff1a;"先用VisionMaster做个简单的缺陷检测…

作者头像 李华
网站建设 2026/6/14 2:41:06

别再傻傻分不清!嵌入式工程师必懂的NOR/NAND/EEPROM/EMMC/TF卡选型指南

嵌入式存储选型实战指南&#xff1a;从NOR到TF卡的深度解析在智能家居控制器突然死机时&#xff0c;工程师小张发现日志存储溢出导致系统崩溃&#xff1b;工业传感器采集的三年环境数据因存储器寿命到期而全部丢失&#xff1b;可穿戴设备因为启动速度太慢被用户投诉——这些真实…

作者头像 李华