蓝牙 Mesh 网络及 SDK 概述 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第一章

简介: 本节重点介绍蓝牙 Mesh 网络及 SDK 概述

下一篇:蓝牙 Mesh SDK 快速上手 | 《无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案》第二章

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

test

蓝牙 Mesh SDK用户开发指南

1. 概述

蓝牙 Mesh SDK是基于低功耗蓝牙芯片CH6121提供的软件开发套件。该开发套件以YoC平台为基础,对蓝牙MESH协议栈做了深度优化和整合,为开发者提供了通用的MESH组件,涵盖了SIG MESH Model和私有Model以及丰富的芯片外设驱动。

1.1. Mesh网络介绍

image.png

上图是一个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网络。
在上图中,存在Group1和Group2两个分组,这个也是Mesh网络的一个重要特性,Mesh网络支持将不同的节点分配到相同的组中,同一个节点也可以同时存在于两个组中。上图Light Node1,Light Node2,Light Node4,Swtich Node1位于Group1,3个Light Node可以被Switch Node1控制。Light Node2,Light Node3,Light Node5,Swtich Node2位于Group2,3个Light Node可以被Switch Node2控制。而Light Node2同时位于Group1和Group2,它可以被Switch Node1和Swicth Node2控制。
在蓝牙 Mesh SDK中,以上的特性均已实现,开发者可以以下的介绍了解到如何实现一个这样的Mesh网络。

2. SDK介绍

2.1. 架构介绍

BLE MESH SDK总体分为四个层次,自下而上分别为SoC蓝牙芯片层,Kernel 内核层,Service服务层和BT Applications 蓝牙应用层。

image.png

• Kernel

 内核层,包含标准的BLE5.0)/MESH(1.0)协议栈,Ali OS操作系统,芯片驱动。
AI 代码解读

• Service

 蓝牙服务层,
 Mesh Model组件,其中支持的Sig ModelsGeneric Level ModelGeneric Onoff Model,,Light Level ModelLight CTL Model等,此外还有一个Vendor Model,支持数据透传。
 Mesh Node组件,提供Mesh 节点入网和配置功能,开发者可以基于该组件开发Mesh节点应用
 Mesh Provisioner组件,支持MESH节点管理,包括新增Mesh节点,删除Mesh节点,获取节点信息等功能。
 Genie APP组件,天猫精灵Mesh组件,支持天猫精灵网络协议。
AI 代码解读

• BT Applications

 蓝牙应用层,包含灯控节点,开关节点,Provisioner AT模组和天猫精灵灯控节点。
AI 代码解读

2.2. 目录介绍

下面是BLE MESH SDK的目录结构,表格中介绍了各个目录的功能。
image.png

2.3 Mesh协议栈特性介绍

Mesh Profile v1.0特性支持
• Provisioner role(Advertising bearer and GATT bearer)
• Node role(Advertising bearer and GATT bearer)
• Relay feature
• Proxy feature (proxy server)
• Foundation Models

 Config server and client 
 Health server and client
AI 代码解读

Mesh Models支持
image.png

3. Mesh组件

本章节介绍SDK中包含的几个关键Mesh组件的功能和使用方法。
• Mesh Node组件
• Mesh Models组件
• Genie APP组件

3.1. Mesh Node

Mesh Node 支持 Mesh 节点配置和 Model 消息的接收功能。
组件的主要 API 如下表:

image.png

3.1.1 示例代码

● 初始化

 初始化Node节点,主要配置节点的设备名称,UUID,事件的回调。
AI 代码解读

image.png

● 回调处理

 Node节点在配网或者复位过程中会产生如下事件,开发者应当在userprovcb回调中处理
AI 代码解读

image.png
image.png

3.2. Mesh Models

Mesh Models组件提供Generic Onoff,Generic Level,Light Lightness,Light CTL的Server/Client Models,此外还有一个Vendor Model。

Mesh Model的API较多,下表列出几个主要的,其他的请参考《蓝牙 Mesh SDK API说明》
image.png

3.2.1 示例代码

