Zigbee—基于Z-STACK组网

                                                     🎬慕斯主页修仙—别有洞天

                                                       ♈️今日夜电波:チノカテ—ヨルシカ

                                                                0:46━━━━━━️💟──────── 4:08
                                                                    🔄   ◀️   ⏸   ▶️    ☰ 

                                      💗关注👍点赞🙌收藏您的每一次鼓励都是对我莫大的支持😍


目录

一、组网的介绍 

二、基于Z-STACK组网 

        前言 

        星状

        树状

        网状  

         根据原理修改Z-STACK源码

1、修改panid

2、修改拓扑

3、增加一些定义

4、一些额外定义

         星状网组网成功后的演示视频


一、组网的介绍 

        Zigbee是一种基于IEEE 802.15.4标准的低功耗、短距离无线通信技术。它采用星型、树型和网状等多种组网方式。
星型组网方式:所有设备都连接到一个中心节点,所有的数据都由中心节点转发,这种组网方式适用于只需要一个中心节点的系统,例如家庭自动化系统或工业控制系统。
树型组网方式:每个设备都可以既是父节点又是子节点,形成一棵树形结构,这种组网方式适用于需要多个节点之间互相通讯的系统,例如传感器网络或智能家居系统。
网状组网方式:每个设备都可以作为任何其他设备的直接或间接邻居,形成一张网格状结构,这种组网方式可以实现设备间的全双工通信和高可靠性,适用于大规模的物联网系统。 

二、基于Z-STACK组网 

        前言 

        Zigbee组网至少需要三个Zigbee设备!其中一个为协调器!!! 

        星状

        Zigbee星状组网是一种基于中心节点的通信模式,在这种模式下,所有的设备都连接到一个中心节点,所有的通信都需要经过这个中心节点进行转发。星形组网的优点是结构简单、易于管理,而且可以实现快速的数据传输,因为所有的数据都只需要经过一次转发就可以到达目的地。
        在Zigbee星状组网中,中心节点通常是具有较高处理能力和存储容量的设备,它负责管理和控制整个网络。所有的设备都连接到中心节点上,并且只能与中心节点直接通信,而不能相互之间直接通信。
Zigbee星状组网的主要优点包括:

  * 结构简单:所有的设备都连接到一个中心节点,所有的通信都需要经过这个中心节点进行转发,因此网络的结构非常简单。
  * 管理和控制方便:中心节点负责管理和控制整个网络,因此可以通过中心节点轻松地管理和控制所有的设备。
  * 快速的数据传输:所有的数据都只需要经过一次转发就可以到达目的地,因此数据传输的速度非常快。

        但是,Zigbee星状组网也有一些缺点,比如网络的扩展性较差,如果需要增加新的设备,就必须增加中心节点的数量;此外,由于所有数据都必须经过中心节点进行转发,因此在网络拥塞的情况下,数据传输的速度可能会下降。如下为一个星状组网:

        由以上的组网示意图可见,Zigbee在组成星形网时,一定需要一个协调器节点!然后其它节点为路由器或者终端节点都可。

        通信规则:每一个路由器或终端节点都必须经过中央的协调器才能进行传输。

         

        树状

        Zigbee树状组网是一种类似于星状组网的通信模式,但是在这个模式下,每个设备都有一个唯一的父节点,设备之间的关系形成了一个层次结构,就像一棵树一样。在树状组网中,根节点是最高级别的设备,所有的其他设备都是它的子节点,它们都可以与根节点直接通信。
        在Zigbee树状组网中,每个设备都可以选择自己的子节点,但是只有根节点才能选择自己的父节点。这就意味着,每个设备都知道自己在树中的位置,以及自己的上级和下级设备。
Zigbee树状组网的主要优点包括:

  * 易于扩展:由于每个设备都有一个唯一的父节点,因此在增加新的设备时,只需要添加一个新的设备作为父节点的子节点即可,无需改变整个网络的结构。
  * 简化了管理:由于每个设备都知道自己在树中的位置,以及自己的上级和下级设备,因此网络的管理和控制变得相对容易。
  * 可以自适应变化:由于每个设备都有一个唯一的父节点,因此在网络发生变化时,例如某个设备出现故障或离线,网络可以通过重新选择父节点来保持稳定。

        然而,Zigbee树状组网也有一些缺点,比如当网络规模较大时,树状结构可能难以管理;此外,由于设备之间的关系是固定的,因此在网络发生变化时,如某个设备出现故障或离线,可能会导致网络不稳定。如下为一个树状组网:

         由以上的组网示意图可见,Zigbee在组成树状网时,也是一定需要一个协调器节点!然后其它节点为路由器或者终端节点都可。

        通信规则:但是需要注意的是:每一个路由节点都只能和他的父节点和子节点之间进行通信。如果需要从节点与节点之间需要发送数据,那信息就会沿着树的路由往上上传递到最近的一个祖先节点后,再往下传递到目标节点。

 

        网状  

        Zigbee网状组网是一种多对多的通信模式,在这种模式下,每个设备都可以既是发送者又是接收者,从而形成一个复杂的网络拓扑结构。相比于传统的星形组网,网状组网具有更高的可靠性和更强的覆盖能力。
        在Zigbee网状组网中,每个设备都可以选择多个邻居设备进行通信,并且可以通过这些邻居设备进一步扩大自己的通信范围。这意味着即使某些设备发生故障或者通信中断,也可以通过其他的邻居设备进行通信,从而保证了网络的稳定性和可靠性。
