ESP32实现蓝主从机连接-BluetoothSerial蓝库.docx
-
资源ID:97341812
资源大小:13.50KB
全文页数:3页
- 资源格式: DOCX
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
ESP32实现蓝主从机连接-BluetoothSerial蓝库.docx
ESP32实现蓝牙主从机连接-BluetoothSerial蓝牙库一、概述因为需要使用ESP32的蓝牙功能,就看了下ESP32的BluetoothSerial蓝牙库,例程里是ESP32作为从机,使用手机或者其他设备连 接ESP32进行数据传输。但我又需要使用ESP32互连,一个作为主机,一个作为从机,就根据库敲了一下ESP32做主机主动连接从机的代 码,就像HC05或06蓝牙似的,实现两个蓝牙进行配对,上电自动连接,很方便。使用的是BluetoothSerial这个蓝牙库,函数少且简单,看相关函数名字也能知道是实现什么功能,而且也不需要进行广播啥的,能实 现点对点连接就可以,但是库简单的同时功能也少,没有扫描函数,但问题不大。为什么写博客呢,因为我看网上没有这个库的相关介绍,弄好了就记录一下,万一以后需要用却找不到了,就不太好,就在这记录分享 一下。二、测试代码#include <Arduino.h>#includeBluetoothSerial SerialBT;#define Master 1主从机模式选择1主机0从机void Bluetooth Eventsesp_spp_cb_event_t event esp_spp_cb_param_t *param); 蓝牙事件回调函数uint8_t address6=0x30,0x83,0x98,0xC3.0x50,0xDA;从机MAC地址不同的蓝牙地址不同需要自己修改 void setup() Serial.begin(115200);SerialBT.register_callback(Bluetooth_Event);设置事件回调函数连接断开发送接收iff Master(SerialBT.begin(Serial printf(SerialBT.connect(address);Serial printf()else(SerialBT.begin(Serial printf(true);开启蓝牙名称为););主机);开启蓝牙名称为);从机)void loop()(iff Master)SerialBT.write('A");delay(300);void Bluetooth_Event(esp_spp_cb_event_t event esp_spp_cb_param_t param蓝牙事件回调函数(if(event = ESP_SPP_OPEN_EVT | event = ESP_SPP_SRV_OPEN_EVT)蓝牙连接划标志(蓝牙主机和从机模式对应的标志不同,前面的是主机模式的,后面是从机模式Serial write()else if(event = ESP_SPP_CLOSE_EVT)蓝牙断开连接标志(Serial write();)else if(event = ESP_SPP_DATA_lND_EVT)数据接收标志(while(SerialBT.available()(Serial. write(SerialBT.read();)Serial write();) else if(event = ESP_SPP_WRITE_EVT)数据发送标志();Serial write(上面就是基本的代码了,可以修改Master宏定义来选择主从机模式,使用register_callback()函数为蓝牙事件添加了回调函数,当连 接成功、断开连接、接收数据和发送数据等事件发生时,会触发自定义的Bluetooth_Event()函数,根据事件枚举标志位来判断当前是哪 种事件,使用串口打印出相关字符。代码里没有写连接失败后重复连接的代码,因为我发现,每次连接时间好像不太固定,差的有点多,后面再改进。所以目前这代码最好 先给从机通电,再给主机通电,避免连接失败。三、总结连接从机需要从机的mac地址,这个可以使用手机上的蓝牙串口软件查看。