基于Zigbee的无线遥控台灯.docx

上传人:b****4 文档编号:4674302 上传时间:2023-05-07 格式:DOCX 页数:18 大小:436.98KB
下载 相关 举报
基于Zigbee的无线遥控台灯.docx_第1页
第1页 / 共18页
基于Zigbee的无线遥控台灯.docx_第2页
第2页 / 共18页
基于Zigbee的无线遥控台灯.docx_第3页
第3页 / 共18页
基于Zigbee的无线遥控台灯.docx_第4页
第4页 / 共18页
基于Zigbee的无线遥控台灯.docx_第5页
第5页 / 共18页
基于Zigbee的无线遥控台灯.docx_第6页
第6页 / 共18页
基于Zigbee的无线遥控台灯.docx_第7页
第7页 / 共18页
基于Zigbee的无线遥控台灯.docx_第8页
第8页 / 共18页
基于Zigbee的无线遥控台灯.docx_第9页
第9页 / 共18页
基于Zigbee的无线遥控台灯.docx_第10页
第10页 / 共18页
基于Zigbee的无线遥控台灯.docx_第11页
第11页 / 共18页
基于Zigbee的无线遥控台灯.docx_第12页
第12页 / 共18页
基于Zigbee的无线遥控台灯.docx_第13页
第13页 / 共18页
基于Zigbee的无线遥控台灯.docx_第14页
第14页 / 共18页
基于Zigbee的无线遥控台灯.docx_第15页
第15页 / 共18页
基于Zigbee的无线遥控台灯.docx_第16页
第16页 / 共18页
基于Zigbee的无线遥控台灯.docx_第17页
第17页 / 共18页
基于Zigbee的无线遥控台灯.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Zigbee的无线遥控台灯.docx

《基于Zigbee的无线遥控台灯.docx》由会员分享,可在线阅读,更多相关《基于Zigbee的无线遥控台灯.docx(18页珍藏版)》请在冰点文库上搜索。

基于Zigbee的无线遥控台灯.docx

基于Zigbee的无线遥控台灯

 

课程设计报告

 

题目:

基于ZigBee的无线遥控台灯

学生姓名:

学生学号:

系别:

专业:

年级:

任课教师:

电气信息工程学院制

2014年3月

摘要

本文提出了一套采用无线通信协议ZigBee的智能路遥控台灯系统的设计方案。

该系统的方案利用ZigBee无线通信技术实现主控系统对终端台灯的实时控制,具有遥控台灯开关的功能。

模拟试验表明,本方案中所设计的系统操作简单,节能效果好。

ZigBee是基于IEEE802.15.4标准的低功耗个域网协议。

根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。

这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。

其特点是近距离、低复杂度、自组织、低功耗、高数据速率。

主要适合用于自动控制和远程控制领域,可以嵌入各种设备。

简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。

关键词:

遥控台灯,Zigbee,低功耗,继电器

 

基于Zigbee的无线遥控台灯

学生:

陈叶山

指导教师:

***

电气信息工程学院电子信息工程专业

1课题任务

人们可以通过手中的Zigbee无线传感器模块实时遥控台灯的开关,方便快捷,避免浪费电能,大大节约了大量电能。

2方案设计

2.1设计要求

(1)通过人们手中的便携式无线传感器的发射模块的按键选择发出相应的对台灯的控制信号。

(2)利用无线传感器的接收模块来接收发射模块的控制信号并作出相应的处理,即在Zigbee的相应引脚产生高低电平来驱动继电器的开关。

(3)凭借继电器的开关来控制台灯供电电路的通断,从而很好的控制台灯的亮灭。

2.2总体方案的设计

系统分为发射模块,按键控制模块,接收模块,继电器模块,台灯模块等。

发射模块采用Zigbee无线传感器模块,其MCU采用CC2530芯片,按键模块用2个按键,用于进行控制操作和复位。

与发射模块相同,接收模块模块同样采用Zigbee无线传感器模块,继电器模块采用的是松乐继电器SRD-05VDC-SL-C,利用接收模块MCU的P1.0引脚驱动,驱动电路采用典型的三极管驱动电路,通过控制继电器的吸合来控制台灯供电电路的通断。

图1系统模块图

3硬件电路设计

3.1元器件及原理介绍

1.CC2530芯片:

CC2530是用2.4-GHzIEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。

它能够以非常低的总的材料成本建立强大的网络节点。

CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其它强大的功能。

CC2530有四种不同的闪存版本:

CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。

CC2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。

运行模式之间的转换时间短进一步确保了低能源消耗。

CC2530F256结合了德州仪器的业界领先的黄金单元ZigBee协议栈(Z-Stack™),提供了一个强大和完整的ZigBee解决方案。

CC2530F64结合了德州仪器的黄金单元RemoTI,更好地提供了一个强大和完整的ZigBeeRF4CE远程控制解决方案。

2.Zigbee技术及其特点:

(1)技术简介:

  蜜蜂在发现花丛后会通过一种特殊的肢体语言来告知同伴新发现的食物源位置等信息,这种肢体语言就是ZigZag行舞蹈,是蜜蜂之间一种简单传达信息的方式。

借此意义Zigbee作为新一代无线通讯技术的命名。

在此之前ZigBee也被称为“HomeRFLite”、“RF-EasyLink”或“fireFly”无线电技术,统称为ZigBee。

简单的说,ZigBee是一种高可靠的无线数传网络,类似于CDMA和GSM网络。

ZigBee数传模块类似于移动网络基站。

通讯距离从标准的75m到几百米、几公里,并且支持无限扩展。

  ZigBee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个ZigBee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。

  与移动通信的CDMA网或GSM网不同的是,ZigBee网络主要是为工业现场自动化控制数据传输而建立,因而,它必须具有简单,使用方便,工作可靠,价格低的特点。

而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个ZigBee“基站”却不到1000元人民币。

每个ZigBee网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。

除此之外,每一个ZigBee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。

(2)技术特点:

ZigBee是一种无线连接,可工作在2.4GHz(全球流行)、868MHz(欧洲流行)和915MHz(美国流行)3个频段上,分别具有最高250kbit/s、20kbit/s和40kbit/s的传输速率,它的传输距离在10-75m的范围内,但可以继续增加。

作为一种无线通信技术,ZigBee具有如下特点:

(1)低功耗:

由于ZigBee的传输速率低,发射功率仅为1mW,而且采用了休眠模式,功耗低,因此ZigBee设备非常省电。

据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其它无线设备望尘莫及的。

(2)成本低:

ZigBee模块的初始成本在6美元左右,估计很快就能降到1.5—2.5美元,并且ZigBee协议是免专利费的。

低成本对于ZigBee也是一个关键的因素。

(3)时延短:

通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延30ms,休眠激活的时延是15ms,活动设备信道接入的时延为15ms。

因此ZigBee技术适用于对时延要求苛刻的无线控制(如工业控制场合等)应用。

(4)网络容量大:

一个星型结构的Zigbee网络最多可以容纳254个从设备和一个主设备,一个区域内可以同时存在最多100个ZigBee网络,而且网络组成灵活。

(5)可靠:

采取了碰撞避免策略,同时为需要固定带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。

MAC层采用了完全确认的数据传输模式,每个发送的数据包都必须等待接收方的确认信息。

如果传输过程中出现问题可以进行重发。

(6)安全:

ZigBee提供了基于循环冗余校验(CRC)的数据包完整性检查功能,支持鉴权和认证,采用了AES-128的加密算法,各个应用可以灵活确定其安全属性。

3.继电器模块:

继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。

故在电路中起着自动调节、安全保护、转换电路等作用。

在大多数的情况下,继电器就是一个电磁铁,这个电磁铁的衔铁可以闭合或断开一个或数个接触点。

当电磁铁的绕组中有电流通过时,衔铁被电磁铁吸引,因而就改变了触点的状态。

继电器一般可以分为电磁式继电器、热敏干簧继电器、固态继电器等。

电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。

只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。

当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。

这样吸合、释放,从而达到了在电路中的导通、切断的目的。

对于继电器的“常开、常闭”触点,可以这样来区分:

继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。

在单片机系统中继电器的控制一般通过一个三极管来驱动,典型的驱动电路如图1所示:

图1继电器的一般驱动电路

继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。

上图中AB为常开触点,AC为常闭触点。

图(a)中当控制信号为高电平时,继电器常开触点吸合(AB导通),当控制信号为低电平时,继电器常开触点断开常闭触点吸合(AC导通)。

在图(b)中控制信号极性正好与图(a)相反,本设计就是采用这个电路。

3.2单元电路设计

3.2.1CC2530核心板电路

