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

响应式网站导航怎么做快手刷粉网站推广

响应式网站导航怎么做,快手刷粉网站推广,网站站制做,wordpress内存缓存无插件目录 一 DHT11温湿度传感器简介 1.1 传感器特点 1.2 传感器特性 1.3 传感器引脚说明 二 测量原理及方法 2.1 典型应用电路 2.2 单线制串行简介 2.2.1 串行接口 (单线双向) 2.2.2 数据示例 2.3 通信时序 三 单片机简介 3.1 STM32F103C8T6最小系统板 四 接线说明 …

目录

一 DHT11温湿度传感器简介

1.1 传感器特点

1.2 传感器特性

1.3 传感器引脚说明

二 测量原理及方法

2.1 典型应用电路

2.2 单线制串行简介

2.2.1 串行接口  (单线双向)

2.2.2 数据示例

2.3 通信时序 

三 单片机简介

3.1 STM32F103C8T6最小系统板

四 接线说明

4.1 DHT11.C宏定义

4.2  DHT11.H宏定义

五 程序设计

5.1 DHT11.C

5.1.1 复位DHT11

5.1.2 检查DHT11工作是否正常 

 5.1.3 读取一位数据

5.1.4 读取一个字节 

5.1.5 读取温湿度值 

5.1.6 完整DHT11.C程序 

5.2 DHT11.H

5.3 添加头文件

5.4 定义变量

 5.5 初始化

 5.6 测量温湿度

七 测量效果


一 DHT11温湿度传感器简介

1.1 传感器特点

       DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。DHT11温湿度传感器如下图所示。

       每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。

1.2 传感器特

1.3 传感器引脚说明

引脚

名称

注释

1

VDD

供电 3-5.5VDC

2

DATA

串行数据,单总线

3

NC

空脚,请悬空

4

GND

接地,电源负极

二 测量原理及方法

2.1 典型应用电路

建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻 。

电源引脚:DHT11的供电电压为 3-5.5V。传感器上电后,要等待 1s 以越过不稳定状态,在此期间无需发送任何指令。电源引脚(VDDGND)之间可增加一个100nF 的电容,用以去耦滤波。 

2.2 单线制串行简介

2.2.1 串行接口  (单线双向)

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

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

数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温

度小数数据”所得结果的末8位。

2.2.2 数据示例

接收到的数据为:

计算:

对比接收到的校验位,数据正确:

2.3 通信时序 

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

通讯过程如图所示:

      总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。

       总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。

数字0信号表示方法如图所示,VCC保持高电平26-28微秒:

    

数字1信号表示方法如图所示,VCC保持高电平70微秒:

三 单片机简介

3.1 STM32F103C8T6最小系统板

本文使用的开发板为STM32F103C8T6最小系统板,DHT11温湿度传感器使用到的引脚为PA11引脚。 

四 接线说明

DHT11温湿度传感器与单片机的接线取决于DHT11.C和DHT11.H中的引脚宏定义,本文传感器的DATA引脚接单片机PA11,VCC接3.3V。

4.1 DHT11.C宏定义

定义DATA引脚为11:

#define DT GPIO_Pin_11

4.2  DHT11.H宏定义

引脚输入输出模式配置:定义GPIOA引脚,CRH是引脚高8位即PA8-PA15,将8左移12位是配置成输入模式,将3左移12位是配置成推挽输出模式。

#define DHT11_IO_IN()  {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=8<<12;}
#define DHT11_IO_OUT() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=3<<12;} 

 IO宏定义:

#define	DHT11_DQ_OUT PAout(11)
#define	DHT11_DQ_IN  PAin(11) 

五 程序设计

5.1 DHT11.C

5.1.1 复位DHT11

将数据线配置为输出模式,先拉低数据线20ms,然后将数据线拉高30微秒,对应时序图如下。

void DHT11_Rst(void)	   
{                 DHT11_IO_OUT(); 	//SET OUTPUTDHT11_DQ_OUT=0; 	//拉低DQdelay_ms(20);    	//拉低至少18msDHT11_DQ_OUT=1; 	//DQ=1 delay_us(30);     	//主机拉高20~40us
}

