蓝牙 Mesh 配网模组的二次开发指南 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

上一篇:蓝牙 Mesh 配网模组用户手册(基于 AT 命令) | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第七章>>>

点击免费下载
《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》>>>

蓝牙 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组件,处理相应的事件。

蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

2.2 灯控节点入网

在 Provisioner 事件回调函数中,处理上报的未入网设备,进行入网。

蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

2.3 灯控节点配置

蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

2.4 亮灯 / 灭灯控制
在应用任务中,每 5s 向组地址 0xC000 发送一次开关控制消息,并处理灯控节点返回对的灯状态信息。
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

3. 示例运行

3.1 编译

● 进入 SDK 根目录,编译 mesh provisioner 示例
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

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 串口将输出

蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

● 开发板 2 灯控节点串口输出
蓝牙 Mesh 配网模组的二次开发指南  | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第八章

上一篇:蓝牙 Mesh 配网模组用户手册(基于 AT 命令) | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第七章


下一篇:程序员必须掌握的核心算法有哪些?