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

上传人:b****2 文档编号:4367273 上传时间:2023-05-03 格式:DOCX 页数:13 大小:119.16KB
下载 相关 举报
基于zigbee的远程灯光控制系统Word格式.docx_第1页
第1页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第2页
第2页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第3页
第3页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第4页
第4页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第5页
第5页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第6页
第6页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第7页
第7页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第8页
第8页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第9页
第9页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第10页
第10页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第11页
第11页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第12页
第12页 / 共13页
基于zigbee的远程灯光控制系统Word格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《基于zigbee的远程灯光控制系统Word格式.docx》由会员分享,可在线阅读,更多相关《基于zigbee的远程灯光控制系统Word格式.docx(13页珍藏版)》请在冰点文库上搜索。

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

终端节点分为两组,PC端可以分别控制每组终端节点上LED的熄灭;

PC可以设置两组LED闪烁的周期;

PC上可以查询终端节点上LED的状态。

报告后面详细介绍了整个控制系统的功能和控制策略,软件程序设计包括LED灯初始化、协议栈初始化,串口通讯等.最后,在模拟实际环境下,测试可行性与性能。

实验证明,采用Zigbee能实现无线远程控制灯的亮灭。

关键词:

Zigbee远程控制LED灯CC2530

1设计内容和要求

1.1课题任务

本系统是基于zigbee网络的远程灯光控制系统,PC连接协调器实现远程控制不少于3个终端节点上的LED灯的熄灭。

1.2课题要求

1。

2。

1PC端设置LED闪烁周期

PC端通过广播的方式控制加入了该协调器的所有路由器的灯的闪烁周期,且闪烁周期可以设置为1s、2s、3s。

1.2.2终端节点分为两组且PC端分别控制

将路由器分成两个组,组名分别为Group1和Group2,组号分别为0x0001和0x0002,。

Group1有两个路由器节点,第一个节点称为G1D1,第二个节点称为G1D2;

Group2有一个路由器节点,称为G2D1。

PC端可以通过组播的方式控制每一组的终端节点的亮灭,且可单独控制每一个节点的亮灭.

1.2。

3PC设置两组LED闪烁周期

PC端通过组播的方式分别控制Group1和Group2闪烁周期,周期时间分别为1s、2s、3s.

2.4PC查询LED的状态

PC端查询各个路由器节点当前的LED的状态,状态主要有亮(ON)、灭(OF)、闪烁(FL)。

2总体设计思路

2.1系统功能

该系统的功能主要有:

(1)在PC上通过串口输入控制指令控制LED灯的亮灭.

(2)路由器节点分为两组,PC端可以分别控制每组终端节点上LED的熄灭.

(3)在PC上通过串口输入指令可以分组的设置两组LED闪烁的周期。

(4)在PC上通过串口输入指令查询终端节点上LED的状态。

2模块关系

Group1

PC机

RS232

Coordinator

ZigBee网络

Group2

G2D1

G1D1

G1D2

图2。

1模块关系图

3程序框图

向协调器发送数据

开始

加入网络

建立网络

灯的状态发生变化

串口发送

发送数据

收到节点的数据

收到协调器数据

N

Y

协调器程序框图

路由器器程序框图

2程序流程图

3 功能模块图

3.1功能模块图

PC发送命令

控制亮灭

查询状态

控制周期

终端判断

G*ON/OF

G*D*ON/OF

CXG*D*

GR*F*S

FREQ*S

控制某组灯亮/灭

控制某个组的灯闪烁的周期

单个控制灯的亮灭

返回终端节点状态给串口

控制所有灯的闪烁周期

组播

单播

广播

图3。

1功能模块图

3.2各模块实现的功能

3.2。

1PC端设置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))

HalLedBlink(HAL_LED_2,0,50,2000);

FREQ3S"

osal_strlen(”FREQ3S”)+1))

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_Group。

name[0]=6;

osal_memcpy(&(GenericApp_Group.name[1]),”Group1”,6);

//为第二组设置初始值

GenericApp_Group1.ID=0x0002;

