在嵌入式开发中,温湿度传感器是一类用于测量环境温度和湿度的设备,广泛应用于气候监测、家用电器、物联网(IoT)设备、工业自动化等领域。它们能够感知环境中的温度和湿度变化,并将这些信息以电信号(0 和 1)的形式传递给微控制器(MCU)或处理单元。
温湿度传感器的工作原理
温湿度传感器通常将温度和湿度这两个参数集成在一个传感器芯片上,它们的工作原理如下:
温度传感器部分
- 温度测量常使用热敏电阻、热电偶、或半导体温度传感器来感知温度。
- 热敏电阻:通过材料电阻值随温度变化而变化的特性来测量温度。
- 半导体温度传感器:基于 PN 结的电压特性,随着温度变化产生可测量的电压变化。
- 热电偶:由两种不同金属连接形成,当温度变化时产生电势差。
湿度传感器部分
- 湿度测量一般通过电容式湿度传感器或电阻式湿度传感器来完成。
- 电容式湿度传感器:由一层吸湿性介质组成,介质吸收空气中的水分导致电容变化,从而测量湿度。
- 电阻式湿度传感器:感湿材料的电阻随空气湿度变化而变化,电阻值的变化反映空气中的湿度。
常见的温湿度传感器种类
嵌入式开发中,使用最广泛的温湿度传感器主要有以下几类:
DHT 系列传感器
- DHT11 和 DHT22 是常见的低成本温湿度传感器,具有数字输出,易于与微控制器连接。
- DHT11:精度较低,温度测量范围为 0
50℃,湿度测量范围为 20%90%RH(相对湿度)。 - DHT22:精度较高,温度测量范围为 -40
80℃,湿度测量范围为 0%100%RH。 - 通信方式:单总线协议,通常用一根数据线来传输温度和湿度数据,简单易用。
- DHT11:精度较低,温度测量范围为 0
SHT 系列传感器
- SHT3x、SHT4x 系列是 Sensirion 公司生产的高精度温湿度传感器,广泛用于工业和高精度应用。
- 精度:温度测量精度高达 ±0.1℃,湿度测量精度 ±1.5%RH。
- 通信方式:采用 I2C 或 SPI 接口,数据传输速度快,适合对精度要求较高的应用。
AM2302(DHT22 的改进版)
- 与 DHT22 类似,AM2302 是精度更高的温湿度传感器。
- 温度测量范围:-40~80℃。
- 湿度测量范围:0~100%RH。
DHT11
DHT11 是一种常用的低成本温湿度传感器,广泛用于简单的环境监测应用。它可以同时测量环境的温度和湿度,并通过单线数字接口与微控制器通信,易于使用。
温度测量:DHT11 使用一个 NTC 热敏电阻作为温度感应器,感知周围环境的温度变化。热敏电阻的电阻值会随着温度变化而变化,传感器内部将此电阻变化转换为温度数据。
湿度测量:DHT11 使用电容式湿度传感器来检测湿度。传感器内有一个吸湿性聚合物层,这一层的电容会随着空气中水分含量(湿度)的变化而变化。传感器通过测量这一电容变化来计算空气湿度。
通信协议
DHT11 使用单线数字通信协议来与微控制器通信,这意味着它只需一个数据线即可传输温湿度数据。通信流程通常如下:
初始化:微控制器向传感器发送一个低电平启动信号(至少 18ms),然后释放数据线(至少 10us)。
响应信号:DHT11 传感器发送一个响应信号(响应低高电平,低电平至少 78us,高电平至少 80us),告诉微控制器它已经准备好数据。
数据传输:DHT11 以位(bit)的形式将温度和湿度数据(共 40 位)传给微控制器。数据传输分为两个部分:
湿度数据(16 位):包含湿度的整数和小数部分。
温度数据(16 位):包含温度的整数和小数部分。
校验位:最后传感器发送一个 8 位的校验码,用于确认数据是否传输正确。
DHT11 温湿度传感器的通信时序参数
数据时序图
信息格式说明
接收到的 40 位数据示例
STC8H
使用 DHT11 模块
引脚图
NG 通常表示没有接地或没有连接。在具体电路中,建议结合设计者的注释或相关文档进一步确认它的确切含义。
实现
1 | // DHT11.h |