项目介绍:
C51、DHT11、LCD1602、蓝牙模块、继电器、直流电机及扇叶。实时监测温湿度并通过LCD显示和串口蓝牙传输,蓝牙控制风扇开、关和自动温控模式,自动温控模式可以设置需要的温度阈值,达到阈值启动风扇,低于阈值自动关闭。附有源码。
c51蓝牙温湿度监测系统
目录
一 DHT11温湿度传感器
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医疗;自动控制


特点:
相对湿度和温度测量
全部校准,数字输出
长期稳定性
超长的信号传输距离:20米
超低能耗:休眠
4 引脚安装:可以买封装好的
完全互换 : 直接出结果,不用转化

DHT11的供电电压为3-5.5V。传感器上电后,要等待1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。
数据传送逻辑:
从一根数据线DATA,C51发送序列指令给DHT11模块,模块一次完整的数据传输为40bit,高位先
出
数据格式:
8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和
通讯过程时序图:

检测模块是否存在
根据如下时序图,做通信初始化,并检测模块是否存在,功能是否正常

时序逻辑分析:从左到右
1 先拉高
2 拉低至少18ms
3 拉高后,持续20~40微秒后模块会自动拉低,输出响应信号
4 模块自动拉低的响应信号有80微秒
检测:结合3和4中时间取交集,判断出第3步拉高后,只要在40~100微秒内为低电平,模块存在。
代码:模块通电要先稳定一秒。
Delay1000ms();
DHT = 1;
DHT = 0;
Delay30ms();
DHT = 1;
Delay70us();
if(!DHT) LED = 0;
LED被点亮,检测到模块存在。
二 温湿度通过串口传给PC
关于串口知识参考本人之前的博客
检测到存在后,会再主动拉高80us然后主动拉低,开始传送数据
卡开始传输数据的点:
检测到存在后,while低,while高,开始接收数据
用户MCU发送一次开始信号后,DHT11从低功耗模式 转换到高速模式, 等待主机开始信号结束后,DHT11发送响应信号, 送出40bit的数据, 并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集. 采集数据后转换到低速模式 。

DHT11传输0的时序分析

DHT11传输1的时序分析

代码:
获得数据:因为温度整数、小数,湿度整数、小数,校验和,共5段数据,每段8bit
输出数据:串口发送给电脑,参考本人C51串口文章内代码
参照ANSI码表,低位高位分别+0x30
sfr AUXR = 0x8E;
char datas[5];
//串口部分代码
void UartInit(void) //9600bps@11.0592MHz
{
AUXR = 0x01;
SCON = 0x50; //配置串口工作方式1,REN使能接收
TMOD &= 0x0F;
TMOD |= 0x20;//定时器1工作方式位8位自动重装
TH1 = 0xFD;
TL1 = 0xFD;//9600波特率的初值
TR1 = 1;//启动定时器
EA = 1;//开启总中断
ES = 1;//开启串口中断
}
void sendByte(char data_msg)
{
SBUF = data_msg;
while(!T

该系统使用C51微控制器、DHT11传感器、LCD1602显示器和蓝牙模块,实时监测并显示环境温湿度,同时通过蓝牙控制风扇的开闭。代码经过分文件优化,实现了串口通信和LCD显示。此外,系统支持自动温控模式,当温度超过预设阈值时,风扇自动开启,低于阈值则关闭。
最低0.47元/天 解锁文章
1223

被折叠的 条评论
为什么被折叠?