GenericApp_Group1.name[0]=6;

osal_memcpy(&

(GenericApp_Group1。

name[1]),”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"

a=0;

HalLedBlink(HAL_LED_2,0,100,1000);

G1D1OF”,osal_strlen(”G1D1OF"

a=1;

HalLedBlink(HAL_LED_2,0,0,1000);

3PC设置两组LED闪烁周期实验部分代码

//控制组1的周期

GR1F1S”,osal_strlen("

GR1F1S"

a=2;

HalLedBlink(HAL_LED_2,0,0,1000);

if(osal_memcmp(buf,”GR1F2S"

,osal_strlen("

GR1F2S”)+1))

HalLedBlink(HAL_LED_2,0,0,2000);

if(osal_memcmp(buf,”GR1F3S”,osal_strlen("

GR1F3S”)+1))

HalLedBlink(HAL_LED_2,0,0,3000);

3。

4PC查询LED的状态部分实验代码

为实现查询功能,需要在每个路由器节点的编程里加入下面代码,不同组不同节点的名字不同。

if(osal_memcmp(buf,"

CXG1D1”,osal_strlen(”CXG1D1"

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。

1PC端设置LED闪烁周期实验结果显示

PC端通过串口发送FREQ1S、FREQ2S、FREQ3S状态的指令广播给各个路由器节点,然后所有的路由器节点的闪烁周期都相同。

周期可以设置为1s、2s和3s。

2终端节点分为两组且PC端分别控制实验结果显示

PC端通过串口发送指令,组播给组号为0x0001的组,使第一组的灯亮,此时第二个组的灯是熄灭状态。

同理,PC通过串口发送指令给组号为0x0002的组,此时第二个组的灯是亮.

4.3PC设置两组LED闪烁周期实验结果显示

4PC查询LED的状态实验结果显示

PC端通过串口发送查询G1D1状态的指令。

此时串口返回G1D1的状态,每个灯的状态有三种,分别是FL(闪)、OF(灭)、

ON(亮)

5总结

在本次的实验中我对于ZigbBee有了更加深入的理解和巩固,从刚开始觉得ZigBee很难,然而后面真的去认真去做了之后才发现,其实也没有想象之中的那么困难,前面的不过是一些声明以及初始化,其实我们真正涉及到的内容不会很多。

就像现在我做完实验再对它进行了解后,需要我们完成的也就那么几点.所以实验课上学到的东西很重要,这对后面的实验有着莫大的好处和很好的理解。

我差不多是后面一个多月才开始认真去实验室做实验,前面半期的理论知识听着是感觉很枯燥乏味。

后面才发现实验并不难,只是我前面并不用心去学习,在内心里就给自己设了一道坎。

我感谢周老师对我们的悉心指导,五个小实验,一个大作业,每个同学每个实验他都要严格的把关,让我们去答辩.周老师,辛苦了!

6 致谢

在为期一学期的对ZigBee的学习即将结束,衷心的感谢所有给予我帮助和支持的老师和同学。

首先要感谢学校,给我们专业提供了良好的学习设备,让我们得以在实践中寻求真知,让我从根本上去学习了ZigBee这门课程。

感谢我的老师周伟老师,本门课程从选课、课程开展、具体实施到各个实验等都是在周老师的严格要求和悉心指导下完成的,不仅提高了我的专业水平和实践能力,更锻炼了我分析问题、解决问题的能力.真的特别感谢周老师,让我对ZigBee这门课程有了认识和理解。

感谢我的同学,他们在学习和生活上给了我很多的鼓励和帮助。

感谢所有关心和帮助过我的老师、同学和朋友。

7参考文献

[1]任丰原,黄海宁,林闯.无线传感器网络[J].软件学报2003,14(7)

[2]CC2530DataSheet[OL].http:

//

[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.1

[9]高守玮.《ZIGBEE技术实践教程》.北京:

北京航空航天大学出版社,2009。

6

[10]王小强、欧阳骏、黄宁淋.《ZigBee无线传感器网络设计与实现》.北京:

化学工业出版社。

2012.6

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2