BLE – 电池客户端
材料准备
- AmebaD [ AMB23 / AMB21 / AMB22 / BW16 / AW-CU488 Thing Plus ] x 1
范例说明
介绍
BLE连接使用伺服器/客户端架构模式。伺服器包含相关的数据,而客户端连接到伺服器以读取数据。通常会以蓝牙周边设备充当伺服器,而蓝牙中央设备充当客户端。伺服器可以包含许多服务,每个服务包含一组数据。客户端可以发送请求以读取或写入一些数据,还可以订阅通知,以便伺服器可以将数据更新发送给客户端。
在此范例中,Ameba蓝牙协议堆栈上设置了基本的电池客户端。客户端连接到另一个运行相应BLE电池服务的Ameba板,以读取电池电量数据。
具体的步骤如下
上传BLEBatteryService范例程式码至第一个Ameba板并执行。
对第二个Ameba板,打开范例 “Files” -> “Examples” -> “AmebaBLE” -> “BLEBatteryClient”。
上传程式码并在上传完成后按Ameba上的重置按钮。
当Ameba板运行扫描,连接并从带有电池服务的Ameba板读取数据时,打开串行端口并观察其日志讯息。
黄色标示部分为带有电池客户端的Ameba板,首先扫描广播的的BLE设备,名称为“ AMEBA_BLE_DEV”,且广播服务的UUID为0x180F,代表电池服务。
蓝色标示部分为找到目标设备后,带有电池客户端的Ameba板将运行BLE连接,并在连接的设备上搜索电池服务。
绿色标示部分为客户端连接到服务后,电池客户端开始使用常规数据读取方式和通知服务来读取数据。
Code Reference
BLEBatteryClient 用于创建客户端以发现所连接设备上的服务和特征。
setNotifyCallback() 用于注册接收电池电量通知时将调用的功能。
BLE.configClient() 用于配置蓝牙堆栈以进行客户端操作。
addClient(connID) 创建一个与连接的设备相对应的新BLEClient对象。