APP下载

基于Cubieboard和ZigBee的智能家居系统设计

2016-03-17林婷婷

计算机应用与软件 2016年2期
关键词:网关智能家居客户端

林婷婷 陈 华

(新疆大学电气工程学院 新疆 乌鲁木齐 830049)



基于Cubieboard和ZigBee的智能家居系统设计

林婷婷陈华

(新疆大学电气工程学院新疆 乌鲁木齐 830049)

摘要针对传统智能家居系统受Internet的地域限制和控制的局限性,开发成本高,功耗大的问题,设计并实现了一种基于Cubieboard和ZigBee的智能家居系统。围绕Cubieboard来搭建系统的嵌入式网关和服务器,通过移植ZigBee协议栈到Cubieboard来组建智能家居的无线传感网络和控制网络,实现各模块之间的无线通信。同时设计网页和客户端,将平板电脑、笔记本和智能手机作为系统的监控终端,实现对智能家居系统的实时远程监控。通过完成整套软硬件平台的搭建,并试调程序,完成并实现了预期的智能家居系统设计。

关键词智能家居CubieboardZigbee控制网关远程控制终端Android

DESIGNING SMART HOME SYSTEM BASED ON CUBIEBOARD AND ZIGBEE

Lin TingtingChen Hua

(College of Electrical Engineering,Xinjiang University,Urumqi 830049,Xinjiang,China)

AbstractIn view of the problems of traditional smart home system such as being subject to geographical restrictions of Internet and the limitation in control, as well as high-cost in development and high power consumption, we designed and implemented a smart home system which is based on Cubieboard and ZigBee. We built the embedded gateway and server of the system around Cubieboard, constructed the wireless sensor network and control network of smart home by transplanting ZigBee protocol stack to Cubieboard, and realised the wireless communication between each module. At the same time we designed the webpages and the client, and used the tablet PCs, laptops and smartphones as monitoring terminals of the system, thus achieved the real-time remote monitoring on smart home system. By the completion of building whole set of hardware and software platform and testing the program, we accomplished and realised the expected smart home system design.

KeywordsSmart homeCubieboardZigbeeControl gatewayRemote control terminalAndroid

0引言

随着科技的日新月异,人们生活水平不断提高,人们对生活质量的日益重视,普通的生活家居已经不能够满足广大居民对生活方式现代化和居住环境舒适化与安全化的要求,如何实现家居智能化已成为现代家居发展的方向。因此智能家居系统应运而生。由于国家对物联网的支持,使得智能家居具有巨大的发展空间。

智能家居是以住宅为平台,利用先进的计算机技术、网络通信技术、综合布线技术和无线技术,提供友好的智能家居远程管理界面,将与家居生活有关的各种子系统有机地结合在一起[1],提供舒适安全、高品位的家庭生活空间,将原来被动静止的家居生活转变成能动智慧的生活方式,提供全方位的信息交换功能。智能家居系统是实现家居智能化的设施,随着智能家居的不断发展[2],开发一种低功耗且方便操作的家居控制系统成为现在智能家居发展的一种趋势。

本系统主要围绕Cubieboard来搭建,通过移植ZigBee协议栈到Cubieboard来组建智能家居的无线传感及控制网络,在此基础上实现居室环境的感知、家用电器的开关控制以及防盗报警等功能。平台设计尽可能采用通用模块以及标准协议,在降低智能家居系统组建成本的同时,降低搭建难度,让智能家居物联技术尽快走进人们的生活中来。

1系统总体设计

智能家居系统是实现家居智能功能的设施,最初的家居控制的设计只是简单的控制家中的如电视、电冰箱、空调、热水器、照明设备等的家用电器,而新的智能家居是一个更大范围的控制,大致可以分为:中央控制系统,安全防范系统,智能照明系统,电器控制系统,环境控制系统,多媒体共享系统,综合布线系统和高层逃生系统。

