蓝牙mesh组网实践(节点功能介绍)
未配网设备在配好网,被纳入网络后,可称之为节点。
蓝牙mesh网络中,节点可以有选择地支持四大功能——朋友、低功耗、转发、代理功能,可以复用多个功能(由于单片机硬件限制,ch582除了复用转发功能外不建议复用其他功能),或者作为边缘节点或者说普通节点——不启用任何一个功能,做好用户自定义的工作即可。
朋友节点和低功耗节点可以说是蓝牙mesh组网中的Feature了。
低功耗节点的低功耗,一部分要归功于朋友节点,朋友节点可以说是包揽了低功耗节点的消息“接收”功能。就像“菜鸟驿站”和“收件人”,在消息传递给与朋友节点相连的低功耗节点时,朋友节点会先代收(菜鸟驿站收到包裹),再由低功耗节点定时询问朋友节点是否有消息,有则接收(收件人去取件),没有就下次再说。这就给低功耗节点节省了功耗,不用时刻去抓取广播层中的数据,查看是否是发给自己的(收件人有自己的学习工作,不用不停地查询是否有包裹)。
沁恒的mesh协议栈中规定,低功耗节点上电并配网或是恢复网络信息后,会主动向外广播建立朋友关系的消息,自动与朋友节点相连,之后才能进行消息的接收。在往外发送消息时,低功耗节点就不用考虑对方是否有能力收到消息,配网成功后直接广播发出去就好了(甚至可以砍掉收数据功能,不用连接朋友节点就可以发数据,但是如肉夹馍不要馍一样奇怪且丢包率无保障,不推荐这么用)。
582做朋友节点默认支持4个低功耗节点(可以支持更多,在低功耗节点2sPOLL一次数据的情况下,至少可以支持10个),默认开启转发功能。理论上只要ram够用,朋友节点就能支持更多低功耗节点。如果需要一个朋友节点支持多个低功耗节点,比如说50+个低功耗节点,每个低功耗节点10sPOLL一次,那582做朋友节点ram不够用,可以考虑用208。
朋友节点↓

低功耗节点↓

转发节点一般是网络内部的节点,边缘节点可以不用启用转发功能,或者在开启/复用转发功能的节点较密集的地方减少转发功能的启用,以减少广播层的压力。
转发功能已由协议栈处理好,在app_mesh_config.h中使能一下就能实现自动转发,除了低功耗节点考虑到功耗要求外,其他节点都默认开启/复用了转发功能。转发过程由底层代码完成,不会告知用户层。转发功能可由下面的宏定义打开↓

代理节点可以实现通过手机APP对其配网,只不过代理节点proxy例程中运用的是BLE上层的mesh协议来实现连接手机,而自配网包含外设(即手机配网)例程中是走BLE传输配网信息后,芯片拿着配网信息进行自配网。由于proxy例程对手机APP有支持mesh功能的要求,需要APP开发人员储备有mesh协议栈相关知识,故不太推荐。如果需要测试,除了proxy例程外,也可以用天猫精灵例程在下图位置启用代理功能与GATT层配网功能,用nRF Mesh这个APP测试。

