基于Android的智能家居程序开发与研究
扫描二维码
随时随地手机看文章
引言
在家庭网络中部署的信息终端越来越多,在解决他们之间的物理互联问题之后家庭用户还需要对各个设备进行一些复杂配置才能使用,这对于普通家庭用户来说是难以接受的。加入到家庭网络的设备如何能自动地相互发现并协同配合工作一直是数字家庭领域热烈讨论的问题。目前智能家居系统有了一定的发展并且市场上也开始出现相应的产品。但从总体的发展来看不容乐观,特别是统一标准和权威产品的缺乏严重影响了家居智能化的发展。随着科技的进步,经济的发展,人们的物质生活水平不断提高,对家居环境的要求也越来越高,作为家居智能化的核心部分一一智能家居控制系统也越发显得重要。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势。智能家居控制器可以为系统提供智能控制方案使住户的控制更便捷、更高效,更能为家庭的日常活动节约不必要的能耗。而且在现在这个注重绿色环保的世界里,智能地为住户控制好空气的湿度、温度等检查分析空气成分,让住户安心入住同时,智能家居控制器可以根据住户的要求调整方案,加强紧急处理、危机救护等急救控制。伴随着科学技术的迅速发展和3G通信网络的逐步普及,通过便捷的手机终端进行远程家居监控,成为更多忙于工作的职业人、领导以及智能手机用户的迫切需要。Android是由开放手机联盟于2007年11月5日发布的基于Linux内核的开源手机软件设计平台,由操作系统、中间件、用户界面和应用软件组成。Android给开发人员提供了为移动设备开发新颖的应用程序的机会,正因为Android操作系统具有很强的扩展性和互联性,以及不存在任何以往阻碍移动产业创新的专有权障碍,得到了手机厂家和运营商的普遍欢迎,凭借其系统的灵活性、开放性以及开放的互联网理念,在操作系统平台的竞争中占据了明显的优势。本文设计的是基于三星S4智能手机完成的终端智能家居系统。
Android软件平台的构成[2]
Android平台整体自底向上由以下4个层次组成:Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层。
Linux内核层
Android是基于LinuxVersion216123内核开发的,主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为虚拟的中间层,该层位于硬件与其他的软件层之间。
Android运行时库和其他库层
Android运行时库包含一组核心库(提供了Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的库类支持且大部分为开源代码,如采用的数据库为SQLite。Android选择它作为移动终端的嵌入式数据库有以下优点:它无需安装和管理配置,它是一个存储在单一磁盘文件中的完整的数据库,体积只有250KB但支持数据库大小至
TB,提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快。
1.3应用框架层
在应用框架,Android开发人员可以跟那些核心应用一样拥有访问框架APIs的全部权限。应用的结构化设计简化了各组件之间的重用,任何应用都可以分发自己的组件,任何应用也可以使用这些分发的组件(应用的使用方法需遵循框架的安全性约束)。
1.4应用程序层
Android本身会附带一些核心的应用程序,包括E-mail客户端、短信程序、日历、地图、浏览器、通信录等,目前所有的应用程序都是由Java语言开发的。
2面向Web服务的智能家居控制系统软件设计
面向Web服务的智能家居控制系统以EXPLORERF-CC2530系统为基础,将对单一用户的家居设备控制上升到对整个建筑甚至建筑群的集中控制和管理,将建筑物或建筑群的所有信息存储在服务器的数据库中,Android手机或者平板电脑通过网络(3G/Internet/GPRS等)从服务器获取实时数据,服务器通过以太网与EXPLORERF-CC2530系统的网关进行通信,房间控制器与室内的家居设备相对应的模块通过无线的方式进行通信,从而实现了远程控制家居设备的功能。系统省去了室内控制器等硬件设计的复杂度,不必破坏隔墙,不必购买新的电气设备,系统可以简单安装,减少了用户的使用成本;系统可以只与照明设备或常用的电气设备连接,将来也可以与其他设备连接,以适应新的智能生活需要,具有良好的可扩展性。本章首先介绍了Android远程数据库的几种方法并且选取了其中一种,然后实现了Android客户端对远程服务器的访问,最后对客户端界面做了个性化设计。
2.1Android与远程数据库通信的方法
近年来,随着智能移动设备的快速发展和3G网络的逐渐普及,以及Android系统凭借其开放性、多样性等优势越来越受到开发人员的推崇,如腾讯、淘宝等知名网站都推出了Android客户端版本,同时很多Window桌面的数据库应用程序都延伸到移动设备上。由于移动设备的内存及性能很难比得上PC机或笔记本电脑,所以桌面的客户端访问数据库的方法也不可能在Android设备上使用。MFC/Swing等C/S模式的程序设计可以通过IP地址直接访问远程数据库,但是Android平台并没有提供直接调用远程数据库的接口,所以Android客户端不能直接访问远程数据库[7]。而是在Android客户端与远程数据库中加入Web服务器来实现Android访问远程数据库的功能,而且在访问数据库的过程中可以把频繁仿问的数据内容缓存在Web服务器中,不同的客户端不需要访问远程数据库便可以获取相同的数据,减少了访问远程数据的次数和数据库的压力,提高了访问数据库的效率[6]。本系统Android客户端访问远程数据库采用基于SOAP的Web服务实现远程访问数据库Android中并没有直接调用WebService的库,借助ksoap2-Android这个第三方工具来实现
WebService的访问,这个软件可以封装KSOAP2请求,以SOAP的格式调用WebService,并以将返回的SOAP格式的数据解析为SoapObject对象。
2.2WebService技术
WebService是计算机领域一种新兴的分布式技术,是基于可编程的Web的应用程序,具有发布、定位、调用的功能,WebService在被访问时可以不考虑相关服务如何被实现便可以被任何系统、在任何地方被动态访问。与传统的模式相比,实现服务的访问依赖于协议和数据格式,而不用像其他模式一样依赖特定对象模型协议;而且WebService可以整合不同平台、不同语言、不同开发技术的应用,具有良好的封装性、高度集成性、平台独立性等优点。WebService的关键技术包括HTTP、XML、SOAP、WDSL、UDDI,这些技术通过独立于特定编程语言、操作系统、硬件平台的方式进行通信。
3项目源程序开发
智能家居源程序主要功能模块框架如图1所示。
3.1登录与注册功能的界面设计
当用户拥有智能家居远程控制系统中的相关硬件,如环境模块、房间控制器、设备模块等,各模块上标示有唯一的ID,用户可以根据ID进行注册,注册成功后便可以登录此系统对相关设备进行控制。若用户已经注册,则可以直接登录认证,登录系统认证的大致流程图如图2所示。
若用户登录成功,则系统直接跳转到系统主界面;系统的主界面如图3所示。若用户名或密码错误,则弹出错误提示框,图 4 所示是系统给出的错误提示框图。
3.2代码的运行
完成工程的创建和源代码的编译后就开始运行程序。在Eclipse平台中选择Run>OpenRunDialog选项,打开运行对话框。然后,在对话框左边的typefiltertext下选择AndroidApplication>contactnote,再点击对话框中的Run按钮,应用程序就会被加载到仿真器上并开始运行。
Android手机应用程序开发需要着眼于它的整个体系构架,是一项复杂的工程。本文分析了Android体系的层次架构,并在此基础上介绍了Android应用程序开发的相关技术和基本的开发流程oAndroid平台具有极大的开放性和兼容性,相信广大开发者可以借助AndroidSDK提供的强大技术支持,开发出丰富多彩、极具个性的移动应用。
示框,图4所示是系统给出的错误提示框图。
20211119_6197c16bef5a4__基于Android的智能家居程序开发与研究