智能家居系统的基本组成结构如图1所示。

图1 系统结构图

本设计旨在降低成本,利用笔记本、平板电脑和智能手机等这些普通家庭中已有的资源作为系统的监控终端。采用集成了开源操作系统的Cubieboard计算机来取代传统的PC机作为网关,由于其拥有丰富的标准接口,可以用键盘、鼠标、电视机等作为网关的输入输出设备,并且网关内安装有支持BS模式访问的Web服务器和支持CS模式访问的服务器APP,在手持终端上安装客户端[3],服务器和客户端可通过因特网或WiFi局域网登录家居网关Web页面,交互数据,提取信息从而控制家电。同时本设计还可实现视频传输,实现家居系统的远程监控,实现更加友好的人机交互界面。家庭内所用数据以及家用电器的设备状态在一段时间内都可储存在本地的微型数据库中。本文设计的智能家居系统的网络采用的是无线组网方式,在一些常用的无线方式中,ZigBee比蓝牙技术简单,网络容量大,比WiFi功耗低,比射频通信技术完善,故本设计采用的是ZigBee无线通信方式。网关通过与之相连的ZigBee协调器收集数据和下传命令。同时ZigBee协调器担任着组织建立并管理其他ZigBee模块所组成的通信网络的功能。

2主要系统硬件设计

2.1网关硬件设计

智能家居网关是家居智能化的心脏,通过它来实现信息的采集、输入和输出,集中控制、联动控制、远程控制等功能。为了解决早期使用的普通PC机网关存在的能力过剩、功耗高、 很难实现长期可靠的运行等缺点,本设计采用的是中国珠海Cubietech技术团队开发的Cubieboard来取代pc机,它是一款类似“树莓派”(Raspberry Pi)的以ARM为核心的卡片式廉价计算机[4]。

Cubieboard功耗低,体积小,接口全,除具备常用的基本接口外还多出了UART、IIC、SPI等家用PC没有的接口。除了PC机的Ubuntu系统外,它还能运行嵌入式系统Android。软硬件平台均开放便于开发同时拥有自己的技术论坛,故本文选用Cubieboard作为智能家居系统网关[5]。

对于Cubieboard现有的板载接口来说,它只能组成一个多媒体计算机而无法完成网关任务,为了完成本文所需要的网关任务需要从96PIN扩展接口中引出需要的通信接口为Cubieboard设计一块扩展底板,这样就能给选用的Cubieboard板载接口加入GSM模块以及Zigbee协调器。本文GSM模块选用西门子公司的TC35i工业模块,此模块可完成GSM音频、短信通信以及GPRS上网功能。ZigBee模块选择德州仪器公司CC2530芯片,设计中采用板载天线、低功耗小体积贴片结构,便于进一步集成。根据TC35i模块和ZigBee模块开发手册可知,TC35i模块所需的供电电压为4.2 V,在此条件下各端口电压工作在3.3 V。ZigBee供电电压为2 V至3.6 V。由Cubieboard引出接口说明知,Cubieboard可提供5 V和3.3 V两种电压电源,其中3.3 V电源可为ZigBee模块供电,TC35i则需要额外的稳压电路。本文选用LM2941S可编程稳压芯片搭建4.2 V稳压电路。如图2所示。LM2941S输入电压为直流5至26 V,输出电压通过两个电阻的比值决定,图2上图为LM2941S电压编程模型,输出电压Vout=Vref×(1+(R1/R2)),手册中Vref取1.24,由此通过调整R1和R2电阻的比值即可决定电压输出值,本文取值R1=4.7 K,R2=2 K。LM2941S还提供一个电源输出控制引脚,此引脚接高电平则有电源输出,接低电平则关断输出。因此可使用Cubieboard的一个引脚作为TC35i模块的电源开关控制引脚,具体电路如图2下图所示。

图2 4.2V稳压电路

