2、微信小程序连接蓝牙和单片机进行串口通信

网上虽然有很多关于微信小程序蓝牙和单片机进行串口通信文章,但是大部分的人 还是有所保留的,有的文章说个一知半解,有的只贴出了部分代码。这对新手来说无疑是雪上加霜,甚至你花很多的时间研究他们的文章结果发现连跑起来都难,会出现一堆的问题。我深知对新手来说其中的不容易,故抽出时间来给新手们来个实战教程。

一、硬件准备

1、低功耗蓝牙透传模块(并不是任何蓝牙模块都能和微信小程序蓝牙连接,微信小程序使用的是低功耗蓝牙,如hc-06以上,本例使用是hc-08,协议版本是4.0)

2、下载代码到本地,并使用微信小程序工具打开,编译通过后点击真机调试(微信小程序不支持在开发工具上调试)

https://gitee.com/duanbochao/ble_connector.git

2、微信小程序连接蓝牙和单片机进行串口通信

 

 3、将蓝牙模块上电并使用微信小程序搜索蓝牙设备

2、微信小程序连接蓝牙和单片机进行串口通信

 

 

 4、上位机收到信息

2、微信小程序连接蓝牙和单片机进行串口通信

 

 5、上面可以看出微信小程序发送数据串口能接收到,由于我没有硬件,下面单片机使用仿真来演示。

2、微信小程序连接蓝牙和单片机进行串口通信

 

 6、发送1表示开灯,0表示关灯,单片机收到数据后返回对应的信息

2、微信小程序连接蓝牙和单片机进行串口通信

2、微信小程序连接蓝牙和单片机进行串口通信

单片机源码如下:

#include <reg51.h>
sbit p1_0 = P1^0;
//初始化串口 (设置串口,开启串口中断)
void init_uart(void)
{
	SCON = 0x50;		        // SCON: 方式 1, 8-bit, 允许接收数据 
	TMOD |= 0x20;               // TMOD: 设置定时器1工作在方式2, 8-bit 自动重装
	TH1 = 0xFD;               // TH1:  初始值为0xFD  波特率:9600 晶振频率:11.0592MHz  
	TL1 = 0xFD;  
	TR1 = 1;                  // TR1:  开启定时器1                         
	EA  = 1;                  //打开总中断
	ES  = 1;                  //打开串口中断
}     
// 发送一个字节数据
void uart_send_byte(unsigned char dat)
{
	SBUF = dat; // 将数据送到发送缓冲寄存器SBUF,一位一位的发送
	while(!TI); // 等待发送完毕 (发送完毕TI硬件置1)
	TI = 0;// 将TI清零,表示可以发送下一字节数据。
}
// 发送字符串
void uart_send_str(unsigned char *s)
{
	while(*s != ‘\0‘)// ‘\0‘:字符串结束标志
	{
		uart_send_byte(*s);// 发送1个字节数据,1个字符占8位,1字节
		s++;// 指向下一个字符
	}
}
 
// 串口中断处理函数 (串口接收到数据,发送数据完毕都可以引起串口中断)
void uart_interrupt(void) interrupt 4 		//也叫串行中断服务程序
{
	unsigned char recv_data;// 用来存放接收到的数据
	unsigned char send_data[] = "I received.\n";// 要发送的信息
	
	if(RI) //接收数据(1字节)完毕,RI会被硬件置1
	{
		RI = 0;            		// 将 接收中断标志位 清零(让串口可以继续接收数据)
		recv_data = SBUF;           	//读取接收到的数据,并存放到data
		
		if(recv_data == ‘1‘)//如果收到的字符是‘0‘,就让灯灭
		{
			p1_0 = 0;//  p1.0引脚低电平,LED灯亮
		}
		else
		{
			p1_0 = 1;// p1.0引脚高电平,LED灯灭
		} 
 
	   uart_send_str(send_data); //收到数据之后,发送字符串"I received."给对方	   
	}
	if(TI)// 发送数据(1字节)完毕
	{
		TI = 0;// 将 发送中断标志位 清零(让串口可以继续发送数据)
	}
} 
 
void main(void)
{
	init_uart();// 初始化串口
	while(1);// 主循环不做任何动作。(死循环)
}

至此,实现了微信小程序蓝牙与单片机通信。

如果还有不明白的可以加我QQ进行咨询。

1842988062  

2、微信小程序连接蓝牙和单片机进行串口通信

上一篇:C# 动态调用http及 webservice服务


下一篇:linux基础---文件与目录(5)