实验十 ZStack 网状网络实验
实验十 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 网状网络实验的更多相关文章
- 实验九 ZStack 广播通信实验
实验九 ZStack 广播通信实验[实验目的]1. 了解 ZigBee 广播通信的原理2. 掌握在 ZigBee 网络中进行广播通信的方法[实验设备]1. 装有 IAR 开发工具的 PC 机一台2. ...
- VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager
VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager VMware vShield Manager是专为 VMware vCenter Server 集成 ...
- 第十八周java实验作业
实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: (3) 综合掌握java GUI 程序设 ...
- 第十六周Java实验作业
实验十六 线程技术 实验时间 2017-12-8 1.实验目的与要求 (1) 掌握线程概念: 多线程是进程执行过程中产生的多条执行线索,线程是比进程执行更小的单位. 线程不能独立存在,必须存在于进程 ...
- 第十二周java实验作业
实验十二 图形程序设计 实验时间 2018-11-14 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: Java的集合框架实现了对各种数据结构的封装. jav ...
- Linux基础入门(新版)(实验九-实验十二)
实验九 简单文本入门 一.常用的文本处理命令 二.文本处理命令 1.tr 命令 tr 命令可以用来删除一段文本信息中的某些文字.或者将其进行转换. 使用方式: tr [option]...SET1 [ ...
- 201671010447 杨露露 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 总结这学期软件工程学习获得 一 ...
- 201671010449 杨天超 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 1.掌握软件评审流程及内容 2.个人总结 实验一问题解答 实验一问题链接:https://ww ...
- 201671030113 李星宇 实验十四 团队项目评审&课程学习总结
项目 内容 所属课程 [所属课程(https://www.cnblogs.com/nwnu-daizh/) 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 ...
随机推荐
- Linux命令练习
1.开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语 2.使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 3. 使用命令退出虚拟终端2上登录的用户 ...
- 魅族pro 7详细打开Usb调试模式的方法
经常我们使用安卓手机链上Pc的时候,或者使用的有些APP比如我们公司营销小组经常使用的APP引号精灵,之前老版本就需要开启usb开发者调试模式下使用,现经常新版本不需要了,如果手机没有开启usb开发者 ...
- MySQL数据库需进行修改密码问题解决方案
两种方式可供大家进行参考: 第一种: 格式:mysqladmin -u用户名 -p旧密码 password 新密码 1.给root加个密码pass123: 首先在DOS下进入目录mysql\bin,然 ...
- hadoop题目(一)
一.简要描述如何安装配置一个开源hadoop,只描述即可,列出完整步骤. 答:①创建一个用户和用户组,用来管理hadoop项目: ②修改确定IP地址:vim /etc/sysconfig/netw ...
- My SQL随记 003 数据表基础操作语法
数据表 查看数据表 修改表名 修改字段名 修改字段数据类型 添加删除-字段 约束(主外键默认检查) 查看表结构: 语法:DESRIBE(描述) table_Name; DESC table_Name ...
- Beta冲刺 7
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10129067.html 作业博客:https://edu.cnblogs.com/campus ...
- win10切换AHCI模式
win10切换AHCI模式 笔记本电脑总是卡卡的,开机好慢,一狠心就买了一个固态硬盘装上.听说电脑开启AHCI模式跟固态硬盘更配哦.所以好好得鼓捣了一下电脑. 保证win10开启了安全模式, 如果没有 ...
- Python成长之路【第四篇】模块儿
模块儿&包(* * * * *) 模块儿(modue)的概念 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多 ...
- re模块基本用法和字符集
import re # . 能够替代任意字符 r= re.findall("a..c","abbcsd") print(r) # ^ 找最前面的 r_1 = r ...
- java并发中的Semaphore
什么是Semaphore Semaphore可以控制某个资源可被同时访问的个数(locks和synchronized锁,在任何时刻只允许一个任务访问一个资源),通过acquire()获取一个许可,如果 ...