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

开发者社区> 平头哥芯片开放社区> 正文

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

简介: 本节重点介绍 蓝牙 Mesh 私有 Model 开发指南

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

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

test

1. 智能开关介绍

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

2. 应用开发

2.1. 应用初始化

应用入口函数app_main(),主要实现如下功能:
• 板级初始化
• Mesh开关Models定义
• Mesh节点初始化,注册Model事件回调处理函数
代码分析:
image.png
image.png

2.2. 设备模型定义

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

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

• Health Server Model

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

• Generic OnOff Cient Model

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

代码分析:

image.png
image.png

2.3. MESH Models事件回调处理

MESH Node组件将根据所定义的Models,上报相关事件及数据。以OnOff属性为例,进行代码解析:
image.png
image.png

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

3. 例程运行

3.1. 示例介绍

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

3.2 开发板连线

image.png

3.3 编译

● 进入 SDK 根目录,编译 MESH 灯应用镜像
image.png

3.4. 运行

• 下载工程目录下的镜像文件(generated/total_image.hexf)至CB6121开发板,镜像下载可参考《CB6121快速上手手册》
• 连接串口调试工具, 配置为
波特率: 115200, 数据位: 8, 校验位: None, 停止位: 1, 流控: None
• 开发板拨码开关拨至GND
• 按RESET按键,复位开发板
• 设备将开启Unprovisoin Device Beacon广播,串口上输出'Mesh Switch node demo'信息
image.png

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

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

image.png

• Mesh开关设备配网可参照下图,通过手机nRF Mesh APP操作,绑定应用密钥的索引为1
image.png

● 手机操作设备入网时,将在串口输出如下信息
image.png

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

image.png

● 通过 Shell 命令控制智能灯的开关状态,设备将在串口上输出如下信息
image.png

● 还可以通过开发板上 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 命令

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
平头哥芯片开放社区
使用钉钉扫一扫加入圈子
+ 订阅

芯片开放社区(Open Chip Community 简称OCC),是平头哥芯片基础设施的云端载体,提供开发中心、创芯空间、技术部落等互动版块,汇聚海量应用资源,助力芯片合作伙伴构建软硬融合的芯片生态。面向芯片企业,OCC以应用驱动芯片精准定义、以全栈技术支撑芯片敏捷开发;面向开发者,OCC以芯片生态降低IoT开发门槛、以1520体系加速IoT产品落地。

官方博客
官网链接