嵌入式设计应用
智能家居以住宅为平台,利用先进计算机技术、网络通讯技术、综合布线技术和无线技术,将与家居生活有关的各种子系统有机结合在一起。目的是使家居生活更加智能化、信息化、人性化和节能化,核心目标是提升家居生活的质量。
智能家居系统的核心部分是智能家居的终端控制部分,结合当前的市场状况,主要有3种解决方法。
1)使用传统的红外遥控器,可触摸的显示屏来控制家电。市场上大多数生产厂商均使用该方法。该方法的缺点是无法达到远程控制家电的目标,只能在本地对其进行控制。而且维修时十分不便,需购买指定厂商的控制器。
2)使用电脑运行智能家居终端控制软件进行控制,通过网络实现远程对家居系统的控制。采用此种控制方式的缺点和第一种方法类似,该种方法虽然可达到远程控制家电的目标,但只能在固定地点登录控制,电脑不便随身携带导致其不能灵活,快捷地控制智能电器。
3)基于Android的手机和平板电脑的广泛应用,可以使用手机或平板电脑作为智能家居的控制终端,使用无线网络(Wifi,GSM(GlobalSystemforMobileCommunication)等)对智能家居系统进行控制,可真正实现方便、远程控制家用电器,给住户带来更好的用户体验,以达到提升家居质量目标。
该控制终端主要特点:
1)基于Android系统进行终端控制软件的设计与实现,使用了基于ActivityGroup的更好的应用程序框架,使用SQLite数据库,它是轻量级的开源,具有良好的可拓展性和兼容性,采用图形化界面,直观简单,操作容易,可给用户更好的体验效果;
2)手机可通过GSM或Wifi远程控制智能家电。
Android是基于Linux的自由并开放源代码的操作系统,是强大灵活的智能终端平台。主要应用在移动设备上,如智能手机,平板电脑。据IDC(InternetDataCenter)的最新数据显示,Android已成为最受欢迎的智能手机平台。该平台由4部分组成,分别为操作系统、中间件、用户界面及应用软件。相比于其他移动设备使用的操作系统,其优势也相当明显。
该系统基于Android,利用Android操作系统提供的各种资源实现。用户的家中内部定制安装了智能家电,如电视机、窗帘、空调和加湿器等。因此在实现过程中利用反射机制加载控制模块。用户可对显示在手机或平板电脑上的智能电器实施控制,如控制电器的开关,窗帘的升降,空调的温度,电视的选台等功能。用户可通过手机随时随地远程控制家电的状态,高效、灵活。
系统使用Eclipse作为开发环境,使用ADT(AndroidDevelopmentTools)作为开发插件。基于Android完成以上的系统目标,用户使用触摸屏与系统进行交互。系统开发流程如图1所示。系统通过发送一些设定系统指令,完成对家电的控制。用户可以设置本地客户端的状态,完成清除系统缓存等用户操作。另外,集成了一些新闻,咨询浏览相关功能,功能设计如图2所示。
用户控制(客户端)设计主要涉及用户UI界面、Socket通信、线程和SQLite数据库的设计与使用。应用程序使用Activity,ActivityGroup,Service,ProcessBar,Handler,ListView等多种组件,每个组件完成相应的任务,采用不同布局方式,如LinearLayour,GridLayout,TableLayout等,完成用户UI界面的显示。该终端控制系统使用流程图如图3所示。
图3 流程图
在ActivityGroup中设计了5个子界面,分别为“首页”,“新闻”,“短信”,“更多”和“退出”。进入客户端“首页”时,利用Android反射机制对图片进行加载,显示家里的智能电器,点击相应电器图标,可对相应的电器进行控制。如点击空调图标,进入对空调控制界面,其集成控制空调开关、温度和扫风模式等功能。该客户端还集成了一些娱乐功能,用户可以查看最近的新闻,资讯等。为方便用户的使用,在“短信”页面中,搜集了当前智能家电的状态,可以以短信的形式发送给家里的其他人,以便提醒和确认。在“更多”界面中提供给用户一些可以自定义的功能,如设置客户端的亮度显示模式、白天和夜晚,可以修改登录密码,找回密码等功能。退出界面实现退出客户端程序,并给出是否真的退出本程序的操作提示,防止用户误操作带来不友好的用户体验。提高程序的容错能力。客户端界面如图4所示。
图4 客户端界面
该程序使用的是SQLite数据库,SQLite是一款轻型的数据库,是遵守ACID(Atomicity,Consistency,IsolationDurability)的关联式数据库管理系统,目前已经应用于很多嵌入式产品中。它占用资源非常低并且能支持Windows/Linux/Unix等主流的操作系统,具有很好的可移植性,使用非常方便,同时能与程序语言Java等相结合。由于是轻量级的数据库,所以可以降低管理数据的额外开销。同时SQLite支持基本数据类型,如BLOB、CLOB、BOOLEAN、TEXT等[1]。在Android程序中可以很方便地进行数据库的操作,如其为开发者提供了SQLiteDatabase类,该类对数据的基本操作———添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(简称为CRUD)进行了封装,提供了方便使用的API(ApplicationProgrammingInterface)。
Android提供了非常方便的网络编程接口,直接提供了tcp和udp传输封装类,通过创建Socket对象,使用inputstream、outputstream即可完成client与server之间的通信[1,6]。client与server大致通信过程如下(图5):
图5 通信过程
1)服务器端将ServerSocket对象实例化,同时设置监听端口,等待客户端发出的连接请求;
2)客户端将Socket对象实例化,同时指定将要连接的服务器端ipaddress与portnumber,向服务器发出连接请求;
3)服务器端监听到客户端发来的连接请求,同时对客户端发来的请求给与响应并建立与客户端的通信连接;
4)客户端给服务器发出命令和数据请求;
5)服务器接受客户端发来的请求,进行相应处理,并将结果返回给客户端;
6)客户端接收服务器返回的结果,并将结果呈现给用户;
7)如此反复执行3)~6)步,直至客户端不再发出新的请求;
8)客户端与服务器端中断连接,并分别回收相应的资源,结束两者之间的通信。
用户在进入客户端首页中点击家电,跳转到家电的控制界面,在控制界面中用户设置家电的状态,如开关,空调的扫风模式,加湿器的湿度等参数。点击控制界面中的“提交”按钮后,客户端将用户输入的信息进行相应的格式转换后打包发送给服务器端;服务器端接受客户端发来的请求,解析相应的参数,控制家电使其做出相应的改变,并将响应结果返回给服务器端;服务器端将响应结果返回客户端,客户端将反馈结果呈现给用户。用户再根据返回的信息决定下一步的操作,智能家电的交互过程如图6所示。
图6 交互过程
通过安装应用程序,输入合法的用户名和口令后,可完成对智能家用电器的远程控制,随时随地掌控家中的电器状态,实现对家中电器的集中与统一管理。该系统基于目前流行的Android操作系统设计智能家居客户端,一方面可以给用户带来良好的用户体验,以方便用户无需购买其他的终端控制装置,只需下载安装包,即可在手机或平板电脑上安装运行。另外,用户可以使用GSM或Wifi实现远程控制。与其他几种控制方式相比优势明显,而且可移植性好,市场潜力大,易于推广使用,而且硬件成本低,可扩展性好。该系统还有许多待完善的地方,家用电器的种类目前是固定不变的,还需要添加用户自定义功能,动态的增删家用电器,并且用户可以直接与动态添加的家用电器进行交互。
全部0条评论
快来发表一下你的评论吧 !