用料
示例
介绍
BLE 连接使用服务器-客户端模型。服务器包含重要的数据,而客户端连接到服务器以读取数据。通常,蓝牙外设设备充当服务器,而蓝牙中心设备充当客户端。服务器可以包含多个服务,每个服务包含一组数据。客户端可以发送请求来读取或写入一些数据,并且还可以订阅通知,以便服务器可以将数据更新发送到客户端。
在这个示例中,BW21-CBV-Kit 蓝牙堆栈上设置了一个基本的电池客户端。客户端连接到另一个运行相应 BLE 电池服务的 BW21-CBV-Kit 开发板,以读取电池电量数据。
流程
- 在第一块 BW21-CBV-Kit 开发板上,上传
BLEBatteryService 示例代码并运行。
- 对于第二块 BW21-CBV-Kit 开发板,打开以下示例:“文件” -> “示例” -> “AmebaBLE” -> “BLEBatteryClient”
- 上传代码后,按下 BW21-CBV-Kit 开发板上的复位按钮。
- 打开串口监视器,观察日志信息。你会看到 BW21-CBV-Kit 开发板作为电池客户端扫描、连接并从另一块运行电池服务的 BW21-CBV-Kit 开发板读取数据。
说明
- ·如图中黄色高亮所示,电池客户端的 BW21-CBV-Kit 开发板首先扫描广播的 BLE 设备,寻找广告设备名称为“AMEBA_BLE_DEV”和广告服务 UUID 为 0x180F(表示电池服务)的设备。
- ·找到目标设备后,电池客户端的 BW21-CBV-Kit 开发板与目标设备建立 BLE 连接,并在连接的设备上查找电池服务,如图中蓝色高亮部分所示。
- ·客户端连接到服务后,电池客户端开始通过常规数据读取和通知读取数据,如图中绿色高亮部分所示。
代码参考
- BLEClient 用于创建一个客户端对象,以便在连接的设备上发现服务和特征。
- setNotifyCallback() 用于注册一个回调函数,该函数将在接收到电池电量通知时被调用。
- BLE.configClient() 用于配置蓝牙堆栈以支持客户端操作。
- addClient(connID) 用于创建一个新的 BLEClient 对象,该对象与连接的设备相对应。
|