倪亚玲 李晓宁 张小红,2
1(电子科技大学机械电子工程学院 四川 成都 611731) 2(国网四川省电力公司德阳供电公司 四川 德阳 618000)
基于Android的无线智能家居系统设计与研究
倪亚玲1李晓宁1张小红1,2
1(电子科技大学机械电子工程学院 四川 成都 611731)2(国网四川省电力公司德阳供电公司 四川 德阳 618000)
伴随着智能手机产业的快速发展,网络通信技术的日新月异,物联网浪潮的推波助澜,智能家居逐渐成为当代家居生活的发展方向。家庭网络需要具备便捷性、模块化、扩展性及独立性的通信特点,而无线网络技术能够为智能家居系统提供更大的灵活性、移动性,所以把无线网络技术融入到家庭网络中已经成为当今智能家居市场主流趋势。由此设计开发基于Android的无线智能家居系统。此外,在完成设计以后对无线智能家居系统的各项功能进行测试,系统在各项测试中性能优良,达到了系统设计预期的要求。
Android 智能家居 系统设计 WiFi
时代的推移,人们生活水平的提高,改善生存、生活环境成为当今社会的热门话题。智能家居的普及在家居环境改善的过程中有举足轻重的作用,智能家居控制系统是家居智能化的核心,扮演着最为重要的角色[1-2]。
美国、俄罗斯都认为物联网行业的发展是经济腾飞,夺取当今世界的霸主地位的关键因素,而智能家居的普及对物联网行业的发展中有举足轻重的作用[7]。在中国也不例外,国家五大新兴战略性产业,智能家居物联网产业赫然在列。由此可见,在未来的几十年时间里,智能家居作为一个新兴蓝海项目,市场前景不可估量,智能家居产业将会是中国最具发展潜力的产业之一[3]。
本文将基于ZigBee技术、WiFi技术、Android技术完成无线智能家居系统的设计与研究。从结构上讲,本文的无线智能家居控制系统分成智能家居APP、服务器、中央控制器、子控制器四大部分。智能家居APP基于Android操作系统进行设计,完成远程监视和控制功能;服务器基于TCP协议的Socket通信进行设计的,完成转发数据的功能;中央控制器基于OpenWrt操作系统进行设计,完成WiFi和ZigBee信号的相互转换;子控制器则利用CC2530单片机,完成设备动作的控制和ZigBee信号的上传和下达。一个有机的无线智能家居控制系统在APP、服务器、中央控制器、子控制器的协调配合下稳定的运行。
智能家居将多项高新技术融入到家庭生活中,旨在让每家每户都享用人类的科技成果,为每家每户提供方便、高效、安全的居家体验。用户通过手机,就能够对家电设备、居家环境乃至整个家实现统一的控制与管理。
无线智能家居网络系统主要由无线信息通信网络、自动化控制网络、摄像机监视网络三部分构成,主要被应用于家庭范围或相似用途的地方。智能家居网络系统既能本地局域网也能通过互联网远程实现:智能灯光、智能窗帘、智能空调等智能电器设备的监测和控制;智能插座的开关及电量信息采集与监控;视频监护、危险预警、安防监控等功能。
1.1 WiFi无线网络设计
本系统的WiFi无线网络是由中央控制器的RT5350WIFI网关,Android手机终端和服务器组成。其软件设计主要包括OpenWrt操作系统设计、服务器设计、Android应用程序设计。
1.1.1 OpenWrt操作系统设计
OpenWRT操作系统具备高度模块化、高度自动化的特点,并且具备十分强大的网络组件和扩展性[4-5]。本系统在进行智能家居OpenWrt开发时,采用F403科技创意室的RT5350开发板,其开发步骤如下:
(1) 在PC机上编译U-boot,然后通过SPI Flash烧写器烧入单板。
(2) 在PC机上编译OpenWrt,通过U-boot烧入单板或直接启动。一个可以在单板上运行的OpenWrt是进行后续开发的基础。
(3) 在PC机上编译各种应用程序,经过验证成功后再烧入开发板。
1.1.2 服务器设计
本系统用户的手机、中央控制器都作为WIFI网络的客户端与服务器交换数据,服务器是手机与中央控制器通信的桥梁。设置好服务器的固定IP和端口号以后,用户的手机可以在任何地方通过WiFi连接上服务器,与中央控制器进行通信,从而实现对家里各个子控制器的控制。本文设计的服务器是基于TCP协议的服务器,TCP传输控制协议是一种面向连接的,提供端到端全双工传输的通信方式。TCP的传输有三个过程,它们分别是:建立连接、传送数据、释放连接[6-8]。图1呈现了TCP三次握手流程。
图1 TCP三次握手
TCP/IP协议网络通信的基本操作单元就是Socket通信,它是网络通信的基础。“套接字”是Socket通信的俗称,Socket是一个通信链的句柄,用来指明IP地址和端口。应用程序网络发出请求或者应答网络请求都是通过Socket进行的。
应用程序的Socket通信是建立与平台其他应用协调工作的基础。在Java源程序中建立Socket对象以后,开发人员就是可以用它来接受发送网络中的输入输出流。Android的Socket通信模型如图2所示。
图2 Socket通信模块
图3展示了服务器和客户端的工作流程,在服务器端首先利用Socket()函数创建Socket对象,然后用Bind()函数绑定端口号,最后利用Listen()函数来监听无线网络中的数据请求[9-10]。
图3 服务器与客户端Socket通信程序流程图
1.1.3 Android应用程序设计
智能控制界面就是应用程序中直接与用户进行交互的可视界面。智能控制界面、Socket通信、数据库是实现基于Android无线智能家居系统软件设计必备元素。智能控制软件的组成如图4所示。
图4 智能控制软件组成图
(1) 智能控制界面
登录界面,控制中心主界面和无线智能家居系统各房间子界面三部分组成了智能控制界面。其整体的结构框图如图5所示。
图5 智能控制界面的整体结构框图
创建开发登录界面的目的是为了确保家庭网络的安全和用户的隐私,智能控制软件只能被家的主人或其授权的人使用,开发者设置了智能控制软件原始用户名和密码,用户登录后可以在设置界面内根据需求自主改动用户名和密码。
(2) 通信功能实现
本系统的服务器采用的是TCP服务器,所以要与服务器进行通信,需要建立TCP客户端,在知道服务器IP地址和端口号的情况下,通过socket = new Socket(conIP, port)建立Socket套接字连接,通过connect()函数连接服务器即可完成通信。
(3) 数据库设计
由于本文智能家居系统中使用的数据量比较小,于是本系统使用了Android系统自带的SQLite数据库来储存登录密码,情景模式的家用电器设备以及插座控制模块等数据信息。
1.2 Android应用程序界面设计
1.2.1 登录界面的设计与实现
Android系统的界面设计通常都包含三个部分:xml资源文件中实现相应界面的结构布局;Java源代码文件中实现对应界面的显示和具体功能的实现;系统文件完成对登录界面中组件的描述以便系统的识别。图6完整地展示了登录界面的组成成分。
图6 登录界面成分
本系统的登录界面软件的设计流程如图7所示。
图7 登录界面程序流程图
连接服务器,接受用户输入的用户名和密码是智能控制软件在登录时主要的功能,对用户输入的账号和密码进行比较验证,只有它们都正确时才能进入智能家居系统主控界面。开发完成的登录界面如图8所示。
图8 登录界面
1.2.2 主控界面的设计与实现
当用户点击Login按钮后,如果用户名和密码验证成功,则智能控制软件从登录界面跳转到主控界面。整个无线智能家居系统的各房间、情景、安防、设置图标在主控界面上显示,界面还具有提供进入这些房间和公共模块的接口的任务。智能家居系统主要的功能模块包括:客厅、主卧、次卧、厨房、安防、情景、设置。在Java源代码文件中,通过setContentView()函数来关联maintest.xml布局文件后,智能控制软件就能够显示主控界面。界面上的每个房间以及公共模块都有其对应的功能,它不会实现这些具体功能,只是为用户进入各房间和公共模块提供一系列的接口。
在登录界面的Activity中设置事件侦听器,当侦听到事件时Activity通过意图组件来实现跳转,从而实现让用户从登录界面顺利地过渡到主控界面。同理如图9所示,要从主控界面跳转到各个房间和公共模块,也必须给主控界面上对应的图标设置事件侦听器,并在侦听到按钮事件后利用意图组件来实现界面的跳转。主控界面如图10所示。
图9 主控界面程序流程图
图10 主控界面
1.2.3 各房间界面的设计与实现
每个房间的结构和功能基本一致,它们都包含灯光控制、窗帘控制、插座控制、环境检测模块,所以本部分以主卧为例来介绍房间界面设计与实现。主卧房间的逻辑结构图如图11所示。
图11 主卧界面结构图
其程序流图与主控界面大同小异,开发完成的主卧界面如图12所示。
图12 主卧界面
1.2.4 情景模式界面的设计与实现
连锁控制在智能家居系统中指的就是智能家居情景模式,例如智能家居回家模式:下班以后,用户只需点击手机上的一个按钮即可打开所有想要打开的电器,与此同时智能软件后台自动开启回家安防系统。智能家居系统在用户回家之前,将家居环境调节到用户最喜欢的状态。本系统的情景模式采取自主添加的模式,用户可以把数据库中的任意电器添加到情景模式中,也可以将已经添加到情景模式中的电器给删除,给予用户更多的自主选择权。
如图13所示,用户进入情景界面,点击添加按钮进入电器选择界面,用户根据喜好选择相应的电器。然后点击确认添加按钮,将已经选择好的电器添加到情景模式数据库中,情景界面刷新显示出情景模式数据库中的所有电器,用户点击控制按钮,即可实现对这些电器的连锁控制。若用户想删除情景数据库中的电器,只需长按对应的电器,界面就会弹出删除与否的对话框,点击确定即可删除相应的电器。开发完成后的情景界面如图14所示,电器选择界面如图15所示。
图13 情景模式程序流程图
图14 情景界面
图15 电器选择界面
2.1 智能灯测试
如图16所示,平板、服务器、中央控制器、智能灯子控制器、触摸面板和灯组成智能灯测试系统。将触摸面板和灯串联起来,组网成功以后,点击平板界面上的主光源开关按钮,通过WiFi将信号发送出去。服务器在收到信号后,将控制指令转发给中央控制器,中央控制又将指令通过ZigBee的形式发送给智能灯子控制器,子控制器以射频的方式去控制触摸面板中的晶闸管的开关,从而实现对灯的智能控制。
图16 智能灯控制测试对比图
2.2 智能窗帘测试
如图17展示了智能窗帘的测试过程,平板、服务器、中央控制器、智能窗帘控制模块和杜亚电机组成智能窗帘测试系统。当系统上电以后,当点击平板上的开窗帘按钮时,智能窗帘控制模块上的LED2亮起,杜亚电机随后正转表明正在进行开窗帘的动作;当点击平板上的合窗帘按钮时,智能窗帘控制模块上的LED2闪烁,杜亚电机随后反转表明正在进行合窗帘的动作;当点击平板上的停止按钮时,智能窗帘控制模块上的LED2熄灭,杜亚电机随后停止转动表明窗帘停止了动作。
图17 智能窗帘控制测试对比图
2.3 情景模式测试
情景模式在智能家居系统中实际上就是指连锁控制,所谓连锁控制即几种家用电器通过一个按钮就可以完成控制。如图18所示,以智能插座和智能窗帘为例进行情景模式测试,为了凸显效果智能插座上依然接上了灯泡。用户通过添加界面将智能插座和智能窗帘添加到情景模式界面中,当用户点击开情景模式按钮时,智能插座接通,灯泡亮起,窗帘电机转动起来。这样就通过一个情景模式按钮实现智能插座和智能窗帘的连锁控制。
图18 情景模式测试对比图
智能手机的迅速普及,无线通信技术的快速发展为智能家居带来了新的契机。本文以ZigBee模块作为子控制器,以RT5350开发板作为中央控制器,利用Socket套接字机制建立TCP服务器,以当下最热门的Android手机作为智能家居手持终端,开发了一套无线智能家居系统。
本文所设计的无线智能家居系统的优点在于:
(1) 子控制器的硬件设计采用底座加模块的形式,底座具有通用性,节约批量生产和售后的服务的成本。
(2) 智能家居系统控制软件对网络通信安全方面做了基础的研究工作,为以后的改进奠定了基础。
(3) 采用ZigBee、 WiFi无线通信方式,结合两种通信方式的优点设计出成本低、功耗低、性价比高的智能家居系统。
[1] Suyang Zhou,Zhi Wu,Jianing Li,et al.Real-time Energy Control Approach for Smart Home Energy Management System[J].Electric Power Components & Systems,2014,42(3-4):315-326.
[2] 孙浩.基于Wi-Fi技术和Android系统的智能家居系统设计[D].北京:中国矿业大学,2014.
[3] Han D M,Lim J H.Design and implementation of smart home energy management systems based on zigbee[J].IEEE Transactions on Consumer Electronics,2010,56(3):1417-1425.
[4] International Federation of Library Association and Institutions.Names of Persons: national usages for entry in catalogues[M].3rd ed. London:IFLA International Office for UBC,1997.
[5] 张荣.Android开发与应用[M].北京:人民邮电出版社,2014:141-163.
[6] 王朝华,陈德艳,黄国宏,等.基于Android的智能家居系统的研究与实现[J].计算机技术与发展,2012,22(6):225-233.
[7] 邓中祚.智能家居控制系统设计与实现[D].哈尔滨:哈尔滨工业大学,2015.
[8] 耿东久,索岳,陈渝,等.基于Android手机的远程访问和控制系统[J].计算机应用,2011,31(2):559-571.
[9] 张雅楠,杨璐,郑丽敏.基于Android手机的远程视频监控系统的设计与开发[J].计算机应用,2013,33(S1):283-286.
[10] 许东,操文元,孙茜.基于CC2530的环境监测无线传感器网络节点设计[J].计算机应用,2013,33(S2):17-20,24.
DESIGNANDRESEARCHOFWIRELESSSMARTHOMESYSTEMBASEDONANDROID
Ni Yaling1Li Xiaoning1Zhang Xiaohong1,2
1(SchoolofMechatronicsEngineering,UniversityofElectronicScienceandTechnologyofChina,Chengdu611731,Sichuan,China)2(StateGridSichuanElectricPowerCompanyDeyangPowerSupplyCompany,Deyang618000,Sichuan,China)
With the rapid development of the smart phone industry, the development of network communication technology, the surge of Internet of things, smart home has gradually become the development direction of contemporary home life. The home network needs to be convenient, modular, scalable and independent of the communication features, and wireless network technology can provide greater flexibility and mobility for the smart home system. So the wireless network technology into the home network has become the mainstream of today’s smart home market trends. Therefore, we design and develop a wireless smart home system based on Android. In addition, after the completion of the design, the functions of the wireless smart home system are tested. The system has good performance in various tests and meets the requirements of the system design.
Android Smart home System design WiFi
2016-12-05。倪亚玲,硕士生,主研领域:智能家居系统设计研究。李晓宁,高工。张小红,硕士生。
TP3
A
10.3969/j.issn.1000-386x.2017.11.018