STC89C52单片机利用DHT11温湿度模块以及HC-08蓝牙模块实现测量温湿度

本文介绍了使用STC89C52单片机配合DHT11温湿度模块和HC-08蓝牙模块来测量并无线传输环境温湿度的项目。详细讲述了DHT11的工作原理、数据传输时序以及HC-08的使用方法,并给出了关键代码实现。
摘要由CSDN通过智能技术生成


前言

下面将介绍如何利用STC89C52单片机和DHT11温湿度模块以及HC-08蓝牙模块实现测量温湿度。以及各模块的使用方法。

一、项目要求

利用DHT11温湿度模块测量温湿度,利用HC-08蓝牙模块将数据传到手机上。

二、各模块简介

1.DHT11温湿度模块简介

1.1DHT11温湿度模块外观

DHT11温湿度模块外观

1.2DHT11温湿度模块使用方法简介

1.2.1DHT11温湿度模块工作的过程

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

1.2.2DHT11模块DATA引脚上40bit数据说明

8bit湿度整数数据+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据
+8bit校验

1.2.3DHT11模块工作的时序图

说明:
1.DATA引脚拉高
2.DATA引脚拉低(至少18ms)
3.DATA引脚拉高(20~40us)
4.如果在后面的80us内检测到DATA引脚被拉低,则说明模块存在
5.再检测DATA引脚是否被拉高
6.再检测DATA引脚,看其是否被拉低,如果拉低,则准备开始传输数据
DHT11模块工作时序图

1.2.4DHT11模块传输数据的时序图

模块给单片机传输的数据只能是0和1。我们可以通过0,1时序图的不同从而判断模块给单片机传输的数据是0还是1.
0的时序图
说明·:
1.不断检测DATA引脚是否被拉高
2.检测到被拉高后,进行延时35us
3.检测DATA引脚是否为低电平,如果是,则传输的数据为0,否则,为1。如果为1,则需要进行等待至引脚为低电平
数据0的时序图
1的时序图
数据1的时序图

2.HC-08蓝牙模块简介

2.1HC-08蓝牙模块外观

HC--8蓝牙模块

2.2HC-08蓝牙模块使用方法简介

1.使用相关的AT指令,更改模块的波特率等指标.
2.将蓝牙模块RXD与单片机的TXD相连,TXD与单片机的RXD相连.

2.3HC-08蓝牙模块的AT指令表及部分说明

说明:
1.在模块未连线状态下可以进行AT指令状态操作,连线后进入串口透传模式
2.模块启动大约需要150ms,所以最好在模块上电200ms后进行AT指令操作
3。AT指令操作成功会一律返回OK(有些指令此外)
蓝牙模块指令集

三、项目实现的代码

1.HC-08蓝牙模块传输数据部分代码

1.1串口初始化代码

void Uart_Init()//串口中断初始化函数
{
   
	AUXR = 0X01;//隔离电离辐射
	SCON = 0X50;//串口工作方式1,允许接收
	TMOD &= 0X0F;
	TMOD |= 0X20;//定时器1工作方式2
	TH1  = 0XFD;
	TL1  = 0XFD;//波特率为9600
	TR1  = 1;//定时器1开始计时
}

1.1数据传输代码

void Send_Byte(char cmdata)//发送一个By
  • 8
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值