又TC35i模块上电之后还需要在IGT管脚施加一个100ms长度的低电平才能启动工作,因此需要给TC35i设计一个上电点火电路。本文点火电路围绕MAX810进行搭建如图3所示。TC35i模块工作时需要连接SIM卡才能接入GSM网络,因此扩展板需要SIM卡接口电路,如图4所示。

图3 TC35i上电点火电路

图4 SIM卡接口电路

最后扩展板上还需要分别将Cubieboard的串口与TC35i模块和ZigBee模块相连,并提供一个PC监控串口,方便测试,本文选择UART3连接ZigBee模块,UART4连接TC35i模块,详细串口电路如图5所示。

图5 串口电路

2.2其他组件模块

传感组件主要由ZigBee通信终端与传感器组合设计而成,传感器负责采集数据,ZigBee通信终端负责将数据发送至ZigBee主节点,其组成模型如图6所示。

图6 ZigBee终端节点硬件组成结构简图

控制组件一般分为两类:一类是电源开关控制,另一类是红外遥控控制。控制模块如图7所示。

图7 控制模块组成结构简图

3主要系统软件设计

智能家居系统软件按照处理器区分可分为网关和ZigBee终端两部分。

3.1网关的设计

网关的软件开发工作主要是在Android环境下开发Android应用程序,因此在软件开发工作进行前首先要搭建软件开发环境,网关应用需要调用底层驱动函数,需要提高应用程序的访问权限,因此需要自行配置编译Android系统镜像,为提高编译效率,在此选用linux系统下的开发套件。

网关程序的主要功能分为以下三部分:1) 与挂载于Cubieboard串口上的ZigBee模块和TC35i模块进行串口通信;2) 与运行于智能手机或平板上的Android客户端进行网络通信;3) 将接收到的数据进行相应的处理。网关程序的流程如图8所示。

图8 网关程序流程图

3.2ZigBee终端软件设计

本设计采用的是星形网组建ZigBee通信网络,该网络包含一个ZigBee网络协调器和若干终端节点。协调器程序运行[6]流程如图9所示。

图9 协调器程序运行流程

终端节点在启动时,首先要执行一系列初始化准备工作,例如设置信道、网络标识符、发送地址等参数。为后续初始化工作做好准备,配置代码如下:

basicRfConfig.panId = PAN_ID;

//设置网络标识

basicRfConfig.channel = RF_CHANNEL;

// 设置信道

basicRfConfig.ackRequest = TRUE;

//打开ACK回复功能

basicRfConfig.myAddr = SEND_ADDR;

//设定本机地址

执行完配置项后开始调用硬件芯片初始化的相关函数,初始化硬件资源,接下来初始化并启动操作系统,开始任务调度,这部分代码由TI官网提供编程框架,初始化函数封装在Zmain.c、OSAL.c文件中。实现终端节点设计功能的应用(任务)由用户编写。

用户应用编写流程如下:

首先在官方代码框架下加入该任务的任务初始化函数,主要完成用户任务ID设定、绑定标志位设定、初始化并注册该任务层的端口描述符、设置和注册该任务的响应事件等工作,为该任务的执行做好准备。在该任务执行时会从非易失性存储器中读取配置信息,将ZigBee设备配置为终端节点。

ZigBee设备作为终端节点启动后,如果网络存在将给ZDO(ZigBee设备对象)一个发现网络的反馈信息,然后由网络层加入网络请求,如果入网成功,则会给一个加入网络的反馈信息。根据这一特性,在用户任务配置代码后加入网络搜索、加入申请代码。

加入网络后终端节点会寻找ZigBee网络内的协调器进行绑定,如果绑定成功,就开始执行采集、发送功能函数。

4Android设备客户端软件设计

