ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:339.51KB ,
资源ID:9487189      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9487189.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于zigbee的远程灯光控制系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于zigbee的远程灯光控制系统.docx

1、基于zigbee的远程灯光控制系统无线传感器网络课程大作业报告基于zigbee的远程灯光控制系统姓 名: 学 院: 电气与信息工程学院 专业班级: 物联网工程 学 号: 指导老师: 成 绩: 重庆科技学院二零一五年十二月摘 要 二十一世纪,远程控制的需求越来越大,本实验是关于“基于zigbee网络的远程灯光控制系统”的相关研究。是通过PC连接协调器实现远程控制不少于3个终端节点上的LED灯的熄灭。 本实验较全面的实现了远程灯光控制的功能,即采用一块协调器,三个路由器,在此设备上实现实验。协调器实现了PC与路由器之间的连接功能,用作信号的发射和接受;三个路由器分成两个组,第一个组内有两个节点,第

2、二个组内有一个节点。基本功能包括:PC端可以设置终端节点上LED的闪烁周期;终端节点分为两组,PC端可以分别控制每组终端节点上LED的熄灭;PC可以设置两组LED闪烁的周期;PC上可以查询终端节点上LED的状态。 报告后面详细介绍了整个控制系统的功能和控制策略,软件程序设计包括LED灯初始化、协议栈初始化,串口通讯等。最后,在模拟实际环境下,测试可行性与性能。实验证明,采用Zigbee能实现无线远程控制灯的亮灭。关键词:Zigbee 远程控制 LED灯 CC25301 设计内容和要求1.1课题任务 本系统是基于zigbee网络的远程灯光控制系统,PC连接协调器实现远程控制不少于3个终端节点上的

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端通过组播的方式分别控制Grou

4、p1和Group2闪烁周期,周期时间分别为1s、2s、3s。1.2.4 PC查询LED的状态 PC端查询各个路由器节点当前的LED的状态,状态主要有亮(ON)、灭(OF)、闪烁(FL)。2 总体设计思路2.1 系统功能 该系统的功能主要有:(1)在PC上通过串口输入控制指令控制LED灯的亮灭。(2)路由器节点分为两组,PC端可以分别控制每组终端节点上LED的熄灭。(3)在PC上通过串口输入指令可以分组的设置两组LED闪烁的周期。(4)在PC上通过串口输入指令查询终端节点上LED的状态。2.2 模块关系图 2.1 模块关系图2.3 程序框图图 2.2 程序流程图3功能模块图3.1 功能模块图图

5、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,

6、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端可以通过组播的方式控

7、制每一组的终端节点的亮灭,且可单独控制每一个节点的亮灭。/为第一组设置初始值 GenericApp_Group.ID = 0x0001; GenericApp_Group.name0 = 6; osal_memcpy(&(GenericApp_Group.name1), Group1, 6);/为第二组设置初始值 GenericApp_Group1.ID = 0x0002; GenericApp_Group1.name0 = 6; osal_memcpy(&(GenericApp_Group1.name1), Group2, 6);/控制组1节点1的亮灭 osal_memcpy(buf,pkt

8、-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

9、(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的状态部分实验代码 为实现查询功能,需要在每个路由器节点的编程里加入下面代

10、码,不同组不同节点的名字不同。 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,

11、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 P

12、C端设置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的状态,每个灯的状态有三

13、种,分别是FL(闪)、OF(灭)、ON(亮)5 总结在本次的实验中我对于ZigbBee有了更加深入的理解和巩固,从刚开始觉得ZigBee很难,然而后面真的去认真去做了之后才发现,其实也没有想象之中的那么困难,前面的不过是一些声明以及初始化,其实我们真正涉及到的内容不会很多。就像现在我做完实验再对它进行了解后,需要我们完成的也就那么几点。所以实验课上学到的东西很重要,这对后面的实验有着莫大的好处和很好的理解。我差不多是后面一个多月才开始认真去实验室做实验,前面半期的理论知识听着是感觉很枯燥乏味。后面才发现实验并不难,只是我前面并不用心去学习,在内心里就给自己设了一道坎。我感谢周老师对我们的悉心指

14、导,五个小实验,一个大作业,每个同学每个实验他都要严格的把关,让我们去答辩。周老师,辛苦了!6致谢在为期一学期的对ZigBee的学习即将结束,衷心的感谢所有给予我帮助和支持的老师和同学。首先要感谢学校,给我们专业提供了良好的学习设备,让我们得以在实践中寻求真知,让我从根本上去学习了ZigBee这门课程。感谢我的老师周伟老师,本门课程从选课、课程开展、具体实施到各个实验等都是在周老师的严格要求和悉心指导下完成的,不仅提高了我的专业水平和实践能力,更锻炼了我分析问题、解决问题的能力。真的特别感谢周老师,让我对ZigBee这门课程有了认识和理解。感谢我的同学,他们在学习和生活上给了我很多的鼓励和帮助

15、。感谢所有关心和帮助过我的老师、同学和朋友。7 参考文献1 任丰原,黄海宁,林闯.无线传感器网络J.软件学报2003,14(7)2 CC2530 Data SheetOL.3 高守玮,吴灿阳.Zigbee技术实践教程M.北京:北京航空航天大学出版社,2009.6 4 李文仲,段朝玉等.Zigbee无线网络技术入门与实战M.北京:北京航空航天大学出版社,2007 5 杜丽敏,郭文成.ZigBee技术在远程抄表系统中的应用J.单片机与嵌入式系统,2006(7)6 赵景宏,李英凡,许纯信. ZigBee技术简介J.电力系统通信,2006,27(165) 7 周游,方滨,王普.基于ZigBee技术的智能家居无线网络系统J.电子技术应用,2005(5)8 李文仲,段朝玉ZigBee无线网络技术入门与实战北京:北京航空航天大学出版社,2007.19 高守玮ZIGBEE技术实践教程北京:北京航空航天大学出版社,2009.610 王小强、欧阳骏、黄宁淋.ZigBee无线传感器网络设计与实现.北京:化学工业出版社.2012.6

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1