作者:云霄一天
平头哥蓝牙 Mesh SDK 是基于低功耗蓝牙芯片 PHY6212 /PHY6220提供的软件开发套件。该开发套件以 YoC 平台为基础,对蓝牙 MESH 协议栈做了深度优化和整合,为开发者提供了通用的 MESH 组件,涵盖了 SIG MESH Model 和私有 Model 以及丰富的芯片外设驱动。蓝牙 Mesh SDK 实现。
蓝牙mesh网关+PHY6220子模块蓝牙mess
Mesh 网络拓扑:
上图是一个 Mesh 灯控网络的拓扑,以此为例,介绍一下 Mesh 网络的构成。按照功能来划分,Mesh 设备可以分为两类,一种是 Provisioner,一种是 Node节点。
Provisioner 负责组建 Mesh 网络,主要功能有发现未入网设备,将未入网的设备加入Mesh 网络,配置入网设备的特性,比如 Relay 特性,Friend 特性,Proxy 特性等。在上图中,Provisioner 可以是蓝牙开发板,也可以是一个手机,但是当前不支持两个 Mesh 网络中同时存在手机 Provisioner 和蓝牙开发板 Provisioner 的情况。当一个设备加入特定的 Mesh 网络后,该设备成为 Mesh 网络的 Node 节点。
在上图中,节点有 Light 灯控节点和 Switch 开关节点两种。这两种节点默认都支持Relay 特性和 Proxy 特性。Relay 特性打开的情况下,节点会转发来自别的节点的Mesh 消息。Proxy 特性打开的情况下,节点会支持手机接入 Mesh 网络。
蓝牙 Mesh SDK: 总体分为四个层次,自下而上分别为 SoC 蓝牙芯片层,Kernel 内核层,Service 服务层和 BT Applications 蓝牙应用层。
打开CDK New IoT Project>> PHY6220 芯片>> PHY6220开发板>> mesh_light_node_demo ,官方 demo 工程,可以修改蓝牙名称:
应用入口函数 app_main(),主要实现如下功能:
- 板级初始化
- MESH 灯 Model 定义
- Mesh 节点初始化,注册 Model 事件回调处理函数 代码分析:
<!--StartFragment--> <span class="fontstyle0">/* </span><span class="fontstyle2">定义设备名称,使用手机 </span><span class="fontstyle0">APP </span><span class="fontstyle2">扫描时可以看到该名称 </span><span class="fontstyle0">*/ #define DEVICE_NAME "YoC Light" /* </span><span class="fontstyle2">定义设备 </span><span class="fontstyle0">UUID */ #define LIGHT_DEV_UUID {0xcf, 0xa0, 0xe3, 0x7e, 0x17, 0xd9, 0x11, 0xe8, 0x86, 0xd1, 0x5f, 0x1c, 0xe2, 0x8a, 0xde, 0x02} node_config_t g_node_param = { /* </span><span class="fontstyle2">设置当前为设备节点 </span><span class="fontstyle0">*/ .role = NODE, /* </span><span class="fontstyle2">设置节点的 </span><span class="fontstyle0">UUID */ .dev_uuid = LIGHT_DEV_UUID, /* </span><span class="fontstyle2">设置节点的 </span><span class="fontstyle0">Device Name */ .dev_name = DEVICE_NAME, /* </span><span class="fontstyle2">注册 </span><span class="fontstyle0">Model </span><span class="fontstyle2">的事件处理回调函数 </span><span class="fontstyle0">*/ .user_model_cb = app_event_cb,</span> <!--EndFragment-->
下载:
编译烧录两个子模块 下载Nordic 第三方:nRF mesh apk downloadv3.1.6 安卓版,附上下载链接 http://www.downcc.com/soft/530807.html
nrf mesh :配网过程如下:
配网:
蓝⽛MESH⽹关开发板:烧写如下程序: ble_mesh_gateway_node_sdk\solutions\mesh_light_node_demo 测试视频: https://v.youku.com/v_show/id_XNTgxMzA0MjQ5Ng==
本文源自:平头哥芯片开放社区
欢迎关注公众号:芯片开放社区(ID:OCC_THEAD),查看更多应用实战文章。