“DHT11 Temperature And Humidity Sensor”的版本间的差异
Yousimaier17(讨论 | 贡献) (→数据传输) |
Yousimaier17(讨论 | 贡献) (→总时序) |
||
第102行: | 第102行: | ||
==== 总时序 ==== | ==== 总时序 ==== | ||
+ | :[[File:DHT11 Temperature And Humidity Sensor_总时序.jpg|600px]] | ||
+ | #主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号; | ||
+ | #主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号; | ||
+ | #DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号; | ||
+ | #DHT11发送响应信号后,再把总线拉高8Ous,准备发送数据; | ||
+ | #每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1; | ||
+ | #主机发送开始信号后,可以切换到输入模式,或者输出高电平均可; | ||
+ | #如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常. | ||
+ | 当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。 | ||
注意:由于 DHT11 时序要求非常严格,所以在操作时序的时候,为了防止中断干扰总线时序,先关闭总中断,操作完毕后再打开总中断。 | 注意:由于 DHT11 时序要求非常严格,所以在操作时序的时候,为了防止中断干扰总线时序,先关闭总中断,操作完毕后再打开总中断。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== 0/1时序 === | === 0/1时序 === |
2022年7月14日 (四) 11:22的版本
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
目录
产品概述
DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,内部由一个8位单片机控制一个电阻式感湿元件和一个 NTC 测温元件。与DS18B20数字型温度传感器相比,DHT11 既能检测温度又能检测湿度。DHT11传感器采用单线制串行接口,其Dout引脚接上一个5K的上拉电阻后可直接与单片机的I/O口连接。信号传输距离可达20米以上,具有抗干扰能力强、性价比极高、响应速度快等优点。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
产品说明
传感器参数
- 工作电压:3V-5.5V
- 工作电流 :平均 0.5mA
- 湿度测量范围:20-90%RH
- 湿度测量精度:±5%RH
- 湿度分辨率 :1%RH 8位
- 温度测量范围:0-50℃
- 温度测量精度:±2℃
- 温度分辨率 :1℃ 8位
- 采样周期 :≥1s
引脚说明
GND | 电源负极(电路板上标注为‘-’) |
---|---|
VCC | 电源正极(接入电压为3.3V-5V) |
DATA | 数字输出(电路板上标注为‘S’) |
NC | 空脚(可不接) |
使用说明
数据结构
DHT11数字温湿度传感器采用单总线数据格式,即单个数据引脚端口完成输入输出双向传输。一次通讯时间大约为4ms左右,一次完整的数据包是由5Byte(40Bit)组成。其中数据分小数部分和整数部分,按照高位在前,低位在后的传输顺序。具体格式如下:
- 数据格式为:8bit湿度整数数据+8bit 湿度小数数据+8bit 温度整数数据+8bit 温度小数数据+8bit 校验和
其中由于DHT11分辨率只能精确到个位,所以小数部分是数据全为0。校验和为前4个字节数据相加,校验的目的是为了保证数据传输的准确性。
另因为传感器输出的数据是未编码的二进制数据,因此在进行数据处理时,温度、湿度、整数、小数部分应分开处理。
例如:当某次传感器传出的40bit数据为由上述数值可以得出: 湿度 = byte1.byte2 = 00111101.00000000 = 61.0%RH 温度 = byte3.byte4 = 00011110.00000000 = 30.0℃ 校验和 = 01011011 = byte1+byte2+byte3+byte4+byte5 = 00111101+00000000+00011110+00000000(取相加结果的末8位,若相等,则校验正确)
控制时序
- DHT11采用单总线协议与单片机通信,主机发送一次复位信号后,DHT11从低功耗模式转换到高速模式,等待主机复位结束后,DHT11发送响应信号,并拉高总线准备传输数据,用户可选择读取部分数据。DHT11只有在接收到开始信号后才触发一次温湿度采集,如果没有接收到主机发送复位信号,DHT11不主动进行温湿度采集。当数据采集完毕且无开始信号后,DHT11自动切换到低速模式。
- 整个通讯过程可分为一下几步:
- 1、DHT11初始化—触发DHT11采集数据
- 主机发送复位信号
- DHT11发送响应信号
- 2、DHT11发送采集数据
DHT11初始化
- 主机发送复位信号
- 总线空闲状态为高电平,主机将总线拉低等待DHT11响应,拉低时间必须大于18ms,保证DHT11能检测到复位信号。
- 主机在发送复位信号结束后,将总线拉高或切换为输入模式,延时时间为20~40us,此时复位信号发送完毕,主机等待接收DHT11的响应信号。
- DHT11发送响应信号
- DHT11检测到复位信号后,触发一次采样,并拉低总线80us表示响应信号,告诉主机数据已经准备好了。
- DHT11发送80us响应信号后会拉高总线80us,之后开始传输数据。
- 主机检测响应时间方法
- 当复位信号发送完毕后,如果检测到总线被拉低,就每隔1us计数一次,直至总线拉高,计算低电平时间。
- 当总线被拉高后重新计数检测80us的高电平,如果检测到响应信号之后的80us高电平,就准备开始接收数据。
- 实际上DHT11的响应时间并不是标准的80us,往往存在误差,当响应时间处于 20~100us 之间时就可以认定响应成功。
数据传输
DHT11在拉高总线80us后开始传输数据。每1bit数据都以50us低电平时隙开始,告诉主机开始传输一位数据了。以高电平的长短定义数据位是0还是1,如果检测到响应信号为高电平,则DHT11初始化失败,请检查线路是否连接正常。当最后1bit数据传送完毕后,DHT11 拉低总线 50us,表示数据传输完毕,随后总线由上拉电阻拉高进入空闲状态。
- 数据‘0’时序
- 当DHT11发送50us低电平时隙过后拉高总线,高电平持续26~28us,则表示数据“0”。
- 数据‘1’时序
- 当DHT11发送50us低电平时隙过后拉高总线,高电平持续70us,则表示数据“1”。
总时序
- 主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号;
- 主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号;
- DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号;
- DHT11发送响应信号后,再把总线拉高8Ous,准备发送数据;
- 每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1;
- 主机发送开始信号后,可以切换到输入模式,或者输出高电平均可;
- 如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.
当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。 注意:由于 DHT11 时序要求非常严格,所以在操作时序的时候,为了防止中断干扰总线时序,先关闭总中断,操作完毕后再打开总中断。
0/1时序
参考资料
注意事项
- 超出建议的工作范围可能导致高达3%RH的临时性漂移信号;返回正常工作条件后,传感器会缓慢地向校准状态恢复。若要加速恢复速度,可先在50-60℃和< 10%RH的湿度条件下保持2 小时(烘干),然后在20-30℃和>70%RH的湿度条件下保持 5小时以上。在非正常工作条件下长时间使用会加速产品的老化过程。
- 气体的相对湿度(相对湿度是指空气中水汽压与饱和水汽压的百分比),在很大程度上依赖于温度。因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。 如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导, DHT11与印刷电路板其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。
- 长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。
- DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。
- 长期保存条件:温度10-40℃,湿度60%以下。
FAQ
|