ZigBee TI ZStack CC2530 5.1 实例(一)大规模组网实验

(配套源码文档软件等资源,可移步QQ群:拿破仑ZigBee

 

本文中,我们将验证Z-Stack协议栈的中等规模组网实验,看看当ZigBee网络中的节点逐渐增加之后,网络是否依旧稳定。

本文仅讲解如何进行实验验证,关于实验原理,感兴趣的读者可以自行下载代码阅读。

PS:本想多多益善,但由于资源有限,凑了很久终于也才凑齐50个ZigBee设备(开发板/模块)。姑且就先以50个节点进行实验,以后有机会再做更多节点的实验!

 

一、实验准备

1、硬件准备

(1)ZigBee设备(必须是基于TI CC2530的模块或开发板)若干个,其中必须至少有一个设备可以与电脑通信(串口转USB);

本次实验所构建的ZigBee网络,由1个ZigBee协调器、若干个ZigBee路由器和若干个ZigBee终端设备组成。所以,实验设备数量至少为两个。当然,本次实验为中等规模组网实验,自然是节点数量越多越好!

本次实验使用的ZigBee设备数量为50个,如下图所示:

ZigBee TI ZStack CC2530 5.1 实例(一)大规模组网实验_第1张图片

(2)SmartRF04EB下载器一个;

(3)USB线(供电线)若干根;

(4)杜邦线若干根;

2、软件准备

(1)SmartRF Flash Programmer 1.12.8;

(2)ZigBee Sensor Monitor 1.2.0。

二、实验介绍

1、本次实验三种ZigBee设备(协调器、路由器、终端设备)都有涉及到,各自在ZigBee网络中扮演不同的角色。

(1)ZigBee协调器:作为ZigBee网络中的网关,负责创建整个ZigBee网络,并通过串口与电脑实现数据通信;

(2)ZigBee路由器:作为ZigBee网络中的中继设备,ZigBee终端设备可以通过ZigBee路由器加入ZigBee网络,用于扩展整个ZigBee网络;

(3)ZigBee终端设备:作为ZigBee网络中的终端节点,类似于网络的“末梢”。它可以加入ZigBee网络,但其余ZigBee设备不可以通过它加入ZigBee网络。

2、当所有ZigBee设备全部上电后,在电脑端的ZigBee Sensor Monitor软件中打开指定COM口,软件会根据ZigBee协调器上传的数据,绘制出整个ZigBee网络的拓扑结构。

三、获取固件

1、直接获取

对于只是想体验一下ZigBee规模组网而不想深究的朋友来说,可以在我分享的 Firmwares.zip 这个压缩包里面直接找到实验所需的3个固件,如下图所示:

2、编译生成

对于想要研究代码和原理的朋友,也可以通过我分享的源码去生成相应的固件。打开工程之后,点开 Workspace,如下图所示:

可以看到有 CollectorEB SensorEB 两个分支。

(1)SensorEB.hex

对于上面提到的 SensorEB.hex 这个固件,当然是直接在 Workspace 里面选择 SensorEB 并编译即可,编译完成之后在 ...\Projects\zstack\Samples\SensorDemo\CC2530DB\SensorEB\Exe 目录下即可得到 SensorEB.hex 这个固件。

(2)CollectorEB-C.hex 和 CollectorEB-R.hex

这两个固件都是在 CollectorEB 这个分支下面编译生成的。唯一需要更改的地方就是在工程的与编译选项,在如下图所示位置:

ZigBee TI ZStack CC2530 5.1 实例(一)大规模组网实验_第2张图片

要生成 CollectorEB-C.hex 这个固件时,里面的内容如下:

HOLD_AUTO_START
BUILD_ALL_DEVICES
REFLECTOR
NV_INIT
NV_RESTORE
ZTOOL_P1
MT_TASK
DEVICE_LOGICAL_TYPE=ZG_DEVICETYPE_COORDINATOR
xDEVICE_LOGICAL_TYPE=ZG_DEVICETYPE_ROUTER
ZIGBEEPRO

要生成 CollectorEB-R.hex 这个固件时,里面的内容如下:

HOLD_AUTO_START
BUILD_ALL_DEVICES
REFLECTOR
NV_INIT
NV_RESTORE
ZTOOL_P1
MT_TASK
xDEVICE_LOGICAL_TYPE=ZG_DEVICETYPE_COORDINATOR
DEVICE_LOGICAL_TYPE=ZG_DEVICETYPE_ROUTER
ZIGBEEPRO

仔细观察就发现了,唯一的区别在于 DEVICE_LOGICAL_TYPE,到底是设为 ZG_DEVICETYPE_COORDINATOR 还是 ZG_DEVICETYPE_ROUTER

编译成功后,生成的固件所在目录为 ...\Projects\zstack\Samples\SensorDemo\CC2530DB\CollectorEB\Exe 。

四、实验步骤

1、烧写网关(ZigBee协调器)固件

找到CollectorEB-C.hex文件,通过SmartRF Flash Programmer下载到一个带有串口转USB的功能的ZigBee设备中。软件截图如下:

ZigBee TI ZStack CC2530 5.1 实例(一)大规模组网实验_第3张图片

2、连接网关(ZigBee协调器)并启动

将烧写好网关固件的ZigBee设备通过USB线连接到电脑,并上电启动。

3、运行ZigBee Sensor Monitor软件

在电脑端打开ZigBee Sensor Monitor软件,选择指定COM口之后,点击软件上方最左边的“Start”图标后,软件即开始运行。软件截图如下:

ZigBee TI ZStack CC2530 5.1 实例(一)大规模组网实验_第4张图片

4、给其余设备烧写固件并启动

同样的方法给ZigBee路由器设备烧写CollectorEB-R.hex文件,给ZigBee终端设备烧写SensorEB.hex文件,并分别启动各个ZigBee设备即可。

五、实验结果

当50个ZigBee设备全部都在正常运行后,可以看到ZigBee Sensor Monitor软件的软件界面如下图所示:

ZigBee TI ZStack CC2530 5.1 实例(一)大规模组网实验_第5张图片

实验过程中从软件界面可以看到,每个在网的ZigBee设备每隔2s都会闪烁一次,是因为程序中给除ZigBee协调器之外的的所有ZigBee设备均会以2s为周期向网关发送数据,而软件对于每次新收到的数据,都会将对应设备的图标刷新一次。

PS1:实验成功之后,我没有将所有的设备断电,而是让整个网络持续运行。今天正好是中秋节,我们几个没回家的朋友一起出去聚餐,3个多小时之后回来,看见网络依旧很稳定!从上图中最下方的时间可以看到截图时间为21:29,我大约是6点多去吃饭的~可见,ZigBee的网络稳定性还是很不错的!

PS2:50个ZigBeeZigBee节点组成的网络在正常运行过程中,ZigBee Sensor Monitor软件界面上49个(除了不闪烁的ZigBee协调器)ZigBee设备各自对应的图标交替闪烁,画面还是很“美”的!为了与大家共享,特地用录屏软件录了一个25s的小视频,大家可以去文首或文末的百度网盘链接中下载观看~

 

(配套源码文档软件等资源,可移步QQ群:拿破仑ZigBee

你可能感兴趣的:(TI,ZigBee)