APP下载

基于Android和嵌入式Web技术的智能家居系统设计

2015-03-23潘颖辉

关键词:浏览器家居智能家居

潘颖辉

(包头师范学院信息科学与技术学院,内蒙古包头014030)

基于Android和嵌入式Web技术的智能家居系统设计

潘颖辉

(包头师范学院信息科学与技术学院,内蒙古包头014030)

借助ARM微处理器硬件平台,结合Web Service技术和Android系统平台,提出了一种基于B/S和C/S架构的智能家居系统.该系统的嵌入式Web服务器是基于Linux平台,保证了系统的健壮性及安全性.同时可以根据需要拓展服务功能,将智能手机作为智能家居系统的一部分,借助移动通信网络实现用户手机到家居环境的互联互通,可以随时随地控制和管理家居环境状态,让用户享受可靠的智能家居服务.系统相对传统的智能家居通用性强、组网方便、操作更加简单,远程控制能力增强,且市场应用价值高,易于推广.

智能家居;Android;Web;服务器;客户端

随着社会经济的快速发展,物质文化生活的不断提高、人们消费观念的日益转变,以及物联网技术的出现、家居设备智能化的成熟,人们渴望更加安全、健康、舒适、便利的现代化家居环境,智能家居概念应运而生,并逐渐进入人们的生活.智能家居是以住宅为平台,利用计算机、无线通信、传感器、物联网等技术,集成各种先进的家居设备,依靠科学的管理模式,为用户构建一个高效的住宅设备与家庭事务的控制管理系统[1].随着智能家居在消费者心中地位的提高,智能化家居逐渐成为家居市场的新宠儿,市场占有份额也越来越高.

由于目前智能家居设备层出不穷、技术标准不统一、市场价格水平差距大,阻碍了智能家居的发展.当今Android系统的盛行以及嵌入式技术的成熟,给智能家居的发展提供了强大的技术动力,其应用前景非常广阔.让智能手机成为智能家居的一部分,是智能家居系统未来发展的趋势.因此,本文设计了一种基于Android和嵌入式Web技术的智能家居系统.

1 系统总体结构

1.1 Android及Web技术简介

Android是一个移动设备软件栈集合,包括操作系统、中间件和关键应用程序.Android是一个真正开放性的移动设备综合平台,底层以Linux内核为基础提供基本功能,在用户空间又分为本地库C/C++和Java程序,供用户自行开发.结合Java面向对象的语言特点,Android平台具有代码开放性、硬件兼容性、不受限制性等优势[2].

Web技术指在Internet上利用各种技术实现和完成的各种服务功能和客户浏览的开发技术.Web是一套技术规范,包括很多的技术和协议,如HTLM技术、URL、HTTP协议等.通过这套技术规范,可以对Internet网络Web服务器上的资源进行描述并发布、处理,进而Internet上的其他机器可以通过Web客户端访问浏览这些静态、动态Web资源.

1.2智能家居系统总体结构设计

面向Web服务的智能家居系统基本分为4个部分,即控制系统服务器(Web服务器端)、移动智能终端(Web客户端)、家居监控终端群和通信网络.智能家居系统的总体结构如图1所示.控制系统服务器是基于Android系统开发的家庭网关;Web客户端是基于Android智能手机开发的客户端;家居监控终端群包括了空调、电饭煲、电灯等家用电器和温度、湿度、可燃气体和光照等各类环境传感器;通信网络包括了控制系统服务器与家居监控终端群之间的局域网、Web客户端与控制系统服务器之间的无线网络WiFi/3G/4G.系统通过Web Service技术实现数据在通信网络之间传输,用户通过移动智能终端实现查询、控制和管理各种家居监控设备,监控家庭内部情况,接收各项警情.要特别注意的是,控制系统服务器作为家居系统的网关,在同Web客户端与家居监控终端群之间进行信息资源交互时,控制系统服务器既担当客户端的角色,也担当了服务器端的角色[3].