图2CC2530核心板电路

3.2.2按键电路

如下图2个独立式按键RESET,S1分别接在RST和P0.4口,另外一端接地。

当有一键按下时相应的口线的电平发生变化,单片机进行扫描确定哪个键按下,然后进行相应的事件处理。

图3按键电路

3.2.3继电器模块电路

图4继电器模块电路

4软件设计

4.1系统程序设计

在系统工作过程中,首先开启两个Zigbee无线传感器模块的电源,然后按下发射模块的S1键即可对发出相应的控制信号,例如按1次S1表示关闭台灯,按两次S1表示开启台灯,如此往复循环。

4.2主程序流程图

主程序流程图如下:

图5主程序流程图

5制作与调试

在焊接过程中,因为在以前也有过多次焊接的训练,因此在焊接过程中没有太多的问题,焊接结束是,电路板没有问题。

程序在IAR编译成功后,把程序烧写进芯片中,进行演示,演示结果正确。

6总结及体会

为期一个多月的课程设计就落下了帷幕,在这一个多月的的实训中,不仅检验了我对所学知识的掌握程度,也培养了我如何去把握一件事情,如何去做一件事情,又如何去完成一件事情。

通过这次的设计,让我对Zigbee无线传感器有了很多的了解,让我在多方面都有了一定的提高。

通过这次设计,综合运用本专业所学习的课程的理论,设计工作的实际训练从而提高我们的独立的工作能力,巩固我们所学的知识,提高了我们的独立思考能力。

在设计的过程中,我遇上了许多的问题,但是我没有放弃,在不明白的地方,及时的查阅材料,问老师,问同学,顺利地编写程序,仿真,焊接,调试。

参考文献

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

[2]IAREmbeddedWorkbench8051Help[OL].

[3]SmartRFFlashProgrammerUserManual[OL].

[4]CC2530DataSheet[OL].

[5]谭浩强.C语言程序设计[M].北京:

清华大学出版社,1999.

[6]高守玮,吴灿阳.Zigbee技术实践教程[M].北京:

北京航空航天大学出版社,2009.6

[7]李文仲,段朝玉等.Zigbee无线网络技术入门与实战[M].北京:

北京航空航天大学出版社,2007

[8] 杜丽敏,郭文成.ZigBee技术在远程抄表系统中的应用[J].单片机与嵌入式系统,2006(7).

[9] 赵景宏,李英凡,许纯信.ZigBee技术简介[J].电力系统通信,2006,27(165).

[10] 周游,方滨,王普.基于ZigBee技术的智能家居无线网络系统[J].电子技术应用,2005(5).

附录:

附录一程序

(1)发射模块主程序如下:

#include

#include

#include

#include

#include

#include

#include"hal_mcu.h"

#include"hal_button.h"

#include"hal_rf.h"

#include"util_lcd.h"

#include"basic_rf.h"

