BLE MESH学习2——自定义MESH网络架构思考

BLE MESH学习2——自定义MESH网络架构思考

基于对WCH CH582这款单片机的了解,其可以实现mesh配网、朋友节点、低功耗节点和中继节点的角色,基本功能无问题。在此基础上,考虑满足IoT需求的MESH架构设计,作为后续设计的“白皮书”。

一、前置知识和条件

  1. CH582M的FLASH和ram支持为128个节点配网,官方后续发布CH584/585的芯片,ram增加到128KB,可以实现最多255个节点配网。(实际上,手机配网的上限为65525个,但是手机例程的测试并不顺利)
  2. CH582M工作在蓝牙频段,后续可以考虑GATT连接的方式进行OTA升级。(虽然感觉有点麻烦,因为要靠近设备并且只能手机操控,增加了复杂性)
  3. 环境安装了HASS,可以通过mqtt接收到自定义的传感器和器件,为后续MESH网络中的设备加入提供了必要平台。
  4. ESP32和AT指令,可以很方便让CH582M接入互联网络,利用MQTT通信将MESH网络中状态发布到网络中。

二、MESH设计需求

  1. 支持低功耗节点,如人体移动传感器、开关、温湿度传感器,利用纽扣电池或5号电池可以用2年以上。
  2. 支持接入HASS,方便对环境传感、灯、电器进行状态显示和控制。
  3. 支持OTA,能够利用无线网络进行固件升级不需要连线操控
  4. 支持100+设备同时运行。
  5. 支持配对,例如开关和LED的配对,实现方式类似于MQTT的订阅发布方式,但是无需中央节点调度。
  6. 可选:通过CH582的其他协议如LWNS为灯组控制提供更方便的控制方式,实现不占用MESH节点地址并且同步控制。

三、MESH设计架构

角色分配

  1. 配网者:利用CH582M或后续的CH584制作配网者,通过小屏幕和按键为附近的设备进行配网。(无奈之举,本想着用手机配网的,但是手机配网例程有些问题难以解决)。配网成功后将同步数据给网关,之后可以关机休眠。
  2. 网关:搭配ESP32,将MESH网络中的数据通过MQTT发布到MQTT服务器中。其接收配网者的节点信息,并发布自己的地址给所有节点,让他们在需要的时候发布状态给自己。(虽然网关也可以集成到配网者中,但是占用更多的ram可能导致配网者ram不够,也是考虑到后续可能可以通过手机配网,因此网关需要单独提出来)。
  3. 朋友节点:无需考虑功耗的节点,一直接着电源。
  4. 低功耗节点:开关、传感器等,需要时候进行通信,1h启动一次检查是否有数据发送给自己。

结构图

mesh网络框架

四、后续测试流程

  1. 测试MESH网络搭建过程。【基本完成】
  2. 测试获取节点信息。
  3. 测试网关广播自身地址和状态接收功能。
  4. 测试开关与灯控绑定功能。
  5. 测试节点加入和删除功能。
  6. 测试AT接入互联网测试。
    参考资料
    1) https://www.bilibili.com/read/cv18483671/
    2) https://blog.csdn.net/Mark_md/article/details/107879589
  7. 测试MQTT发布和接收功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558218.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

第170天:应急响应-战中溯源反制对抗上线CSGoby蚁剑Sqlmap等安全工具

目录 案例一:溯源反制-Webshell工具-Antsword 案例二:溯源反制-SQL注入工具-SQLMAP 案例三:溯源反制-漏洞扫描工具-Goby 案例四:溯源反制-远程控制工具-CobaltStrike 反制Server,爆破密码(通用&#x…

快餐食品检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

快餐食品检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

sql堆叠注入

准备知识: php中multi_query():一次可以执行多个sql语句比如:查询注入id1;update xxx; 定义:如果后端代码中,数据库执行的方法是multi_query(),那么就可以一次执行多个sql,也就可以…

java面向对之象类的继承与多态

目录 1.类的继承 图解 案例:创建一个动物类和一个猫类 1.代码 1)动物类 2)猫类 3.测试类 2.效果 2.父类方法的重写 案例:如何重写父类的方法 1.代码 1)Animal类 2)Dog类 3)测试类 2.效果 3.super关键字 案例:如何在子类中调用父类的方…

肺结节分割与提取系统(基于传统图像处理方法)

Matlab肺结节分割(肺结节提取)源程序,GUI人机界面版本。使用传统图像分割方法,非深度学习方法。使用LIDC-IDRI数据集。 工作如下: 1、读取图像。读取原始dicom格式的CT图像,并显示,绘制灰度直方图; 2、图像…

系统架构设计师论文《论企业集成平台的理解与应用》精选试读

论文真题 企业集成平台(Enterprise Imtcgation Plaform,EIP)是支特企业信息集成的像环境,其主要功能是为企业中的数据、系统和应用等多种对象的协同行提供各种公共服务及运行时的支撑环境。企业集成平台能够根据业务模型的变化快速地进行信息系统的配置…

