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.rhkb.cn/news/207501.html

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

相关文章

java分布式锁分布式锁

java分布式&锁&分布式锁 锁 锁的作用:有限资源的情况下,控制同一时间段,只有某些线程(用户/服务器)能访问到资源。 锁在java中的实现: synchronized关键字并发包的类 缺点:只对单个的…

为何Go爬虫依然远没有Python爬虫流行

编程语言有很多种,哪种编程适合爬虫具体还得因项目而异。就以我常用GO和Python语言交替来写爬虫一样,针对不同项目采用不同语言来写爬虫。至于python为什么相比go更受欢迎,我总结了下面几种原因。 Go语言和Python语言在爬虫开发上的流行度差…

稻盛和夫:毕生经验总结出的36条管理经验,总有一条能戳中你。

大家好,我是老原。 进入职场,每个道理在每个人身上都有不同的理解。 大家经理不同,血泪自然不同,毕竟人类的悲喜并不相通,只有总结下来的经验才最有用。 我平时给你们分享的硬干货比较多,这种软道理写的…

Git——使用Git进行程序开发

主要介绍个人开发提交记录的主要流程,包括以下内容: 索引- 提交的暂存区。查看工作的状态和内部变更。如何读取用于描述变更的已扩展统一diff格式。支持查询和交互的提交,修改提交。创建、显示和选择(切换)分支。切换…

数据结构总复习

文章目录 线性表动态分配的顺序存储结构链式存储 栈与队列栈顺序栈链栈 队列 线性表 动态分配的顺序存储结构 通过分析代码,我们发现,要注意什么: 要分清你的下标Insert 函数是可以用来没有元素的时候,增加元素的Init(或者Crea…

Servlet概念视频笔记

学习地址:121-尚硅谷-Servlet-什么是Servlet_哔哩哔哩_bilibili 目录 1.Servlet技术 a.什么是Servlet b.手动实现Servlet程序 c.url地址如何定位到Servlet程序去访问 d.Servlet的生命周期 e.GET 和 POST 请求的分发处理 f.通过继承 HttpServlet 实现 Servlet程序 g.使用…

微服务架构:解析分布式系统的演进

目录 微服务是什么? 微服务的优势 微服务的挑战 应对微服务挑战的方法 结论 在当今快速发展的软件开发领域,微服务架构成为一种备受瞩目的设计理念,被广泛应用于构建灵活、可扩展的分布式系统。本文将深入探讨什么是微服务,为…

论文阅读:“Appearance Capture and Modeling of Human Teeth”

文章目录 AbstractIntroductionMethod OverviewTeeth Appearance ModelEnamelDentinGingiva and oral cavity Data AcquisitionImage captureGeometry capture ResultsReferences Abstract 如果要为电影,游戏或其他类型的项目创建在虚拟环境中显示的人类角色&#…

模糊C均值(Fuzzy C-means,FCM)聚类的可运行的python程序代码,复制即可用!!切记需要安装库 scikit-fuzzy

文章目录 前言一、安装库 scikit-fuzzy二、具体程序代码(复制可运行)三、结果展示总结 前言 模糊C均值(Fuzzy C-means,FCM)聚类是一种软聚类方法,它允许数据点属于多个聚类,每个数据点对所有聚…

Matlab 点云线性指数计算(加权)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 思路其实很简单,即对每个邻近点集中的点,根据其到点集中心的距离进行加权处理(权重函数),之后再基于加权之后的点获取其协方差矩阵,最后再求取其相关的特征值,以此来获取该点的线性指数。相关公式如下所示:…

IntelliJ IDEA安装使用教程

IntelliJ IDEA是一个流行的Java 集成开发环境(IDE),由JetBrains公司开发。它是一款全功能的IDE,支持多种编程语言,如Java、Kotlin、Groovy、Scala、Python、JavaScript、HTML、CSS等等。IntelliJ IDEA 提供了高效的代码…

docker-compose脚本编写及常用命令

安装 linux DOCKER_CONFIG/usr/local/lib/docker/cli-plugins sudo mkdir -p $DOCKER_CONFIG/cli-plugins sudo curl -SL https://521github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose sudo c…

AntDB“超融合+流式实时数仓”——颠覆50年未变的数据库内核

流式处理引擎,颠覆50年未变的数据库内核 流式处理的概念 2001年9月11日,美国世贸大楼被袭击,美国国防部第一次将“主动预警”纳入国防的宏观战略规划。而IBM作为当时全球最大的IT公司,承担了大量基础支撑软件研发的任务。其中200…

2021年11月10日 Go生态洞察:Twelve Years of Go

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

计算机网络:快速了解网络框架

文章目录 前言一、什么是Internet?1.从具体构成角度什么是协议? 2.从服务角度3小结 二、网络边缘1.采用网络设施面向连接服务(TCP)2.采用基础设施的无连接服务(UDP) 三、网络的核心1.电路交换2.分组交换3.分…

软件工程 - 第8章 面向对象建模 - 2 静态建模

静态建模(类和对象建模) 类和对象模型的基本模型元素有类、对象以及它们之间的关系。系统中的类和对象模型描述了系统的静态结构,在UML中用类图和对象图来表示。 类图由系统中使用的类以及它们之间的关系组成。类之间的关系有关联、依赖、泛…

Google Chrome 下载 (离线版)

1 访问网址 Google Chrome 网络浏览器 2 点击 下载Chrome 3 直接运行 ChromeStandaloneSetup64.exe 其他: ####################### 谷歌浏览器 (Google Chrome) 最新版离线安装包下载 https://www.iplaysoft.com/tools/chrome/#google_vignette Google Chrome …

【译】Spring 6 入参数据校验: 综合指南

原文地址:Spring 6 Programmatic Validator: A Comprehensive Guide 一、前言 在 Spring 6.1 中,有一个非常值得注意的重要改进——编程式验证器实现。Spring 长期以来一直通过注解支持声明式验证,而 Spring 6.1 则通过提供专用的编程式验证…

kafka学习笔记(一)--脑裂

我知道你想裂,但你先别裂 目录 脑裂Kafka脑裂实验Kafka如何防止脑裂--Leader Epochepoch的局限性ISR列表ISR列表的伸缩机制 脑裂 用集群部署的大多数的分布式系统无可避免会面临脑裂问题。简单来说,脑裂就是在同一时刻出现了两个“Leader(或…

Vue+Element-ui实例_在form中动态校验tag标签

1.开发需求 在日常开发中,我们会遇到form表单的动态添加和校验,当我们需要在动态添加的内容中再次动态使用输入框的时候,就会变得很繁琐,我在网上找了很多案例,没有符合自己需求的内容,只好闲暇时间自己搞…