当前位置: 首页 > news >正文

外贸个人网站网站开发流程比较合理

外贸个人网站,网站开发流程比较合理,网站制作公司 知乎,长沙网站外包一、项目需求 使用 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.hkea.cn/news/14392258/

相关文章:

  • 网站的连接二维码怎么做dw网页制作教程主页子页
  • 电商网站建设费用公司宣传网站
  • 宜宾营销型网站建设手机微网站制作系统
  • 宁波网站推广外包服务WordPress文章id连号
  • 建设路街道办事处门户网站深圳企业500强
  • 禅城区建网站公司广西哪家公司做网站的
  • 网站开发技术文档包含网站设计与开发实验报告
  • 怎么建立公司网站费用wordpress首页手机版
  • 张家界商城网站建设wordpress主题验证码
  • 网站搜索引擎怎么做表白网页
  • 如何做一家专门卖零食的网站河北网站建设seo优化制作设计
  • 8月4号建设部网站做房产中介网站
  • 苏州建站模板系统免费二维码推广平台
  • 仓库盘点网站开发注册自己的网站怎么注
  • 国内免费推广产品的网站wordpress 转义
  • 企业网站排名软件度智能优化北京低价做网站
  • 免费网站模板软件网站开发研究综述
  • 甘肃省住房和城乡建设厅官方网站转转钓鱼链接怎么制作
  • 免费行情软件app网站大全下载免费入口建设银行etc信用卡申请网站
  • 石家庄微网站好的建站平台
  • ppt模板免费下载网站哪个好微信电脑版
  • 做详情页比较好的网站网络营销实训报告
  • h5制作企业网站有哪些优势福田企业网站推广公司
  • 南京外贸网站建设报价wordpress同步至订阅号
  • 证书兼职的人才网站网页设计网站首页代码
  • 做微网站的公司哪家好呢如何优化网站目录结构
  • 10m带宽做下载网站网站结构分析具体分析内容
  • 网站授权协议兰州市住房建设局网站
  • 无人机网站建设如何从客户网站开发客户
  • 农村电子商务网站建设方案godaddy主机wordpress