蓝牙 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

 内核层,包含标准的BLE(5.0)/MESH(1.0)协议栈,Ali OS操作系统,芯片驱动。

• Service

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

• BT Applications

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

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

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,事件的回调。

image.png

● 回调处理

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

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();
 

●处理函数
以下内容需要在应用层定义和实现,可以参考 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

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

相关文章
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
5月前
|
监控 安全 Shell
管道符在渗透测试与网络安全中的全面应用指南
管道符是渗透测试与网络安全中的关键工具,既可用于高效系统管理,也可能被攻击者利用实施命令注入、权限提升、数据外泄等攻击。本文全面解析管道符的基础原理、实战应用与防御策略,涵盖Windows与Linux系统差异、攻击技术示例及检测手段,帮助安全人员掌握其利用方式与防护措施,提升系统安全性。
246 6
|
9月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
1049 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
8月前
|
人工智能 监控 安全
NTP网络子钟的技术架构与行业应用解析
在数字化与智能化时代,时间同步精度至关重要。西安同步电子科技有限公司专注时间频率领域,以“同步天下”品牌提供可靠解决方案。其明星产品SYN6109型NTP网络子钟基于网络时间协议,实现高精度时间同步,广泛应用于考场、医院、智慧场景等领域。公司坚持技术创新,产品通过权威认证,未来将结合5G、物联网等技术推动行业进步,引领精准时间管理新时代。
|
9月前
|
存储 SQL 运维
中国联通网络资源湖仓一体应用实践
本文分享了中国联通技术专家李晓昱在Flink Forward Asia 2024上的演讲,介绍如何借助Flink+Paimon湖仓一体架构解决传统数仓处理百亿级数据的瓶颈。内容涵盖网络资源中心概况、现有挑战、新架构设计及实施效果。新方案实现了数据一致性100%,同步延迟从3小时降至3分钟,存储成本降低50%,为通信行业提供了高效的数据管理范例。未来将深化流式数仓与智能运维融合,推动数字化升级。
473 0
中国联通网络资源湖仓一体应用实践
|
4月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
505 11
|
11月前
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
478 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
5月前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
355 0
|
5月前
|
安全 Linux
利用Libevent在CentOS 7上打造异步网络应用
总结以上步骤,您可以在CentOS 7系统上,使用Libevent有效地构建和运行异步网络应用。通过采取正确的架构和代码设计策略,能保证网络应用的高效性和稳定性。
180 0

热门文章

最新文章