首页 > Coding > 树莓派 + DHT11 获取温度与湿度

树莓派 + DHT11 获取温度与湿度

2015年5月12日 发表评论 阅读评论

§§ DHT11介绍

DHT11是一款含有已校准数字信号输出的温湿度复合传感器。包括一个电阻式感湿元件和一个NTC测温元件,可与8位单片机相连接。是一款广泛使用是电子元器件。DHT11的一般形态如下图:

DHT11采用四PIN引bKKNC脚。

  • 引脚1:VCC.  接入3~5.5V直流电源。
  • 引脚2:Data.  串行数据总线
  • 引脚3:N/A.  空引脚
  • 引脚4:GND.  接地线

DHT11的供电电压为 3-5.5V。传感器上电后,要等待 1s 以越过不稳定状态.电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。

串行数据总线用于和单片机进行数据通讯和同步。一次通信时间在4ms左右,传输40bit数据,高位先出。数据协议8位为一组,由高至底分别为:

  • 8bit  湿度整数部分
  • 8bit  湿度小数部分
  • 8bit  温度整数部分
  • 8bit  温度小数部分
  • 8bit  检验和

dht11_data

 

温度和湿度目前只有整数部分有效,小数部分是无效的,计数为0.

各数据部分相加,得到的和取末8位,即为检验和。

§§ DHT11工作模式

DHT11空闲状态为低功耗模式。当主机发送起始信号后,DHT11进行高速模式,触发一次温湿度采集,并后主机发送信息,然后再次进入低功耗模式。整个流程可以分为三个阶段如下

起始阶段:

数据总线空闲状态为高电平。当主机需要获取信息时,工作流程如下:

  1. 主机把总线拉低等待DHT11响应,拉低时间必须大于18ms,以保证DHT11能检测到起始信号
  2. 主机发送起始信号结束后,延时等待20-40us,切换到输入模式,或者输出高电平
  3. DHT11等待主机起始信号结束后,发送80us低电平响应信号
  4. DHT11发送响应信号后,再把总线拉高80us,准备发送数据

数据传输阶段:

数据总线按bit发送数据时,每bit数据起始将电平拉低50us,作为发送间隙,然后将电平拉高,发送数据。数据d为‘0’还是‘1’,由电平持续时间t决定。如果t < 50ms,则d=0,如果d>50us,则d=1. 流程如下:

  1. DHT11发送50us低电平信息,作为bit起始间隙
  2. DHT11发送时间t高电平信息,作为数据
  3. 重复1,2发送数据,直到数据全部发送结束

结束阶段:

当数据发送全部结束后,总线发送结束号,并恢复低功耗模式:

  1. DHT11发送50us低电平信号
  2. DHT11将电平拉高,恢复至低功耗模式

 

 

 

 

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.