温湿度模块DHT22详解一:基础篇

      DHT22也称AM2302,是一款含有已校准数字信号输出的温湿度复合传感器,见图1,湿度量程范围0~99.9%RH,精度±2%RH,而温度量程范围是-40℃~80℃,精度±0.5℃。

                                                                  图1

       DHT22是单总线通信的,驱动它只需三根线:电源线、信号线和地线,因此其电路也很简单,见图2:

                                                                        图2

       下面开始根据模块手册一步一步来讲解如何驱动DHT22,我尽可能详细到让初学者看完本文后就能成功驱动DHT22,大神路过勿喷。

       第一步:获取模块的使用手册,我使用的是奥松电子的DHT22,大家可以到官网下载:http://www.aosong.com/products-22.html

       第二步:解读模块使用手册,挑重要的点来讲

       1)在使用DHT22时要注意图3中的点3和点4,读取间隔最好大于2秒。

                                                                               图3

       2)接着是重要的通信协议格式,见图4

                                                                                           图4

       从图4可以看出,向DHT22读取温湿度数据时,DHT22是返回一个40位的数据:bit39-bit31表示湿度高位,bit30-bit23表示湿度低位,bit23-bit16表示温度高位,bit15-bit8表示温度低位,bit7-bit0表示校验位,那么如何将这40bit数据转换为温度和湿度呢?在手册中已经举例说明了,见图5和图6:

                                                                           图5

                                                                           图6

       这里要注意三点:一是无论是湿度还是温度,DHT22传出来的温湿度值是实际温湿度的10倍,所以40bit数据换算后的结果还要除以10才是实际的温湿度值;二是温度和湿度不一样,温度的最高位正负温度,最高位为1时表示负温度,为0时表示正温度,所以真正的温度值只有15位;三是换算时,先将湿度高8位和湿度低8位转换为十六进制后再转换为十进制。

       3)接下来是最重要的时序问题,时序不准确会导致无法读取到正确的数据,见图7:

                                                                       图7

       从图7知道,这里有两个时序问题,分别是起始信号(主机信号)和应答信号(传感器信号),那么起始信号和应答信号是怎样的呢?详见图8:

                                                               图8

       从图8可看出,起始信号(主机信号)是将总线引脚电平拉低1MS,1MS后需释放总线,而应答信号(传感器信号)则是在总线释放后输出80us的低电平和80us的高电平。

       接着还有一个重要问题,总线输出40bit的数据,我们知道输出的数字信号不是'0'就是'1',那么如何区分这40bit里面哪些是'1'哪些是'0'呢?是的,区分0和1也是靠时序,手册中也给出该时序,见图9:

 

                                                                   图9

       当我们检测到IO口输出50us低电平加26us高电平时,就可认为此时DHT22输出的位数据是'0',当检测到IO输出50us低电平加70us高电平时,就可认为此时DHT22输出的位数据是'1'。

       到此可以发现,要成功驱动DHT22,总线时序很重要,官方手册中也给出了每种信号的时序表,见下图10,我们一般使用典型值即可,即图10中红框部分,我们也可以使用最大值来判断是否存在通信超时情况。

                                                                 图10

       第3步:总结驱动DHT22的三个步骤。

        1)DHT22上电后至少要延时2秒,越过不稳定状态后才能开始读取数据。

        2)主机输出起始信号:

        主机与DHT22连接的IO口设置为输出模式并输出1ms的低电平。

       3)主机输出起始信号后需要释放总线:

        如何释放总线?只需主机IO口输出30us高电平即可,但这里推荐直接将IO口设置为输入模式,由于存在上拉电阻,IO口会一直处于高电平,并不需要特定输出高电平,而且后面接收DHT22的应答信号时IO口也要设置为输入。

       4)主机接收DHT22返回的应答信号:

       因为主机释放总线时主机IO口就已设置为输入模式,根据IO口的电平变化判断当前信号是否为应答信号,若IO口检测到先是80us低电平后80us高电平,说明该信号为应答信号,若超过时间超过上图10中的响应最大时间85us,则可以判断为应答超时。

       5)主机接收DHT22返回的40bit数据:

       DHT22发送完应答信号后,随即串行输出40位数据,高位在前,主机根据IO口电平变化来判断当前的数据位是'0'还是'1',若IO口检测到先是50us低电平后是26us高电平,则说明当前数据位是'0',若IO口检测到先是50us低电平后是70us高电平,则说明当前数据位是'1'。因为是40位数据,所以要循环检测IO口电平状态40次。

       6)DHT22输出40位数据后,继续输出50us低电平后自动进入休眠状态,此时DHT22会变为输入模式随时接收主机发来的起始信号,只有接收到主机发来的起始信号才能唤醒,进入工作状态。

       7)校验接收到的40位数据:

       如果(bit39:31)+(bit30:23)+(bit23:16)+(bit15:8)=(bit7:0)则表示接收到的数据正确。

      8)读取DHT22数据的时间间隔至少要2秒。

       DHT22传感器的基础就写到这里,下一篇主要写下DHT22驱动的编程思想以及驱动代码分析。

  • 48
    点赞
  • 289
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: DHT.zip是一款设计用于温湿度传感器DHT11模块的软件。DHT11是一种数字式温湿度传感器,具有独特的技术和优良的性能,可以被广泛地应用于各种类型的电子项目,包括测量室内/室外环境的温度和湿度等。为了满足需求,DHT.zip被设计为能够提供可靠的读取和输出数据的软件。此软件能够精确地读取DHT11模块信号,将读取到的数据通过串口传输至主控板,可以被进一步处理和分析,以达到精确测量环境温度和湿度的目的。DHT.zip非常易于使用,用户仅需将传感器连接到主板上,并通过串口运行DHT.zip程序即可开始正常工作。此外,这个软件界面也非常直观,能够帮助用户轻松地理解数据的读取和分析过程。总的来说,DHT.zip是一款非常实用的软件,对于那些需要使用DHT11模块来测量温湿度的用户来说,它将是一个非常有用的工具。 ### 回答2: dht.zip是一个针对于温湿度传感器DHT11模块的专用软件。使用dht.zip可以方便地获取和处理DHT11传感器所传输的温度和湿度数据。DHT11模块是一款高精度、响应速度快、体积小巧的温湿度传感器模块,广泛应用于各种温湿度监测系统中。通过使用dht.zip软件,用户可以轻松快速地建立一个温湿度监测系统,对环境温湿度进行实时监测,以保证环境的舒适性和安全性。 使用dht.zip软件不仅方便易用,而且功能强大。它支持多种编程语言,包括C、C++、Python等,可以在多种平台上运行。用户可以通过dht.zip软件获取DHT11传感器模块所采集到的温湿度数据,并进行数据处理和分析。此外,dht.zip软件还支持数据的实时传输和存储,让用户可以随时随地了解环境温湿度的变化情况。 总之,dht.zip是一款功能强大、易于使用的专门针对DHT11模块温湿度传感器软件,它为用户提供了实时监测、数据处理和分析等多种功能,有助于提高环境监测的精度和效率。 ### 回答3: dht.zip文件是针对温湿度传感器DHT11模块设计的专用文件。DHT11模块是一种数字式温湿度传感器,由于数据传输是数字信号,所以具有抗干扰能力强,精度高等特点。DHT11模块可以应用在各种场合,例如空气质量检测、环境监测等。为了更好地使用DHT11模块,需要在电脑上安装DHT.zip文件。DHT.zip文件中包含了DHT11的驱动程序和使用说明书。驱动程序可以让DHT11模块更好地与电脑进行数据交互,使用说明书则可以让用户更加详细地了解DHT11模块的使用方法和注意事项。在安装DHT.zip文件之后,用户就可以利用电脑对DHT11模块进行各种操作,例如读取温湿度数值、设置数据采集间隔等等。通过DHT11模块的应用,可以实时监测环境温湿度变化,从而提高生活和工作的舒适度和安全性。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值