基于ZigBee和Arduino开源平台智能网关的设计与实现

2016-05-19 14:27肖忠祥戎腾学范鹏召
电脑知识与技术 2016年7期
关键词:智能家居

肖忠祥++戎腾学++范鹏召

摘要:随着物联网和智慧家庭领域的不断发展,使运用Arduino开源平台、ZigBee无线通信协议、Android智能终端及相关传感器模块搭建的互联互通的智能家居系统成为可能。家庭网关作为智能家居网的核心,不仅要实现家庭设备间的通信,还需要完成各设备网络的接入以及远程监控和集中控制等功能。主要基于ZigBee和开源Arduino对智能网关进行了研究设计,实现智能家居真正意义上的"互联互通、互懂互控”。为智能家居进一步的开发提供了强有力的保障基础。

关键词 Arduino;ZigBee;智能网关;智能家居

中国法分类号:TN914 文献标识: A 文章编号:1009-3044(2016)07-0252-03

Design and Implementation of Smart Open-source Gateway based on ZigBee and Arduino

XIAO Zhong-xiang 1,RONG Teng-xue 2,FAN Peng-zhao3

(1.College of Electronic Engineering,Xi'an Shiyou University,Xi'an 710065, China; 2.Quality Supervision and Inspection Center of Petroleum Instruments,Xi'an Shiyou University,Xi'an 710065, China; 3.College of Computer Engineering,Xi'an Shiyou University1, Xi'an 710065, China)

Abstract: With the continuous development of the field of IOT and smart home, it is possible that the use of open-source Arduino platform、ZigBee wireless communication protocol、Android smart terminal and some sensor module to build a interoperability smart home system. Home gateway as the core of smart home network, it not only to achieve communication each devices,but also need to complete each device access to the network,remote monitoring and centralized control. It mainly studied and designed the smart gateway based on ZigBee and open source Arduino,, realizing the true sense of“interoperability,mutual understand and control”in smart home. That provides a strong guarantee for the further development of smart home.

Key words: Arduino; ZigBee; smart gateway; smart home

智能家居概念的起源很早,自智能家居概念的起源非常早,自从康涅狄格州在1984年完成第一座智能大厦后,美国、新加坡、德国、日本等经济发达国家纷纷提出了多种智能方案。并得到广泛应用。早在1998年,比尔盖茨已经为自己建造了一个智能化住宅。初期的智能家居是有线连接的,在一定程度上限制了自身的发展,而且价格不菲,不是普通大众的消费品。无线解决方案带来了家庭自动化的曙光,切断了连线,有利于进一步应用的发展。当前,市场上的智能家居根据使用的不同无线技术主要可分为四种,分别是Wi-Fi、蓝牙、ZigBee和Zwave,这些关键技术可以对智能家居任意远程控制。

ZigBee内置了AES128位的加密算法,从组网规模上看ZigBee具有很强的优势,理论上节点数多达65000. 2.4GHZ的频段是最常用的,主要应用于科学、医疗和工业上,ZigBee应用协议也应用在该频段上。在智能家居中, ZigBee自身已经具备完整路由的功能,增强了穿透能力。Arduino采用电子积木的方式开发,为多种传感器原型的制作提供了有利条件,使得终端设备和各种传感器接入标准不一致的问题迎刃而解,而且Android则提供了良好的人机界面。ZigBee、Arduino及Android结合起来为智能家居应用的开发创造了无限可能,对智慧家庭、物联网的发展会起到很大的推动作用。该文将结合这几种技术设计一个智能家居的智能网关。

1 关键技术

1.1 ZigBee无线传感技术

ZigBee无线传感技术是一种双向通信技术,主要具有距离短、功耗低、复杂度低、速率低和成本低的特点。在短距离、功耗低以及传输速率要求低的设备间应用于传输数据,还应用于传输规范的间歇性数据和周期性数据。

ZigBee技术的安全性是有保证的,到目前为止还没有一个被破获的案例。对其系统性的设计直接影响安全性:使用AES高级加密系统,保密程度等同于银行卡加密技术的12倍;其次,在组网方面ZigBee采用蜂窝的结构,所有设备与网关关的通信是多方向的,有较高的网络稳定性;此外,ZigBee网络理论节点数多达65300个,能够覆盖智能小区和楼宇等,足以满足智能家居网络的使用需求;最后,ZigBee的通信是双向的,设备既可以接收到命令,而且可以反馈其执行情况,对用户体验的意义很大,尤其体现在安全设备上。另外,ZigBee相关设计功耗较低,能够用电池充分供电,电池使用年限较长,可以达到节约能源和环保的目的。

1.2 Arduino开源平台

Arduino是源自意大利的开源电子硬件项目的一个开源电子原型制作平台,它包括一个具备简单I/O功效的电路板和一个开源的软件开发环境,既可以独立运行,又具备互动性。使用者能够应用相对简单的程序对Arduino电路板进行操控,结合各类传感器和功能模块,实现丰富的感知、识别、处理等功能。Arduino开源易用的特点为智能产品的原型设计提供了很好的平台,随着用户和周边产品的增多,Arduino已经形成了一个开源的生态系统,其丰富的软硬件资源能够满足绝大多数智能产品原型设计的需要。

然而,Arduino并不是专门针对智能产品原型设计而开发的,在面对数量庞大的可用资源时,使用者很有可能感到迷惑和不知所措。因此,对智能产品原型设计进行深入的研究,并有针对性地将Arduino及其生态系统的优势融入其中,对于提高智能产品原型在智能产品设计中的作用有重要的意义。

2 智能网关的硬件设计

2.1 智能网关硬件结构

在智能家居系统中智能网关具有非常重要的作用,也是家庭外部通讯网络和家庭内部控制网络之间的桥梁,起到了很好的连接作用。智能网关的总体硬件结构设计如图1所示,其包含的模块主要有Arduino核心控制模块、储存系统人机交互模块、网络模块、电源模块、通信网络模块和扩展接口等。

如硬件结构图所示,含W5100的Arduino模块作为主要的核心模块[2],以Arduino模块为核心拓展开的其他硬件模块通过串口、USB接口等串行总线与其通信,达到协同工作的目的。W5100是一款多功能的单片网络接口芯片,嵌入式设备可以在占用较低系统资源的条件下快速完成网络通讯。集成了TCP/IP协议栈,以太网的MAC和PHY的三种功能,可以满足各种单片机在没有操作系统的支持下接入网络,操作简单、可靠。ZigBee模块的主要功能是提供家居网关与家居内部ZigBee网络交互的通信接口,客户可以通过家居网关平台接入家居内部的ZigBee网络,并对具有ZigBee节点的家电设备进行监控。外围设备和扩展模块主要完成设备地址译码和外部通信的任务,并预留接口。

2.2 ZigBee通信模块电路设计

ZigBee通信模块起着举足轻重的作用,是组建家庭内网的基本单元,其主要作用是把家庭内网与互联网连接起来,最终实现数据的转发。CC2530的8051内核经过特殊设计,可以与ZigBee无线电路协同工作[3],其工作频段在2.4GHZ。核心硬件CC2530拥有极高的集成度,因此外接的必要原件比较少。一般只需一个晶振就能满足无线收发和组网要求。本系统设计的ZigBee通信模块硬件原理图如图2所示。

3 智能网关软件设计

3.1智能网关系统架构

按照该系统的设计需求,本网关既要运行TCP/IP协议,又要运行ZigBee协议[4]。如图3所示为智能网关的软件架构。软件设计采用分层化的模块结构,每一层模块都有其独立的功能,通过接口函数为每一层模块的上层提供服务[5]。在架构图中,最底层的是硬件驱动模块,主要是在网关上ZigBee和Arduino所有硬件的驱动程序。在HAL层之上是硬件抽象层,硬件抽象层之上是Arduino核心处理系统,在这之上的是TCP/IP协议栈和ZigBee协议栈。顶层是智能网关架构要实现的应用层,实现人机交互[6]。

3.2 软件系统应用程序设计