Zigbee网状组网的主要优点包括:

  * 高可靠性:即使某些设备发生故障,也可以通过其他的邻居设备进行通信,从而保证了网络的稳定性和可靠性。
  * 强大的覆盖能力:由于每个设备都可以选择多个邻居设备进行通信,并且可以通过这些邻居设备进一步扩大自己的通信范围,因此网络的覆盖能力非常强。
  * 节能:由于数据可以经过多个设备进行转发,因此可以大大降低数据传输的能量消耗。

        但是,Zigbee网状组网也有一些缺点,比如网络的复杂度较高,管理和维护起来比较困难;此外,由于数据需要经过多个设备进行转发,因此网络的延迟可能会比星形组网更高。如下为一个网状组网:

        由以上的组网示意图可见,Zigbee在组成网状网时,也是一定需要一个协调器节点!然后他包括多个路由节点和终端节点。

        通信规则:对于网状网络而言,他同树状网络其实通信规则差不多,但是相较于树状网络,他更具灵活性!在可能的情况下,路由节点之间是可以进行直接通信的。这也意味着其中一个通信路由路劲出了问题,信息仍然可以从其它的路劲传输过来。大家可以在组网成功后试着将一个路由器断电,看看信息是否能够传递。

         根据原理修改Z-STACK源码

 1、修改panid

        修改panid的原因是防止连错其它的Z-STACK网络,也是防止同环境受到其它网络的干扰,确保网络通信的安全可靠。如下图所示:(作者将panid改为了0x7777,但是也需要注意panid的范围,从0x0000到0xFFFF)

2、修改拓扑

        这里往下主要演示组星状网的操作。

        注意:在组网方面:星状、树状、网状,都是​​​​​​​改变相同的地方进行切换组网的!例如:以下也是通过改变以下109、110、111横的注释以达到切换组网方式的切换!

 3、增加一些定义

         分别在以下位置增加如下的三段代码,同样的这三段代码和上面一样,对应的相应的网络拓扑结构,要使用哪种进行切换即可。

    #define NWK_MODE            NWK_MODE_STAR#define NWK_MODE            NWK_MODE_TREE#define NWK_MODE            NWK_MODE_MESH

