基于zigbee的远程灯光控制系统.doc_第1页
基于zigbee的远程灯光控制系统.doc_第2页
基于zigbee的远程灯光控制系统.doc_第3页
基于zigbee的远程灯光控制系统.doc_第4页
基于zigbee的远程灯光控制系统.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无线传感器网络课程大作业报告基于zigbee的远程灯光控制系统姓 名: 学 院: 电气与信息工程学院 专业班级: 物联网工程 学 号: 指导老师: 成 绩: 重庆科技学院二零一五年十二月重庆科技学院无线传感器网络课程大作业报告摘 要二十一世纪,远程控制的需求越来越大,本实验是关于“基于zigbee网络的远程灯光控制系统”的相关研究。是通过PC连接协调器实现远程控制不少于3个终端节点上的LED灯的熄灭。本实验较全面的实现了远程灯光控制的功能,即采用一块协调器,三个路由器,在此设备上实现实验。协调器实现了PC与路由器之间的连接功能,用作信号的发射和接受;三个路由器分成两个组,第一个组内有两个节点,第二个组内有一个节点。基本功能包括:PC端可以设置终端节点上LED的闪烁周期;终端节点分为两组,PC端可以分别控制每组终端节点上LED的熄灭;PC可以设置两组LED闪烁的周期;PC上可以查询终端节点上LED的状态。报告后面详细介绍了整个控制系统的功能和控制策略,软件程序设计包括LED灯初始化、协议栈初始化,串口通讯等。最后,在模拟实际环境下,测试可行性与性能。实验证明,采用Zigbee能实现无线远程控制灯的亮灭。关键词:Zigbee 远程控制 LED灯 CC2530目 录1 设计内容和要求11.1课题任务11.2课题要求11.2.1 PC端设置LED闪烁周期11.2.2 终端节点分为两组且PC端分别控制11.2.3 PC设置两组LED闪烁周期11.2.4 PC查询LED的状态12 总体设计思路22.1 系统功能22.2 模块关系22.3 程序框图23功能模块图43.1 功能模块图43.2 各模块实现的功能43.2.1 PC端设置LED闪烁周期代码43.2.2终端节点分为两组且PC端分别控制代码53.2.3 PC设置两组LED闪烁周期实验部分代码63.2.4 PC查询LED的状态部分实验代码64 系统调试及测试84.1 PC端设置LED闪烁周期实验结果显示84.2 终端节点分为两组且PC端分别控制实验结果显示84.3 PC设置两组LED闪烁周期实验结果显示94.4 PC查询LED的状态实验结果显示95 总结106致谢117 参考文献12III1 设计内容和要求1.1 课题任务本系统是基于zigbee网络的远程灯光控制系统,PC连接协调器实现远程控制不少于3个终端节点上的LED灯的熄灭。 1.2 课题要求1.2.1 PC端设置LED闪烁周期PC端通过广播的方式控制加入了该协调器的所有路由器的灯的闪烁周期,且闪烁周期可以设置为1s、2s、3s。1.2.2 终端节点分为两组且PC端分别控制将路由器分成两个组,组名分别为Group1和Group2,组号分别为0x0001和0x0002,。Group1有两个路由器节点,第一个节点称为G1D1,第二个节点称为G1D2;Group2有一个路由器节点,称为G2D1。PC端可以通过组播的方式控制每一组的终端节点的亮灭,且可单独控制每一个节点的亮灭。1.2.3 PC设置两组LED闪烁周期PC端通过组播的方式分别控制Group1和Group2闪烁周期,周期时间分别为1s、2s、3s。1.2.4 PC查询LED的状态PC端查询各个路由器节点当前的LED的状态,状态主要有亮(ON)、灭(OF)、闪烁(FL)。132 总体设计思路2.1 系统功能该系统的功能主要有:(1) 在PC上通过串口输入控制指令控制LED灯的亮灭。(2) 路由器节点分为两组,PC端可以分别控制每组终端节点上LED的熄灭。(3) 在PC上通过串口输入指令可以分组的设置两组LED闪烁的周期。(4) 在PC上通过串口输入指令查询终端节点上LED的状态。2.2 模块关系Group1PC机RS232CoordinatorZigBee网络Group2G2D1G1D1G1D2图 2.1 模块关系图2.3 程序框图向协调器发送数据开始加入网络建立网络灯的状态发生变化串口发送发送数据开始收到节点的数据收到协调器数据NYYN协调器程序框图路由器器程序框图图 2.2 程序流程图3功能模块图3.1 功能模块图PC发送命令 控制亮灭 查询状态 控制周期终端判断终端判断终端判断终端判断终端判断G*ON/OFG*D*ON/OFCXG*D*GR*F*SFREQ*S控制某组灯亮灭控制某个组的灯闪烁的周期单个控制灯的亮灭返回终端节点状态给串口控制所有灯的闪烁周期组播单播广播组播广播图 3.1功能模块图3.2 各模块实现的功能3.2.1 PC端设置LED闪烁周期代码PC端通过广播的方式控制加入了该协调器的所有路由器的灯的闪烁周期,且闪烁周期可以设置为1s、2s、3s。osal_memcpy(buf,pkt-cmd.Data,osal_strlen(G1D2ON)+1); HalLcdWriteString(buf, HAL_LCD_LINE_4); if(osal_memcmp(buf,FREQ1S,osal_strlen(FREQ1S)+1) a=2; HalLedBlink(HAL_LED_2,0,50,1000) ; if(osal_memcmp(buf,FREQ2S,osal_strlen(FREQ2S)+1) a=2; HalLedBlink(HAL_LED_2,0,50,2000) ; if(osal_memcmp(buf,FREQ3S,osal_strlen(FREQ3S)+1) a=2; HalLedBlink(HAL_LED_2,0,50,3000) ; 3.2.2终端节点分为两组且PC端分别控制代码将路由器分成两个组,组名分别为Group1和Group2,组号分别为0x0001和0x0002,。Group1有两个路由器节点,第一个节点称为G1D1,第二个节点称为G1D2;Group2有一个路由器节点,称为G2D1。PC端可以通过组播的方式控制每一组的终端节点的亮灭,且可单独控制每一个节点的亮灭。/为第一组设置初始值 GenericApp_Group.ID = 0x0001; GenericApp_G0 = 6; osal_memcpy(&(GenericApp_G1), Group1, 6);/为第二组设置初始值 GenericApp_Group1.ID = 0x0002; GenericApp_G0 = 6; osal_memcpy(&(GenericApp_G1), Group2, 6);/控制组1节点1的亮灭 osal_memcpy(buf,pkt-cmd.Data,osal_strlen(G1D1ON)+1); HalLcdWriteString(buf, HAL_LCD_LINE_4); if(osal_memcmp(buf,G1D1ON,osal_strlen(G1D1ON)+1) a=0; HalLedBlink(HAL_LED_2,0,100,1000) ; if(osal_memcmp(buf,G1D1OF,osal_strlen(G1D1OF)+1) a=1; HalLedBlink(HAL_LED_2,0,0,1000) ; 3.2.3 PC设置两组LED闪烁周期实验部分代码/控制组1的周期 if(osal_memcmp(buf,GR1F1S,osal_strlen(GR1F1S)+1) a=2; HalLedBlink(HAL_LED_2,0,0,1000) ; if(osal_memcmp(buf,GR1F2S,osal_strlen(GR1F2S)+1) a=2; HalLedBlink(HAL_LED_2,0,0,2000) ; if(osal_memcmp(buf,GR1F3S,osal_strlen(GR1F3S)+1) a=2; HalLedBlink(HAL_LED_2,0,0,3000) ; 3.2.4 PC查询LED的状态部分实验代码为实现查询功能,需要在每个路由器节点的编程里加入下面代码,不同组不同节点的名字不同。 if(osal_memcmp(buf,CXG1D1,osal_strlen(CXG1D1)+1) GenericApp_SendTheMessage(); 协调器实现查询状态部分代码: if(osal_memcmp(uartbuf, CXG1D1, 6) HalUARTWrite(0, uartbuf, 6); GenericApp_SendTheMessageCX11(); osal_start_timerEx(GenericApp_TaskID,SEND_TO_ALL_EVENT,5000); if(osal_memcmp(uartbuf, CXG1D2, 6) HalUARTWrite(0, uartbuf, 6); GenericApp_SendTheMessageCX12(); osal_start_timerEx(GenericApp_TaskID,SEND_TO_ALL_EVENT,5000); if(osal_memcmp(uartbuf, CXG2D1, 6) HalUARTWrite(0, uartbuf, 6); GenericApp_SendTheMessageCX21(); osal_start_timerEx(GenericApp_TaskID,SEND_TO_ALL_EVENT,5000); 4 系统调试及测试4.1 PC端设置LED闪烁周期实验结果显示PC端通过串口发送FREQ1S、FREQ2S、FREQ3S状态的指令广播给各个路由器节点,然后所有的路由器节点的闪烁周期都相同。周期可以设置为1s、2s和3s。4.2 终端节点分为两组且PC端分别控制实验结果显示PC端通过串口发送指令,组播给组号为0x0001的组,使第一组的灯亮,此时第二个组的灯是熄灭状态。同理,PC通过串口发送指令给组号为0x0002的组,此时第二个组的灯是亮。4.3 PC设置两组LED闪烁周期实验结果显示4.4 PC查询LED的状态实验结果显示PC端通过串口发送查询G1D1状态的指令。此时串口返回G1D1的状态,每个灯的状态有三种,分别是FL(闪)、OF(灭)、ON(亮)5 总结在本次的实验中我对于ZigbBee有了更加深入的理解和巩固,从刚开始觉得ZigBee很难,然而后面真的去认真去做了之后才发现,其实也没有想象之中的那么困难,前面的不过是一些声明以及初始化,其实我们真正涉及到的内容不会很多。就像现在我做完实验再对它进行了解后,需要我们完成的也就那么几点。所以实验课上学到的东西很重要,这对后面的实验有着莫大的好处和很好的理解。我差不多是后面一个多月才开始认真去实验室做实验,前面半期的理论知识听着是感觉很枯燥乏味。后面才发现实验并不难,只是我前面并不用心去学习,在内心里就给自己设了一道坎。我感谢周老师对我们的悉心指导,五个小实验,一个大作业,每个同学每个实验他都要严格的把关,让我们去答辩。周老师,辛苦了!6致谢在为期一学期的对ZigBee的学习即将结束,衷心的感谢所有给予我帮助和支持的老师和同学。首先要感谢学校,给我们专业提供了良好的学习设备,让我们得以在实践中寻求真知,让我从根本上去学习了ZigBee这门课程。感谢我的老师周伟老师,本门课程从选课、课程开展、具体实施到各个实验等都是在周老师的严格要求和悉心指导下完成的,不仅提高了我的专业水平和实践能力,更锻炼了我分析问题、解决问题的能力。真的特别感谢周老师,让我对ZigBee这门课程有了认识和理解。感谢我的同学,他们在学习和生活上给了我很多的鼓励和帮助。感谢所有关心和帮助过我的老师、同学和朋友。7 参考文献1 任丰原,黄海宁,林闯.无线传感器网络J.软件学报2003,14(7)2 CC2530 Data SheetOL./cc25303 高守玮,吴灿阳.Zigbee技术实践教程M.北京:北京航空航天大学出版社,2009.6 4 李文仲,段朝玉等.Zigbee无线网络技术入门与实战M.北京:北京航空航天大学出版社,2007 5 杜丽敏,郭文成.Zig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论