小贴士:①配网流程和工作流程是分开的,所有节点都需要先配网再实现节点功能,因为消息都在广播层传输,没有点对点的连接。配网后即各个节点分配到了网络地址后,消息才有落脚点,各节点才能各司其职。对于低功耗节点来说,比如说采集环境温度是它的工作;对于朋友节点来说,支持低功耗节点的接收数据是它的本职工作,转发数据是例程中默认开启的“转发”功能的兼职工作(保证附近有转发节点的情况下,可以在app_mesh_config.h中开启或关闭相关功能)。
②蓝牙mesh网络中所有的消息最终都通过BLE广播承载层传输,故低功耗节点在配网后发消息能够不依赖朋友节点,直接发出去——反正是广播,谁抓到包了谁就往外转发至目标节点。
③在582官方例程中,不启用代理功能也能实现与手机通信,不过是走BLE而不是mesh,也就是说芯片可以同时跑mesh与BLE的从机代码,手机作为BLE主机与芯片作为BLE从机连接通信。在后缀有_with_peripheral的工程中都是如此工作的。
蓝牙mesh组网实践(节点功能介绍)的更多相关文章
- 蓝牙mesh介绍
了解一下关于蓝牙Mesh的知识. 蓝牙mesh网络使用,并且依赖于低功耗蓝牙(BLE).低功耗蓝牙技术是蓝牙mesh使用的无线通信协议栈. 蓝牙BR / EDR能够实现一台设备到另一台设备的连接和通信 ...
- 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)
GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...
- [蓝牙前沿应用] 照明即平台 —— 通过蓝牙增强服务提高照明投资回报率(蓝牙MESH、定位AoA、AoD)
1.照明即平台(LAAP) 随着照明设施向LED转型,他们也在利用类似于蓝牙MESH的技术,创建一个可连接的照明平台,作为他们建筑的中枢神经系统.这些系统除了提供先进的照明控制,还建立了一个增强版 ...
- 蓝牙协议分析(3)_BLE协议栈介绍
1. 前言 通过“蓝牙协议分析(2)_协议架构”的介绍,大家对蓝牙协议栈应该有了简单的了解,但是,肯定还有“似懂非懂.欲说还休”的感觉.有这种感觉太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议, ...
- SIG蓝牙mesh笔记2_mesh组成
目录 SIG 蓝牙 mesh 组成 mesh网络概述 网络和子网 设备和节点 devices & nodes 入网 mesh中的几个概念 智能插座例子 SIG 蓝牙 mesh 组成 mesh网 ...
- 关于蓝牙Mesh您必须知道的七件事
蓝牙技术联盟于7月19日正式宣布,蓝牙(Bluetooth)技术开始全面支持Mesh网状网络.全新的Mesh功能提供设备间多对多传输,并特别提高构建大范围网络覆盖的通信能力,适用于楼宇自动化.无线传感 ...
- 常见无线组网分析(NB-IOT组网和Mesh组网)
NB-IOT LoRa Zigbee WIFI 蓝牙 组网方式 基于现有蜂窝组网 基于LoRa网关 基于Zigbee网关 基于无线路由器 居于蓝牙Mesh的网关 网络部署方式 节点 节点 + 网关 ...
- 什么,kafka能够从follower副本读数据了 —kafka新功能介绍
最近看了kafka2.4新版本的一些功能特性,不得不说,在kafka2.0以后,kafka自身就比较少推出一些新的feature了,基本都是一些修修补补的东西.倒是kafka connect和kafk ...
- VUE+Element 前端应用开发框架功能介绍
前面介绍了很多ABP系列的文章<ABP框架使用>,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机 ...
- 蓝牙mesh网络技术的亮点
蓝牙mesh网络技术的亮点 The highlights of Bluetooth mesh networking technology 导言 蓝牙是当今最主要的低功耗无线技术之一,对无线设备用户和开 ...
随机推荐
- Openmp Runtime 库函数汇总(下)——深入剖析锁🔒原理与实现
Openmp Runtime 库函数汇总(下)--深入剖析锁原理与实现 前言 在本篇文章当中主要给大家介绍一下 OpenMP 当中经常使用到的锁并且仔细分析它其中的内部原理!在 OpenMP 当中主要 ...
- MySQL 嵌套子查询 with子句 from子查询 in子查询 join组合
一.适用场景和方法 (1)适用场景 考虑查询过程中是否存在以下情况: 查询某些数据时需要分组才能得到,某些数据不需要分组就能得到或者分组条件不同: 查询某些数据时需要where条件,某些列不需要whe ...
- C#中检查null的语法糖,非常实用
c#处理null的几个语法糖,非常实用.(尤其是文末Dictionary那个案例,记得收藏) ??如果左边是的null,那么返回右边的操作数,否则就返回左边的操作数,这个在给变量赋予默认值非常好用. ...
- 使用linux命令直接在网上下载文件,解压,改名
举例: 我们想要在服务器某个路径下,下载一个node.js包 操作如下 假如文件地址为https://npm.taobao.org/mirrors/node/v16.9.1/node-v16.9.1- ...
- 解决使用linux部署nodejs服务测试代码返回中文是乱码
今天写了个简单的node.js文件 代码如下 var http = require('http'); http.createServer(function (request, response) { ...
- echarts图例过多,折线过多颜色不知道怎么分配怎么办??优化如下
优化一:很简单,echarts自身支持legend图例分页,加了分页就优化了图例过多情况. legend['type']: 'scroll', // 添加这一行代码即可实现图例分页功能 option ...
- C#零基础小白快速入门
前言 本文写给想学C#的朋友,目的是以尽快的速度入门 C#好学吗? 对于这个问题,我以前的回答是:好学!但仔细想想,不是这么回事,对于新手来说,C#没有那么好学. 反而学Java还要容易一些,学Jav ...
- Node.js学习笔记----day05(MongonDB详情)
认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.es6中的find() 方法的原理 EcmaScript 6 对数组新增了很多方法 比如,find find 接收一个方法作为参数,方法内 ...
- 各种排序算法实现(JAVA)
转载: https://blog.csdn.net/qq_42453117/article/details/100036347 Exer010Sort01BubbleSortV1 import ja ...
- Pytest插件之pytest-base-url切换测试环境
Pytest插件之pytest-base-url切换测试环境 安装 pip install pytest-base-url 应用场景 利用参数--base-url或者配置(pytest.ini中ba ...