4、一些额外定义

         通过以上的三小点设置其实已经将网络拓扑设置成功了!当然Z-STACK中还是包括有OLED显示的,如果需要在OLED上显示相应的信息,可以修改以下信息:(根据自己的实际情况来修改!!!作者的修改仅仅作为参考!)分别根据自己设备对应的引脚修改相应的CS和DC相关。

         星状网组网成功后的演示视频

                


                         感谢你耐心的看到这里ღ( ´・ᴗ・` )比心,如有哪里有错误请踢一脚作者o(╥﹏╥)o! 

                                       

                                                                         给个三连再走嘛~  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每天五分钟计算机视觉:经典的卷积神经网络之VGG-16模型

VGG-16 Vgg16是牛津大学VGG组提出来的,相比于AlexNet来说,AlexNet的一个改进是采用连续的几个4*3的卷积核来代替AlexNet中的较大的卷积核(11*11,5*5)。前面我们也说过了使用小卷积核是优于大的卷积核的,因为多层非线性层可以增加网络深度来保证学习到更加复杂的模式,而且代…

TTM Squeeze挤牌指标选股公式,通过波动率和动量判断能量释放

TTM Squeeze(挤牌)是由约翰卡特(John Carter)发明的波动率和动量指标,在其著作《驾驭交易》中进行了介绍。当价格在窄幅区间震荡盘整为下一次大幅上涨或下跌积蓄能量时,就可以用挤牌指标来识别。Squeeze的意思是“挤压”&#xff…

速通MySql

一、简介 1、什么是数据库 数据仓库,用来存储数据。访问必须用SQL语句来访问 2、数据库的类型 1、关系型数据库:Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询&#…

模糊C均值(Fuzzy C-means,FCM)聚类的python程序代码的逐行解释,看完你也会写!!

文章目录 前言一、本文的原始代码二、代码的逐行详细解释总结 前言 接上一篇博客,详细解释FCM聚类的程序代码!! 一、本文的原始代码 import numpy as np import matplotlib.pyplot as plt from sklearn import datasets import skfuzzy as…

Open3D 最小二乘拟合二维直线(直接求解法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 平面直线的表达式为: y = k x + b

【软件推荐】卸载360软件geek;护眼软件flux;

卸载360软件geek f.lux: software to make your life better (justgetflux.com) 卸载完扫描残留 护眼软件 hf.lux: software to make your life better (justgetflux.com)https://justgetflux.com/https://justgetflux.com/

【Java8系列06】Java8数据计算

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

应用于智慧工地的AI边缘计算盒子+AI算法软硬一体化方案

智慧工地解决方案,围绕施工工地最常见的工人工服识别、安全帽佩戴识别、人脸识别、安全周界检测、打电话/吸烟、摔倒检测、明火检测、渣土车、土堆裸露识别等一系列子场景专门推出的通用解决方案,着眼工地安全施工、规范人员进出、保护设备安全等刚性需求…

vscode插件问题

1 Vscode code颜色变化 最外层标签颜色变成白色 其他标签有颜色,css代码颜色有些变成白色 是安装的另一个插件vue影响的,卸载就能恢复正常的颜色 2 配置Vue项目的代码片段 css 样式代码片段 配置css.json上后偶尔能用偶尔不能用,Vscode 右下…

Windows核心编程 远程线程注入

目录 线程安全 C线程 C STL线程 远程线程注入概述 相关API CreateRemoteThread LoadLibrary VirtualAllocEx FreeLibrary GetProcAddress 远程线程注入 DLL卸载 调试DLL 线程安全 变量在单线程和在多线程都不会出问题 - 线程安全 变量在多线程出问题&#xff0c…

CCC数字车钥匙(八)——BLE配对相关字段

2.1 配对连接协议 2.1.3 所有者配对广播 对于所有者配对,仅支持Legacy LE 1M PHY。ADV_IND需要按照Section 2.3.1.1 Volume 6 Part B。 事件类型:无指向可连接和可扫描。 ADV_IND中包含广播地址和广播数据,如下所示,其中广播地址…

TZOJ 1402 Bitset

答案&#xff1a; #include <stdio.h> int main() {int n 0, j 0; while (scanf("%d", &n) ! EOF && (n>0 && n<1000)) //多组输入{int arr[32], i 0;while (n > 0) {arr[i] n % 2; //除2取余法n / 2;}for (j i -…

力扣题:字符的统计-12.1

力扣题-12.1 [力扣刷题攻略] Re&#xff1a;从零开始的力扣刷题生活 力扣题1&#xff1a;451. 根据字符出现频率排序 解题思想&#xff1a;统计字符出现的个数&#xff0c;进行排序即可 class Solution(object):def frequencySort(self, s):""":type s: str:…

【数据结构】哈夫曼树(Huffman Tree)和哈夫曼编码(Huffman Coding)

哈夫曼树&#xff08;Huffman Tree&#xff09;和哈夫曼编码&#xff08;Huffman Coding&#xff09;是数据压缩领域常用的技术。哈夫曼树是一种特殊的二叉树&#xff0c;用于构造哈夫曼编码&#xff0c;而哈夫曼编码则是一种变长编码&#xff0c;用于压缩数据。 在解释哈夫曼…

文心一言 VS 讯飞星火 VS chatgpt (147)-- 算法导论12.2 2题

二、用go语言&#xff0c;写出 TREE-MINIMUM 和 TREE-MAXIMUM 的递归版本。 灵捷3.5 。 文心一言&#xff1a; 以下是用 Go 语言编写的树的最大值和最小值的递归版本代码&#xff1a; package main import ( "fmt" ) type TreeNode struct { Val int Le…

【tower-boot 系列】MybatisPlus 集成

Mybatis、MybatisPlus 简单介绍 MybatisPlus 集成 一、pom 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><exclusions><exclusion><groupId>com.zaxxer…

python简单进阶之web框架:fastapi使用教程

原文&#xff1a;python简单进阶之web框架&#xff1a;fastapi使用教程 - 知乎 这是简单进阶教程系列第四篇&#xff0c;本系列文章主要介绍那些可以很快上手的进阶库。 我其实学过一段时间Django框架&#xff0c;但是半途而废了&#xff0c;我觉得可能还是简单一点的框架比较适…

智能优化算法应用:基于象群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于象群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于象群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.象群算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

网络类型解析(基础):探索通信世界的多样面貌

在当今数字化时代&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。从个人设备之间的直接通信到全球范围的数据传输&#xff0c;不同类型的网络为我们提供了多种连接方式和通信选择。透过对这些网络类型的解析&#xff0c;我们将更好地理解它们的特点、优势和适用场…

JMX的使用

1. 定义和意义 JMX是Java Management Extention的缩写&#xff0c;出发点是让外部通过属性/方法来读取或设置程序状态。对于提供对外服务的程序来说&#xff0c;天生就有这样的能力&#xff0c;Web程序通过HTTP接口对外暴露&#xff0c;RPC应用通过RPC接口暴露。不过带来的问…