2 系统设计

2.1系统硬件架构设计

本文设计的智能家居系统主要由嵌入式Web服务器、通信网络、以太网控制器、各种传感器、家用电器的控制器、移动智能终端等部分构成,其中嵌入式Web服务器由嵌入式微处理器、操作系统、网络协议栈和其他外围设备构成,是整个系统硬件架构核心,结合现代以太网技术和WiFi/3G/4G无线通信技术,完成整个家居系统资源的集中管理和控制功能.智能家居系统的硬件架构如图2所示.

嵌入式Web服务器以SAMSUNG的16/32位RSIC微处理器S3C6410作为硬件系统核心,S3C6410是基于ARM11内核的一款低功率、高性价比、高性能的通用微处理器.以太网控制器采用RTL8019AS.嵌入式Web服务器向下与家居环境的电器控制器和环境传感器之间进行通信交互,接收到家居环境的所有数据信息以SQL Server数据库的形式存储并统一管理,向上与Web客户端进行通信交互,完成家庭信息的查询与控制.

2.2系统的软件架构设计

客户采用B/S架构访问嵌入式Web服务器的数据库,就是通过浏览器网页以不同接入方式(LAN/WAN/Internet)访问或操作数据库,该B/S架构模式界面友好,使用简单,便于客户操作,使得软件系统更具有高效、方便、快捷的优点.如果采用C/S模式,Android Web客户端应用程序通过无线通信的方式实现对远程Web服务器的访问,C/S模式通过将嵌有套接字的源程序编译成Java码嵌入到Web网页中,客户端访问该Web网页时Java码会自动下载到网页,随后与服务器建立Socket通信,从而获取实时数据[4].该C/S架构模式具有能减轻服务器负荷,提高运行效率的功能.因此,鉴于B/S和C/S结构的特点,本文基于Android的嵌入式Web服务器的智能家居系统采用的是B/S和C/S结构相结合的方式.基于B/S和C/S方式的系统软件结构如图3所示.

3 系统的设计与实现

3.1嵌入式Web服务器的设计

3.1.1 嵌入式Web交互式原理

在嵌入式系统中,与传统Web服务器的高性能计算服务需求不同,嵌入式Web服务器不需要处理大流量数据的访问,不提供对占系统资源大的程序的支持,只为远程访问、管理和监控设备提供服务支持.用户端的浏览器,通过接入Internet,可以随时随地访问嵌入式Web服务器[5].

嵌入式Web服务器通过HTTP协议与客户端通信,这里的客户端指的是Web浏览器或Android Web客户端,HTTP协议则是实现Web服务器与浏览器之间进行信息传输的一种机制.Web客户端通过Web浏览器页面请求数据,嵌入式Web服务器收到Web客户端发送的HTTP请求时,做出处理并返回相应的数据,从而完成嵌入式Web服务器与Web客户端之间数据的动态交互.Web浏览器发送的连接请求,通过TCP/IP协议经由Internet发送到嵌入式Web服务器端,Web服务器监听Web浏览器的服务请求,处理并检查合法之后,建立与Web浏览器的TCP/IP连接.TCP/IP连接建立成功后,Web浏览器开始发送HTTP请求,Web服务器端接收到用户请求,并将其传给HTTP会话模块,HTTP会话模块根据协议解析,判断出请求的内容是静态页面还是CGI动态页面,再根据请求的内容将执行结果返回Web浏览器.Web浏览器在接收到返回的数据后,将网页内容显示在客户端屏幕上.

3.1.2 嵌入式Web服务器的软件实现

智能家居系统中的嵌入式Web服务器监听用户的查询、控制请求,根据用户递交的请求提供相应的服务类型,嵌入式Web服务器端收到这些用户请求后,把存储在远程数据库中对应的数据发送给Web浏览器,这就完成了客户浏览器同Web服务器之间的数据的动态交互.为了实现这一动态交互通信过程,可以采用CGI技术实现动态Web页面功能.CGI是一种在Web服务器中运行的程序,是通用网关接口,定义了Web服务器与嵌入式应用间交互的接口标准.在Web环境下,完成浏览器与服务器之间的数据交互,CGI技术具有较好的动态交互性能.

Web服务器是处理HTTP请求的核心主程序,它对来自客户端的访问请求报文进行相应的分析处理,并将请求数据以报文的形式返回给客户端.一个功能性完整的嵌入式Web服务器的核心部分主要包括HTML请求解析器和模块分析器.HTML请求解析器用于接收HTTP请求报文,模块分析器根据配置对报文进行相应处理.这样,嵌入式Web服务器与嵌入式应用模块进行交互,实现对设备系统控制参数的设置和读取[6].

嵌入式Web服务器在开始运行前,首先要执行初始化,主要工作包括了设置服务器监听的端口和应用数据存储区域.每当客户端请求一个URL给嵌入式Web服务器时,HTTP引擎便马上调用CGI程序.客户端浏览器发送HTTP请求时,Web服务器接收并解析,判断出请求的内容是静态页面请求还是CGI动态请求,如果是静态页面请求,则直接输出HTML静态文件.如果是CGI动态请求,就将数据内容传递给CGI程序,并重定向CGI程序,输出到Web页,CGI程序在处理时将数据封装成HTML形式发送到输出,这样客户端浏览器就可以看到对应的Web网页.嵌入式Web服务器的软件设计如图4所示.

3.2 Web客户端的设计

3.2.1 Android与远程数据库通信的方法

Android Web客户端应用开发的核心技术,在于如何建立Android智能手机与家庭控制中心的嵌入式Web服务器之间的联系,建立Android Web与远程数据库之间的通道,实现远程查询与控制智能家居设备的功能.从系统整体设计上看,在Android客户端与远程服务器之间,通过加入嵌入式Web服务器,以Web通信方式,调用Web Service完成对远程服务器上的数据库的操作,实现Android Web客户端对家居环境设备的远程控制和管理.

由于Android平台没有直接调用Web Service库的数据接口,Android客户端就不能直接访问服务器的远程数据库,需要借助第三方的SDK来调用Web Service库[7].传统PC环境下的Web Service客户端库相当丰富,然而这些客户端的开发包比较庞大,而且限于Android移动设备的性能和内存因素,一般很难移植到Android系统中,无法适用于Android移动设备.因此,需要选择适合Android移动设备的Web Service客户端的SDK来实现远程访问数据,经过对比较常用的SDK对比研究,基于SOAP协议的Web Service可以实现远程访问数据库,建立Android Web客户端与远程数据库之间通信交互的通道.这种远程访问数据库方法是借助第三方工具Ksoap2-Android实现对Web Service库的访问,Ksoap2-Android软件工具可以封装Ksoap2用户请求,以SOAP的格式来调用Web Service库,并将返回的SOAP格式的数据信息解析为Soap Object对象.Android Web客户端发送请求与Web服务器接收响应都是基于SOAP协议的,所以,这种方法的方案成熟度较高,协议标准整体一致性强,安全支持性较好.因此,本设计采用了基于SOAP协议访问远程数据库的方法,实现Android Web客户端与嵌入式Web服务器的远程数据库之间的通信交互.

3.2.2 Android调用Web Service通信设计

Android Web客户端与远程数据库的通信交互,是采用基于SOAP协议访问远程数据库的方法来调用Android平台中Web Service实现的.这种方法借助了第三方工具Ksoap2-Android来调用Web Service库.SOAP调用Web Service的设计步骤如图5所示.

3.2.3 Web客户端设计的实现

智能家居系统的客户端与嵌入式Web服务器相比,相对简单,客户端软件如果在电脑上使用,只要登陆Web浏览器就可以了,如果在移动终端设备(如手机、平板电脑)上使用,需要登陆Web客户端.本系统重点设计的客户端是指可以直接在Android手机上登陆使用的Android Web客户端.

Android Web客户端通过调用嵌入式Web服务器端的Web Service库,实现对远程数据库的查询、控制与管理操作,从而实现对用户家居智能设备的控制和家居生活环境状态的监控[8].考虑到系统的安全性,Android Web客户端访问远程数据库之前先要登录嵌入式Web服务器,验证身份合法后,才能进行下一步的操作,通过选择网络,连接Web服务器指定端口,建立Web客户端与Web服务器之间的通信交互通道,完成查询与控制智能家居系统设备的功能.Android Web客户端软件设计主流程如图6所示,Android Web客户端软件界面如图7所示.

4 结论

本文在结合嵌入式系统和Android平台优点的基础上,利用Android移动智能终端设备的更高级的功能和嵌入式Web服务技术,提出了一种基于Android和嵌入式Web技术的智能家居系统设计方案.该系统通过移植Android系统、建立嵌入式Web服务器和远程数据库、开发Web客户端,并利用无线/有线组网方式,实现Android Web客户端访问远程数据库,实现对家居生活环境的远程监控.系统主要采用Java语言开发,具有架构简单、开发难度较低的特点,并采用面向对象思想和多线程技术开发复杂应用程序.此外,本系统还具有可裁剪性,可以根据家居生活环境的不同,通过服务器统一部署,任意增减家居控制设备.

[1] 韩佩富,李洋.基于嵌入式Web服务器的智能家居系统设计[J].微处理器,2008(5):189-191.

[2] 柯元旦,宋锐.Android程序设计[M].北京:北京航空航天大学出版社,2010:12-35.

[3] Jeremy Bentham.嵌入式系统Web服务器TCP/IP Lean[M].陈向群,译.北京:机械工业出版社,2010:115-121.

[4] 董航飞.C/S和B/S结构相结合的嵌入式Web服务器设计[J].单片机与嵌入式系统,2014(1):37-43.

[5] 王莉,周伟.基于ARM的嵌入式Web服务器设计[J].计算机工程与应用,2012,48(14):90-93.

[6] 潘琢金,王秋实.嵌入式Web服务器中动态Web技术的研究2010[J].计算机工程与设计,2010,31(18):3975-3978.

[7] 鹿曼.基于Android的智能家居控制系统的设计与实现[D].济南:山东建筑大学,2013.

[8] 南春辉,李博,武颖.基于Web技术的嵌入式智能家居系统设计[J].电视技术,2013,37(3):86-92.

Design of smart home system based on Android and embedded Web technology

PAN Ying-hui

(College of Information Science and Technology,Baotou Teaches’College,Baotou 014030,China)

In this paper,with the help of ARM microprocessor hardware platform and combine Web Service technology and Android platform,proposed a smart home system based on B/S and C/S architecture.Embedded Web server of this system is based on the Linux platform,ensuring the robustness and security of the system,and can expand services as needed.Meanwhile,smart phone is part of the smart home system,with the mobile communication network mobile phone users to achieve interoperability of the home environment,you can control and manage the home state of the environment at any time,allowing users to enjoy reliable smart home services.Compared with the traditional smart home system versatile,convenient networking,operating more simple,remote control capability enhancements,and high market value,easy to spread.

smart home;Android;Web;server;client

TP 311 [学科代码] 520·5099 [

] A

(责任编辑:石绍庆)

1000-1832(2015)01-0071-06

10.16163/j.cnki.22-1123/n.2015.01.014

2014-04-29

国家自然科学基金资助项目(11301044).

潘颖辉(1980—),女,硕士,讲师,主要从事嵌入式研究.

猜你喜欢

浏览器家居智能家居
打造日常家居“氛围感”
基于PLC的智能家居控制系统研究
反浏览器指纹追踪
台北家居
基于Zigbee的无线通信技术在智能家居中的应用
关于智能家居真正需求的探讨
环球浏览器
智能家居更贴心
《数码家居》2009年下半年推荐榜
浏览器