甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现

  • A+
所属分类:空气湿度

DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器。它具有超小体积、极低功耗的特点。它使用单根总线与单片机进行双向的串行数据传输,信号传输距离可达20米以上。非常适用于对精度和实时性要求不高的温湿度测量场合。

本文将以DFRobot开源硬件平台的DHT11模块和DFRduino开发板来演示,讲解DHT11的驱动和使用。

甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现

数据总线DATA使用上拉电阻拉高,因此总线空闲时为高电平。上拉电阻阻值推荐范围:4.7K~5.1K。

甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现

DHT11使用单一总线通信,即DATA引脚和单片机连接的线。总线总是处于空闲状态和通信状态这个2个状态之间。

当单片机没有与DHT11交互时,总线处于空闲状态,在上拉电阻的作用下,甘肃嘉峪关天气预报处于高电平状态。甘肃嘉峪关天气预报

当单片机和DHT11正在通信时,总线处于通信状态,一次完整的通信过程如下:

②单片机将总线ms,以此来发送起始信号。再将总线us,以此来代表起始信号结束。

④当DHT11检测倒单片机发送的起始信号后,就开始应答,回传采集到的传感器数据。DHT11先将总线us作为对单片机的应答(ACK),然后接着将总线us,准备回传采集到的温湿度数据。温湿度数据以固定的帧格式发送,具体格式如下图:

甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现

可以发现一帧为40个bit,而每一个bit的传输时序逻辑为:每一个bit都以50us的低电平(DHT11将总线拉低)为先导,然后紧接着DHT11拉高总线,如果这个高电平持续时间为26~28us,则代表逻辑0,如果持续70us则代表逻辑1。

⑤当一帧数据传输完成后,甘肃嘉峪关天气预报DHT11释放总线,总线在上拉电阻的作用下再次恢复到高电平状态。

甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现

1、DHT11上电后,要等待 1秒 以越过不稳定状态,在此期间不能发送任何指令。

2、DHT11属于低速传感器,两次通信请求之间的间隔时间不能太短,一般来说要不能低于1秒。

3、当前DHT11通信帧的小数部分默认都是0,厂商预留给以后实现。所以一般只读取整数值部分即可。校验和定义为:前4个Byte的总和的低8位。

在DFRobot官网可以找到DHT11模块驱动库,但出于学习和讲解的目的,下面给出了我自己的驱动实现源代码。使用C语言编写,并在Arduino上测试。

*参数:temperature,指向存放温度数据的指针;humidity,指向存放湿度数据的指针

甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现

甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现

在DFRobot DHT11使用教程页面的【样例代码】一节找到【下载样例程序和库文件】,点击即可下载Arduino社区开发的DHT11驱动库。

下载后完成后,解压出来。在Arduino安装目录下的【librraies】目录下新建文件夹【dht11】,并将解压出来的dht11.cpp和dht11.h复制到新建的【dht11】文件夹下,即可完成库的安装。

以上内容由小编精心整理编辑,文章均采集于网络,文章观点并不代表本站观点!如无雷同,纯属正常!这就是甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现的全部内容!本文或有不足之处,还请广大读者海涵!本站会源源不断的输出大量优质内容,如果您还想了解更多关于甘肃嘉峪关天气预报_DHT11温湿度传感器模块使用方法和驱动代码实现的内容,请关注我们的网站(https://www.0516xt.com/)在这里小编祝您身体健康,万事如意!

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: