基于Zigbee的无线遥控台灯.docx
- 文档编号:10868057
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:18
- 大小:436.98KB
基于Zigbee的无线遥控台灯.docx
《基于Zigbee的无线遥控台灯.docx》由会员分享,可在线阅读,更多相关《基于Zigbee的无线遥控台灯.docx(18页珍藏版)》请在冰豆网上搜索。
基于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%)
答辩小组签字:
年月日
教研室综合意见
综合成绩
教研室主任签字(盖章):
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Zigbee 无线 遥控 台灯