一.DHT11介绍

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,采用专用的数字模块采集技术和温湿度传感技术,无需复杂的电路处理。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

每个DHT11传感器在出厂前都对湿度进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。传感器为 4 针单排引脚封装,采用单线制串行接口,应用电路简单方便。

二.DHT11主要参数

(1)湿度分辨率为8bit,测量精度为±4%RH(25℃),最大的测量范围为20~90%RH,响应时间为6-16秒;

(2)温度分辨率为8bit,测量精度为±1℃,测量范围为0~50℃,响应时间为6~30秒。

(3)传感器工作电压范围为3~5V,工作电流为0.5~2.5mA,采样周期为1s(即每次刷新温湿度数据时间至少1s以上)。

三.DHT11电路图

电路如图,Pin1接至VDD,Pin2接至单片机引脚,Pin3悬空,Pin4接至GND。DHT11与MCU的连接线长度短于20米时,DATA引脚需外接5K上拉电阻至VDD。

四.DHT11数据格式

DHT11每读取一次完整的数据为40bit的数据,需要根据以下格式将湿度和温度数据解析出来。

数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据+8bit校验和;

其中,高位在前,低位在后;校验和为前4个字节的累加和的末8位。

五.DHT11操作时序

1.复位时序

总线空闲状态为高电平,MCU引脚设置为输出状态,把引脚设置为低电平,延时19ms,然后延时30us,并将引脚设置为输入状态,等待DHT11响应;从时序看,MCU需要保持引脚低电平必须大于18ms,保证DHT11能检测到起始信号。

根据时序进行编程代码如下:

void dht11_reset(void)
{// DHT11设置为输出模式dht11_gpio_output();DHT11_OUT_L;delay_us(19000);DHT11_OUT_H;delay_us(30);dht11_gpio_input();
}

DHT11接收到MCU的开始信号后, 等待MCU开始信号结束,然后发送80us低电平响应信号。MCU发送开始信号结束后,延时等待20-40us后;然后MCU读取DHT11的响应信号(即DHT11信号置低电平80us后,置为高电平80us);确认DHT11响应信号有效后,MCU进入数据读取模式。

u16 dht11_read_data(u8 buffer[5])
{u16 i = 0;u8 checksum;dht11_reset();if (dht11_scan() == RESET){//MCU读取DHT11响应信号while (dht11_scan() == RESET); while (dht11_scan() == SET);//确认DHT11发出响应信号后,进入数据读取模式for (i = 0; i < 5; i++){buffer[i] = dht11_read_byte();}while (dht11_scan() == RESET);dht11_gpio_output();DHT11_OUT_H;checksum = buffer[0] + buffer[1] + buffer[2] + buffer[3];if (checksum != buffer[4]){// checksum errorreturn 1;}}return 0;
}

MCU读取完5个字节数据后,确认DHT11信号是否置为低电平,如果是,此次数据读取完毕;单片机引脚切换到输出模式,并将引脚电平拉高,释放总线。

完整的数据通信时序如图:

2.读取数据时序

MCU进入数据读取模式时,判断数据位为0或者为1是通过高电平的时间来判断。时序如图:

数据线低电平50us后,拉至高电平,高电平时间为26us-28us内,数据位为0;高电平时间为28us-70us内,数据位为1;

数据位为‘0’

数据位为‘1’

读数据位程序:程序通过在DHT11数据线拉至高电平时,延时40us,判断此时数据位引脚的状态,如果为高电平,则高电平状态在28us-70us内,数据位为‘1’;否则为‘0’。

u16 dht11_read_bit(void)
{while (DHT11_IN == RESET);delay_us(40);if (DHT11_IN == SET){while (DHT11_IN == SET);return 1;}else{return 0;}
}

如需资料可关注公众号-单片机实例设计,发送“DHT11”获取。

DHT11温湿度传感器编程详解相关推荐

  1. DHT11温湿度传感器编程思路以及代码的实现

    在我们刚开始进入单片机的学习中,练习写传感器的时序是必不可少的,其实我比较推荐大家刚开始练习的时候使用DHT11来练习. 推荐的原因: 因为DHT11的时序简单. DHT11是国产的,全中文的参考手册 ...

  2. 温湿度传感器 SHT3x-DIS 详解 FPGA驱动

    芯片简介   SHT3x-DIS 是一款温湿度传感器,I2C 接口,通信速度最高可达 1MHz,测量精度 ±1.5%RH,±0.1∘C\pm 1.5\%\mathrm{RH},\ \pm 0.1^\c ...

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

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

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

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

  5. 传感器自学笔记第八章——DHT11温湿度传感器(附带自己写的很好用的51单片机DHT11代码模板,参数列表只有一个字符数组指针)

    作者:GWD 时间:2019.06.26 DHT11温湿度传感器(单总线类) 一. 学习要点: 1.(重要)单总线类传感器检测高电平while(DHT11 == 1) temp |=0x01;出错,因 ...

  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温湿度传感器(arduino)

    分析DHT11温湿度传感器的时序图 从时序图中我们可以知道,DHT11 刚开始时是高电平,然后需要拉低电平至少18ms(编程时直接取20ms),再拉高电平电平20-40us,然后DHT会有一个80us ...

最新文章

  1. 走进Java 7模块系统
  2. Java进阶06 容器
  3. oracle 提取当天日志,powershell提取日志内容
  4. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看
  5. 关于火狐中使用jquery的animate做动画效果的问题解决
  6. 思科CCIE认证知识点之IPv6地址
  7. C# WPF:初识布局容器
  8. 自定义控件_VIewPager显示多个Item
  9. 给窗口设置系统级或窗口级的热键
  10. 免费算力提供!这个含YOLOv3算法讲解的深度学习课程来了
  11. 东北师范计算机研究生课表,东北师范大学全日制工程硕士(计算机技术)专业学位研究生实践教学管理办法...
  12. 高德地图时间和实际差多少_带着“高德地图”去工作
  13. The following types may not be used as proxies 异常处理办法
  14. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day7
  15. 样点自适应补偿(SAO)技术
  16. GAN的评价指标IS和FID
  17. 日紫白飞星算法_年月日时紫白飞星法——紫白(入中)计算办法
  18. 插值算法之:拉格朗日插值
  19. VS code 左侧菜单栏不见了/只能打开一个编辑页面
  20. Block块设备层Plug和Unplug机制

热门文章

  1. 超级电容的容值计算(转)
  2. 一对一培训机构如何通过系统来完成课时记录?
  3. Java操作redis设置第二天凌晨过期
  4. Jmetal Problem和Problem Set的变量范围
  5. 网易服务器维护,网易15日未停服维护,所有服务器正常运行中
  6. Centos7+MySQL8(基于tar.gz压缩文件安装)
  7. 全天50个亮星排行表
  8. 个人资源分享【建议收藏,持续更新】
  9. dell台式机进入安全模式_戴尔电脑如何进入安全模式
  10. 广州高新技术企业补贴政策汇总及认定标准是什么,补贴20-100万