Ameba Arduino: [RTL8722CSM] [RTL8722DM] BLE – 电池客户端

材料准备

  • AmebaD [RTL8722 CSM/DM] x 2

范例说明

介绍

BLE连接使用伺服器/客户端架构模式。伺服器包含相关的数据,而客户端连接到伺服器以读取数据。通常会以蓝牙周边设备充当伺服器,而蓝牙中央设备充当客户端。伺服器可以包含许多服务,每个服务包含一组数据。客户端可以发送请求以读取或写入一些数据,还可以订阅通知,以便伺服器可以将数据更新发送给客户端。

在此范例中,Ameba蓝牙协议堆栈上设置了基本的电池客户端。客户端连接到另一个运行相应BLE电池服务的Ameba板,以读取电池电量数据。

具体的步骤如下

上传BLEBatteryService范例程式码至第一个Ameba板并执行。

对第二个Ameba板,打开范例 “Files” -> “Examples” -> “AmebaBLE” -> “BLEBatteryClient”。

2

上传程式码并在上传完成后按Ameba上的重置按钮。

当Ameba板运行扫描,连接并从带有电池服务的Ameba板读取数据时,打开串行端口并观察其日志讯息。

3

黄色标示部分为带有电池客户端的Ameba板,首先扫描广播的的BLE设备,名称为“ AMEBA_BLE_DEV”,且广播服务的UUID为0x180F,代表电池服务。

蓝色标示部分为找到目标设备后,带有电池客户端的Ameba板将运行BLE连接,并在连接的设备上搜索电池服务。

绿色标示部分为客户端连接到服务后,电池客户端开始使用常规数据读取方式和通知服务来读取数据。

Code Reference

BLEBatteryClient 用于创建客户端以发现所连接设备上的服务和特征。

setNotifyCallback() 用于注册接收电池电量通知时将调用的功能。

BLE.configClient() 用于配置蓝牙堆栈以进行客户端操作。

addClient(connID) 创建一个与连接的设备相对应的新BLEClient对象。

请先确认已安装QQ通讯软体