一.简介

DHT11作为一款低价、入门级的温湿度传感器,常用于我们的单片机设计实例中;它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
DHT11为 4 针单排引脚封装,如下图,采用单线制串行接口,只需加适当的上拉电阻,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

二.传感器参数

1.DHT11电气参数如下:
型号 测量范围 测湿精度 测温精度 分辨率 封装

2.引脚定义

3.典型电路
DHT11的供电电压为 3-5.5V,电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。DATA引脚并联一个5K以上的上拉电阻,增强信号的抗干扰额能力。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。

三.传感器控制时序

1.数据格式
DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零,操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:

8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和

8位校验和:

“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”相加所得结果的末8位。

2.控制时序
要实现对DHT11传感器的控制和数据的读取,需先学会分析DHT11的控制时序。时序主要分为三部分:1:触发DHT11采集数数据;2:读取数字0;3:读取数字1;。
(1)触发DHT11采集数据
总线空闲状态为高电平,单片机把总线拉低等待DHT11响应,单片机把总线拉低必须大于18ms,保证DHT11能检测到起始信号。
当DHT11接收到单片机的开始信号后,等待单片机开始信号结束,然后发送80us低电平响应信号。
单片机发送开始信号结束后,延时等待20-40us后,切换为输入状态,等待DHT11的80us低电平信号结束,然后判断DHT11是否是否发出 80us 的高电平;如果是,即可开始采集数据。

(2)数字0信号时序
当DHT11输出数字0时, 单片机读取到的信号为50 us的低电平,之后为26-28 us的高电平。

(3)数字1信号时序
当DHT11输出数字0时, 单片机读取到的信号为50 us的低电平,之后为70 us的高电平。

由此可知DHT11输出数字0和数字1的区别在于高电平的时间,由此单片机可在读取到高电平后,延时30us后,识别此时总线的电平,高电平为数字1,低电平为数字0;

(4)总时序图
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。
从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。当一次完整的采集数据后,DHT11会转换到低速模式。

四.控制程序

1.单字节采集

