上一篇:蓝牙 Mesh 配网模组用户手册(基于 AT 命令) | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第七章>>>
点击免费下载
《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》>>>
1. 简介
蓝牙MESH网络中,Provisioner是不可缺失的角色,它可以将一个未配网的设备加入到Mesh网络中,为该节点分配网络密钥、IV索引以及节点地址。同时Provisioner支持配置节点的各项参数,包括应用密钥,订阅和发布地址,开关Relay/Friend/Proxy 特性等。
本文将介绍如何使用 Mesh Node 组件和 Mesh Model 组件实现 Provisioner 的功能,并且配置一个 Mesh 灯控节点,实现控制。
2. 应用开发
Provisioner 示例将实现如下几个功能:
● 发现未入网的灯控节点
● 自动对未入网的灯控节点入网
● 配置灯控节点的 APP KEY 和订阅地址
● 发送开发消息,控制亮灯 / 灭灯
注意点:
Provisioner 示例只是实现了一个简单的入网和配置过程,对于大规模的 Mesh 应用网络,开发者需要设计一个功能更加完善的Mesh节点管理方案,来处理并发和异常的情况。由于节点入网和配置均是异步过程,开发者可以使用状态机来维护这个过程,在本示例中,认为所有过程均是串行的,没有使用复杂的状态管理。
SDK 另外提供一个 AT Mesh Provisioner 解决方案,功能更加完善,开发者可以按照模组的方式来使用 Provisioner 功能。
2.1 组件初始化
初始化Mesh Model和Mesh Node组件,处理相应的事件。
2.2 灯控节点入网
在 Provisioner 事件回调函数中,处理上报的未入网设备,进行入网。
2.3 灯控节点配置
2.4 亮灯 / 灭灯控制
在应用任务中,每 5s 向组地址 0xC000 发送一次开关控制消息,并处理灯控节点返回对的灯状态信息。
3. 示例运行
3.1 编译
● 进入 SDK 根目录,编译 mesh provisioner 示例
3.2 运行
● 下载 applications/bluetooth/meshprovsioner/generated/totalimage.hexf至开发
板1
● 下载 applications/bluetooth/meshlightnode/generated/total_image.hexf 至
开发板 2
● 镜像下载可参考《CB6121 快速上手手册》
● 连接串口调试工具 , 配置为
● 波特率 : 115200, 数据位 : 8, 校验位 : None, 停止位 : 1, 流控 : None
● 按 RESET 按键,复位开发板
● 成功启动后,开发板 1 串口将输出
● 开发板 2 灯控节点串口输出