由于Android操作系统的开放性和可移植性,它被用在大部分电子产品中(如智能手机,电脑,电视,机顶盒,导航仪等),故本设计控制终端设备选择的是具有Android操作系统的智能手机等电子产品。 Android设备应用程序的所用编程语言为Java语言,所用编译工具为google公司提供的eclipse集成开发环境[7]。Android软件堆层实际就由一个应用程序框架、Linux内核和一个C/C++库三部分集合而成。

要实现无线监控的目的,首先要搭建Android应用程序的开发环境,再设计与实现Android客户端的界面,实现和服务器的socket连接之后获取智能家居安防中的各个传感器的信息。

在设计Android UI的每一个独立组件时,其元素都是使用的源于Viewgroup的各种布局管理器设计分布到界面上。Android的SDK包含很多的布局类,本文设计的用户界面主界面实现使用LinearLayout、RelativeLayout两个布局类[8]。如图10为Android设备客户端主界面图,用户进入登录成功后进入如图所示的用户主界面主要包含连接按钮和照明控制按钮、环境感知按钮等,所有功能模块的工作都是通过应用程序网络通信功能来实现Android设备与家庭网关的数据传输。以环境感知按钮为例如图11所示,用户选择环境感知按钮就可以进入此界面,获取当时的环境参数。

图10 Android设备客户端主界面图

图11 环境感知界面

网络通信模块是Android应用程序至关重要的一部分,主要实现和服务器的socket连接(如图12所示),与智能网关进行双向网络通信,Java语言拥有丰富的针对网络进行编程的函数,在设计使用时只需对函数进行调用和重载即可,例如,调用:

socket = new Socket(serverIpAddress,port);

DataOutputStream os

=newDataOutputStream(socket.getOutputStream());

DataInputStreamis

=newDataInputStream(socket.getInputStream());

就可方便地实现与网络上指定IP、指定端口的服务器进行通信。

图12 Android客户端socket的执行过程

5结语

在这个科技日新月异的时代,人们对生活的便利度和舒适度要求日益提高,智能家居产品顺应人们的需求,终究会广泛应用到人们的日常生活中去。本设计实现了对传统智能家居的改进,利用Cubieboard计算机来取代PC机作为网关,利用ZigBee无线通信取代了传统的有线通信模式,实现了ZigBee技术与 Cubieboard计算机的有效结合,实现了将平板电脑、笔记本和智能手机作为系统的监控终端,准确实时地对家用电器信息等集中管理和监控,实现了预期的设计目的。

参考文献

[1] 张桂青,鹿曼,汪明,等.智能家居的“春天”来了[J].计算机科学,2013,40(6A):398-402.

[2] 李治斌,邓小芳,张余明,等.基于Zig Bee技术的智能调光开关设计[J].传感器与微系统,2014,33(1):60-63.

[3] 张丽静,郭禹伶,高志强,等.基于Android平台的智能家居远程客户端设计[J].河北电力技术,2014,33(1):25-27.

[4] 老鬼阿定.开源硬件掀起一波创新大潮[N].计算机世界,2013-11-11.

[5] 袁麓,刘丹斌,安国超.面向广电物联网的智能家居系统及其网关的研究[J].中国有线电视,2014(S1):395-399.

[6] 熊琼,师卫,腾生强.基于ARM cortexTM-A8与Android的智能家居系统[J].电视技术,2014,38(9):85-88.

[7] 陈儒敏,侯思名,颜江.基于开源软硬件的智能家居系统设计与实现[J].现代计算机,2013(28):71-73.

[8] Reto Meier.Android 4 高级编程[M].3版.余建伟,赵凯,译.北京:北京大学出版社,2013:85-90.

中图分类号TP393

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.02.017

收稿日期:2014-07-04。林婷婷,硕士生,主研领域:智能家居。陈华,副教授。

猜你喜欢

网关智能家居客户端
基于PLC的智能家居控制系统研究
如何看待传统媒体新闻客户端的“断舍离”?
信号系统网关设备的优化
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于Zigbee的无线通信技术在智能家居中的应用
关于智能家居真正需求的探讨
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”