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

相关文章
|
1月前
|
人工智能 运维 物联网
AI在蜂窝网络中的应用前景
AI在蜂窝网络中的应用前景
50 3
|
11天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
37 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
26天前
|
存储 监控 物联网
计算机网络的应用
计算机网络已深入现代生活的多个方面,包括通信与交流(电子邮件、即时通讯、社交媒体)、媒体与娱乐(在线媒体、在线游戏)、商务与经济(电子商务、远程办公)、教育与学习(在线教育平台)、物联网与智能家居、远程服务(远程医疗、智能交通系统)及数据存储与处理(云计算、数据共享与分析)。这些应用极大地方便了人们的生活,促进了社会的发展。
49 2
计算机网络的应用
|
29天前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
66 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
1月前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
18天前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
|
25天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
48 8
|
23天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
35 2
|
28天前
|
存储 网络协议 物联网
C 语言物联网开发之网络通信与数据传输难题
本文探讨了C语言在物联网开发中遇到的网络通信与数据传输挑战,分析了常见问题并提出了优化策略,旨在提高数据传输效率和系统稳定性。
|
28天前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
42 5