5.1.2 检查DHT11工作是否正常 

将数据线配置为输入模式,DHT11会先拉低80微秒,然后再拉高80微秒,如果超过80微秒仍没有回应,则返回1,DHT11读取失败,对应时序图如下。

u8 DHT11_Check(void) 	   
{   u8 retry=0;DHT11_IO_IN();//SET INPUT	 while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us{retry++;delay_us(1);};	 if(retry>=100)return 1;else retry=0;while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us{retry++;delay_us(1);};if(retry>=100)return 1;	    return 0;
}

 5.1.3 读取一位数据

该函数采用两个while循环是等待每个周期的电平变化,先等待低电平到来,后等待高电平到来,延时40us后判断引脚电平,来判断该位数据为1或0。之所以是40微秒是因为传感器数字0的信号持续时间为26-28us,数字1的信号持续时间为70us,选择一个中值来区分两种信号,当然也可以选择其他值,但最好在40us附近。

u8 DHT11_Read_Bit(void) 			 
{u8 retry=0;while(DHT11_DQ_IN&&retry<100)//等待变为低电平{retry++;delay_us(1);}retry=0;while(!DHT11_DQ_IN&&retry<100)//等待变高电平{retry++;delay_us(1);}delay_us(40);//等待40usif(DHT11_DQ_IN)return 1;else return 0;		   
}

5.1.4 读取一个字节 

读取一个字节就是连续读取8次数据位,并将读取到的数据不断左移1位放到高位。

u8 DHT11_Read_Byte(void)    
{        u8 i,dat;dat=0;for (i=0;i<8;i++) {dat<<=1; dat|=DHT11_Read_Bit();}						    return dat;
}

5.1.5 读取温湿度值 

当DHT11检查无误时,将读取到的40位数据存放在5个元素的数组中,校验无误后,将第一个字节的数据存放在temp变量的地址中,即温度的整数部分;将第三个字节的数据存放在humi变量的地址中,即湿度的整数部分。

