基于安卓的智能家居控制系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于安卓的智能家居控制系统的设计与实现作者:周明亮汪鑫姜朱燕占常亮高寒优

来源:《商情》2014年第44期

【摘要】本项目采用单片机的主从式架构即服务器/客户端的方式进行数据的交互,平板电脑客户端向控制主机发送控制命令,控制主机再分别控制窗帘、智能床、红外线传感器设备,实现窗帘的升降,电灯的开关,智能床的翻转,以及老人安全如厕的检测等功能。

【关键字】安卓,智能家居

引言

随着移动互联网的技术逐渐成熟,为人们的生活、工作及学习带来了极大便利的同时,也为物联网的发展带来崭新的机遇。特别是智能手机与移动通信业务的快速发展,为物联网的实现提供了成熟的平台。人们可以利用通用的智能手机在任何时间、任意地点远程控制着家中的任意电器。如果你觉得,晚上站在家门口找电灯开关很费劲,请拿出你的手机打开你的电灯开关。如果你认为烧开水需要花很长时间,而你又不想苦苦等待,请拿出你的手机打开热水器的开关。如果你厌烦了烧饭的话,也请拿出你的手机,让它帮助你解决烦恼。这就是数字化智能家居控制系统为我们带来的福利。另外,如果你是一个孝子,但是却无法陪伴在老人身边,你可以利用手机控制远程视频,让老人看到你。同时智能家居拥有的报警、远程监控等功能,在出现险情时能够第一时间获得消息,从而采取进一步行动。由此可见智能家居是移动互联的产物,是时代发展的必要趋势,是现代化社会进步的标志。

1控制系统整体设计

该智能家居控制系统的整体结构如图1-1所示。本系统包括android手机端的智能家居控制系统客户端,中心控制单片机服务器,以及各个电器的WIFI接收终端模块。程序设计包括基于安卓的智能家居系统控制软件,以及通过WIFI传输过程中用户协议的制定。该android客户端程序采用JAVA语言编写,老人通过触摸手机/平板电脑上的按钮进行操作可以控制连接在家庭网关上的电灯、窗帘等设备的开关,老人安全如厕检测的红外设备,智能床的翻转设备。若检测到老人处于危险状态下,可以利用平板电脑中的GSM短信模块为固定的号码发送报警信息,让子女第一时间了解到老人的状态。

2通信协议设计

2.1通信协议简介

通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。在系统中的通信协议是指手机客户端与中控服务器间的规则。系统中的协议工作方式如下:用户通过软件客户端的触摸发送相应电器控制命令,经过无线信道(WIFI)的传输,中控服务器接收到控制命令,对命令中的关键字进行识别后将命令发送给对应的的电器控制端,达到控制功能,电器工作完成后,将返回的响应命令传送给服务器,进而传送给软件客户端,把结果显示在UI上。至此完成整个协议的通信过程。

2.2通信协议总览

本通信协议是由8Byte的16进制数据构成,该协议是由状态标志字(Sta),数据标志字(Tid),发送标志字(Sed),操作代码位(Opt),电器标志字(ID),数据校验位(Sum)等六部分构成。其格式为: 。其字段含义、长度及定义等详细信息如表2-1所示。

2.3通信协议详解

2.3.1电灯控制协议

电灯协议实现的功能为控制电灯单开和全开,只需改变操作码中对应的电灯(此处只有3个电灯),每次控制成功与否都将返回响应数据,将电灯的状态显示在软件的UI上,详细协议列表如表2-2所示。

2.3.2如厕检测协议

如厕检测协议主要接收红外监控设备发送的协议命令,并对数据进行解析识别,并显示在对应的灯泡上。刚进入厕所会经过红外设备1再经过红外设备2,此时两盏灯泡在手机UI上亮起,并计时,超过指定时间将通过平板电脑发送报警信息。出厕所时会先经过红外设备2再经过设备1,此时计时停止并重置。详细的协议如表2-3所示。

2.3.3窗帘控制协议

窗帘控制协议主要控制窗帘上升、下降、停止的功能,利用软件的三个按钮点击可发送相应命令,同时接收返回的数据响应,将状态显示在UI界面上。详细的协议如表2-4所示。

2.3.4智能床控制协议

智能床控制协议主要控制智能床的翻转功能,主要通过软件的切换模式实现,软件上有两个按钮,分别为普通模式和睡眠模式,在睡眠模式下进行智能床翻转的控制,进入睡眠模式后,软件检测智能床的状态,如果一段时间智能床没有发送响应命令,软件将发送智能床的翻转指令,指令包括:开启睡眠模式、开启普通模式、左右翻身、左右翻身停止、左右放平等。通过智能床的护理功能可以帮助老人在睡觉的时候避免同一姿势保持时间太长导致的疾病。智能床控制协议详细信息如表2-5所示。

3.安卓控制系统设计

3.1安卓设计流程图

安卓程序设计流程图如图3-1所示。首先是通过TCP/IP连接中控服务器端,需增加IP及端口的编辑功能,线程的初始化需要对线程进行开发,线程初始化完毕等待用户操作,用户需要交互则需设计UI,用户触摸相应开关按钮,则打包相应的命令,通过已连接的IP传送到服务器对应端口完成控制,之后接收响应命令,对命令进行解析,解析完成再进行软件UI的更新,等待用户的下一次操作。

3.2安卓程序客户端设计

3.2.1客户端设计简介

安卓客户端采用java语言编写,运行于android 2.2及以上版本。

该软件针对老人特别对页面进行单页化设计,字体放大设计,方便老人的操作与查看。软件实现了电灯的单开与全开功能,窗帘的上升、下降控制功能,如厕安全检测功能,智能床模式控制、翻转控制功能。软件在设计过程中加入线程机制,每次触摸屏幕发送指令时都将要开辟新的线程,这样保证了程序指令在传输过程的可靠性,网络连接使用TCP协议也是为了提高程序的可靠性。

3.2.2客户端设计分析

按照程序的设计流程,我们将对主要模块功能进行设计,其中包括IP及端口的连接、线程开辟与处理、命令的打包与解析、UI界面更新四部分。客户端界面如图3-2所示

1、IP及端口连接

在服务器与客户端之间需要建立一种联系通道,在本系统中需要利用TCP/IP协议,经过无线电磁播传输介质建立连接,此连接非常稳定不易丢失,确保连接稳定性。TCP的连接有一个特点就是在同一时间同一线程不能建立一个以上的连接,因此建立连接之前需要对Socket 连接进行判断是否之前有建立,接着将端口和地址转换为系统识别的形式,并尝试连接,同时建立线程,阅读传送的数据。因此实现该主要功能代码片段为:

相关文档
最新文档