【教程】小安派BW21-CBV-Kit——BLE 电量服务器

[复制链接]
查看27 | 回复0 | 4 天前 | 显示全部楼层 |阅读模式

材料

  • BW21-CBV-Kit x 1
  • Android / iOS 手机

示例

说明

蓝牙低能耗(BLE)连接采用服务器-客户端模型。服务器包含重要的数据,而客户端连接到服务器以读取数据。通常,蓝牙外设设备充当服务器,而蓝牙中央设备充当客户端。服务器可以包含多个服务,每个服务包含一组数据。客户端可以发送请求以读取或写入某些数据,也可以订阅通知,以便服务器向客户端发送数据更新。

在这个示例中,我们在 Ameba 蓝牙堆栈上设置了一个基本的电池服务。使用手机连接到 BW21-CBV-Kit 外设设备并读取电池数据。

流程

  1. 确保手机已安装以下蓝牙应用程序,这些应用将显示 BW21-CBV-Kit 发送的原始数据,并允许与数据交互。
  2. 推荐使用 nRF Connect 应用,下载链接如下:
    1. Android: https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp
    2. iOS: https://apps.apple.com/us/app/nrf-connect/id1054362403
  3. 另一种可选应用是 LightBlue,但是其功能较少:
    1. Android: https://play.google.com/store/apps/details?id=com.punchthrough.lightblueexplorer
    2. iOS: https://apps.apple.com/us/app/lightblue/id557428110
  4. 打开示例代码:“文件” -> “示例” -> “AmebaBLE” -> “BLEBatteryService”。

image.png

  1. 上传代码后,按下 BW21-CBV-Kit 开发板上的复位按钮。
  2. 打开手机上的蓝牙应用,扫描 BW21-CBV-Kit 广播的蓝牙信号,设备名称应为 “AMEBA_BLE_DEV”。

image.png

  1. 连接到 BW21-CBV-Kit 蓝牙设备后,将出现一个可用服务列表。点击电池服务进行展开,可以看到电池电量数据值。右侧框中高亮的箭头用于读取数据和订阅通知。点击单箭头读取电池电量值,会显示 90% 的电量值。

image.png

  1. 点击三重箭头以订阅电池电量更新,电池值将开始自动更新。

image.png

  1. 串口监视器将显示草图每秒增加电池电量。当点击任意箭头时,BW21-CBV-Kit 上运行的草图会收到通知,并打印出所执行的操作。

image.png

代码参考

  • BLEServiceBLECharacteristic 类用于创建并定义在蓝牙设备上运行的电池服务。
  • BLE.configAdvert() -> setAdvType(GAP_ADTYPE_ADV_IND) 用于设置广告类型为一般无方向广告,允许进行连接。
  • setReadCallback()setCCCDCallback() 用于注册函数,当电池电量数据被读取或用户启用通知时,这些函数将被调用。
  • BLE.configServer(1) 用于告诉蓝牙堆栈将运行一个服务。
  • addService() 用于将电池服务注册到蓝牙堆栈。
用心做好保姆工作
回复

使用道具 举报

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

本版积分规则