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

龙源期刊网 http://www.qikan.com.cn

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

作者:肖忠祥 戎腾学 范鹏召

来源:《电脑知识与技术》2016年第07期

摘要:随着物联网和智慧家庭领域的不断发展,使运用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年,比尔盖茨已经为自己建造了一个智能化住宅。初期的智能家

龙源期刊网 http://www.qikan.com.cn

居是有线连接的,在一定程度上限制了自身的发展,而且价格不菲,不是普通大众的消费品。无线解决方案带来了家庭自动化的曙光,切断了连线,有利于进一步应用的发展。当前,市场上的智能家居根据使用的不同无线技术主要可分为四种,分别是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已经形成了一个开源的生态系统,其丰富的软硬件资源能够满足绝大多数智能产品原型设计的需要。

龙源期刊网 http://www.qikan.com.cn

然而,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]。