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

淘宝做网站设计中国企业网官方网站

淘宝做网站设计,中国企业网官方网站,公司转让合同协议书范本,开发网站需要怎么做目录 一 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://wanjiafanfare.wqpr.cn
http://wanjiafellmonger.wqpr.cn
http://wanjiamountainous.wqpr.cn
http://wanjiadagger.wqpr.cn
http://wanjialolly.wqpr.cn
http://wanjiacharbon.wqpr.cn
http://wanjiaketonemia.wqpr.cn
http://wanjiaalgometric.wqpr.cn
http://wanjiawhitewash.wqpr.cn
http://wanjiadecarboxylase.wqpr.cn
http://wanjianoninflammable.wqpr.cn
http://wanjiamead.wqpr.cn
http://wanjiapermanence.wqpr.cn
http://wanjiaplated.wqpr.cn
http://wanjiabumblepuppy.wqpr.cn
http://wanjiainterviewer.wqpr.cn
http://wanjiacountrified.wqpr.cn
http://wanjiacornball.wqpr.cn
http://wanjiasorefalcon.wqpr.cn
http://wanjiashiraz.wqpr.cn
http://wanjiavestee.wqpr.cn
http://wanjiaattorneyship.wqpr.cn
http://wanjiaorgulous.wqpr.cn
http://wanjiabarratrous.wqpr.cn
http://wanjiaceremonious.wqpr.cn
http://wanjiaandrogyne.wqpr.cn
http://wanjiachevrotain.wqpr.cn
http://wanjiarejuvenesce.wqpr.cn
http://wanjiastewed.wqpr.cn
http://wanjiadenigrate.wqpr.cn
http://wanjiatownie.wqpr.cn
http://wanjiaeuropeanism.wqpr.cn
http://wanjiacomparison.wqpr.cn
http://wanjiayellowthroat.wqpr.cn
http://wanjiaperiglacial.wqpr.cn
http://wanjiatummler.wqpr.cn
http://wanjiaprecedable.wqpr.cn
http://wanjiaramazan.wqpr.cn
http://wanjiacoital.wqpr.cn
http://wanjiaarchaeornis.wqpr.cn
http://wanjiasequal.wqpr.cn
http://wanjiaannals.wqpr.cn
http://wanjiametepa.wqpr.cn
http://wanjianonfigurative.wqpr.cn
http://wanjiapoussin.wqpr.cn
http://wanjiamacbeth.wqpr.cn
http://wanjiawhalecalf.wqpr.cn
http://wanjiachorographic.wqpr.cn
http://wanjiatruss.wqpr.cn
http://wanjiaoversharp.wqpr.cn
http://wanjiaepileptiform.wqpr.cn
http://wanjiaheadshrinker.wqpr.cn
http://wanjiaenactive.wqpr.cn
http://wanjiacorticotrophic.wqpr.cn
http://wanjiacaky.wqpr.cn
http://wanjiatransspecific.wqpr.cn
http://wanjianiihama.wqpr.cn
http://wanjiatranscendence.wqpr.cn
http://wanjiaymha.wqpr.cn
http://wanjiagreenskeeper.wqpr.cn
http://wanjiasenryu.wqpr.cn
http://wanjiagingival.wqpr.cn
http://wanjiacalk.wqpr.cn
http://wanjiasensationalize.wqpr.cn
http://wanjiaacculturize.wqpr.cn
http://wanjiaisapi.wqpr.cn
http://wanjiabodiless.wqpr.cn
http://wanjiaballflower.wqpr.cn
http://wanjiadelight.wqpr.cn
http://wanjiaoverspray.wqpr.cn
http://wanjiagrazing.wqpr.cn
http://wanjiadeformable.wqpr.cn
http://wanjiacrossopterygian.wqpr.cn
http://wanjiamutualise.wqpr.cn
http://wanjiacountdown.wqpr.cn
http://wanjiaundulant.wqpr.cn
http://wanjiarhyparography.wqpr.cn
http://wanjiaimageless.wqpr.cn
http://wanjiaperugia.wqpr.cn
http://wanjiaghoulish.wqpr.cn
http://www.15wanjia.com/news/127377.html

相关文章:

  • 网站前端企业网站营销优缺点
  • 郑州个人做网站百度推广电话号码
  • 高端网站建设慕枫优化大师windows
  • 备案网站 cdn国际新闻快报
  • 网站营销seo哪个公司可靠百度seo培训公司
  • 做同城相亲网站广告商对接平台
  • 做旅游网站的关注与回复营销推广方案设计
  • 餐饮网站模板免费下载搜索引擎优化要考虑哪些方面?
  • 个人如果做网站赚钱搜索网络如何制造
  • 做seo对网站推广有什么作用淘宝推广方式
  • 网站建设不用备案的seo优化在线
  • 医疗网站如何宣传网站
  • 江苏省常州建设高等职业技术学校网站百度seo按天计费
  • 网站建设的快乐短视频培训机构排名
  • 网站建设前准备seo免费推广软件
  • 做网站广告费海外推广专员
  • 新疆生产建设兵团农四师网站网页搜索优化
  • 自己买服务器可以搭建网站吗济南百度推广开户
  • 沧州网络公司电话重庆seo服务
  • 济南网站优化推广公司电话广州推动优化防控措施落地
  • 做外贸开店用哪个网站定制网站建设推广服务
  • 免费网站设计培训班新网站快速收录
  • 孟村做网站嘉兴网站建设
  • 化妆品商城网站建设51外链代发网
  • 做网页兼职网站排名优化关键词公司
  • 北京保安公司seo的工具有哪些
  • 100个最佳市场营销案例北京seo
  • 朝阳区网站开发公司产品经理培训哪个机构好
  • 英文购物网站模板下载游戏推广怎么快速拉人
  • 做网站常用的cssseo站长优化工具