请选择 进入手机版 | 继续访问电脑版
查看: 228|回复: 0

[应用笔记] WB81-GP蓝牙BLE透传应用指导

[复制链接]

21

主题

21

帖子

67

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
67
发表于 2023-12-7 16:04:32 | 显示全部楼层 |阅读模式
  一、引言

  本文档主要讲述如何使用AT 指令搭建BLE 透传环境。

  下面是使用两块WB81 开发板的示例,一块作为主机,另一块作为从机。和使用WB81开发板(仅作为低功耗蓝牙服务器角色)和手机(仅作为低功耗蓝牙客户端角色)之间建立 SPP连接,在UART-Bluetooth LE 透传模式下传输数据。

  在以下步骤中以主机开头的操作只需要在主机端执行即可,以从机开头的操作只需要在从机端执行即可。如果操作没有特别指明在哪端操作,则需要在主机端和从机端都执行。

  二、AT 指令列表

  三、AT 应用指导

  3.1 两块WB81 开发板的BLE 透传

  以下示例同时使用两块 WB81 开发板,其中一块作为 Bluetooth LE 服务端(只作为Bluetooth LE 服务端角色),另一块作为 Bluetooth LE 客户端(只作为Bluetooth LE 客户端角色)。这个例子展示了应如何建立 Bluetooth LE 连接,以及建立透传通信 Bluetooth LE SPP (Serial Port Profile, UART-Bluetooth LE 透传模式)。

  在以下步骤中以WB81 Bluetooth LE 服务端开头的操作只需要在WB81 Bluetooth LE 服务端执行即可,以WB81 Bluetooth LE 客户端开头的操作只需要在WB81 Bluetooth LE 客户端执行即可。

  (1) 初始化Bluetooth LE 功能

  WB81 Bluetooth LE 服务端:
  命令:
    AT+LINITBT=1
  响应:
    OK
  命令:
    AT+BLEINIT=2
  响应:
    OK

  WB81 Bluetooth LE 客户端:
  命令:
    AT+LINITBT=1
  响应:
    OK
  命令:
    AT+BLEINIT=1
  响应:
    OK

  (2) WB81 Bluetooth LE 服务端创建服务。
  命令:
    AT+BLEGATTSSRVCRE
  响应:
    OK

  (3) WB81 Bluetooth LE 服务端开启服务。
  命令:
    AT+BLEGATTSSRVSTART
  响应:
    OK

  (4) WB81 蓝牙LE 服务器获取其MAC 地址。
  命令:
    AT+BLEADDR?
  响应:
    +BLEADDR:"24:0a:c4:d6:e4:46"
    OK

  说明:您查询到的地址可能与上述响应中的不同,请记住您的地址,下面的步骤中会用到。

  (5) WB81 Bluetooth LE 服务端设置广播参数。
  命令:
    AT+BLEADVPARAM=50,50,0,0,7,0,,
  响应:
    OK

  (6) WB81 Bluetooth LE 服务端设置广播数据。
  命令:
    AT+BLEADVDATA="0201060A09457370726573736966030302A0"
  响应:
    OK

  (7) WB81 Bluetooth LE 服务端开始广播。
  命令:
    AT+BLEADVSTART
  响应:
    OK

  (8) WB81 Bluetooth LE 客户端开始扫描,持续3 秒。
  命令:
    AT+BLESCAN=1,3
  响应:
    OK
    +BLESCAN:"24:0a:c4:d6:e4:46",-78,0201060a09457370726573736966030302a0,,0
    +BLESCAN:"45:03:cb:ac:aa:a0",-62,0201060aff4c001005441c61df7d,,1
    +BLESCAN:"24:0a:c4:d6:e4:46",-26,0201060a09457370726573736966030302a0,,0

  说明:您的扫描结果可能与上述响应中的不同。

  (9) 建立the Bluetooth LE 连接。

  WB81 Bluetooth LE 客户端:
  命令:
    AT+BLECONN=0,"24:0a:c4:d6:e4:46"
  响应:
    +BLECONN:0,"24:0a:c4:d6:e4:46"
    OK

  说明:
    输入上述命令时,请使用您的WB81 Bluetooth LE 服务端地址。
    如果Bluetooth LE 连接成功,则会提示+BLECONN:0,"24:0a:c4:d6:e4:46。
    如果Bluetooth LE 连接失败,则会提示+BLECONN:0,-1。

  (10) WB81 Bluetooth LE 服务端查询服务。
  命令:
    AT+BLEGATTSSRV?
  响应:
    +BLEGATTSSRV:1,1,0xA002,1
    +BLEGATTSSRV:2,1,0xA003,1
    OK

  (11) WB81 Bluetooth LE 服务端发现特征。
  命令:
    AT+BLEGATTSCHAR?
  响应:
    +BLEGATTSCHAR:"char",1,1,0xC300,0x02
    +BLEGATTSCHAR:"desc",1,1,1,0x2901
    +BLEGATTSCHAR:"char",1,2,0xC301,0x02
    +BLEGATTSCHAR:"desc",1,2,1,0x2901
    +BLEGATTSCHAR:"char",1,3,0xC302,0x08
    +BLEGATTSCHAR:"desc",1,3,1,0x2901
    +BLEGATTSCHAR:"char",1,4,0xC303,0x04
    +BLEGATTSCHAR:"desc",1,4,1,0x2901
    +BLEGATTSCHAR:"char",1,5,0xC304,0x08
    +BLEGATTSCHAR:"char",1,6,0xC305,0x10
    +BLEGATTSCHAR:"desc",1,6,1,0x2902
    +BLEGATTSCHAR:"char",1,7,0xC306,0x20
    +BLEGATTSCHAR:"desc",1,7,1,0x2902
    +BLEGATTSCHAR:"char",1,8,0xC307,0x02
    +BLEGATTSCHAR:"desc",1,8,1,0x2901
    +BLEGATTSCHAR:"char",2,1,0xC400,0x02
    +BLEGATTSCHAR:"desc",2,1,1,0x2901
    +BLEGATTSCHAR:"char",2,2,0xC401,0x02
    +BLEGATTSCHAR:"desc",2,2,1,0x2901
    OK

  (12) WB81 Bluetooth LE 客户端发现服务。
  命令:
    AT+BLEGATTCPRIMSRV=0
  响应:
    +BLEGATTCPRIMSRV:0,1,0x1801,1
    +BLEGATTCPRIMSRV:0,2,0x1800,1
    +BLEGATTCPRIMSRV:0,3,0xA002,1
    +BLEGATTCPRIMSRV:0,4,0xA003,1
    OK

  说明:WB81 Bluetooth LE 客户端查询服务的结果,比WB81 Bluetooth LE 服户端查询服务的结果多两个默认服务(UUID: 0x1800 和 0x1801),这是正常现象。正因如此,对于同一服务,WB81 Bluetooth LE 客户端查询的<srv_index>值等于WB81 Bluetooth LE 服户端查询的<srv_index>值 + 2。例如,上述示例中的服务0xA002,当前在WB81 Bluetooth LE 客户端查询到的<srv_index>为3,如果在WB81 Bluetooth LE 服户端通过AT+BLEGATTSSRV?命令查询,则<srv_index>为1。

  (13) WB81 Bluetooth LE 客户端发现特征。
  命令:
    AT+BLEGATTCCHAR=0,3
  响应:
    +BLEGATTCCHAR:"char",0,3,1,0xC300,0x02
    +BLEGATTCCHAR:"desc",0,3,1,1,0x2901
    +BLEGATTCCHAR:"char",0,3,2,0xC301,0x02
    +BLEGATTCCHAR:"desc",0,3,2,1,0x2901
    +BLEGATTCCHAR:"char",0,3,3,0xC302,0x08
    +BLEGATTCCHAR:"desc",0,3,3,1,0x2901
    +BLEGATTCCHAR:"char",0,3,4,0xC303,0x04
    +BLEGATTCCHAR:"desc",0,3,4,1,0x2901
    +BLEGATTCCHAR:"char",0,3,5,0xC304,0x08
    +BLEGATTCCHAR:"char",0,3,6,0xC305,0x10
    +BLEGATTCCHAR:"desc",0,3,6,1,0x2902
    +BLEGATTCCHAR:"char",0,3,7,0xC306,0x20
    +BLEGATTCCHAR:"desc",0,3,7,1,0x2902
    +BLEGATTCCHAR:"char",0,3,8,0xC307,0x02
    +BLEGATTCCHAR:"desc",0,3,8,1,0x2901
    OK

  (14) WB81 Bluetooth LE 客户端配置Bluetooth LE SPP。

  选择支持写操作的服务特征(characteristic)作为写通道发送数据,选择支持notify 或者indicate 的characteristic 作为读通道接收数据。
  命令:
    AT+BLESPPCFG=1,3,5,3,7
  响应:
    OK

  (15) WB81 Bluetooth LE 客户端使能Bluetooth LE SPP。
  命令:
    AT+BLESPP
  响应:
    OK
    >

  上述响应表示AT 已经进入Bluetooth LE SPP 模式,可以进行数据的发送和接收。

  说明:WB81 Bluetooth LE 客户端开启Bluetooth LE SPP 透传模式后,串口收到的数据会通过Bluetooth LE 传输到WB81 Bluetooth LE 服务端。

  (16) WB81 Bluetooth LE 服务端配置Bluetooth LE SPP。

  选择支持notify 或者indicate 的characteristic 作为写通道发送数据,选择支持写操作的characteristic 作为读通道接收数据。
  命令:
    AT+BLESPPCFG=1,1,7,1,5
  响应:
    OK

  WB81 Bluetooth LE 服务端使能Bluetooth LE SPP。
  命令:
    AT+BLESPP
  响应:
    OK
    >

  上述响应表示AT 已经进入Bluetooth LE SPP 模式,可以进行数据的发送和接收。

  说明:WB81 Bluetooth LE 服户端开启Bluetooth LE SPP 透传模式后,串口收到的数据会通过Bluetooth LE 传输到WB81 Bluetooth LE 客户端。

  如果 WB81 Bluetooth LE 客户端端没有先开启 Bluetooth LE SPP 透传,或者使用其他设备作为Bluetooth LE 客户端,则WB81 Bluetooth LE 客户端需要先开启侦听Notify或者 Indicate 。例如,WB81 Bluetooth LE 客户端如果未开启透传,则应先调用AT+BLEGATTCWR=0,3,7,1,1 开启侦听,WB81 Bluetooth LE 服务端才能成功实现透传。

  对于同一服务,WB81 Bluetooth LE 客户端的<srv_index>值等于WB81 Bluetooth LE 服务端的<srv_index>值 + 2,这是正常现象。

  3.2 WB81 开发板和手机的透传

  以下展示了如何在WB81 开发板(仅作为低功耗蓝牙服务器角色)和手机(仅作为低功耗蓝牙客户端角色)之间建立SPP 连接,以及如何在UART-Bluetooth LE 透传模式下传输数据。

  步骤中以WB81 Bluetooth LE 服务端开头的操作只需要在WB81 Bluetooth LE 服务端执行即可,而以Bluetooth LE 客户端开头的操作只需要在手机的蓝牙调试助手中执行即可。

  (1) 在手机端下载Bluetooth LE 调试助手,例如LightBlue。

  (2) 初始化Bluetooth LE 功能。

  WB81 Bluetooth LE 服务端:
  命令:
    AT+LINITBT=1
  响应:
    OK
  命令:
    AT+BLEINIT=2
  响应:
    OK

  (3) WB81 Bluetooth LE 服务端创建服务。
  命令:
    AT+BLEGATTSSRVCRE
  响应:
    OK

  (4) WB81 Bluetooth LE 服务端开启服务。
  命令:
    AT+BLEGATTSSRVSTART
  响应:
    OK

  (5) WB81 蓝牙LE 服务器获取其MAC 地址。
  命令:
    AT+BLEADDR?
  响应:
    +BLEADDR:"24:0a:c4:d6:e4:46"
    OK

  说明:您查询到的地址可能与上述响应中的不同,请记住您的地址,下面的步骤中会用到。

  (6) WB81 Bluetooth LE 服务端设置广播参数。
  命令:
    AT+BLEADVPARAM=50,50,0,0,7,0,,
  响应:
    OK

  (7) WB81 Bluetooth LE 服务端设置广播数据。
  命令:
    AT+BLEADVDATA="0201060A09457370726573736966030302A0"
  响应:
    OK

  (8) WB81 Bluetooth LE 服务端开始广播。
  命令:
    AT+BLEADVSTART
  响应:
    OK

  (9) 创建Bluetooth LE 连接

  手机打开LightBlue APP,并打开SCAN 开始扫描,找到WB81 Bluetooth LE 服务端的MAC 地址, 点击CONNECT 进行连接。此时WB81 端应该会打印类似于+BLECONN:0,"60:51:42:fe:98:aa"的log,这表示已经建立了Bluetooth LE 连接。

  (10) WB81 Bluetooth LE 服务端查询服务。
  命令:
    AT+BLEGATTSSRV?
  响应:
    +BLEGATTSSRV:1,1,0xA002,1
    +BLEGATTSSRV:2,1,0xA003,1
    OK

  (11) WB81 Bluetooth LE 服务端发现特征。
  命令:
    AT+BLEGATTSCHAR?
  响应:
    +BLEGATTSCHAR:"char",1,1,0xC300,0x02
    +BLEGATTSCHAR:"desc",1,1,1,0x2901
    +BLEGATTSCHAR:"char",1,2,0xC301,0x02
    +BLEGATTSCHAR:"desc",1,2,1,0x2901
    +BLEGATTSCHAR:"char",1,3,0xC302,0x08
    +BLEGATTSCHAR:"desc",1,3,1,0x2901
    +BLEGATTSCHAR:"char",1,4,0xC303,0x04
    +BLEGATTSCHAR:"desc",1,4,1,0x2901
    +BLEGATTSCHAR:"char",1,5,0xC304,0x08
    +BLEGATTSCHAR:"char",1,6,0xC305,0x10
    +BLEGATTSCHAR:"desc",1,6,1,0x2902
    +BLEGATTSCHAR:"char",1,7,0xC306,0x20
    +BLEGATTSCHAR:"desc",1,7,1,0x2902
    +BLEGATTSCHAR:"char",1,8,0xC307,0x02
    +BLEGATTSCHAR:"desc",1,8,1,0x2901
    +BLEGATTSCHAR:"char",2,1,0xC400,0x02
    +BLEGATTSCHAR:"desc",2,1,1,0x2901
    +BLEGATTSCHAR:"char",2,2,0xC401,0x02
    +BLEGATTSCHAR:"desc",2,2,1,0x2901
    OK

  (12) Bluetooth LE 客户端发现特征。

  此时在手机LightBlue 客户端选择点击Properties 为NOTIFY 或者INDICATE 的服务特征(这里ESP-AT 默认Properties 为NOTIFY 或者INDICATE 的服务特征是0xC305 和0xC306),开始侦听Properties 为NOTIFY 或者INDICATE 的服务特征。

  (13) WB81 Bluetooth LE 服务端配置Bluetooth LE SPP。

  选择支持notify 或者indicate 的characteristic 作为写通道发送数据,选择支持写操作的characteristic 作为读通道接收数据。
  命令:
    AT+BLESPPCFG=1,1,7,1,5
  响应:
    OK

  (14) WB81 Bluetooth LE 服务端使能Bluetooth LE SPP。
  命令:
    AT+BLESPP
  响应:
    OK
    >

  上述响应表示AT 已经进入Bluetooth LE SPP 模式,可以进行数据的发送和接收。

  (15) Bluetooth LE 客户端发送数据。

  在LightBlue 客户端选择0xC304 服务特征值发送数据test 给WB81 Bluetooth LE 服务端,此时WB81 Bluetooth LE 服务端可以收到test。

  (16) WB81 Bluetooth LE 服务端发送数据。

  在WB81 Bluetooth LE 服务端直接发送test,此时LightBlue 客户端可以收到test。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表