1、概述
使用DHT11温湿度传感器,传感周期为1s。
DHT11模块一般由3/4个引脚组成,每一次收集数据为40bit。 分别为:
高位在前、8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和
我们需要解决的问题,如何使用1个引脚一次获取40位的数据,必须增加另外的维度、即“时间”。
数据按照某种协议发送,一组低电平+高电平组成一次的位数据,通过高电平保持时间的不同,来确定这一位是0还是1。
时序图:
黑色为触发信号,即设备端触发DHT11模块
灰色为回响信号,即DHT11返回给主机
主机的触发信号为拉低并保持20ms,拉高保持40us以上。
设备的回响信号为拉低并保持80us,拉高并保持80us。
这两次“握手”非常重要,因为在收集数据之前,我们得先保证主机与传感器设备之间的数据通路。主机触发设备表示主机告诉设备:“我需要数据”,设备返回回响信号。
没有这两次“握手”,无法保证数据通路,即不知道设备是不是“激活”的。
握手完毕之后,传感器发送40个bit数据。每一位数据有低电平+高电平组成。
低电平保持50us表示准备发送,切换高电平后,主机由高电平的维持时间来判断这一位数据是0还是1.
如果保持26-28us,则为0,如果保持70us则为1。