实验 ZStack 网状网络实验
【实验目的】
1. 了解 ZigBee 网状网络结构
2. 掌握构建网状网络的方法
【实验设备】
1. 装有 IAR 开发工具的 PC 机一台
2. 实验箱一台
3. CCDebugger(以及 USB A-B 延长线)一个
4. USB Mini 延长线一根
【实验要求】
1. 编程要求:使用协议栈提供的 API 函数编写应用程序。
2. 实现功能:构建网状网络进行数据通信。
3. 实验现象:协调器和路由器通信指示灯(D9)闪烁,其他节点通信指示灯(D9)熄灭,说明
有节点通过路由器向协调器发送数据,网状网络构建 成功。
【实验原理】
通过设置网络中各个节点的网络拓扑参数为网状网组网方式,使协调器建立一个 ZigBee 网络,其
他终端节点连接到网络时,以协调器节点或者路由器节点作为父节点,构成树状网络拓扑结构。并通过“ZigBee 调试助手”查看现象。

实验流程图

1.打开NWK中的nwk_globals.h,看到网络拓扑形状是由如图 2.161 所示的

“ NWK_MODE_STAR ”(星型网)、“ NWK_MODE_TREE ” ( 树 状 网 ) 、

“NWK_MODE_MESH”(网状网)3 个宏定义作为网络参数确定的;

2.修改Zigbee节点组网的拓扑结构参数,

改为拓扑结构为网状连接方式;

3. 使用实验箱上的旋钮选中协调器节点,并选择编译协调器的代码,将代码烧进节点,调试并退出;

4.选择路由器节点,转换节点,将此节点指定为路由器节点,将代码烧进节点,调试并退出,重复第4步骤可对指定路由器节点,这里我指定了两个路由器节点;

5.选择终端节点,转换另一个节点,打开“SAPP_Device.h”文件,取消火焰传感器的注释,将火焰传感器的代码烧进此节点,指定为火焰传感器,调试并退出;

6.转换另一个节点,打开“SAPP_Device.h”文件,取消温湿度传感器的注释,将温湿度传感器的代码烧进此节点,指定为温湿度传感器,调试并退出;

7.打开Zigbee调试助手,用USB连接PC机和实验箱,点击Zigbee助手的“打开”按钮,(在PC机上的设备管理器选择端口为COM5);

可以看到如上图的网络拓扑结构图。

实验感想:

通过这次实验了解了 ZigBee 网状网络结构,掌握了构建网状网络的方法。实验过程中,出现了一些小困难,但是通过按部就班,一步一步顺着实验步骤做下来,排除故障,最终把拓扑图弄出来了,在过程中掌握了关于Zigbee网络结构的构建方法,通过实践出真理。

实验代码

火焰传感器

#ifndef _SAPP_DEVICE_H_

#define _SAPP_DEVICE_H_

#include "SAPP_FrameWork.h"

#ifdef __cplusplus

extern "C"

{

#endif

enum {

DevFire,                        // 火焰};

#if !defined( ZDO_COORDINATOR ) && !defined( RTR_NWK )

#define HAS_FIRE                  // 火焰传感器

#ifdef __cplusplus

}

#endif

#endif//_SAPP_DEVICE_H_

温湿度传感器

#ifndef _SAPP_DEVICE_H_

#define _SAPP_DEVICE_H_

#include "SAPP_FrameWork.h"

#ifdef __cplusplus

extern "C"

{

#endif

enum {

DevTemp = 1,                    // 空气温度

DevHumm,                        // 空气湿度

};

#if !defined( ZDO_COORDINATOR ) && !defined( RTR_NWK )

#define HAS_TEMP                  // 温度传感器

#define HAS_HUMM                  // 湿度传感器

#ifdef __cplusplus

}

#endif

#endif//_SAPP_DEVICE_H_

实验十 ZStack 网状网络实验的更多相关文章

  1. 实验九 ZStack 广播通信实验

    实验九 ZStack 广播通信实验[实验目的]1. 了解 ZigBee 广播通信的原理2. 掌握在 ZigBee 网络中进行广播通信的方法[实验设备]1. 装有 IAR 开发工具的 PC 机一台2.  ...

  2. VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager

    VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager VMware  vShield Manager是专为 VMware vCenter Server 集成 ...

  3. 第十八周java实验作业

    实验十八  总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...

  4. 第十六周Java实验作业

    实验十六  线程技术 实验时间 2017-12-8 1.实验目的与要求 (1) 掌握线程概念: 多线程是进程执行过程中产生的多条执行线索,线程是比进程执行更小的单位. 线程不能独立存在,必须存在于进程 ...

  5. 第十二周java实验作业

    实验十二  图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: Java的集合框架实现了对各种数据结构的封装. jav ...

  6. Linux基础入门(新版)(实验九-实验十二)

    实验九 简单文本入门 一.常用的文本处理命令 二.文本处理命令 1.tr 命令 tr 命令可以用来删除一段文本信息中的某些文字.或者将其进行转换. 使用方式: tr [option]...SET1 [ ...

  7. 201671010447 杨露露 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 总结这学期软件工程学习获得 一 ...

  8. 201671010449 杨天超 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 1.掌握软件评审流程及内容 2.个人总结 实验一问题解答 实验一问题链接:https://ww ...

  9. 201671030113 李星宇 实验十四 团队项目评审&课程学习总结

    项目 内容 所属课程 [所属课程(https://www.cnblogs.com/nwnu-daizh/) 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 ...

随机推荐

  1. 关于:无法创建链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的实例 (错误:7302)

    本人接触和使用Oracle数据库才有一个季度的时间,问题比较白,大神请无视本文. 环境: 1.数据服务器,windows2008R2,Oracle11g 2.报表服务器,windows2008R2,S ...

  2. ImportError libcublas.so.9.0

    What to do when you've installed cuda and tensorflow, but you get this error right after you import ...

  3. 设计模式-builder(构造器模式)

    好处: 多个属性时,可以清楚明了知道属性, 重叠构造起器的安全性和JavaBeans模式的可读性 只需要制定需要建造的类型就可以得到他们 实例: public class NutritionFacts ...

  4. java-js知识库之二——canvas绘制炫彩气泡

    现在使用canvas绘制气泡,虽说很多人都已经实现过了,可能方法都大同小异,但自己写和看别人写完全是两码事,自己会写的才是自己的,话不多说,直接上代码. 先来一张效果图: 现在上代码,代码有详细的注释 ...

  5. MarkdownPan2 简单使用指南

    markdown 简单使用指南 一级标题 二级标题 三级标题加代码 四级标题 这里是加粗 这里是正文and English 888 这里有正文嵌入代码这种样式 这里是代码块 这种使用的代码块 还有引用 ...

  6. angular $resouse服务

    创建服务 var taskInstancesResource = function ($resource) { var resource = $resource('/ssc-cutover/rest/ ...

  7. Qt笔记之Q_DECLARE_METATYPE(Type)

    首先看一看QVariant这个类,我们可以把它当做一个万能数据类型,需要的时候能转换为一种特定的类型. 使用canConvert()函数检查是否能转换为你想要的数据类型,结构为:bool QVaria ...

  8. python中的lambda表达式

    lambda是python中匿名函数的写法  我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def  plus(a,b): return a+b lambda方法  ...

  9. selenium多窗口切换定位

    from selenium import webdriverimport unittest,time,refrom selenium.webdriver.common.keys import Keys ...

  10. WordCount(java)

    github项目链接 https://gitee.com/huwenli/Wc.git 1.项目简介 WordCount的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格 ...