51单片机蓝牙与手机双向通信—温湿度

本文介绍了如何使用HC-05蓝牙模块与51单片机进行串口通信,实现温湿度数据传输,并通过手机端修改阈值。文章详细提供了接线图、代码示例和手机端配置注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、功能概述

蓝牙模块(HC-05)与51单片机进行串口通信,实现单片机将采集到的温湿度发送至手机端蓝牙串口(SPP),手机端可以修改温湿度的阈值。

二、接线图

三、代码

1、串口发送函数

void sendDate(unsigned char date)
{
    SBUF=date;		  
    while(TI==0)
			;      
    TI=0;			 

}   //发送函数

2、接收函数

//采用中断方式接收手机端的数据
void Uart_Handler() interrupt 4
{
	if(RI)
	{
			RI = 0;
			S = SBUF;
		switch(S)
		{
			case 1:T_MAX++;break;   //温度阈值上调
			case 2:T_MAX--;break;   //温度阈值下调
			case 3:R_MAX++;break;   //湿度阈值上调
			case 4:R_MAX--;break;   //湿度阈值下调	
	    }	
	if(TI);
	}
}

3、主函数

void main()	
{
	OLED_Init();			
	OLED_ColorTurn(0);	//0正常显示,1反色显示	
	OLED_DisplayTurn(0);//0正常显示,1屏幕反转显示	
	OLED_Clear();
	SCON = 0x50; 
	TMOD &= 0xF0;
	TMOD |= 0x20;
	TH1 = 0xFD;
	TL1 = 0xFD;
	TR1 = 1;
	EA = 1;
	ES = 1;     //配置串口中断

	while(1) 
	{					 
		DHT11_receive();
		
		OLED_ShowChinese(80,0,4,16);//OLED显示中文 “阈”
    OLED_ShowChinese(96,0,5,16);//OLED显示中文 “值”
		OLED_ShowNum(98,2,T_MAX,2,16);//OLED显示温度阈值
		OLED_ShowNum(98,4,R_MAX,2,16);//OLED显示湿度阈值

		OLED_ShowChinese(40,0,6,16);//OLED显示中文 “实”
    OLED_ShowChinese(56,0,7,16);//OLED显示中文 “时”
		
		OLED_ShowChinese(0,2,0,16);//OLED显示中文 “温”
    OLED_ShowChinese(18,2,1,16);//OLED显示中文 “度”
		OLED_ShowNum(50,2,TH,2,16);//OLED显示温度数字
		
    OLED_ShowChinese(0,4,2,16);//OLED显示中文 “湿”
    OLED_ShowChinese(18,4,3,16);//OLED显示中文 “度”
		OLED_ShowNum(50,4,RH,2,16);//OLED显示湿度数字
		
	  for(i=0;i<5;i++)
		{
			sendDate(Tab[i]);
		}
		sendDate(TH/10+0x30);   //对数据进行转换
		sendDate(TH%10+0x30);
		
		
		for(j=0;j<5;j++)
		{
			sendDate(Tabb[j]);
		}
		sendDate(RH/10+0x30);   
		sendDate(RH%10+0x30);
	}	  	
}

四、手机端配置

五、问题总结

  1. 蓝牙模块默认情况下是从机模式,手机端(SPP)才可以配对并连接蓝牙模块。(参考51单片机蓝牙与手机双向通信-蓝牙配置)
  2. 在键盘面板点击编辑模式才能修改键盘参数
  3. 手机端配置时注意勾选十六进制 

 六、资源

1、完整代码和手机app下载路径:

百度网盘 请输入提取码

提取码:0011

2、视频展示

51单片机蓝牙通信_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值