蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

上一篇:蓝牙 Mesh 私有 Model 开发指南 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第四章>>>
下一篇:蓝牙 Mesh 灯控开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第六章>>>

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

蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

1. 智能开关介绍

本文将使用蓝牙 MeshSDK和CB6121开发板,通过Shell命令和按键触发模拟智能开关,用来控制智能灯的开关状态。

2. 应用开发

2.1. 应用初始化

应用入口函数app_main(),主要实现如下功能:
• 板级初始化
• Mesh开关Models定义
• Mesh节点初始化,注册Model事件回调处理函数
代码分析:
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

2.2. 设备模型定义

Mesh解决方案中,模型用于定义设备节点的功能。Mesh开关可以定义为下列模型:
• Configuration Server Model

 这个模型用于存储节点的MESH网络配置。

• Health Server Model

 该模型主要用于MESH网络诊断。

• Generic OnOff Cient Model

 该模型用于获取、控制Generic OnOff Server设备的开关属性。

代码分析:

蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

2.3. MESH Models事件回调处理

MESH Node组件将根据所定义的Models,上报相关事件及数据。以OnOff属性为例,进行代码解析:
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

注意:
网络中需要存在多个节点时,需要更改代码中设备UUID后编译烧录该镜像,并烧录镜像时设置不同的MAC地址,避免组网出现问题 。

3. 例程运行

3.1. 示例介绍

本示例的运行需要两块开发板,一块用于烧录Mesh开关示例,一块用于烧录Mesh灯示例。两个设备可同时通过手机nRF Mesh APP配置入网、绑定APP Key、设置组地址。然后通过Mesh开关设备的Shell命令或者按键触发,控制Mesh灯的开关状态。实际运行效果可参看SIG Mesh配网和控制演示视频。

3.2 开发板连线

蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

3.3 编译

● 进入 SDK 根目录,编译 MESH 灯应用镜像
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

3.4. 运行

• 下载工程目录下的镜像文件(generated/total_image.hexf)至CB6121开发板,镜像下载可参考《CB6121快速上手手册》
• 连接串口调试工具, 配置为
波特率: 115200, 数据位: 8, 校验位: None, 停止位: 1, 流控: None
• 开发板拨码开关拨至GND
• 按RESET按键,复位开发板
• 设备将开启Unprovisoin Device Beacon广播,串口上输出'Mesh Switch node demo'信息
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

• Mesh灯设备入网操作请参照智能灯应用开发实例 操作,发布地址的操作如下图所示:

 注意:Mesh灯设备的Generic OnOff Server Model应用密钥需要设置与MESH开关设备一致,SUB地址与Mesh开关的PUB地址一致

蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

• Mesh开关设备配网可参照下图,通过手机nRF Mesh APP操作,绑定应用密钥的索引为1
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

● 手机操作设备入网时,将在串口输出如下信息
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

● 设置 Mesh 开关设备中的 Generic OnOff Client Model 的应用密钥,绑定应用
密钥的索引为 1;并设置 Publication 地址为 0xC000

蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

● 通过 Shell 命令控制智能灯的开关状态,设备将在串口上输出如下信息
蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

● 还可以通过开发板上 P14 按键,发送无需 ACK 的开关控制操作;P15 按键,发
送需要 ACK 的开关控制操作

[   207.266000][I][DEMO    ]send unack msg LED OFF
 

● 通过开发板上 P15 按键,发送需要 ACK 的开关控制操作

[   210.852000][I][DEMO    ]send ack msg LED ON

3.5 Shell 命令

蓝牙 Mesh 开关开发实例 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第五章

上一篇:[转]采集用户的图像


下一篇:RAC CRS Resource资源的生命周期