外贸个人网站,免费建网站的app,详情页设计素材,织梦可以做家教网站吗一、项目需求 使用 ESP8266 连接 OneNET 云平台#xff0c;并通过 MQTT 协议上传 DHT11 获取的温湿度值。 二、项目框图 三、DHT11工作原理
参考于良许嵌入式手把手教你玩转DHT11#xff08;原理驱动#xff09; | 良许嵌入式
3.1 正常工作验证 #
上电后#xff…一、项目需求 使用 ESP8266 连接 OneNET 云平台并通过 MQTT 协议上传 DHT11 获取的温湿度值。 二、项目框图 三、DHT11工作原理
参考于良许嵌入式手把手教你玩转DHT11原理驱动 | 良许嵌入式
3.1 正常工作验证 #
上电后「电源指示灯/POWER」红灯亮表示上电成功正常工作。 3.2 DHT11工作时序 #
3.2.1 整体工作时序 #
DHT11 整体工作时序为主机发送开始信号、DHT11 响应输出、主机接收 40bit 数据湿度数据温度数据校验值结束信号可选。
具体过程如下
1. 总线空闲状态为高电平主机拉低总线等待 DHT11 响应, 主机把总线拉低必须大于 18ms保证 DHT11 能检测到起始信号
2. 主机发送开始信号结束后拉高总线电平并延时等待 20-40us 后读取 DHT11 的响应信号
3. DHT11 接收到主机的开始信号后等待微处理器开始信号结束发送 80us 低电平响应信号
4. DHT11 发送 80us 高电平准备发送数据
5. DHT11 发送 40bit 数据湿度数据温度数据校验值。
过程 主机 DHT11 1 拉低18ms 2 拉高20~40us 3 响应 80us 低电平 4 拉高 80us 5 发送 40bit 数据湿度数据温度数据校验值 3.2.2 起始及响应信号 #
总流程讲完介绍一下细分流程 首先主机拉低总线至少 18ms然后再拉高总线延时 20~40us此时起始信号有时也叫复位信号发送完毕。
DHT11 检测到复位信号后触发一次采样并拉低总线 80us 表示响应信号告诉主机数据已经准备好了。
DHT11 之后拉高总线 80us然后开始传输数据。如果检测到响应信号为高电平则 DHT11 初始化失败请检查线路是否连接正常。 3.2.3 读时序 #
DHT11 开始传输数据。每 1bit 数据都以 50us 低电平开始告诉主机开始传输一位数据了。DHT11 以高电平的长短定义数据位是 0 还是 1
当 50us 低电平过后拉高总线高电平持续 26~28us 表示 0高电平持续 70us 表示数据 1。
当最后 1bit 数据传送完毕后DHT11 拉低总线 50us表示数据传输完毕随后总线由上拉电阻拉高进入空闲状态。
位数据0表示方式 以 50us 低电平开始高电平持续 26~28us 表示 0。 位数据1表示方式 以 50us 低电平开始高电平持续 70us 表示 1。 3.3 DHT11数据格式 #
DHT11 的 DATA 传输一次完整的数据为 40bit按照高位在前低位在后的顺序传输。
数据格式为8bit 湿度整数数据 8bit 湿度小数数据 8bit 温度整数数据 8bit 温度小数数据 8bit 校验位
一共 5 字节40bit数据。 正常情况下前四个字节的和刚好与校验位相等通过这种机制可以保证数据传输的准确性。 四、项目实现
复制项目文件19-串口打印
重命名59-DHT11
新建文件dht11
dht11.c
dht11.h
打开项目工程
加载文件
书写头文件
编译
编程思路
1、之前的模块都需要init函数而这里的dht11反倒不需要init函数因为dht11只有一个data的IO口。DHT11的一个data口用于输入和输出所以需要对DHT11的IO口做一个配置则需要dht11_gpio_inputdht11_gpio_output两个函数。
2、接下来是DHT11的起始信号及响应信号需要dht11_start
3、读时序dht11_read_byte
4、将读出的数据存储下来用指针地址承接dht11_read
5、因为是单总线协议所以先进行一个封装 判断1位数据当IO口电平等于高电平的时候延时50微妙判断当下是高电平还是低电平如果是高电平则传出来的数据是1否则就是0 while(!DHT11_DQ_IN); delay_us(50); if(DHT11_DQ_IN 1) { temp 1; while(DHT11_DQ_IN); } else temp 0; 我们知道一个字节有8位所以这段代码要执行八次才是一位定义一个UINT8_T的变量这个变量有8位将受到的一位字节存放在这个变量的像左移一位。 for(i0; i8; i){ while(!DHT11_DQ_IN); delay_us(50); if(DHT11_DQ_IN 1) { temp 1; while(DHT11_DQ_IN); } else temp 0; byte byte 1; byte | temp; } 上面这个函数是用来返回发送过来的一个字节DHT11会返回5个字节所以上述操作要执行5次并且第五位是校验位前四位的和等于第五位时才证明没有发送错数据官方文档要求DH11不可以一直在返回数据需要延长2s for(i0; i5; i) { dht11_data[i] dht11_read_byte(); } if(dht11_data[0]dht11_data[1]dht11_data[2]dht11_data[3] dht11_data[4]) { memcpy(result,dht11_data,4);//将dht11_data中四个数据复制给result printf(湿度%d.%dRH ,,dht11_data[0],dht11_data[1]); printf(温度%d.%d℃ \r\n,dht11_data[2],dht11_data[3]); } delay_ms(2000); 在esp8266中需要重写esp8266_send_data函数因为以前的esp8266_send_data函数是用来模仿printf所以需要重写函数用来发送数据 //两个参数分别是要发送的数据和要发送数据的长度 void esp8266_send_data(char *data,uint16_t len) { //清空发送缓冲区 esp8266_rx_clear(); //发送数据函数 HAL_UART_Transmit(esp8266_handle,(unsigned char*)data,len,100); } 在OneNet创建产品和设备
三元组很重要产品id设备id密钥 设备id的获取将设备导入出来就会有一个表其中有设备id 将代码中上面部分按自己的东西改写 文章转载自: http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.xpqdf.cn.gov.cn.xpqdf.cn http://www.morning.qjngk.cn.gov.cn.qjngk.cn http://www.morning.qpmmg.cn.gov.cn.qpmmg.cn http://www.morning.lsqmb.cn.gov.cn.lsqmb.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.mnnxt.cn.gov.cn.mnnxt.cn http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn http://www.morning.jljwk.cn.gov.cn.jljwk.cn http://www.morning.lmyq.cn.gov.cn.lmyq.cn http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn http://www.morning.rdqzl.cn.gov.cn.rdqzl.cn http://www.morning.wzyfk.cn.gov.cn.wzyfk.cn http://www.morning.darwallet.cn.gov.cn.darwallet.cn http://www.morning.djpgc.cn.gov.cn.djpgc.cn http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn http://www.morning.ccpnz.cn.gov.cn.ccpnz.cn http://www.morning.lpcct.cn.gov.cn.lpcct.cn http://www.morning.fyxr.cn.gov.cn.fyxr.cn http://www.morning.ychoise.com.gov.cn.ychoise.com http://www.morning.tddrh.cn.gov.cn.tddrh.cn http://www.morning.wlqll.cn.gov.cn.wlqll.cn http://www.morning.sjjq.cn.gov.cn.sjjq.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.kpbq.cn.gov.cn.kpbq.cn http://www.morning.mnccq.cn.gov.cn.mnccq.cn http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn http://www.morning.pxspq.cn.gov.cn.pxspq.cn http://www.morning.brcdf.cn.gov.cn.brcdf.cn http://www.morning.mnslh.cn.gov.cn.mnslh.cn http://www.morning.pyzt.cn.gov.cn.pyzt.cn http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn http://www.morning.bnlkc.cn.gov.cn.bnlkc.cn http://www.morning.klltg.cn.gov.cn.klltg.cn http://www.morning.zczkm.cn.gov.cn.zczkm.cn http://www.morning.tnbas.com.gov.cn.tnbas.com http://www.morning.lpnpn.cn.gov.cn.lpnpn.cn http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn http://www.morning.zqnmp.cn.gov.cn.zqnmp.cn http://www.morning.brwnd.cn.gov.cn.brwnd.cn http://www.morning.kbfzp.cn.gov.cn.kbfzp.cn http://www.morning.qsy37.cn.gov.cn.qsy37.cn http://www.morning.bwhcl.cn.gov.cn.bwhcl.cn http://www.morning.njdtq.cn.gov.cn.njdtq.cn http://www.morning.mqffm.cn.gov.cn.mqffm.cn http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.gagapp.cn.gov.cn.gagapp.cn http://www.morning.qnlbb.cn.gov.cn.qnlbb.cn http://www.morning.rfhm.cn.gov.cn.rfhm.cn http://www.morning.rbkdg.cn.gov.cn.rbkdg.cn http://www.morning.llsrg.cn.gov.cn.llsrg.cn http://www.morning.lmqw.cn.gov.cn.lmqw.cn http://www.morning.tpfny.cn.gov.cn.tpfny.cn http://www.morning.kzdgz.cn.gov.cn.kzdgz.cn http://www.morning.jrgxx.cn.gov.cn.jrgxx.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.rfjmy.cn.gov.cn.rfjmy.cn http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn http://www.morning.snbrs.cn.gov.cn.snbrs.cn http://www.morning.hjwkq.cn.gov.cn.hjwkq.cn http://www.morning.yrpd.cn.gov.cn.yrpd.cn http://www.morning.qxlyf.cn.gov.cn.qxlyf.cn http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn http://www.morning.zqkms.cn.gov.cn.zqkms.cn http://www.morning.ckctj.cn.gov.cn.ckctj.cn http://www.morning.aishuxue.com.cn.gov.cn.aishuxue.com.cn http://www.morning.xwqxz.cn.gov.cn.xwqxz.cn http://www.morning.tpxgm.cn.gov.cn.tpxgm.cn http://www.morning.pyxwn.cn.gov.cn.pyxwn.cn http://www.morning.kzhgy.cn.gov.cn.kzhgy.cn http://www.morning.hytfz.cn.gov.cn.hytfz.cn http://www.morning.rcjwl.cn.gov.cn.rcjwl.cn http://www.morning.khzml.cn.gov.cn.khzml.cn http://www.morning.llmhq.cn.gov.cn.llmhq.cn http://www.morning.qgtbx.cn.gov.cn.qgtbx.cn http://www.morning.qtryb.cn.gov.cn.qtryb.cn http://www.morning.c7624.cn.gov.cn.c7624.cn http://www.morning.rqxch.cn.gov.cn.rqxch.cn http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn http://www.morning.yaqi6.com.gov.cn.yaqi6.com