基于Android系统的智能家居控制终端研究与实现
扫描二维码
随时随地手机看文章
引言
近年来,智能手机在全球范围内迅速普及,市场研究公司Gartner发布的数据显示,2011年前三季度,全球智能手机销量同比增长超过55%,智能手机正在占据越来越多的手机市场份额;随着社会经济的快速发展,人们的生活水平提高到一个新的层次,对生活环境的要求越来越高,正在兴起的基于物联网技术的智能家使人们逐渐迈入以数字化和网络化为平台的智能化社会。
基于Android手机日益流行且系统开源,本文将Android终端与智能家居联系起来,研究并实现了一种基于Android系统的智能家居控制终端。在系统中,Android终端通过周围的无线网络与智能家居中的家电设备或传感器进行通信,实现对家电设备的控制、传感器值的读取以及家居安防。
Android的系统架构
Android操作系统自顶向下分成4个层次,即应用层、应用框架层、组件库层、虚拟机和Linux内核层。如图1所示。
图1 Android框架图
应用层:Android操作系统同一系列核心应用程序包一起发布,其核心应用程序包括E-mail客户端、SMS(短信)序、日历、Google地图、网页浏览器、联系薄等,目前所有的应用都是使用Java语言编写的。
应用框架层:开发者通过使用核心应用程序来调用Android框架提供的API,这个应用程序结构被设计成方便复用的组件。任何的应用程序都可以公布它的功能,其他的应用程序可以使用这些功能(涉及到系统安全问题的功能将会被框架禁止)。该应用程序重用机制使用户可以方便地替换程序组件。隐藏在每个应用后面的是一系列的服务和系统;
组件库层:Android包含了一套C/C++函数库,主要包括libc、Media Framework、WebKit、SGL、OpenGLES、FreeType、SQLite等,它们被应用于Android系统的各种组件中,这些功能通过Android应用框架展现给开发人员;
运行时环境:Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行后缀为dex的可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由Java编译器编译,然后通过SD中的“dx”工具转化成“.dex”格式。Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制;
Linux内核层:Android底层是一个基于Linux2.6.23内核开发的独立操作系统。主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为一个虚拟的中间层,该层位于硬件与其他的软件层之间。
Android终端的具体设计
智能家居总体框架
Android终端可以通过网络(3G、WiFi或蓝牙)与家电、传感器和安防设备进行通信。在外时,通过3G来操作;在家时,用WiFi或蓝牙来操作,可以节省3G流量。如图2所示。
图2 智能家居的系统架构
该系统主要包括:综合安防、家电控制、节能管理、健康检测、舒适控制等。本文主要研究Android终端对以上几个部分的管理和控制。Android终端如要管理和控制设备,需要发送一个控制命令给社区服务器,以便社区服务器知道手机的IP地址,才能够与社区服务器进行建立连接并进行通信。
Android终端的模块划分
系统中的Android终端部分设计,模块划分如图3所示。
图3 Android终端模块划分
家电控制:用户进入家电控制界面,联网后就可以对家电进行控制(比如电灯、电视、空调等)。Android设备发送控制信号给社区服务器,社区服务器将控制信号发给家庭无线物联网网关,再根据是否是红外设备进行分类,如果是红外设备,就将控制信号发给红外家电控制器,红外家电控制器再根据不同的家电控制命令分别控制不同的设备,如果是非红外设备,家庭无线物联网网关直接将控制命令发给相应的家电设备进行控制。如图4所示。
图4 家电控制[!--empirenews.page--]
视频监控:进入视频监控界面,可以选中不同的摄像头进行查看,包括客厅、卧室以及室外,可以通过摄像头对家居内或家居外进行视频监控;
智能医疗:当家里有人在检测心跳脉搏时,会将检测结果发送到Android终端上显示,实时关注家人的健康状况;当家里有老人或小孩跌倒时,通过智能家居服务器将报警信息发送至监护人的Android终端上显示。当Android终端收到报警信息后,Android终端首先会在当前所在的界面上进行弹窗提示“用户跌倒”,提示人们家里的老人发生了跌倒,可以通过Android终端查看安装在家里的摄像头,查看老人的情况,以便做出相应的处理。Android设备的弹窗提示界面和监控界面查看情况见图5所示。
图5 (a) 报警弹窗提示 图5 (b) 报警查看结果
能耗监控:为了节能,Android可以对大功率电器(电视、空调、冰箱等)进行管理,查看电器的用电情况(如用电时间、功率以及费用等);
安防管理:该系统中有安防设备(如窗磁、门磁红外等)。当外出时将安防设备打开,如有人闯入,就会发送报警信息到Android终端,通过摄像头可以查看家里的状况,如果只是误报或没有真正的入侵者,通过Android终端可以将安防设备重置;如有意外也可以方便用户及时做出相应的处理;
数据接收和发送:该系统中的温度、湿度、烟雾等传感器的值通过家庭无线物联网网关发送给社区服务器,社区服务器再将数据发送到Android终端并进行显示。如果家里发生火灾或煤气泄漏等其它意外事故时,通过Android终端显示的传感器的值也可以直接看出,以便及时作出相应的处理。
网络数据下载:当进入电视预告界面时,可以在下拉框中选择不同的地点,比如选择重庆、北京或者上海等,就会从网络上下载相应的不同地点的电视节目预告,显示在界面中,以方便用户及时观看电视节目。
Android终端的流程图
用户首次进入该应用程序需要进行注册,然后登陆进入到控制界面。系统总体流程图如6所示。
图6 系统总体流程
测试验证
当进入该软件的控制界面中,可以对电视、空调、电灯以及风扇等家电设备进行控制;接收温度、湿度、烟雾等传感器的值,并将其显示在界面上,管理大功率电器的用电;如果家人在检测心跳、脉搏等,智能医疗界面可以查看检测的值,以便实时监测家人的健康,如果家里有老人跌倒,也会将跌倒信号发送到Android终端上;当离家时,开启安防设备后,家中的窗磁、门磁、红外等安防设备开始工作,当有人闯入时,就会将报警信息发送到Android终端上显示以提醒用户,并可以通过摄像头查看家里的情况;同时当用户有需求需要查看电视节目预告时,也可以通过节目预告功能,对各个电台的电视节目预告进行查看,以便及时观看自己喜欢的节目。如图7所示。
图7 测试结果
结束语
随着物联网技术的发展,智能家居也越来越受到更多的人关注。本文实现Android手机和平板作为智能家居的一个控制终端,对家电的控制、传感器值的接收以及视频的监控;并在Android系统的不同版本或分辨率的终端下运行正常。