ESP32 BLE蓝牙通信

阅读: 评论:0

ESP32 BLE蓝牙通信

ESP32 BLE蓝牙通信

使用ESP32-DevKitC_V4作为蓝牙服务端,需要刷AT固件。

iPhone12手机作为蓝牙客户端,手机上需要安装nRF Connect或Easy BLE

1.开启蓝牙服务端

用串口工具(勾选 发送新行)执行以下命令

AT+BLEINIT=2 //将esp32设置成蓝牙SERVER
AT+BLEGATTSSRVCRE  //GATTS创建服务, 建议初始化后就建立GATTS, 建立连接在创建会报错 
AT+BLEGATTSSRVSTART //GATTS 开启全部服务。
AT+BLEGATTSCHAR? //GATTS 发现服务特征 
AT+BLEADVDATA="0201060A09657370726573736966"   //广播设备名称espressif  
AT+BLEADVSTART   //打开广播

注意,不支持 AT+BLENAME=“123” 命令改 BLE 名称。可通过AT+BLEADVDATA=“0201060303F0AB0409313233” 改设备名称为 123,其中前 7 位(0201060303F0AB)固定,04 表示后四位长度,09 表示数据类型(固定),313233 则表示设备名称 123 对应的 ASCII 码,可通过在线转换获得。

 

2.连接蓝牙服务端

运行AT+BLEADVSTART 指令后,手机上用nRF Connect搜索蓝牙设备,不运行此指令是搜索不到的。

 

3.服务端给客户端(即手机端)发送数据

(1)发送Notify数据 

首先手机上开启Notify (即1,6)

串口端发送数据

+BLEGATTSNTFY=0,1,6,8//这句命令需要勾选【发送新行】,1为Service编号,6为Characteristic编号,8为数据长度
12345678//这句不需要勾选【发送新行】为发送数据

 接收到的数据

 (2)发送Indicate数据 

手机端先开启Indicate,串口端发送数据

AT+BLEGATTSIND=0,1,7,10
1234567890

 (3)发送透传数据

 首先手机上开启Notify(即1,6),用于接收蓝牙服务端发送消息。

(1,5)的属性为Write,可以回发数据

AT+BLESPPCFG=1,1,6,1,5//这句命令需要勾选【发送新行】
AT+BLESPP//这句命令需要勾选【发送新行】
aabbcc//不勾选

手机接收到的数据 

 手机发送数据

 

 退出透传

+++//不勾选发送新行

客户端

AT+BLEINIT=1//客户端
AT+BLESCAN=1,3,2,"espressif"//过滤蓝牙名称,此步可省//连接第1个服务端
AT+BLECONN=0,"84:f7:03:6d:97:6e",0,10//通过MAC地址连接蓝牙Server
AT+BLEGATTCPRIMSRV=0//获取第0个连接的服务列表
AT+BLEGATTCCHAR=0,3//获取第0个连接第3(从1开始算)服务列表
AT+BLEGATTCWR=0,3,5,8//第0个连接第3个服务第5个Characteristic 为Notify
12345678//发送数据//连接第2个服务端
AT+BLECONN=1,"08:3a:8d:14:97:72",0,10//通过MAC地址连接蓝牙Server
AT+BLEGATTCPRIMSRV=1//获取第0个连接的服务列表
AT+BLEGATTCCHAR=1,3//获取第0个连接第3(从1开始算)服务列表
AT+BLEGATTCWR=1,3,5,8//第0个连接第3个服务第5个Characteristic 为Notify
11223344//发送数据

本文发布于:2024-01-28 08:13:01,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064007866029.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:蓝牙   通信   BLE
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23