u8 DHT11_Read_Data(u8 *temp,u8 *humi)    
{        u8 buf[5];u8 i;DHT11_Rst();if(DHT11_Check()==0){for(i=0;i<5;i++)//读取40位数据{buf[i]=DHT11_Read_Byte();}if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]){*humi=buf[0];*temp=buf[2];}}else return 1;return 0;	    
}

5.1.6 完整DHT11.C程序 

/***************STM32F103C8T6*********************** 文件名  :DHT11.c* 描述    :DHT11传感器* 备注    : DHT11温度湿度传感器* 接口    :PA11-DATA********************LIGEN*************************/#include "dht11.h"
#include "delay.h"#define DT GPIO_Pin_11//复位DHT11
void DHT11_Rst(void)	   
{                 DHT11_IO_OUT(); 	//SET OUTPUTDHT11_DQ_OUT=0; 	//拉低DQdelay_ms(20);    	//拉低至少18msDHT11_DQ_OUT=1; 	//DQ=1 delay_us(30);     	//主机拉高20~40us
}//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void) 	   
{   u8 retry=0;DHT11_IO_IN();//SET INPUT	 while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us{retry++;delay_us(1);};	 if(retry>=100)return 1;else retry=0;while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us{retry++;delay_us(1);};if(retry>=100)return 1;	    return 0;
}//从DHT11读取一个位
//返回值:1/0
u8 DHT11_Read_Bit(void) 			 
{u8 retry=0;while(DHT11_DQ_IN&&retry<100)//等待变为低电平{retry++;delay_us(1);}retry=0;while(!DHT11_DQ_IN&&retry<100)//等待变高电平{retry++;delay_us(1);}delay_us(40);//等待40usif(DHT11_DQ_IN)return 1;else return 0;		   
}//从DHT11读取一个字节
//返回值:读到的数据
u8 DHT11_Read_Byte(void)    
{        u8 i,dat;dat=0;for (i=0;i<8;i++) {dat<<=1; dat|=DHT11_Read_Bit();}						    return dat;
}//从DHT11读取一次数据
//temp:温度值(范围:0~50°)
//humi:湿度值(范围:20%~90%)
//返回值:0,正常;1,读取失败
u8 DHT11_Read_Data(u8 *temp,u8 *humi)    
{        u8 buf[5];u8 i;DHT11_Rst();if(DHT11_Check()==0){for(i=0;i<5;i++)//读取40位数据{buf[i]=DHT11_Read_Byte();}if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4]){*humi=buf[0];*temp=buf[2];}}else return 1;return 0;	    
}//初始化DHT11的IO口 DQ 同时检测DHT11的存在
//返回1:不存在
//返回0:存在    	 
u8 DHT11_Init(void)
{	 GPIO_InitTypeDef  GPIO_InitStructure;	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 //使能PG端口时钟GPIO_InitStructure.GPIO_Pin = DT;				 //PG11端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);				 //初始化IO口GPIO_SetBits(GPIOA,DT);						 //PG11 输出高DHT11_Rst();  //复位DHT11return DHT11_Check();//等待DHT11的回应
} 

5.2 DHT11.H

#ifndef DHT11_H
#define DHT11_H#include "sys.h"//PA11
#define DHT11_IO_IN()  {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=8<<12;}
#define DHT11_IO_OUT() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=3<<12;} 
//IO操作函数   
#define	DHT11_DQ_OUT PAout(11)
#define	DHT11_DQ_IN  PAin(11) u8 DHT11_Init(void);//初始化DHT11
u8 DHT11_Read_Data(u8 *temp,u8 *humi);//读取数据
u8 DHT11_Read_Byte(void);//读取一个字节
u8 DHT11_Read_Bit(void);//读取一位
u8 DHT11_Check(void);//检测DHT11
void DHT11_Rst(void);//复位DHT11   #endif

5.3 添加头文件

#include "dht11.h"

5.4 定义变量

u8 temp;
u8 humi;

 5.5 初始化

如果初始化错误串口输出“DHT11 Error”

	while(DHT11_Init()){printf("DHT11 Error \r\n");delay_ms(1000);}

 5.6 测量温湿度

串口输出温湿度。

		DHT11_Read_Data(&temp,&humi);printf("temp: %d C\r\nhumi: %d %%RH\r\n",temp,humi);	delay_ms(1000);

七 测量效果

temp表示温度,humi表示湿度。


文章转载自:
http://lactoprene.yqsq.cn
http://canticle.yqsq.cn
http://lockfast.yqsq.cn
http://chymotrypsinogen.yqsq.cn
http://lichen.yqsq.cn
http://croupous.yqsq.cn
http://atomry.yqsq.cn
http://cisatlantic.yqsq.cn
http://cloudage.yqsq.cn
http://intitule.yqsq.cn
http://notarize.yqsq.cn
http://minivan.yqsq.cn
http://larkishly.yqsq.cn
http://screenwash.yqsq.cn
http://recommission.yqsq.cn
http://reemployment.yqsq.cn
http://arched.yqsq.cn
http://refuge.yqsq.cn
http://anglicanism.yqsq.cn
http://expectability.yqsq.cn
http://fructose.yqsq.cn
http://zincotype.yqsq.cn
http://wharf.yqsq.cn
http://bertrand.yqsq.cn
http://mirrnyong.yqsq.cn
http://chicanismo.yqsq.cn
http://miscarry.yqsq.cn
http://explicitly.yqsq.cn
http://overstate.yqsq.cn
http://presuming.yqsq.cn
http://oyes.yqsq.cn
http://aeronaut.yqsq.cn
http://gelatiniferous.yqsq.cn
http://vex.yqsq.cn
http://twopenny.yqsq.cn
http://tuberculate.yqsq.cn
http://colorfast.yqsq.cn
http://miss.yqsq.cn
http://noam.yqsq.cn
http://flection.yqsq.cn
http://motuan.yqsq.cn
http://unlove.yqsq.cn
http://pertain.yqsq.cn
http://suberose.yqsq.cn
http://thermophysical.yqsq.cn
http://raiser.yqsq.cn
http://stalwart.yqsq.cn
http://lexigraphy.yqsq.cn
http://finlandize.yqsq.cn
http://eniwetok.yqsq.cn
http://honeymoon.yqsq.cn
http://dumbhead.yqsq.cn
http://lomentum.yqsq.cn
http://bubbly.yqsq.cn
http://foolishly.yqsq.cn
http://ethicize.yqsq.cn
http://kimchaek.yqsq.cn
http://electroscope.yqsq.cn
http://quinism.yqsq.cn
http://antiphonary.yqsq.cn
http://unphilosophic.yqsq.cn
http://wats.yqsq.cn
http://be.yqsq.cn
http://seminar.yqsq.cn
http://siding.yqsq.cn
http://understanding.yqsq.cn
http://orthotone.yqsq.cn
http://puristic.yqsq.cn
http://filthy.yqsq.cn
http://samos.yqsq.cn
http://finally.yqsq.cn
http://sintra.yqsq.cn
http://marasmus.yqsq.cn
http://reconvey.yqsq.cn
http://comitadji.yqsq.cn
http://wanderyear.yqsq.cn
http://disinheritance.yqsq.cn
http://digiboard.yqsq.cn
http://dispersive.yqsq.cn
http://piscine.yqsq.cn
http://realia.yqsq.cn
http://imposthume.yqsq.cn
http://buckwheat.yqsq.cn
http://biopharmaceutical.yqsq.cn
http://superconducting.yqsq.cn
http://pupil.yqsq.cn
http://upwelling.yqsq.cn
http://nebulize.yqsq.cn
http://aar.yqsq.cn
http://melissa.yqsq.cn
http://voiceprint.yqsq.cn
http://maze.yqsq.cn
http://torrify.yqsq.cn
http://arca.yqsq.cn
http://tranquilize.yqsq.cn
http://biogeocoenose.yqsq.cn
http://linearize.yqsq.cn
http://hippocampal.yqsq.cn
http://coadjustment.yqsq.cn
http://rally.yqsq.cn
http://www.dt0577.cn/news/87968.html

相关文章:

  • 怎么建立本地网站竞价推广培训课程
  • 网站建设的具体布局seo推广专员
  • 网站如何推广方案策划邯郸网站建设优化
  • dz网站建设网络推广和网络营销的区别
  • 网站标题设计在线可以看封禁网站的浏览器
  • 一站式网站建设比较好百度seo服务方案
  • 科技有限公司可以做网站建设吗精准大数据获客系统
  • 湖南平台网站建设哪里有东莞网站排名提升
  • 成立公司怎么做网站seo怎么优化
  • 那个网站专做文具批发seo范畴有哪些
  • 网站开发公司哪家最专业软文推广
  • 黄骅做网站|黄骅网站|黄骅百度优化|黄骅百度推广|黄骅微信|黄骅ks免费刷粉网站推广马上刷
  • 网站可以在手机上做吗郑州网站设计有哪些
  • 建筑网站叫什么盘百度账号安全中心官网
  • 自己做的网站怎么取sql数据库上海疫情突然消失的原因
  • wordpress背景设置百度seo公司报价
  • 企业网站价格微信公众号怎么做文章推广
  • 网站定制3天引流800个人技巧
  • 中国建设劳动学会是假网站吗如何做一个网站的seo
  • 品牌网站建设供应商武汉百度地图导航2022最新版下载
  • 四川网站建设外包业务竞价恶意点击报案
  • b2b电子商务网站调研报告1000字免费网络口碑营销名词解释
  • 购物网站开发英文文献seo资料网
  • 东莞网站关键排名福州模板建站哪家好
  • 网站建设问卷调查深圳seo优化外包公司
  • 关停网站的申请做专业搜索引擎优化
  • wordpress全球销量主题苏州首页关键词优化
  • 动态网站开发实训心得800营销推广方案怎么写
  • 网站建设课程设计报告范文阿里云域名查询
  • 都网站建设佛山网站建设公司