73
计算机教育
Computer Education
第 7 期2017 年 7 月 10 日
中图分类号:G642
基于ZigBee 的无线传感器网络课程的
讲、演、练教学设计
杨建强,张其林
(湖北文理学院 数学与计算机科学学院,湖北 襄阳 441053)
摘 要:针对应用型高校对学生应用能力培养的要求,分析物联网工程专业无线传感器网络课程的教学内容和学时安排,根据演示和练习项目,提出一种以ZigBee 技术为基础的讲、演、练教学设计方法。关键词:
ZigBee;无线传感器网络;教学设计;Z-Stack 基金项目:湖北文理学院教学研究项目(JY2016038)
。第一作者简介:
杨建强,男,副教授,研究方向为高等教育、网络安全,xfxy_yjq@126。  0 引 言
无线传感器网络是物联网工程专业的一门核心课程。目前,国内高校开设的这门课程具有内容多、难度大的特点[1],并且重理论、轻实践。从培养学生的应用能力出发,笔者选择了典型的无线传感器网络技术ZigBee/Z-Stack 技术作为该课程的主要教学内容。课程除了介绍无线传感器网络的基本概念(包括IEEE 802.15.4规范及ZigBee 的相关概念)外,主要向学生讲授ZigBee 编程技术。ZigBee 编程以C 语言编程、单片机编程为基础,但与一般的C 语言编程或单片机编程不同。ZigBee 编程是在某个ZigBee 协议栈上的C 语言编程,需要遵循相应的ZigBee 协议栈的编程思想和编程方法。对初学者来说,ZigBee 编程思想及编程方法是全新的,掌握它并不是一件容易的事,需要大量的实践和练习。为此,在无线传感器网络这门课程的教学中,应该采用“讲、演、练”相结合的教学方法,促进学生快速掌握ZigBee 编程技术。具体来说,就是在每一次课上,教师首先介绍本次课的知识点,然后演示与本次知识点有关的项目,在演示过程中进一步阐述、解释有关概念,最后学生练习刚刚演示的内容。除此之外,学生还需独立完成几个实验项目,这也属于学生练习的内容。
1 课程内容及学时安排
无线传感器网络的先修课程包括单片机原理及应用、传感器原理及应用、计算机网络等。因此,在设计无线传感器网络教学时,可以少考虑单片机、传感器、网络通信等内容,紧紧围绕无线传感器网络的基本概念及ZigBee 编程技术展开。无线传感器网络以ZigBee/Z-Stack 编程技术为重点,采用由浅入深、循序渐进的方式安排教学内容。该课程共46学时,其中实验18学时。表1给出了本课程的教学内容及学时安排。
知识单元(1)是本课程第一次课讲授的内容,仅涉及无线传感器网络的基本概念,不涉及任何实际操练,因此没有安排演示和练习项目。
Z-Stack 中的任务(即事件处理程序)概念以及任务的管理和调度,是理解ZigBee/ Z-Stack 工作原理、掌握Z-Stack 编程技术的基础和关键。学生必须理解这些内容,才能理解Z-Stack 的流程,掌握Z-Stack 项目开发技能。所以,知识单元(6)用了较多的学时,而6个实验项目中的5个也都安排在此后进行。
另外,讲、演通常是一体的,因此,表1中各知识单元中的讲、演部分的学时分配并不是严格的,而是视实际情况,有时候讲多一点,有时候演多一些。
文章编号:1672-5913(2017)07-0073-04
2017
74
计算机教育
Computer Education
2 演示及练习项目设计
表2列出了本课程的演示及练习项目。从知识单元(2)开始,表2中每一行的演示、练习项目分别与表1中的一个知识单元对应。也就是说,第一行的演示和练习项目对应于知识单元(2),第二行对应于知识单元(3),其他依次类推。
项目演示通常在讲解相关概念后进行。演示一方面是进一步阐述相关概念的含义,另一方面是讲解ZigBee 编程技术规范和编程技巧。教师演示完毕,学生开始模仿练习。学生的练习项目,基本都在演示项目的基础上修改而成——修改了演示项目中少量关键代码。演示项目程序已事先准备好,可以直接编译、链接和运行。
要掌握ZigBee 编程技术,仅靠简单模仿是不够的。为此,笔者设计了6个ZigBee 实验项目,以巩固所学的内容。本质上,它们也是学生练习的一部分,见表3。
以上实验项目,项目①②基本上来自相应的演示或练习项目,目的是让刚刚接触Z-Stack 编程的学生熟悉基本的Z-Stack 编程思想及编程技巧。其他项目虽然与演示或练习项目有一定的关系,但需要学生进行一定的设计或者做较多的修改。这样做是有原因的:ZigBee 网络的通信功能是由ZigBee 协议栈软件(比如Z-Stack )维护的,因此ZigBee 项目中包含了大量的协议栈代码,而不像单片机程序开发那样只有用户的代码。所以,ZigBee 项目的开发基本上都是在已有项目的基础上进行的[3]。
为了促进学生深入理解和掌握Z-Stack 编程思想及编程技术,笔者要求学生在实验报告中给出各个实验的实验原理说明及重要代码分析。
3 结 语
对国内许多高校来说,物联网工程专业是一
表1 教学内容及学时安排[2]
知识单元
知识点
学时安排
(讲+演+练习+实验)
(1)无线传感器网络的基本概念无线传感器网络的含义、特点、网络结构、关键技术、应用等2+0+0+0(2)IEEE 802.15.4和 ZigBee 协议
IEEE 802.15.4协议及ZigBee 协议介绍、二者的关系;ZigBee 的体系结构、开发平台的搭建;IAR 介绍及IAR 工程的创建及设置1+0.5+0.5+0
(3)CC2530基础ZigBee 常用射频芯片介绍;CC2530的通用I/O 口、中断、定时器、时钟、ADC、电源管理等
0.5+0.5+3+0(4)创建新的ZigBee 工程
Z-Stack 协议栈;使用Z-Stack 协议栈的思路;Z-Stack 工程的目录结构;创建ZigBee/Z-Stack 应用工程
0.5+0.5+1+0
(5)Z-Stack 协议栈的重要概念ZigBee 设备类型;信道和网络ID;地址、节点、设备、端点、集及属性;单播、广播、组播;拓扑结构和协议栈规范;ZigBee 数据包的捕获及分析
0.5+0.5+1+2
(6)Z-Stack 中的任务管理什么是任务;OSAL 与Z-Stack 中的任务管理及任务调度;OSAL 消息队列;添加新任务
2+1+1+0(7)在Z-Stack 中使用串口Z-Stack 中串口的工作机制及配置;Z-Stack 编译选项介绍
0.5+0.5+1+0(8)传感器数据的采集和传输
CC2530温度传感器的配置和使用;传感器操作函数的管理;NV 操作的基本知识介绍
0.5+0.5+1+4(9)ZigBee 网络通信ZigBee 地址分配方案介绍;ZigBee 数据的发送与接收;ZigBee 中单播、广播、组播的实现
0.5+0.5+1+6(10)ZigBee 网络管理ZigBee 网络的拓扑结构;ZigBee 节点地址的查询;ZigBee 设备的状态0.5+0.5+1+0(11)ZigBee 设备的绑定和发现
什么是绑定;绑定表;配置源绑定;设备的绑定与发现0.5+0.5+1+2(12)ZigBee 高级话题
Z-Stack 网络参数设置;Z-Stack 网络安全通信
0.5+0.5+1+4
第 7 期75
教育与教学研究
表2 演示、练习项目内容及说明
教师演示项目内容学生练习项目内容说明
1. ZigBee开发平台的搭建;IAR工程的创建及设置IAR工程的创建及设置
重点演示IAR工程的创建及设置
目的:熟悉ZigBee工程开发环境
2. GPIO输出控制LED灯亮灭;片内温度传感器操作;看门狗按键控制(包括中断)LED灯、定时
器操作、串口收发、片内温度传感器
操作、睡眠定时器、看门狗
因学生已有51单片机编程经验,所以只演
示了3个CC2530编程操作。
目的:了解CC2530的基本概念及操作
3.创建一个全新的ZigBee工程的基本步骤除工程名称不同外,其他同演示内容
演示和练习都以官方的示例工程
GenericApp为基础。
目的:熟悉ZigBee工程的目录结构。掌握
创建全新ZigBee工程的基本方法
4. 终端节点发送“Hi”字符串,协调器收到后闪烁LED灯;捕获并分析数据包,寻数据“Hi”将字符串更改为“Hello”,其他同演示
内容
为避免节点加入到别人的网络中,要求学
生更改配置文件中的信道和PANID;以下
学生练习内容,除5外,其他也要求如此。
目的:初步了解与地址、端点和消息相关
的重要数据结构。了解数据包的捕获及分
析方法。初步了解数据的发送和接收方法
5. TI官方的示例工程GenericApp、
SampleApp、SimpleApp、SerialApp中的OSAL代码同演示内容
通过观察各个示例工程中的OSAL代码来
理解OSAL的工作原理。
目的:理解OSAL的工作原理。理解
Z-Stack中任务、消息队列等概念
6. 当节点收到来自串口的“send”时,发送字符串“www.hbuas.edu”到串口当节点收到来自串口的“Hi”时,发送
字符串“Hello World!”到串口
使用串口助手与节点交互;启用初始化
UART硬件的编译选项。
目的:掌握配置和使用串口的基本方法
7. 终端节点每5 s采集1次温度数据并将其发送给协调器,协调器通过串口发送到PC机终端节点每10 s采集1次温度数据并
将其发送给协调器,协调器通过串口
发送到PC机
在PC机上使用串口助手来显示温度数据。
目的:掌握产生周期性事件的方法;掌握
启用CC2530自带的温度传感器,并采集
温度数据的方法
8. 协调器每5 s广播1次数据“Hello!”,
终端节点收到数据后,翻转LED灯9. 协调器每5 s向特定的组发送1次数据“Hello!”,路由器节点收到数据后,翻转LED灯把协调器发送的数据改为“Hi!”,发
送周期改为10 s,其他同演示内容
比较广播、组播和单播,出它们的共性
和不同之处。
目的:熟悉广播、组播、单播的不同,掌
握实现广播、组播和单播通信的编程方法
10. 各节点将自己的网络地址、MAC 地址以及父节点的网络地址和MAC 地址发送给协调器,协调器通过串口发送给PC机路由器节点通过串口把自己的网络地
址、MAC地址,以及父节点的网络地
址和MAC地址发送给PC机
在PC机上使用串口助手来显示地址数据。
目的:掌握查询节点地址的函数方法;了
解设备状态的概念,熟悉常用的设备状态
11. TI官方的示例工程GenericApp、Transmit、SerialApp和SimpleApp中的绑定TI官方的示例工程GenericApp和
SimpleApp中的绑定
如果教学用的ZigBee硬件模块非TI官方
模块,则可能需要修改硬件(比如按键)
驱动文件。
目的:熟悉ZigBee中的绑定概念;掌握实
现节点间绑定的方法
12. 编译选项NV_RESTORE / HOLD_ AUTO_START / LCD_SUPPORTED / POWER_SAVING / SECURE等的使用在ZigBee工程中使用编译选项NV_
RESTORE / HOLD_AUTO_START /
POWER_SAVING / SECURE
在ZigBee工程中使用编译选项,观察设备
的反应。
目的:了解Z-Stack中的编译选项;熟悉
常用编译选项的功能
2017
76
计算机教育
Computer Education
参考文献:
[1] 吴迪, 朱金秀, 韩光洁, 等.“无线传感器网络”教学方法探索[J]. 电气电子教学学报, 2014, 36(4): 66-68.[2] 姜仲, 刘丹. ZigBee 技术与实训教程: 基于CC2530的无线传感网技术[M]. 北京: 清华大学出版社, 2015: 14.
[3] Texas Instruments Inc. Create new application for SmartRF05 + CC2530[EB/OL]. [2017-05-26].wenku.baidu/view/
cbcac2878762caaedd33d441.html.
[4] 陶为戈, 钱志文, 贾子彦. ZigBee 无线传感器网络实验教学体系研究与探索[J]. 实验技术与管理,2012, 29(11): 163-166.[5] 丁明理, 李小兵, 李松泽. 基于ZigBee 的无线传感器网络教学平台设计[J]. 实验室科学, 2014, 17(6): 71-74.[6] 王超. 物联网工程“Zigbee 协议与编程”教学改革探讨[J]. 吉林省经济管理干部学院学报, 2016(3): 62-63.
(编辑:孙怡铭)
表3 实验项目
实验项目名称
实验项目内容
实验学时
①简单数据传输
以TI 提供的ZigBee 示例工程GenericApp 为模板,创建一个新的ZigBee 工程,实现如下功能:终端节点发送“Flash”字符串,协调器收到后,对数据进行判断,如果是“Flash”,则使LED2灯闪烁。终端节点发送之后,LED1灯闪烁2
②传感数据的采集和传输创建一个新的ZigBee 工程,实现如下功能:终端节点加入该网络后,利用CC2530自带的温度传感器周期性地采集温度数据,并发送给协调器。协调器收到后,通过串口将其发送到PC 机。在PC 机上使用串口助手来显示温度数据
4
③ZigBee 广播通信以实验②中的ZigBee 工程为模板,创建一个新的ZigBee 工程,实现如下功能:协调器周期性地以广播的形式向终端节点发送数据“Temperature!” (每10 s 广播一次),终端节点收到
该数据后,翻转LED 灯,同时利用CC2530的温度传感器采集温度数据,并发送给协调器。协调器收到后,通过串口将其输出到PC 机。在PC 机上使用串口助手来显示。
仅开启协调器节点和一个终端节点,关闭其他终端节点。使用抓包软件Packet Sniffer 并利用CC2530模块捕获ZigBee 数据包,对数据包进行分析,到协调器和终端节点发送的数据c语言好的网课
4
④ZigBee 组播通信修改TI 的示例工程SampleApp,实现如下功能:按下路由器或终端节点的SW2按键,该节点会加入或退出组播组(注意,协调器始终在组播组内);按下任意节点的SW1按键,组内所有节点上的LED2改变开关状态(亮变灭,灭变亮)。另外,要求注释掉源文件SampleApp.c 中所有无用的代码
2
⑤节点绑定以示例工程GenericApp 为模板,创建一个新的ZigBee 工程,实现如下功能:任意两个节点通过按键S2进行绑定;两个节点绑定后,在其中一个节点上按下S1键,另一个节点的LED 灯翻转
2
⑥ZigBee 网络的数据加密以实验①中的ZigBee 工程为模板,创建一个新的ZigBee 工程,实现如下功能:终端节点发送“Hello!”给协调器,协调器收到后,闪烁LED 灯。然后,启动抓包节点,捕获ZigBee 网络的数据包。分析未加密的数据包中的数据。修改工程文件,启动数据加密。再次启动抓包节点,捕获ZigBee 网络的数据包,分析加密的数据包,对比加密前后的数据包
4
个比较新的专业,其课程及教学内容的设置正逐步走向合理。许多应用型高校选择ZigBee 技术作为无线传感器网络课程的教学内容,并积极探索合适的教学方法[4-6],本文给出的教学设计也是一种探索。为了顺利实施“讲、演、练”相结合的教学方法,笔者把该课程的教学全部安排到实验室进行。由于该课程以实践教学为主,因此笔试考核的方式并不适用于该课程。笔者采用项
目作业的方式作为期末考核方式。当然,学生的总成绩是平时成绩(包括实验项目的完成情况)和期末成绩的综合。湖北文理学院的无线传感器网络课程已经连续开设两届,与前一届学生相比,“讲、演、练”相结合的新教学方法大大激发了学生的学习热情,提高了学生的实践动手能力,加深了学生对无线传感器网络和ZigBee 相关概念的理解,教学质量明显提高。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。