/***********************************************************************************

*CONSTANTS

//Applicationparameters

#defineRF_CHANNEL25//2.4GHzRFchannel

//BasicRFaddressdefinitions

#definePAN_ID0x2007

#defineSWITCH_ADDR0x2520

#defineLIGHT_ADDR0xBEEF

#defineAPP_PAYLOAD_LENGTH1

#defineLIGHT_TOGGLE_CMD0

//Applicationstates

#defineIDLE0

#defineSEND_CMD1

//Applicationrole

#defineNONE0

#defineSWITCH1

#defineLIGHT2

#defineAPP_MODES2

/***********************************************************************************

*LOCALVARIABLES

staticuint8pTxData[APP_PAYLOAD_LENGTH];

staticuint8pRxData[APP_PAYLOAD_LENGTH];

staticbasicRfCfg_tbasicRfConfig;

//Modemenu

staticmenuItem_tpMenuItems[]=

{

#ifdefASSY_EXP4618_CC2420

//UsingSoftbaugh7-segdisplay

"LS",SWITCH,

"LIGHT",LIGHT

#else

//SRF04EBandSRF05EB

"Switch",SWITCH,

"Light",LIGHT

#endif

};

staticmenu_tpMenu=

{

pMenuItems,

N_ITEMS(pMenuItems)

};

#ifdefSECURITY_CCM

//Securitykey

staticuint8key[]={

0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,

0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,

};

#endif

staticvoidappLight()

{

halLcdWriteLine(HAL_LCD_LINE_1,"WeBee");

halLcdWriteLine(HAL_LCD_LINE_2,"ZigBeeCC2530");

halLcdWriteLine(HAL_LCD_LINE_4,"LIGHT");

#ifdefASSY_EXP4618_CC2420

halLcdClearLine

(1);

halLcdWriteSymbol(HAL_LCD_SYMBOL_RX,1);

#endif

//InitializeBasicRF

basicRfConfig.myAddr=LIGHT_ADDR;

if(basicRfInit(&basicRfConfig)==FAILED){

HAL_ASSERT(FALSE);

}

basicRfReceiveOn();

//Mainloop

while(TRUE){

while(!

basicRfPacketIsReady());

if(basicRfReceive(pRxData,APP_PAYLOAD_LENGTH,NULL)>0){

if(pRxData[0]==LIGHT_TOGGLE_CMD){

halLedToggle

(1);

}

}

}

}

staticvoidappSwitch()

{

halLcdWriteLine(HAL_LCD_LINE_1,"WeBee");

halLcdWriteLine(HAL_LCD_LINE_2,"ZigBeeCC2530");

halLcdWriteLine(HAL_LCD_LINE_4,"SWITCH");

#ifdefASSY_EXP4618_CC2420

halLcdClearLine

(1);

halLcdWriteSymbol(HAL_LCD_SYMBOL_TX,1);

#endif

//InitializeBasicRF

basicRfConfig.myAddr=SWITCH_ADDR;

if(basicRfInit(&basicRfConfig)==FAILED){

HAL_ASSERT(FALSE);

}

pTxData[0]=LIGHT_TOGGLE_CMD;

//KeepReceiveroffwhennotneededtosavepower

basicRfReceiveOff();

//Mainloop

while(TRUE){

if(halButtonPushed()==HAL_BUTTON_1)//**************byboo

{

basicRfSendPacket(LIGHT_ADDR,pTxData,APP_PAYLOAD_LENGTH);

//PutMCUtosleep.Itwillwakeuponjoystickinterrupt

halIntOff();

halMcuSetLowPowerMode(HAL_MCU_LPM_3);//Willturnonglobal

//interruptenable

halIntOn();

}

}

}

voidmain(void)

{

uint8appMode=NONE;

//ConfigbasicRF

basicRfConfig.panId=PAN_ID;

basicRfConfig.channel=RF_CHANNEL;

basicRfConfig.ackRequest=TRUE;

#ifdefSECURITY_CCM

basicRfConfig.securityKey=key;

#endif

//Initaliseboardperipherals

halBoardInit();

halJoystickInit();

//Initalisehal_rf

if(halRfInit()==FAILED){

HAL_ASSERT(FALSE);

}

//Indicatethatdeviceispowered

halLedSet

(2);//关闭LED2

halLedSet

(1);//关闭LED1

/***********************************************

//PrintLogoandsplashscreenonLCD

utilPrintLogo("LightSwitch");

//WaitforusertopressS1toentermenu

while(halButtonPushed()!

=HAL_BUTTON_1);

halMcuWaitMs(350);

halLcdClear();

appMode=appSelectMode();

halLcdClear();

//Transmitterapplication

if(appMode==SWITCH){

appSwitch();

}

//Receiverapplication

elseif(appMode==LIGHT){

//Noreturnfromhere

appLight();

}

/************Selectoneandshieldtoanother***********byboo*/

appSwitch();//节点为按键S1P0_4

HAL_ASSERT(FALSE);

}

staticuint8appSelectMode(void)

{

halLcdWriteLine(1,"DeviceMode:

");

returnutilMenuSelect(&pMenu);

}

(2)接收模块的程序:

接收模块的程序和发射模块的程序基本相同,只是将主程序里的函数appSwitch()屏蔽掉,而开启函数appLight()。

 

附录二元器件清单

表一元器件

种类

数值

数量

CC2530核心板

2

Zigbee功能底座

2

5v电磁继电器

5v

1

三极管

8550

1

电阻

1K

1

电阻

4.7K

1

整流二极管

1N4001

1

导线

4

附录三实物图片

教师评语

成绩(60%)

指导教师签字:

年月日

答辩小组评语

成绩(40%)

答辩小组签字:

年月日

教研室综合意见

综合成绩

教研室主任签字(盖章):

年月日

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

当前位置:首页 > 人文社科 > 法律资料

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

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