基于ZigBee的智能家居设计打印.docx
《基于ZigBee的智能家居设计打印.docx》由会员分享,可在线阅读,更多相关《基于ZigBee的智能家居设计打印.docx(14页珍藏版)》请在冰豆网上搜索。
![基于ZigBee的智能家居设计打印.docx](https://file1.bdocx.com/fileroot1/2023-1/27/b80a105b-c86a-4451-a56f-6f6e6e4019f3/b80a105b-c86a-4451-a56f-6f6e6e4019f31.gif)
基于ZigBee的智能家居设计打印
基于ZigBee技术的物联网智能家居设计
摘要随着WSN(无线传感器网络)技术的发展,家庭信息化、网络化是当今智能家居系统发展的新趋势。
智能家居系统能够为人类提供舒适、智能、环保、高效的现代生活方式,是未来居住模式的必然发展趋势。
而在WSN中异军突起的ZigBee技术弥补了低成本、低功耗和低速率无线通信市场的空缺。
本文在概述了智能家居系统和ZigBee的基础上提出一种采用ZigBee无线通信技术的智能家居系统设计方案。
与传统家居系统相比,利用ZigBee技术实现智能家居系统,具有免布线,维护方便,运行费用低,功耗小,对家居内部各种数据进行无线采集和传输等特点。
本系统利用TI公司的具有增强型的51内核的CC2430芯片,并通过一些外围的设计与传感器的设计,再加上CC2430节点模块与PC终端的串口连接由Delphi实现的PC终端控制软件,可以实现PC终端的智能控制,从而实现了一种低成本、高灵活性、通用的基于ZigBee的无线智能家居系统。
关键词智能家居;ZigBee;CC2430;Delphi;WSN
目录
1引言1
1.1智能家居发展概况1
1.2WSN及ZigBee技术概述1
1.2.1ZigBee协议框架2
1.2.2ZigBee技术的应用领域2
1.3CC2430概述3
2.方案设计4
2.1方案设计简易图4
2.2方案解决示意图5
3.智能家居平台硬件设计5
3.1CC2430核心电路设计5
3.2温度传感器硬件设计6
3.3报警器电路硬件设计6
3.4人体红外感应模块设计7
3.5串口通信硬件设计8
3.6LED显示硬件设计9
4.智能家居平台软件设计10
4.1ZigBee协议栈实现10
4.2ZigBee协议编程10
5.上位机软件设计14
5.1Delphi概述14
5.2上位机软件设计15
结论17
参考文献18
1引言
1.1智能家居发展概况
智能家居是利用先进的计算机技术、嵌入式系统和网络通讯技术,将家庭中的各种设备(如照明系统、环境控制、安防系统、网络家电)通过家庭网络连接到一起的,自从美国在1984真正的智能建筑出现以来,国外已经有将近30年的研究历史,而国内在这方面的研究相对较晚,从2003年才逐步应用于高端市场,而且标准不统一,如海信、海尔、清华大学等大家各自为营。
由于智能家居系统具有安全、方便、高效、快捷、智能化和个性化的独特魅力,使得智能家居的开发与建设成为21世纪科技发展的必然趋势。
随着全球对能源和环境的要求越来越高,而智能家居在节能方面的效果优势非常明显,因此具有非常广阔的市场前景。
1.2WSN及ZigBee技术概述
ZigBee是一个协议的名称,这一协议的核心基于IEEE802.15.4标准,其目的是为了适用于低功耗,无线连接的监测和控制系统。
ZigBee和IEEE802.15.4标准都适用于低速率数据传输,最大传输速率为250KBps,与目前其他成熟的无线技术比较,ZigBee的缺点在于理论传输距离相对较近,但是对于数据采集和控制信号的传输来说,首要考虑的是成本、功耗,距离和速率参数则是次要因素。
所以目前ZigBee技术的主要应用定位在低速率、复杂网络、低功耗和低成本的应用。
另外,基于ZigBee技术可以实现若干个微小的传感器之间实现相互协调的通信,采用接力的方式通过无线电波信号将数据从一个传感器传到另一个传感器,这使得网络间通信效率非常高。
WSN(无线传感器网络)是当前在国际上备受关注的,涉及多学科高度交叉,是高度集成的前沿热点研究领域。
WSN有着巨大的应用前景,被认为是将对21世纪产生巨大影响力的技术之一。
其主要的应用在环境监测,军事应用,医疗应用,智能家居等。
而智能家居也随着WSN技术的发展而得到了很大的发展与应用。
对于无线网络来说,节点间通信距离越大,相应的电气设备结构越复杂、系统功耗以及成本就越难控制。
所以如何采取高效的短距离传输才是比较理想的无线网络解决方案,相对于现有的各种无线通信技术,ZigBee技术的短距离、低功耗、低速率、低陈本是最适合作为传感器网络的标准。
1.2.1ZigBee协议框架
ZigBee是专门为低速率控制网络制定的标准无线网络协议。
它在PHY层、MAC层和数据链路层上采用了IEEE802.15.4协议标准,同时进行了完善和扩展。
整个协议的框架结构如图所示。
图1:
协议框架结构图
1.2.2ZigBee技术的应用领域
ZigBee技术的目标就是针对工业,家庭自动化,遥测遥控,汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制,传感器的无线数据采集和监控,油田,电力,矿山和物流管理等应用领域。
另外它还可以对局部区域内移动目标例如城市中的车辆进行定位。
1.3CC2430概述
CC2430是TI公司推出的用来实现嵌入式ZigBee应用的片上系统。
它支持2.4GHzIEEE802.15.4/ZigBee协议。
根据芯片内置闪存的不同容量,提供给用户3个版本,即CC2430-F32/64/128,分别对应内置闪存32/64/128KB。
兼容IEEE802.15.4的RF前端,接收灵敏度高,集成度高,7*7mmQLP48封装,低功耗(接收27mA,发送27mA),休眠电流0.5μA@PM20.3μA@PM3,可快速唤醒,宽电压工作(2.0V~3.6V),一个加强51内核,8KBRAM(4KB可以全模式工作),具有DMA功能,自带看门狗,支持硬件调试,支持电源、温度管理,12位ADC,128位AES加密处理,两个全功能串口,21个I/O。
图2:
2430的芯片外部结构
CC2430芯片延用了以往CC2420芯片的架构,在单个芯片上整合了ZigBee射频(RF)前端、内存和微控制器。
它使用1个8位MCU(8051),具有128KB可编程闪存和8KB的RAM,还包含模拟数字转换器(ADC)、几个定时器(timer)、AES128协同处理器、看门狗定时器(watchdogtimer)、32kHz晶振的休眠模式定时器、上电复位电路(poweronreset)、掉电检测电路(brownoutdetection),以及21个可编程I/O引脚。
CC2430芯片采用0.18μmCMOS工艺生产;CC2430的休眠模式和转换到主动模式的超短时间的特性。
CC2430芯片的主要特点如下:
高性能和低功耗的8051微控制器核;集成符合IEEE802.15.4标准的2.4GHz的RF无线电收发机;优良的无线接收灵敏度和强大的抗干扰性;在休眠模式时仅0.9μA的流耗,外部的中断或RTC能唤醒系统;在待机模式时少于0.6μA的流耗,外部的中断能唤醒系统;硬件支持CSMA/CA功能;较宽的电压范围(2.0~3.6V);数字化的RSSI/LQI支持和强大的DMA功能;带有2个强大的支持几组协议的USART,以及1个符合IEEE802.15.4规范的MAC计时器,1个常规的16位计时器和2个8位计时器;是强大和灵活的开发工具。
2.方案设计
2.1方案设计简易图
作为一个标准的智能家居,需要覆盖多方面的应用。
其简单示意图如下图所示:
如上所示,一个典型的智能家居系统需要包含无线网关以及多种传感器控制设备。
2.2方案解决示意图
为了解决上述典型的智能家居系统,我们将抽象出如下图所示的网络架构图:
多种传感器或者控制设备,通过zigbee网络与家庭无线网关交互通信。
最后通过无线网关将上述控制信息在互联网上共享。
3.智能家居平台硬件设计
3.1CC2430核心电路设计
图3:
CC2430模块核心电路
该电路设计包含了CC2430的几个主要工作电路,如时钟电路,复位电路等。
3.2温度传感器硬件设计
温度传感器采用DALLAS的1-wire温度传感器DS18B20,该温度传感器只需要占用CC2430的一个引脚即可,直接输出数字量,无需A/D进行转化,使用十分方便。
尽管CC2430内部有集成的温度传感器,但是其功能主要是测芯片内部的温度,用于对环境温度的测量,偏差过大,不能准确的反应出室内的环境温度,所以不能采用。
DS18B20的外围电路的设计十分简单,只占用CC2430的P1.2口即可实现功能。
如图所示
图4:
DS18B20硬件连接图
3.3报警器电路硬件设计
智能家居系统中,当出现危险状况时,需要进行报警,才能达到安防的效果,其中报警器是重要的一个部分。
本次设计中采用了蜂鸣器对温度报警信号进行报警。
由于CC2430的IO口的驱动能力有限,所以要用三极管进行放大,提高驱动能力,实践证明,用S9013进行放大就可以产生良好的报警效果:
图5:
蜂鸣器驱动电路
当协调器检测到温度超过范围后,就产生一个温度报警信号,输出到报警电路中。
由上图可知,当输入端接收到低电平后,三极管导通,蜂鸣器就会发出声音,即可作为报警器使用。
3.4人体红外感应模块设计
当有人经过时,该装置就会被触发,从而输出高电平。
进而传送给单片机报警信号的来临。
该模块采用红外技术,灵敏度高,可靠性强,可处于超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。
模块的硬件电路图如下:
图6:
红外感应模块硬件电路
其中,BIS0001是一款具有较高性能的传感信号处理集成电路。
它配以热释电红外传感器和少量外接元器件就可构成被动式的热释电红外开关、报警用人体热释电传感器等。
该电路实现的功能如下:
人进入其感应范围则输出高电平,人离开感应范围则自动延时关闭高电平,输出低电平。
但是感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出0-3次,一分钟后进入待机状态。
3.5串口通信硬件设计
协调器接受到终端节点的数据后,要将数据传输到PC终端的智能家居控制平台从而实现人机交互,而目前常用的PC数据接口主要有RS232接口和USB接口,本次设计采用RS232接口进行电路设计。
RS232接口是目前主流的串行通信接口之一。
RS232标准规定的数据传输速率为每秒150、300、600、1200、2400、4800、9600、19200波特。
UART采用标准的TTL/CMOS逻辑电平来表示数据,高电平表示1,低电平表示0。
为了增强数据的抗干扰能力、提高传输长度,通常将TTL/CMOS逻辑电平转换为RS-232逻辑电平,3~12V表示0,-3~-12V表示1,由于RS232标准采用的是负逻辑电平,5~15V表示0,5~15V表示l,而CC2430系统使用的是LVTTL电平,标准逻辑l对应2~3.3V电平,标准逻辑0对应0~0.4V电平。
二者的逻辑电平无法兼容,要实现二者进行通信必须经过信号电平转换实现电平匹配。
目前,常用的电平转换芯片有MAX3232,SP3232EEN等。
本系统选用SP3232芯片完成电平转换,从而就可以实现CC2430与PC之间的通信,通过上位机软件就可以实现数据的管理与控制。
具体电路硬件设计如下所示:
图7:
串口硬件连接
3.6LED显示硬件设计
在本次设计中,采用LED来显示从上位机传来的经协调器发送到终端的控制信号.也是对智能家居的控制系统的仿真。
通过PC终端控制哪个灯的亮灭,就可以在终端节点上看到相应的LED的亮灭状态,从而实现的PC机的智能控制功能。
其硬件电路如下:
图8:
LED控制硬件设计
4.智能家居平台软件设计
4.1ZigBee协议栈实现
TI的Z-Stack是基于一个轮转查询式操作系统的,但是本次设计并未采用ZigBee2006,而是采用的一种精简版的公开源码的ZigBee协议栈msstatePAN[6],它由RobertReese在参考MicrochipZigBeeStack的基础上编写的,基于ZigBee1.0,支持硬件平台CC2430和PIC184620+CC2420。
4.2ZigBee协议编程
如果节点作为协调器(coordinator),那么需要定义LRWPAN_COORDINATOR;而如果节点作为路由器(router)则需要定义LRWPAN_ROUTER;如果两者都没有定义,将作为RFD节点。
协调器节点形成网络,然后进入一个无限循环并调用apsFSM()运行协议栈。
调用aplFormNetwork()服务后调用函数aplGetStatus(),如果返回了LRWPAN_SUCCESS则表示服务调用成功。
代码如下:
main()
{
halInit();//初始化HAL层
evbInit();//初始化评估板
aplInit();//初始化协议栈
ENABLE_GLOBAL_INTERRUPT();//开中断
aplFormNetwork();//形成网络
while(apsBusy)()){apsFSM();}//等待完成
while
(1){apsFSM();}//运行协议栈栈
}
路由器节点通过调用aplJoinNetwork()运行协议栈。
代码如下:
main(){
halInit();//初始化HAL层
evbInit();//初始化评估板
aplInit();//初始化协议栈
ENABLE_GLOBAL_INTERRUPT();//开中断尝试接入网络直至成功
do{aplJoinNetwork();//接入网络
while(apsBusy)()){apsFSM();}//等待完成
}while(aplGetStatus()!
=LRWPAN_SUCCESS);
while
(1){apsFSM();}//运行协议栈
}
发送消息时,消息从源节点的源端点发送到目标节点的目标端点。
消息分直接消息(指定了目标地址)和非直接消息(仅定义了源节点、源端点和簇,没有指定目标地址)。
端点号从1到255由应用程序设置(端点0由栈保留使用)。
消息发送以,协议栈会向父节点路由此消息。
如果收到APS的ack确认,协议栈就会将消息发送给目标端点。
应用程序通过调用aplSendMSG()函数发送消息包。
此函数的定义如下:
aplSendMSG(
BYTEdstMode,//目标地址的地址模式
LADDR_UNION*dstADDR,//目的地址的指针
BYTEdstEP,//目标端点(直接消息方式不用)
BYTEcluster,//簇号(仅用于直接消息)
BYTEscrEP,//消息源端点
BYTE*pload,//用户数据缓冲区指针
BYTEplen,//缓冲区字节数
BYTEtsn,//消息的事务队列数
BYTEreqack//如果非0则要求确认
)
接收消息时,协议栈使用以下APL访问函数接收数据包:
aplGetRxDstEp()返回目的端点
aplGetRxCluster()返回簇号
aplGetRxSrcEp()返回源端点
aplGetRxSADDR()返回源端点的短地址
aplGetRxMsgLen()返回消息长度
aplGetRxMsgData()返回消息数据的指针
aplGetRxRSSI()返回收到消息的信号强度
而后用户回调函数usrRxPacketCallback()将被调用。
这个函数将使用用户数据结构保存数据,设置已收到数据的标志位。
此函数结束后消息数据的指针将会被释放,所以在函数结束之前要将数据保存以防止下一个包将数据覆盖掉。
协调器在进行一系列初始化操作后,发出组网请求。
组网成功后就等待接收子节点传来的数据并进行相应的数据处理操作。
协调器工作软件流程框图如下所示:
图9:
协调器软件流程图
子节点首先也进行一系列的系统初始化操作,再进行加入网络请求,等加入网络成功后就进行数据的采集及发送到协调器,以及接收协调器发送来的数据等。
子节点的工作流程框图如下所示:
图10:
终端节点软件流程图
5.上位机软件设计
5.1Delphi概述
Delphi,是Windows平台下著名的快速应用程序开发工具(RapidApplicationDevelopment,简称RAD)。
它的前身,即是DOS时代盛行一时的“BorlandTurboPascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。
主创者为AndersHejlsberg。
经过数年的发展,此产品也转移至Embarcadero公司旗下。
Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的ObjectPascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。
Delphi被称为第四代编程语言,它具有简单、高效、功能强大的特点。
和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。
可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。
它一直是程序员至爱的编程工具。
Delphi具有以下的特性:
基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。
但最重要的还是ObjectPascal语言,它才是一切的根本。
ObjectPascal语言是在Pascal语言的基础上发展起来的,简单易学[8]。
5.2上位机软件设计
节点采集到其他节点的传感器数据后要在PC终端进行显示并可以执行一些控制操作,从而需要上位机软件部分实现与下位机之间的数据通信。
用Delphi实现串口通讯[9],常用的几种方法为:
使用控件如MSCOMM和SPCOMM,使用API函数或者在Delphi中调用其它串口通讯程序。
利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更强大,应用面更广泛,更适合于编写较为复杂的低层次通信程序。
相比较而言,利用SPComm控件则相对较简单,该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作。
上位机并没有直接对底层的API函数进行调用,而是直接通过控件来对串口进行操作,从而只需要一些基本的串口操作方法即可实现串口通讯的功能,大大简化了设计开发的难度。
本次采用了SPComn控件直接对串口进行操作。
SPCOMM的主要属性,方法和事件如下:
通过delphi编写的上位机的相应的界面设计如下所示:
图11:
登陆界面视图
通过登录界面输入用户名和密码后,即可进入控制界面。
从而实现控制功能。
控制界面如下所示:
图12:
主控界面视图
进入后,首先需要进行串口的相关设置,才可以进入监控状态。
串口设置界面如下所示:
图13:
串口设置视图
至此,经过串口设置后,点击开始监控,就可以进入PC终端对家居的控制操作了。
在主控界面中可以显示节点传输过来的室内温度,也可以通过上位机软件进行对终端节点的控制。
结论
在本次课题设计中,采用了ZigBee实现了智能家居系统的一般控制。
选用了TI公司的CC2430芯片进行设计。
ZigBee技术实现智能家居内部组网,具有远程控制方便,添加新设备灵活和控制性能可靠等优点通过传感器节点采集到的温度数据,再通过RFD终端节点发送到协调器,协调器将传输到的温度数据显示在PC终端,而且PC终端可以通过串口将数据传输到协调器后,控制另一个RFD终端节点显示相应的控制状态。
此种控制状态采用LED进行模拟。
。
在此次设计中,尽管基本完成了系统的要求,但是仍然不是尽善尽美。
多出控制之处并没有具体的实现,只是采用LED进行状态模拟,且传感器节点也只是只采用了一个温度传感器DS18B20对室内温度环境的采集,而没有用其他的传感器对室内的数据进行实现,比如湿度,光照等。
但是从本次的设计中,对ZigBee技术以及物联网和WSN技术有了一个更深入的了解。
更加了解到了现今的研究前沿科技与智能家居的发展趋势。
参考文献
[1]郭渊博,杨奎武,赵俭.ZigBee技术及应用—CC2430设计开发与实践[M],北京:
国防工业出版社,2010
[2]高守伟,吴灿阳.ZigBee技术实践教程[M],北京:
北京航空航天大学出版社,2009
[3]尹应鹏,李平舟,郭志华.基于CC2430的ZigBee无线数传模块的设计和实现[J].电子元器件应用,2008,10(4):
18~20
[4]王辉林,李莎莎.基于ZigBee技术传感器检测系统设计与实现[J].传感器世界,2008,(3):
38~39
[5]蒋挺,赵成林.紫蜂技术及其应用—IEEE802无线通信新技术丛书[M],北京:
北京邮电大学出版社,2006
[6]RobertReese.AZigBee-subset/IEEE802.15.4TMMulti-platformProtocolStackMarch.http:
//www.ece.msstate.edu/~reese,2007
[7]求是科技.Delphi7程序设计与开发技术大全[M],北京:
人民邮电出版社,2004
[8]付军.Delphi7实例编程100例[M],北京:
中国铁道出版社2005
[9]范逸之,陈立元.Delphi与RS-232串行通信控制[M],北京:
清华大学出版社,2002