基于Android平台下物联网家电远程控制系统开发.docx_第1页
基于Android平台下物联网家电远程控制系统开发.docx_第2页
基于Android平台下物联网家电远程控制系统开发.docx_第3页
基于Android平台下物联网家电远程控制系统开发.docx_第4页
基于Android平台下物联网家电远程控制系统开发.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内蒙古师范大学计算机与信息工程学院学士学位毕业论文基于Android平台下物联网家电远程控制系统开发学院 计算机与信息工程学院 专业 计算机科学与技术 班级 2011师范蒙班 姓名 铁荣 学号 20112102854 指导教师 朝力萌 完成时间_2015年05月11号 目录1.绪论21.1 问题的提出21.2 开发目标21.3 意义31.4 可行性分析32. 系统的分析42.1物联网远程控制的概述42.2 需求分析43. 系统详解53.1 系统功能界面53.2流程图83.2.1设备软件的流程图83.2.2 UDP搜索的流程图93.2.3 TCP server服务的流程图103.2.4 TCP client线程的流程图103.2.5 GPIO协议解析线程的流程图123.2.6 自动上报线程的流程图133.3 http连接133.4通过get方法提交参数给服务器143.5通过post方法提交参数给服务器143.6解码服务端发来的指令143.7服务端开关指令协议154. 结论165. 致谢16 全文共 18 页 3449 字基于Android平台下物联网家电远程控制系统开发计算机与信息工程学院 2011级计算机科学与技术师范蒙班 铁荣20112102854指导老师 朝力萌 讲师摘要 本文主要叙述了,利用Android移动终端作为应用平台,设计这款基于TCP/IP的交互式软件系统,实现了一个通过局域网控制电路的,并能基本满足用户对移动终端的应用软件。关键词 Android; 物联网;远程控制1.绪论1.1 问题的提出随着网络技术和无线通信技术高速发展,物联网当之无愧的成为21世纪的最具有发展前途的信息技术,人们也越来越依赖网络追求更加方便,更加快捷的生活方式,为了满足人们对“懒惰生活”的追求,所以力图开发这款软件,开发选择了Android平台,是为了顺应当下用户对移动终端形影不离的依赖,通过移动终端和服务端的网络关联来控制家用电器的电路的开关状态,用户无需亲自触摸电源开关,就可改变电路状态,做到操作以无形之中,从而使生活更加便捷,更加高效。1.2 开发目标智能家居只是普通的家居结合网络通信技术和自动控制技术将家居有关的设施集成的新型家电产品,从而为用户提供更加人性化的操作,使用户的操作更为简洁,更为便利,其中用到一个电路掌控器,它的作用领域涉及广泛,可以应用于多种不同场景,例如:家电远程控制,办公设备远程控制,工厂车间开展,农牧场远程控制,监狱管理等等,我们模拟了其中的家电远程控制,其他场景也大同小异,选择家电远程控制,是因为其适用人群众多,对用户的要求甚低,让每个家庭享受到了即经济又无所不能的强大生活质量,至于移动终端,我们采用了安卓设备来完成,是因为安卓系统具有庞大的应用人群,还有它的开发方式简便但功能丝毫不减,后期维护又容易,所以,用移动平台终端和电路掌控器,来实现网络通信技术和自动控制技术,开发起来相对容易,还能使操作更加的方便和快捷。1.3 意义在普通家居设备上,加上网络通信技术和自动控制技术,使之更为人性化,更加智能,利用电路掌控器,让电路的操作不但容易控制,而且还更加安全,通过移动终端的操作,使它的操作更加方便,老少皆宜,并且开发便捷,维护相对容易,另外,市场上,蒙古文软件相对较少,对于蒙古语使用者享受网络时代的产物具有一定的局限性,所以,本次开发的是纯蒙古文界面软件,是为了更好的让蒙古语使用者感受到网络时代和物联网时代的魅力与便捷,也更好的促进民族发展。1.4 可行性分析社会的不断发展、移动设备的不断更新,致使移动设备的价格已经十分的低廉,走进了千家万户,而本软件的开发可以帮助更多的用户在需要的时候使用本软件。为此主要表现为以下几个方面:第一,本软件的运行可以缩减许多用户繁琐的电路操作:第二,本软件的运行可以节省许多资源:第三,本软件的运行可以大大的提高用户的工作学习效率:2. 系统的分析2.1 物联网远程控制的概述所谓物联网远程控制,是指用户用移动终端设备,通过局域网或Internet网,将它与相应的物理设备相关联,从而进行相对应的操作,这种方式操作简单,方便易行,大大的改善了人们的生活质量,使用户的生活更加便捷,更加智能化,更加人性化。2.2 需求分析随着计算机网络技术的不断更新与应用以及社会经济的发展,生活质量的日益改善,生活节奏的不断加快,人们的生活日益智能化,人们对家居的要求已经不仅仅是物理意义上的生存空间,更为关注的是安全,便捷,舒适,智能的生活环境,先进的设备以及简单的操作。智能化的家居愈来愈成为人们理想目标的追求,本软件主要基于TCP/IP网络连接的远程控制软件,成本低廉,灵活性高,真正做到了智能化,满足了用户的智能家居的需求。3. 系统详解3.1 系统功能界面1.如下图1所示,打开软件,首先映入眼帘的如一个炫酷的欢迎界面,界面是由一个LinearLayout实现的,EditText和一个Button控件组成,EditText控件用来输入登陆密码,Button控件是用来监听登陆事件的。 图12.如图2所示,这个界面用来表示用户向服务端发送开关命令操作以及接收服务端返回给客户端状态的界面,是LinearLayout通过添加ListView试图来实现界面功能的。图23.如图3所示,该界面显示为一个搜索设备Mac地址,设备的IP地址,设备的名称以及设备的类型,该界面是由一个LinearLayout添加ListView试图,ProgressBar进度条以及ImageView控件等实现功能的。图33. 如图4所示,该界面是用来监听设备是否在线,通过服务端返回给客户端命令,得到是否在线的消息,该界面是由一个LinearLayout添加一个ListView视图来实现的。 图43.2流程图3.2.1 设备软件的流程图3.2.2 UDP搜索的流程图3.2.3 TCP server服务的流程图3.2.4 TCP client线程的流程图3.2.5 GPIO协议解析线程的流程图3.2.6自动上报线程的流程图3.3 http连接代码 创建默认的客户端实例HttpClient httpClient = new DefaultHttpClient();httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); 建立httpPost对象HttpPost httpRequest = new HttpPost(url);String strResult = doPostError;3.4通过get方式提交参数给服务端 创建url网络连接URL url = new URL(sb.toString(); 创建默认的客户端实例HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 使用HttpUrlConnection对象向服务器发送get请求conn.setRequestMethod(GET); 设置文件类型conn.setRequestProperty(Content-Type, text/xml); 设置文件字符集conn.setRequestProperty(Charset, encoding); 设置超时的时间conn.setConnectTimeout(TIMEOUT);3.5通过post方式提交参数给服务端 创建url网络连接URL url = new URL(urlPath); 创建默认的客户端实例HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 使用HttpUrlConnection对象向服务器发送post请求conn.setRequestMethod(POST); 设置超时的时间conn.setConnectTimeout(TIMEOUT);3.6解码服务端发来的指令private void decodeData(byte data) if (data.length 6)return;int num1 = data0 & 0xff;/创建失败int num2 = data1 & 0xff;if (num1 != 0xaa | num2 != 0x55)return;int cmdValue = data5 & 0xFF;if (isInitView) if (cmdValue != cmdIndex) return;switch (cmdValue) case 0x81:/ 某一输出被清零int singleOutState = CmdUtil.decode_81_data(data);if (singleOutState1 = 0) lsSourceOut.get(singleOutState0 - 1).setState(0);if (!sOutAdapter.isTouchMode()sOutAdapter.notifyDataSetChanged();break;case 0x82:/ 某一输出被打开int singleInState = CmdUtil.decode_82_data(data);if (singleInState1 = 1) lsSourceOut.get(singleInState0 - 1).setState(1);if (!sOutAdapter.isTouchMode()sOutAdapter.notifyDataSetChanged();3.7服务端开关指令协议总则:(1) 发送命令: 包头 长度 ID 命令 参数 校验, ID通常用于 RS485(2) 回应命令: 包头 长度 ID 命令 参数 校验, ID 通常用于 RS485,网络状态下只 用命名 +参数(3) 通用指令: 0xff + cmd。如果设备不支持当前指令,将返回: 0xff + cmd 告知 对方不支持本指令。输出指令:1、0x01 N 清零(关)单一 IO 回应: 0x81 N 0 举例:发送 0x01 0x01 回应 0x81 0x01 0x00 表示将第一路 IO 清零 N 的范围 12552、 0x02 N 置一(开)单一 IO 回应: 0x82 N 13、 0x03 N 取反单一 IO 回应: 0x83 N 1/04、 0x04 无参数 清零所有输出型 IO 回应: 0x84 05、 0x05 无参数 置一所有输出型 IO 回应: 0x85 16、 0x06 无参数 取反所有输出型 IO 回应: 0x86 BBBB, BBBB 表示出所有 IO 的当前状态。 BBBB 参考,表格一:连续 IO 表示说明7、 0x07 BBBB 选择多路清零 回应: 0x87 BBBB BBBB 表示被选择要清零操作的继电器8、 0x08 BBBB 选择多路置一 回应: 0x88 BBBB BBBB 表示被选择要置一操作的继电器9、 0x09 BBBB 选择多路取反 回应: 0x89 BBBB BBBB 表示出所有 IO 的当前状态10、 0x0a 无参数 读取所有输出口的 IO 状态,无执行动作 回应 0x8a BBBB BBBB 表示所有输出型 IO 的当前状态11、 0x0b BBBB 设置所有输出 IO 的状态 回应 0x8b BBBB BBBB 表示命令执行后所有输出 IO 的状态4. 结论通过HttpClient,HttpResponse,HttpRequest连接客户端和服务端是开发的难点,直接影响到网络连接的成功与否,及是否能确保数据的传输,因此,在开发相关系统时都需要充分考虑到科学性、结构性、规范性、安全性可扩展等相关问题。5. 致谢感谢朝力萌老师,在做毕业设计和写论文的整个过程中全面的指导,在设计中提出许多好的建议和意见,使我深受启发。对于您的细心教导表示最诚挚的感谢!参考文献1 安卓应用开发实用教程.安卓越科技2013.52 疯狂JAVA讲义 李刚.2013.9Things Android platform based on the following appliances remote control system developmentComputer and Information Engineering College 2011.mongolian class TieRong 20112102854Directed by ChaoLiMeng Associate LectorABSTRACT This paper describes the use of the popular Android smart terminal fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论