void  COM(void)
{U8 i;      for(i=0;i<8;i++)     {U8FLAG=2;  while((!P2_0)&&U8FLAG++);Delay_10us();Delay_10us();Delay_10us();U8temp=0;if(P2_0)U8temp=1;U8FLAG=2;while((P2_0)&&U8FLAG++);//超时则跳出for循环        if(U8FLAG==1)break;//判断数据位是0还是1      // 如果高电平高过预定0高电平值则数据位为 1    U8comdata<<=1;U8comdata|=U8temp;        //0}
}

2.完整一次数据采集

void RH(void)
{//主机拉低18ms P2_0=0;Delay(180);P2_0=1;//总线由上拉电阻拉高 主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();//主机设为输入 判断从机响应信号 P2_0=1;//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行      if(!P2_0)      //T !    {U8FLAG=2;//判断从机是否发出 80us 的低电平响应信号是否结束    while((!P2_0)&&U8FLAG++);U8FLAG=2;//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态while((P2_0)&&U8FLAG++);//数据接收状态         COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;P2_0=1;//数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}}/
}

3.获取DHT11数据

void GetTemp1(void)
{//------------------------//调用温湿度读取子程序 RH();//串口显示程序 //--------------------------Send_string("Humidity:");str[0]=U8RH_data_H/10+0x30;str[1]=U8RH_data_H%10+0x30;str[2]='.';str[3]=U8RH_data_L/10+0x30;str[4]=U8RH_data_L%10+0x30;str[5]='\0';Send_string(str);Send_string("%\r\n");Send_string("Temperature:");str[0]=U8T_data_H/10+0x30;str[1]=U8T_data_H%10+0x30;str[2]='.';str[3]=U8T_data_L/10+0x30;str[4]=U8T_data_L%10+0x30;str[5]='\0';Send_string(str);Send_string("℃\r\n");
}

如需DHT11相关资料, 请关注公众号,首页回复“DHT11”获取资料

详解DHT11温湿度传感器的原理及驱动程序相关推荐

  1. DHT11 温湿度传感器 单片机 原理

    芯片手册: https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.p ...

  2. 基于STM32的DHT11温湿度传感器设计

    文章目录 前言 一.DHT11温湿度传感器是什么? 二.DHT11驱动程序详解 1.相关宏定义 2.输入输出GPIO配置 2.GPIO初始化设计 3.检测DHT11是否正常工作 4.读取DHT11数据 ...

  3. 51单片机 DHT11温湿度传感器LCD显示+串口打印显示

    第一部分:DHT11详解: DHT11是一款有已校准数字信号输出的温湿度传感器. 精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃. **一.电路连接分析 1.引脚图** ...

  4. Esp8266 进阶之路19 【外设篇①】esp8266驱动 ds18b20、dht11 温湿度传感器,采集温湿度传感器到服务器。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 序号 SDK版本 内容 链接 1 nonos2.0 搭建 ...

  5. ESP32 开发笔记(三)源码示例 8_DHT11_RMT 使用RMT实现读取DHT11温湿度传感器

    开发板购买链接 https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=62636 ...

  6. DHT11温湿度传感器(详细)

    DHT11温湿度传感器--使用LCD1602显示 先上效果图,以及简单的和室内温度对比图,相交而言测量的值还是非常准的. 我的这个做的很简陋,大家可以理解原理后自行升级. 注意学习单片机最重要的就是学 ...

  7. ESP8266+DHT11温湿度传感器+小爱同学语音智能LED灯(状态可视化)

    ESP8266+DHT11温湿度传感器+LED灯(状态可视化) 接线(继电器与DHT11模块的GND与VCC分别对应接好ESP8266即可,下表只列出信号线接法): 模块 ESP8266 继电器IN ...

  8. 【STM32Cube】学习笔记(六):DHT11温湿度传感器

    文章目录 摘要 一.简介 1.DHT11数字温湿度传感器 2.DHT11性能参数 2.DHT11数据结构 2.DHT11传输时序 二.硬件电路设计 1.模块内部电路 2.与单片机相连接电路 三.软件设 ...

  9. dht11温湿度传感器特点及使用介绍

    dht11温湿度传感器特点及使用介绍 前言 一.dht11温湿度传感器外观 二.原理图 三.相关参数讲解 1.引脚 2.温湿度测量范围 3.通讯方式(单总线数字信号) 4.优点 5.产品特性(根据官方 ...

  10. 传感器实验——DHT11温湿度传感器

    传感器实验--DHT11温湿度传感器 温湿度传感器实验 所选设备 DHT11温湿度模块 传感器原理 接线说明 示例代码:串口显示温湿度 温湿度传感器多以温湿度一体式的探头作为测温元件,将温度和湿度信号 ...

最新文章

  1. java 读取txt,java读取大文件
  2. 红帽Redhat6.4 iso下载地址
  3. C语言1e12怎么识别,求大神帮助词法分析,当输入第一个1.2e12时可以输出,当时输入第二个1.2e12时就不能输出了,万分感谢,还有不能识别x=7*8+9中的+9,...
  4. C++标准库与Java基础类对照表
  5. vscode python环境_在vscode中配置python环境
  6. javaSE_base04_集合框架
  7. cocos2dx linux eclipse,如何将cocos2dx移植到eclipse上?
  8. 禅道类似软件_项目管理软件之争,禅道和JIRA大对比
  9. 【简短】Autodesk宣布支持Windows 7
  10. 3.4.2 - Operators 3.4.3 division and truncation
  11. usaco-3.3-shopping-passed
  12. Node.js入门初体验
  13. 快播CEO认罪,成人网站对技术的要求有多高?
  14. 协同编辑中使用的 OT 算法是什么?
  15. Excel的科学计数法
  16. FlinkWindow和水印
  17. fluent6.3如何制作动画
  18. MySQL技能树学习体验及期望
  19. 三件套都有什么_单人床品三件套都有哪些?
  20. HTTP Host Header Attack:Basic password reset poisoning

热门文章

  1. 线程池使用不当导致系统假死
  2. java假死_分析java进程假死状况
  3. Python自动化测试之PO模式
  4. 龙珠直播php,斗鱼、全民TV、龙珠等直播平台排行榜 看视频直播发展趋势
  5. fild与fmul的问题
  6. LFM信号脉冲压缩仿真
  7. 伍斯特理工学院计算机研究生,伍斯特理工学院计算机工程硕士排名第52(2020年TFE Times排名)...
  8. navicat 解析sql_Navicat使用详解
  9. R语言基础画图/绘图/作图
  10. 计算机打字声音,键盘打字声音在哪设置