使用XML实现MyBatis的基础操作

目录 前言 1.准备工作 1.1⽂件配置 1.2添加 mapper 接⼝ 2.增删改查操作 2.1增(Insert) 2.2删(Delete) 2.3改(Update) 2.4查(Select) 前言 接下来我们会使用的数据表如下: 对应的实体类为:UserInfoMapper 所有的准备工作都在如下文章。 MyBati…

github创建仓库并本地使用流程,以及问题src refspec xxx does not match any

1.在 GitHub 上创建一个新仓库 登录你的 GitHub 账户。 点击右上角的 “” 按钮,然后选择 “New repository”。 填写仓库名称(如 my-repo)。 (可选)添加描述,选择是否公开或私有仓库。 (可选&…

电层相关 -- Transponder Muxponder

光波长转换类单板(Optical Transponder Unit,简称OTU单板)主要将客户侧业务经过封装映射、汇聚等处理后,输出符合WDM系统要求的标准波长的光信号。OTU的主要功能有两类:Transponder 和Muxponder,简称TP和MP…

Python 字典(Dictionary) items(),pop(‘key‘)方法

描述 Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。 语法 items()方法语法: dict.items()参数 NA。 返回值 返回可遍历的(键, 值) 元组数组。 实例 以下实例展示了 items()函数的使用方法: tinydict {Google: …

使用Docker搭建WAF-开源Web防火墙VeryNginx

1、说明 VeryNginx 基于 lua_nginx_module(openrestry) 开发,实现了防火墙、访问统计和其他的一些功能。 集成在 Nginx 中运行,扩展了 Nginx 本身的功能,并提供了友好的 Web 交互界面。 文章目录 1、说明1.1、基本概述1.2、主要功能1.3、应用场景2、拉取镜像3、配置文件4、…

IPv6为什么没有完全代替IPv4

IPv4的设计始于20世纪70年代末,随着ARPANET的扩展和网络需求的增加,工程师们意识到需要一个更大规模、更灵活的地址系统。IPv4在1981年被正式定义为RFC 791,它成为了互联网协议套件的一部分,并迅速被广泛采用。 IPv4地址由32位(4字节)组成,通常以点分十进制表示。例如,…

宠物咖啡馆服务优化:SpringBoot框架的实现技巧

3系统分析 3.1可行性分析 通过对本基于Spring Boot的宠物咖啡馆平台的设计与实现实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于Spring Boot的宠物咖啡馆…

GNURadio 平台实现FM信号调制解调

一、FM 信号调制信号流图 波形图: 红色是已调制的FM信号,蓝色是调制信号波形。 频谱图: 瀑布图: 二、FM 信号解调信号流图 解调信号波形: 解调信号频谱: 具体可以通过audio sink 模块听音分析是否解调准确…

CC2530定时器1中断实现定时1-3

源码 #include "iocc2530.h"//引用CC2530头文件int t1_Count0; //定时器1溢出次数计数void Init_Led(void){ /*******************LED1初始化部分******************/P1SEL &~ 0x01; //设置P1_0口为通用I/O口P1DIR | 0x01; //设置P1_0口为输出口P…

机器学习篇-day03-线性回归-正规方程与梯度下降-模型评估-正则化解决模型拟合问题

一. 线性回归简介 定义 线性回归(Linear regression)是利用 回归方程(函数) 对 一个或多个自变量(特征值)和因变量(目标值)之间 关系进行建模的一种分析方式。 回归方程(函数) 一元线性回归: y kx b > wx b k: 斜率, 在机器学习中叫 权重(weight), 简称: w b: 截距, 在机…

react中css样式隔离

使用CSS Modules css模块化 1, 创建组件样式文件时以 xxx.module.css命名, 例如 Home.module.css 代替 Home.css 2, 在组件jsx导入样式文件时使用 import styles from ./xxx.module.css 导入 代替 import ./xxx.css 3, 在组件中需要设置样式的标签上添加class值, classNa…

如何扫描HTTP代理:步骤与注意事项

HTTP代理是一个复杂的过程,通常用于寻找可用的代理服务器,以便在网络中实现匿名或加速访问。虽然这个过程可以帮助用户找到适合的代理,但也需要注意合法性和道德问题。本文将介绍如何扫描HTTP代理,并提供一些建议和注意事项。 什…

python pyinstaller打包exe遇到报错:RuntimeError: input(): lost sys.stdin

在使用python中的pyinstaller命令打包exe遇到报错:RuntimeError: input(): lost sys.stdin 一、问题复现 import datetimedef record_log():project_name = input("请输入项目名称:")l

SpringBoot3响应式编程全套-Spring Webflux

目录 传送门前言一、组件对比二、WebFlux1、引入2、Reactor Core3、DispatcherHandler3.1、请求处理流程 4、注解开发4.1、目标方法传参4.2、返回值写法 5、文件上传6、错误处理7、RequestContext8、自定义Flux配置9、Filter 传送门 SpringMVC的源码解析(精品&…