● 初始化
初始化 Mesh Model 组件,主要配置需要使用的 Models。

image.png

● 回调处理
Mesh Model 组件根据使用的 Models 不同会产生不同的事件回调,下面是一个
灯控的设置的事件。
image.png

3.3 Genie APP

天猫精灵组件,支持天猫 Mesh Models,天猫精灵的接入,三要素写入 / 存储 / 获
取功能。
组件的主要 API 如下表:
image.png

3.3.1 示例代码

● 初始化
初始化天猫精灵组件

/* 初始化 */ genie_init();
 
AI 代码解读

●处理函数
以下内容需要在应用层定义和实现,可以参考 applicationsbluetoothgenie_
lightsrclight.c 中实现。

image.png
image.png
image.png
image.png
image.png
image.png

● 三要素写入
Genie APP 组件需要用到三要素才能接入天猫精灵,三要素的获取请参考天猫精
灵开发者网站。
在 Genie APP 内部有一个调试三要素,位于 modulesgenieappbasetritu
ple_default.h。
Genie APP 组件支持通过 CLI 命令写入和读取三要素。
命令如下:

/* 设置三要素 */ set_tt <product id> <key> <mac address> /* 获取三要素 */ get_tt
AI 代码解读

4. 应用开发

4.1 开发环境

环境搭建和烧录方法,请参考《CB6121 快速上手手册》 。

4.2 Mesh 灯控

Mesh 灯控示例请参考《MESH 灯控开发指南》。

4.3 Mesh 开关

Mesh 开关示例请参考《MESH 开关开发指南》。

5. AT Provisioner

Mesh SDK 中提供一个了 AT Provisoner 模组解决方案,开发者可以使用该方案对
其他 Mesh 节点进行配网和控制。
相关的 AT 命令和使用方法,请参考《MESH 配网模块用户手册》。

6. API 说明

SDK API 请参考《蓝牙 Mesh SDK API 说明》 。

添加班级群

阅读完今日份的文章分享后,别忘了打开钉钉APP,扫描下方训练营班群二维码👇,参与今日课程直播或观看直播回放,群内不定时配备讲师答疑~
学习完课程视频后,我们今天的学习才算正式结束哦~
test

目录
打赏
0
1
0
2
4751
分享
相关文章
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
31 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
137 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
117 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
40 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
69 23
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
32 18
为何教育机构需要强大的网络安全解决方案
近年来,教育行业从传统课堂快速转向在线课程和虚拟教室,疫情加速了这一进程。然而,数字化转型也带来了网络安全风险。身份治理与管理(IGA)解决方案如ManageEngine的ADManager Plus,能有效保护教育机构免受网络攻击,确保数据安全、简化用户管理并实现合规性。通过自动化流程,它不仅提升了安全性,还减轻了IT管理员的工作负担,确保资源访问的无缝性和准确性。
41 11
云原生应用网关进阶:阿里云网络ALB Ingress 全能增强
在过去半年,ALB Ingress Controller推出了多项高级特性,包括支持AScript自定义脚本、慢启动、连接优雅中断等功能,增强了产品的灵活性和用户体验。此外,还推出了ingress2Albconfig工具,方便用户从Nginx Ingress迁移到ALB Ingress,以及通过Webhook服务实现更智能的配置校验,减少错误配置带来的影响。在容灾部署方面,支持了多集群网关,提高了系统的高可用性和容灾能力。这些改进旨在为用户提供更强大、更安全的云原生网关解决方案。
573 19
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
97 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    12
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    42
  • 3
    【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
    4
  • 4
    基于昇腾用PyTorch实现传统CTR模型WideDeep网络
    7
  • 5
    PaSa:字节跳动开源学术论文检索智能体,自动调用搜索引擎、浏览相关论文并追踪引文网络
    32
  • 6
    阿里云基础设施网络2024年创新总结
    28
  • 7
    PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
    18
  • 8
    RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 StarNet,超级精简高效的轻量化模块
    17
  • 9
    RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
    14
  • 10
    RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构
    9
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等