ZigBee协议栈是在OSAL操作系统上运行的,OSAL基于任务的调度机制,通过触发相关任务的事件触来应对一个事件号。如图4所示是协议栈流程图。当某一个事件发生时,比如按键,这将会调用按键的响应函数,通过响应函数生成一个任务,再通过这个任务来发送osal_msg_send函数,发送消息处理循环,并注册事件,等待处理[7]。在应用层,事件被其处理函数检测到后,将会调用相应的处理函数。

系统中Arduino主板含有W5100,集成了TCP/IP开源的协议栈LwIP,安装好驱动以后要将LwIP移植到Z-Stack上,LwIP协议栈的所有TCP/IP协议都在一个进程当中。如图5所示为Arduino主板的程序流程图。其中ZigBee终端设备(ZDO)的主要工作是接收网络协调器发来的控制命令,如家电的各种开关操作等,再通过协调器查看家电设备的运行情况。

终端设备有休眠和唤醒两种状态,但大多数处在休眠状态,当有新的任务执行时,就将其唤醒,任务执行完毕后则再次进入休眠的状态。如图6所示位设备终端的主流程图。

4 智能网关测试

家居智能网关系统启动后加入内部网络的方式主要有协调器和路由器两种,通过TCP/IP协议与网络相连。用户在终端设备上通过WWW浏览器就能轻松地实现各种家庭智能应用,主要包括家电的管理,对其进行智能化的监控等[9]。

网关测试主要分三步进行,首先是安装CP2102驱动,一一对应连接好CP2102与Arduino主板,通过USB给其供电,接下来给Arduino主板下载程序,代码刷好以后,插上网线,打开串口测试联网是否成功。然后将ZigBee模块插到ZigBee开发板上,搭建IAR环境,连接下载器并安装好驱动,编译并下载ZigBee自组网代码[8]。成功后再给ZigBee开发板的P1.0接一个LED。最后把ZigBee开发板插入Arduino板对应的管脚,通过手机控制端来测试[9]。手机打开m.znck007.com,新建一个开关,点击开关,LED灯闪烁,网关正常,接下来就可以组网,实现下一步的智能控制。

5 结束语

目前,智能家居系统的实现方案和功能有很多,但它们过于复杂和封闭。本文主要基于无线传感技术ZigBee和开源平台Arduino对家居的智能网关进行了需求分析,进而完成软硬件的设计和实现工作。在功能测试和通信距离的测试方面,将智能网关应用到实际的家庭环境中,并对测试结果进行分析,为今后更方便快捷的设计提供依据。由于设计时间段,再结合现有的技术,目前只是设计了系统的雏形,接下来应该继续进行相关研究,结合嵌入式相关技术,实现网关的真正智能化,并增加系统的稳定性。

参考文献:

[1] 姜宇航. 基于物联网的智能家居控制系统设计[D].长春:吉林大学,2014.

[2] ZigBee Alliance. ZigBee Specification 2006.[2010-08].http://www.zigbee.org.

[3] 杨楠. 基于Arduino的智能产品原型设计研究[D].无锡:江南大学,2014.

[4] 邢伟伟,白瑞林,孟伟. ZigBee无线网关在MODBUS通信中的应用[J]. 计算机工程与用,2011,29:81-84.

[5] QIU Ying,LI Shining,WU Wen, et al. General mote platform design for wireless sensor Network[J].CEA, 2012, 48(23): 90-94.

[6] 吴红莲. 基于嵌入式系统的智能家庭网关研究[D].杭州:浙江大学,2006.

[7] 郑昊. 基于Arduino/Android的蓝牙通信系统设计与实现[D].武汉:湖北大学,2012.

[8] 金东勇. ZigBee技术在智能家居控制系统中的应用研究[D].太原:太原理工大学,2008.

[9] Dunkels A.Full TCP/IP for 8-bit architectures. Proceedings of the First International Conference on Mobile Systems, Applications, and Services(MOBISYSp03).San Francisco,2003:85-98.

猜你喜欢
智能家居
基于Zigbee的无线通信技术在智能家居中的应用
关于智能家居真正需求的探讨
基于LD3320的智能家居控制