基于Android的智能家居客户端设计
在智能家居系统中,为满足用户在户内外方便ฏ地实现家居控制的功能,本文以Android手机操作系统为平台,设计和实现了通过智能手机进行家居控制的客户端软件。该客户端软件主要由基础功能模块、通信模块、数据库模块和日志更新模块组成。经测试,该客户端操作简单、快捷,能准确地实现家居中的家电控制及安防监视等功能。
Android智能家居客户端
1引言
智能家居以住宅为平台,通过网络技术、自动控制技术、计算机技术将家居生活环境中的各种设备连接起来,实现家居生活环境的智能化控制,为用户提供一个更加人性和智能化的居住环境[1]。
本文旨在设计基于Android平台的智能家居远程客户端软件,该客户端具有易维护性、可扩展性和安全性的诸多优点。相比于传统的电话控制,它解决了被控设备单一,无实时监控的问题;相比于Web页面控制,它能快速刷新页面,提高了工作效率。
2智能家居系统总体构架
在基础的智能家居控制系统中,主要包括Android手机客户端、网关和家用设备三部分。Android手机客户端通过触屏来实现与用户的交互,网关负责将客户端的指令发送给家用设备,并将设备状态信息反馈给手机。在一些远程控制系统中还包含了服务器,它可利用不同网络和客户端、网关连接,主要负责信息的转发。由此可见,手机客户端是智能家居系统中的不可缺少 ツ的一部分。智能家居系统的总体结构示意图如图1所示。
3客户端软件设计
客户端软件的功能需求就是能满足客户的需求,将生活中切实的需要和软件的设计结合起来。因此本客户端软件充分考虑前后台的基础操作,将功能划分为四部分,由基础功能模块、通信模块、数据库模块和日志更新模块组成。基础功能模块主要包括了用户的注册管理、火灾煤气泄漏的监测、对家电的实时控制和实时的视频显示功能。日志更新模块包括了日志记录的查询和软件的版本更新。客户端的功能划分图如图2所示。
3.1基础功能模块
(1)用户管理
出于安全性的考虑,用户在登陆前需要通过身份信息的验证。在初始界面中用户输入用户名和密码,通过网络远程登录智能家居主机。首先,软件会验证用户名、密码是否为空;其次,软件验证输入内容的格式和字符的正确性;再次,软件识别输入的内容与智能家居主机所认证的用户信息进行对比;最后,软件记录认证后的用户验证信息,加密存储到客户端中,方便用户再次登录。如果信息通过验证,则用户登录智能家居主机并建立稳定、可靠的通信。
(2)环境监测
环境控制模块主要用于家居环境的实时显示,通过烟雾、温度、振动、红外传感器定时采集⚥室内环境信息并进行显示。由于环境监测模块只是对传递数据进行分析及展示,因此并不依赖于用户的操作。这部分代码采用Android中的Service组件及时地更新数据信息,这样在用户进行其他操作时,它仍可自行运行,降低了运行时资源管理器终止的可能性。
(3)家电控制
智能家居客户端最重要的设置是家庭电器的集中控制。由于常见的家用电器种类和数量都比较多,因此本客户端软件采用根据房间独立显示的方法。当用户选择某一房间后,用户界面会跳转至房间的电器列表。当点击选择某一特定电器时,会进入电器设置页面,对电器进行操作。家电控制界面运行效果图如图3所示。
(4)实时监控
实时监控模块使用MediaPlayer类和SurfaceView来实现视频的播放,当没有视频时显ช示“视频不存在”字样。SurfaceView可以直接从内存的硬件接口取得图像数据。因为所有的绘图工作必须得在Surface被创建之后才能开始,而在Surface被销毁之前必须结束,因此在实现过程中需要注意代码的边界重写问题。
3.2通信模块
本客户端使用Android的Socket通信机制与网关服务器进行连接,采用基于TCP/IP网络协议的传输方式。Socket通信分为服务器端和客户端两方。服务器端会根据IP地址和指定的端口号建立ServerSocket,并调用accept函数侦听客户端的接入。在客户端,首先要建立Socket类并对其设置连接时限;其次,如果服务器已经开启侦听,双方则可建立连接;最后通过数据流进行数据的传输。因为如果将发送和接收过程放在同一个线程中运行,可能会导致程序崩溃。因此本客户端的发送和接受过程采用两个线程进行处理。
3.3数据库模块
本客户端采用Android自带的轻量级关系型数据库SQLite,它占用内存小,支持SQL的所有操作。SQLite数据库主要用于用户登录信息、设备操作情况、报警信息的数据存储,客户端会在数据库中创建相应的数据表并进行数据库的操作。
3.4日志更新模块
日志更新模块包括记录查询和软件更新。记录查询模块主要记录了用户的基本操作、发送以及接收指令的时间和内容。软件更新是对旧版本的一种升级方式,如可实现新增功能模块或对bug进行修改等功能。
4结语
本文设计了基于Android平台的智能家居客户端软件,对客户端的基础功能模块、通信模块、数据库模块、日志更新模块进行了设计♋与实现。并将在Eclipse中开发的应用程序安装到Android手机中,在实验室环境中对各功能进行实验测试。测试结果表明各功能均达到要求,本客户端具较好的通用性,并且移植方便,易于扩展,具有广阔的应用前景。