远程遥控智能家电系统的设计(DOC 31页)

上传人:沈*** 文档编号:205270483 上传时间:2023-04-28 格式:DOC 页数:31 大小:290KB
收藏 版权申诉 举报 下载
远程遥控智能家电系统的设计(DOC 31页)_第1页
第1页 / 共31页
远程遥控智能家电系统的设计(DOC 31页)_第2页
第2页 / 共31页
远程遥控智能家电系统的设计(DOC 31页)_第3页
第3页 / 共31页
资源描述:

《远程遥控智能家电系统的设计(DOC 31页)》由会员分享,可在线阅读,更多相关《远程遥控智能家电系统的设计(DOC 31页)(31页珍藏版)》请在装配图网上搜索。

1、 编号: _ 湖北文理学院理工学院 本科毕业论文(设 计)题 目 远程遥控智能家电系统的设计_ 电子科学与信息工程 系 计算机科学与技术 专业学 号 12317127_ 学生姓名 樊友蜀_指导教师 李桂华_ 起讫日期 2015.10 2016.6 _ 湖北文理学院理工学院学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文

2、版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权湖北文理学院理工学院可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在 年解密后适用本授权书。本学位论文属于不保密。(请在以上相应方框内打“”)作者签名: 日期: 年 月 日导师签名: 日期: 年 月 日远程遥控智能家电系统的设计摘要:随着计算机技术的发展,远程信息交互变得简单。智能设备的诞生使得人们的生活更加方便。尤其是近几年“物联网”概念的出现,使得智能设备接入

3、网络的技术发展迅速,尤其是智能家电领域。当智能家电接入网络之后,我们可以通过手机或者其他手持智能设备在世界任意角落控制家里的家电设备。其给我们带来的方便性,不言而喻。本文则是基于最新“物联网”技术,描述了实现手持智能终端控制家电设备的开发过程。介绍了系统所使用的技术,实现的方法以及系统的特点。实现通过安卓手机终端远程查看室内电灯的状态和和对其状态的控制,以及实现对室内温度实时查看的功能。关键词:智能家电; 远程控制;智能终端;物联网Design of remote control system of intelligent home appliancesAbstract: With the d

4、evelopment of computer technology, remote information exchange easier. Born smart devices make peoples lives more convenient. Especially in recent years there things concept, making smart devices access network technology is developing rapidly, especially in the field of intelligent home appliances.

5、 When the access network smart appliances, we can phone or other smart handheld devices in any corner of the world to control home appliances. Which has brought us convenience, self-evident.This article is based on the latest Internet of Things Thinking technology, describes the implementation of sm

6、art handheld terminal control appliances in the development process. The technical system used, the characteristics of implemented methods and systems. Check ultimately indoor lamp by Android handset remote control status and switch status, as well as the indoor temperature to achieve real-time view

7、ing.Key words: Smart Appliances ; remote control ; Intelligent Terminal ;Internet of Things目 录1引言11.1课题研究背景和意义11.2课题研究的限制及发展趋势12开发环境与技术22.1开发环境22.2相关技术23系统分析43.1系统可行性分析43.2需求分析43.3数据流分析54系统总体设计74.1系统总体结构设计64.2各部分功能设计74.3数据库设计85系统详细设计与实现105.1嵌入式部分105.2桌面客户端部分115.3服务器端部分135.4手持端部分156系统测试176.1软件测试概述176

8、.2软件测试环境176.3系统测试177总结与展望197.1总结197.2展望19参考文献20致 谢211 引言1.1 课题研究背景和意义随着社会信息化的加快,人们的工作、生活和通讯、信息的关系日益紧密。信息化社会在改变人们生活方式与工作习惯的同时,也对传统的生产方式提出了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。人们对传统电器的要求早已不只是功能强大、方便快捷,更为关注的是更加人性化的普及的智能化环境,智能电器始终引领人们生活品位的提高。在科学技术与实际生活关系日益密切的今天,智能家居为越来越多追求时尚与方便的年轻一族们追捧。通过远程控制智能家电系统,人们可以不受时间和空间的束缚

9、,在任意时间、地点通过手持设备查看家里电器是否还在工作并根据需要对其进行远程控制,从而改变其工作状态。例如当我们出门忘记关灯,那么在出门之后我可以查看家里电灯是否处于开着的状态,并把它远程关掉。也可以实时获取家里必要数据,例如获取温度或者湿度,并通过远程控制家电进行调节。1.2 课题研究的限制及发展趋势当家庭智能网关将家庭中各种各样的家电设备通过家庭总线技术连接在一起时,就构成了功能强大、高度智能化的现代智能家居系统。智能家居强调人的主观能动性,重视人与居住环境的协调,能够随心所欲地控制居住环境1。自1999年起,国家信息产业部、科委、建委等部门组织有关专家论证和规划我国如何发展智能小区、智能

10、家庭计划。国家经贸委又组织长虹、海尔、中兴等十一家相关企业成立家居网络、智能化联合体,目的在于开展家庭网络技术以及终端产品的研发。使我国这一领域得以有序和顺序的发展。就目前趋势看,全世界在未来两年将有1亿家庭进入智能化、网络化,每年带来的市场总值高达4500亿美元其中3700亿元是硬件产品的价值,截止到2010年,50%以上的新房将具有一定的智能型家居。据调查,仅北京市场每年就有15亿左右的智能开关市场目标销售额。可见智能家居的市场潜力之巨大2。随着大屏幕触屏智能手机稳稳地确立移动网络市场的绝对霸主地位,包括平板电脑的受欢迎程度,我们发现,可视化控制和操作逐渐成为市场的主流趋势。所以,智能家居

11、的可视化操作将成为未来很长一段时间内的流行趋势。可视化控制操作其实就是更加方便和简单,受众范围将不再局限于年轻人,老人孩子都可以非常轻松地掌握3。2 开发环境与技术22.1 开发环境2.1.1 eclipseeclipse是著名的集成开发环境,它通过不同的插件实现不同需求的开发,且其界面友好,扩展插件功能丰富,使用简单,得到了绝大多数java开发者的青睐。本系统桌面端、服务器端以及手持客户端程序也是基于java语言的,所以选用eclipse作为这三部分的开发环境。2.1.2 Keil uVision4 MDK-ARMKeil uVision4提供了包括C编译器、宏汇编、连接器、库管理和一个功能

12、强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。且其界面友好,调试功能强大,支持芯片型号众多,所以选其作为本系统嵌入式部分的开发环境。2.1.3 MySQLMySQL是一个关系型数据库管理系统,它支持标准的sql语言,功能强大,访问速度快,体积小,存储数据量大。由于它是开源的,总体拥有成本低,更是众多中小企业的选择。所以选择MySQL作为本系统数据库管理系统。2.1.4 ADT本系统手持客户端以安卓平台为主,开发工具则选用google官方的开发工具ADT。且其作为插件集成在eclipse中,组成功能的强大的android集成开发环境。所以本系统

13、开发工具选用ADT开发手持端软件部分4。2.2 相关技术2.2.1 Java Socket技术本系统桌面端、服务器端、手持端三部分的通信都通过scoket完成。Socket和ServerSocket类库位于包中。ServerSocket用于服务器端,Socket在建立网络连接时使用。当桌面端和手持端成功连接服务器端时,三部分都会产生一个实例,在获得实例的输入输出流之后,通过向输入输出流写入字符或读取字符完成信息交互。2.2.2 Java comm技术目前,常见的Java串口包有SUN在1998年发布的串口通API comm2.0.jar(Windows下)、comm3.0.jar(Linux/

14、Solaris);IBM的串口通信API以及一个开源的实现。鉴于在Windows下SUN的API比较常用以及IBM的实现和SUN的在API层面都是一样的,所以本系统选用SUN的串口通信API在Windows平台下的使用5。2.2.3 Java多线程技术Java多线程技术实现了软件多任务并发执行。服务器采用多线程实现多客户端连接。在实现socket信息交互方面,多线程是必不可少的。2.2.4 基于stm32的嵌入式控制技术嵌入式技术依靠其体积小、成本低、功能强等特点,适应了智能化发展的最新要求。单片机作为控制系统的微处理器,在数据处理和代码存储等方面都已经无法满足系统的要求,ARM微处理器资源丰

15、富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7体系的处理器内核。基于Cortex-M3内核的STM32系列处理器于2007年由ST公司率先推出,它集先进Cortex-M3内核结构、出众创新的外设、良好的功耗和低成本于一体,极大的满足自动控制系统设计要求6。3 系统分析33.1 系统可行性分析3.1.1技术可行性系统手持端、服务器端、桌面端使用java语言开发,嵌入式端使用C语言开发。数据库选择MySQL。开发工具使用eclipse和Keil MDK。考虑到现今硬件的发展,在硬件上同样也是可行的。综合技术分析来看,技术可行性本系统是可行的。3.1.2经济可行性

16、系统所采用的开发工具及技术均是免费的。整个系统的开发均由本人完成,从而节省了人力成本。硬件成本方面,嵌入式模块为STM32F103C8T6核心板,价格较为便宜。开发者有能力承担,所以经济方面也是可行的。3.1.3运行可行性系统在开发完成之后,由开发人员调试连接完成。在服务器端,启动服务器程序即可。桌面程序端完成之后在桌面电脑开启运行即可。对用户来说,使用桌面客户程序跟普通软件一样。因此,使用并没有难度。而手持端则是一款安装在安卓手机上的app。界面简洁,操作简单。所以系统在运行方面也是可行的。3.2 需求分析需求分析是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时

17、所要做的所有的工作。需求分析是软件开发的一个关键过程。在这个过程中,需要和用户进行反复沟通以确定用户的需求。只有在确定了这些需求后,才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能。本系统的使用者主要是普通家电控制用户,其次是服务器管理用户7。3.2.1功能性需求分析(1)查看家电工作状态该系统需要提供查看功能,用户能够通过手持设备端,实时查看各个家电工作状态。以便根据家电的工作状态,作出需要的控制操作。(2)控制家电的工作状态系统的核心功能即要能够实现用户对家电的远程控制,用户能够通过手持端操作界面按钮实现对指定家电的控制。并且要求嵌入式控制端能够采集控制反馈信息,并将

18、其传回手持控制端,以方便用户查看。(3)用户注册功能新的用户上线需要进行注册,在注册之后才能进行连接,所以要求系统具有注册功能。(4)方便的服务器端程序管理 服务器端管理人员要确保信息传递稳定可靠,拒绝非法连接。其次需要根据当前硬件资源限制最大连接数,防止因过多连接导致系统崩溃。另外还需要服务器端释放掉已经断开连接的资源。(5)可扩展性需求每个用户需要控制的智能电器设备不尽相同,这需要软件具有较好的通用性。其次是当用户添加了新的电器或者淘汰了老旧电器之后,软件并不需要做大量软件更新。这就需要系统具有良好的扩展性和兼容性。3.2.2非功能性需求分析(1)安全性需求每一个家庭同一时间只允许一个手持

19、端进行控制,还要确保家电不会被他人获取连接,或进行非法控制。(2)界面需求简洁美观的操作界面必然是受欢迎的软件,优秀的软件界面有简便易用,突出重点,容错高等特点。 而广义上讲,软件界面就是某样事物面向外界而展示其特点及功用的组成部分。 通常我们说的软件界面就是狭义上的软件界面。因为软件是用户的工具,用户需要工具使用方便,界面能直观反应信息8。3.3 数据流分析桌面客户端注册,桌面客户端在建立连接之前需要先注册。桌面客户端提交用户信息给服务器,服务器建桌面端提交过来的信息写入数据库。用户注册数据流如图3.1所示。图3.1 用户注册数据流图4 系统总体设计44.1 系统总体结构设计服务器控制模块桌

20、面转嵌入模块注册模块信息收发模块嵌入式控制部分嵌入转桌面模块登陆模块信息发送模块数据处理模块数据交换模块手持端登陆模块服务器部分用户登陆模块信息接收模块外设连接模块接受请求模块桌面客户端部分用户注册模块桌面登陆模块手持端部分远程控制系统系统总体分为四大部分,分别为嵌入式控制部分、桌面客户端部分、服务器部分和手持端部分。每一部分的相关功能采用模块化设计,本阶段确定各模块功能和数据库设计。每个模块分开依据高内聚低耦合的原则9。系统功能结构图如图4.1所示。 图4.1系统功能结构图4.2 各部分功能设计4.2.1 嵌入式部分嵌入式部分需要接收来自桌面客户端的命令,然后通过解析不同的命令进行执行,最后

21、通过IO口执行相关指令。由此分析嵌入式部分主要分为三大模块,分别为信息收发模块,数据处理模块,外设连接模块。信息收发模块负责与桌面客户端进行通信,数据处理模块负责解析来自桌面客户端的命令并发出向IO发送相关指令。还需要将智能电器设备传回的数据进行处理然后发送到信息收发模块。让其把信息传至桌面客户端10。嵌入式功能结构图如图4.2所示。信息收发模块嵌入式控制部分数据处理模块外设连接模块图4.2 嵌入式功能结构图4.2.2 桌面客户端部分用户注册模块桌面客户端部分主要负责用户账户注册、用户登陆、接收来自服务器的信息并将其转发到嵌入式端和接收来自嵌入式端的信息并将其转发到服务器。通过以上分析桌面客户

22、端主要分为用户注册模块、用户登陆模块、接收服务器信息转发嵌入式模块(以下称服务器转嵌入式模块)和接收嵌入式信息转发服务器信息模块(以下称嵌入式转服务器模块)11。桌面客户端部分功能结构图如图4.3所示。用户登陆模块桌面客户端服务器转嵌入式模块嵌入式转服务器模块图4.3桌面客户端功能结构图 4.2.3服务器端部分服务器控制模块服务器部分主要功能为:关闭和开启服务器,接收请求,处理来自桌面注册请求,处理桌面登陆请求,处理手持端登陆请求,交换数据。通过分析服务器应包含以下六大模块,分别是,服务器控制模块、接收请求模块、注册模块、桌面登陆模块、手持端登陆模块、数据交换模块12。服务器端功能模块结构图如

23、图4.4所示。数据交换模块接受请求模块服务器端手持端登陆模块桌面登陆模块注册模块图4.4服务器端功能结构图4.2.4手持端部分 手持设备端信息接收模块信息发送模块登陆模块手持端主要负责与用户的交互,首先需要登陆服务器,所以手持端需要有登陆功能,当用户操作相关控件或者输入相关信息,手持端需要将请求发送至服务器端, 当有来自服务器的信息时,手持端需要接收来自服务器的信息 并将其进行合适处理之后在界面进行反映。由以上分析,手持端需要登陆模块、信息发送模块,信息接收模块13。手持端部分功能模块结构图如图4.5所示。图4.5手持设备端功能结构图4.3 数据库设计4.3.1数据库概念设计由数据流分析,得到

24、图4.6和图4.7所示E-R图。密码智能电器用户名用户设备按钮电器名图4.6用户信息智能电器图4.7智能电器4.3.2数据库逻辑设计通过以上用户实体图知道,数据库需要一张USER_INFO表记录用户的信息,当用户用手持设备连接服务器时,需要提交验证信息,服务器通过比较用户提交的信息与数据库中的信息进行对比,然后反馈给用户,确定是否登录成功。USER_INFO表如表4.1所示。表4.1 USER_INFO表字段名类型说明其他User_nameVarchar(20)用户名主键User_pwdVarchar(20)密码Have_DeviceVarchar(500)拥有的电器设备通过上面数据库逻辑设计

25、知道,数据库需要Divice_info表记录了各个设备的信息,通过不同设备信息进行不同操作。Divice_info表如表4.2所示。表4.2 USER_INFO表字段名类型说明其他Device_nameVarchar(20)电器名主键Device_buttonVarchar(500)拥有的按钮5 系统详细设计与实现详细设计是软件工程中软件开发的一个步骤,是对总体设计的一个细化。本章将在总体设计的基础上对各个模块进行编码实现。55.1 嵌入式部分5.1.1信息收发模块信息收发主要利用stm32的USART模块进行通信,本系统采用的STM32F103C8T6的核心板,该芯片共有三个USART,这里

26、我们选用USART1。首先初始化USART,然后配置io口。由于Uart1与PA9和PA10共用,所以将PA10配置为浮空输入,将PA10配置为推挽输出。配置代码较多,故将具体配置代码写成一个函数myusart_config(),以便后面程序再需同样配置,调用函数即可。串口模块调取USART_GetFlagStatus()。函数不断获得寄存器复位标志,当串口模块获得信息,串口相应寄存器标志位复位,从而判断消息是否接受完成。如果信息接收完成,串口模块将信息发送给信息处理模块。通过以上配置,信息收发模块也就完成了。下面是主要的配置代码。USART_Init(USART1,&USART_InitSt

27、ructure);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING7;5.1.2数据处理模块首先在数据处理模块设置一个字符型变量result,信息接收模块将接收到的信息存入该变量,数据处理模块循环检测该变量的值,如果值为空则继续检测,如果不为空,则通过判断代码对其进行命令解析,然后将不同的解析命令写到外设模块。同时由将来自外设的数据进行处理后送到收发模块。由于命令较少,为了提高嵌入式处理模块的速度,从而将命令简化为单个字符。当命令为“c”时,处理

28、模块作出关灯指令;当命令为“o”时,处理模块作出开灯指令;当命令为“t”时,处理模块作出采集温度指令。嵌入式模块中采用的温度传感器DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点14。它读取并返回的数据随温度不同而不同,当温度为正时,直接将读取的十六进制数值转换为十进制便得到实际温度值。当温度为负值,需要将读取的数值取反后加一便得到需要的温度值。当收发模块读取到采集温度命令并将其写入变量result中,数据处理模块将想外设采集温度的指令。在得到来自外设采集的信息后,数据处理模块对其进行处理,最后以十进制的格式送到发送模块发送出去以下为处理模块关键代码。Whi

29、le(1)If(command=c)Close_light();else if(command=o)Open_light();else if(command=t)Tem=Get_temerature():5.1.3外设连接模块灯光控制主要通过IO口的高低电平来控制,当IO口输出高电平点亮灯光,当IO口输出低电平关闭灯光。首先配置PC13为推挽输出IO,外设连接模块接受来自处理模块的命令,从而执行输出高低电平的命令。温度读入功能则是通过PA6连接温度传感器DS18B20实现温度读入15。返回的外设将读入的值进行处理,然后输出给信息收发模块最后传递给桌面端。本系统采用STM32F103C8T6芯片

30、的最小系统板进行嵌入式处理,由于其具有大量IO口,外设控制能力强,可以同时控制大量家电。关键代码如下。temperature_convert();/开启温度转换ms_delay(30000); /等待温度传感器DS18B20转换完成showdata=get_temperature();/获取温度数据5.2 桌面客户端部分5.2.1登录模块用户在填写完登录信息之后,点击连接登录按钮,客户端将想服务器发送以下格式字符串Login:(这里是填写的用户名):(这里是填写的密码)。发送完后客户端等待来自服务器的反馈。如果收到字符串succss则表明登录成功,界面显示已连接。若收到error,则显示连接失

31、败。在连接成功之后,客户端将开启两个线程用于监听来自服务器或者来自嵌入式端的信息。登录界面如图5.1所示。关键代码如下所示。desk_send_comm_Thread=newDesk_send_comm_Thread(socket,comm_init); desk_send_comm_Thread.start(); n1h223ncomm_Thread2=new Comm_Thread(socket, comm_init); comm_Thread2.start();图5.1 登陆界面5.2.2注册模块注册界面需要具备用户填写用户名,密码的文本框和选择拥有家电的多选框,当用户填写完用户信息,点

32、击注册,客户端通过socket与服务器建立连接,然后向服务器发送如下格式的字符串User_info:name:(这里是填写的用户名):pwd:(这里是填写的密码):(这里是用户选择的电器,可能有多个)。信息发送之后当服务器将用户信息写进数据库之后,将返回一个字符串,客户端接收这个字符串并进行判断,如果返回success 则表明注册成功,客户端返回登录界面,如果注册失败则返回error ,客户端停留在注册界面。5.2.3服务器转嵌入式模块此模块用一个线程实现,当客户端与服务器建立连接之后,此线程启动。线程使用死循环不断监听来自服务器的消息,如果有来自服务器的消息,则将消息转发到嵌入式模块。此模块

33、还有一个信息转换作用,前面讲过,为了提高嵌入式模块速度,写入嵌入式模块的命令都是单个字符。所以来自服务器的命令需要进行转换,然后再写入嵌入式模块。关键代码如下。if(str.equals(open_light)out.write(o);else if(str.equals(clsoe_light)out.write(c);else if(str.equals(view_temp)if(temper_Thread=null)temper_Thread=new Temper_Thread(comm_init);temper_Thread.start();为了实现温度不断更新,所以上面代码中另外写了

34、一个线程,当来手持端的命令为view_temp时,此线程启动,每隔一段时间发送一次温度读取命令,从而实现温度不断更新的功能。5.2.4嵌入式转服务器模块此模块同样用一个线程实现,客户端在与服务器建立连接之后,向此线程返回一个socket,线程取得socket的输出流。同时客户端与嵌入式端建立连接并向本线程返回一个输入流。线程不断读取返回的输入流,一旦读取到信息,则将信息通过输出流发送给服务器。此线程在客户端与服务器建立连接之后启动11。关键代码如下。str=Integer.toString(a)+.+Integer.toString(b)+;daout=new DataOutputStream

35、(socket.getOutputStream();daout.writeUTF(data:+str); 5.3 服务器端部分5.3.1服务器控制模块此模块主要是开启服务器,启动接收请求的线程。再服务器需要关闭的时候,停止服务,关闭所有的套接字释放资源。启动和停止服务器的操作通过界面上开始与停止按钮实现。界面上设计两个textarea空间,分别用于显示来自桌面客户端和手持设备端的连接。服务器界面如图5.2所示。图5.2服务器界面关键代码如下所示。String str=accept_Thread.getState().toString();if(!str.equals(RUNNABLE)acce

36、pt_Thread.start();5.3.2接收请求模块为了实现服务器能转发多个客户端的功能,在点击启动服务器时,开启一个专门建立连接的线程Accept_Thread(),线程不断的的重复监听来自桌面客户端或者手持设备端的连接,每当监听到来自客户端的连接,此线程便为连接创建一个新线程。新的线程负责处理连接的信息交互。关键代码如下。socket = server.accept();System.out.println(socket);Service_Thread thread=new Service_Thread(socket,desk_table,pwd_table);thread.star

37、t();5.3.3注册模块 注册模块在接收到来自客户端的注册请求字符串时,先用正则表达式将字符串中的信息进行截取,截取的分隔符为“:”。截取后首先查询数据库是否存在相同的用户名,如果存在,返回字符串“error”,如果不存在,则讲信息写入User_info表和Device_info表并返回 “succss”。5.3.4桌面登陆模块当桌面客户端发送登陆请求,服务器线程取得登陆信息,并同查询数据库获得信息与登陆信息比较,如果相同则返回 “succss”并将生产的socket放入一个全局数据结构Hashtable,中key用户名,值为socket。关键代码如下。desk_table.put(clie

38、nt_name,soc);pwd_table.put(client_name,pwd);5.3.5手持端登陆模块当Accept_Thread()接收到手持端请求时,同样为其建立一个新线程。线程首先查询Hashtable是否存相同账户的客户端套接字,如果不存在,则返回error。如果存在,则查询数据信息并比较是否和请求中的信息相同,如果相同,则返回succss,并建立信息交互线程。否则返回error。关键代码如下。scend=(Socket)desk_table.get(client_name);System.out.println(套接字+scend);String s=(String)pwd

39、_table.get(client_name);if(scend=null)|!(s.equals(pwd)daout=new DataOutputStream(out);daout.writeUTF(error);soc.close();this.stop();Service_Thread2 service_Thread2=new Service_Thread2(scend, soc);service_Thread2.start();5.3.6数据交换模块服务器负责信息的双向交互,所以当手持端与桌面端建立连接之后,需要开启两个线程,分别为从手持端到桌面端Service_Thread和桌面端到

40、手持端Service_Thread2的信息交互线程。两个线程均用无限循环实现,其中一个线程线程获取桌面端的输入流用来读取来自桌面的消息,同时获取手持端的输出流,用来将信息发送到手持端。另一个转发线程则相仿。关键代码如下。Service_Thread2 service_Thread2=new Service_Thread2(scend, soc);service_Thread2.start()5.4 手持端部分5.4.1登陆模块此模块主要由界面部分组成,界面设计用户信息输入框和用户命令操作按钮。当用户填写完信息,点击登陆按钮,此模块将开启两个模块分别用于向服务器发送消息和接收来来自服务器的消息。

41、发送线程首先将向服务器发送如下格式的字符串client:name:(这里是用户填写的姓名):(这里是用户填写的密码)。此时接收模块不停读取来自服务器的消息,如果收到来自服务器的字符串succes 表明登录成功。此时线程通过handler向主界面发送消息,主界面收到消息更新界面按钮。用户通过操作界面按钮触发发送模块向服务器发送命令。手持端界面如图5.3所示。图5.3手持端界面关键代码如下。my=new MyThread(mHandler1,id.getText().toString(),pwd.getText().toString();if(!my.getState().toString().e

42、quals(RUNNABLE)my.start();5.4.2信息发送模块信息发送模块通过一个线程实现,线程在连接成功后获得服务器的输出流。线程中设计一个标志字符串flag,当用户操作界面后界面住线程将命令写入flag字符串。线程不断读取字符串的值,如果字符串的值不为空,则将flag的值通过输出流发送出去。关键代码如下。out.writeUTF(data+:+flag);out.flush();5.4.3信息接收模块信息接收模块也通过一个线程实现,当手持客户端与服务器成功建立连接之后,将socket返回给信息接收模块,信息接收模块通过socket获得服务器输入流,并不断读取输入流。当读取到的信

43、息不为空的时候,模块对信息进行判断,如果信息包含显示数据,则线程将数据封装为message发送给handler,handler获得数据将其在主界面进行显示。信息接收模块的主要代码如图5.4所示。图5.4信息模块关键代码6 系统测试66.1 软件测试概述在系统完成之后,为了验证系统存在错误、不正常或者没有按照规定运行,需要对系统进行测试,以保证系统满足开发要求。软件测试在整个系统开发周期中占有重要的地位。软件测试也是软件质量的重要保证以及在整个系统开发中有着不能替代的作用Error! Reference source not found.。6.2 软件测试环境软件测试环境如表6.1所示。表6.1

44、软件测试环境环境版本操作系统Win7数据库MysqlJdk1.86.3 系统测试测试包括客户端、手持控制端的功能测试和服务器端控制测试。(1)客户端功能测试首先打开服务器,点击开始,服务器程序启动。新用户首次登陆,服务器将返回error信息,以admin 密码admin为例登陆,返回注册失败界面。然后点击注册,填写信息,选取家电电灯,点击完成。 界面返回注册成功,并返回登陆界面。使用刚刚注册的账户进行登陆。将admin填入姓名栏,密码admin填入,然后点击连接,界面显示连接成功。根据以上结果确定客户端程序功能正常。(2)服务器端功能测试打开服务器点击开始,打开客户端,输入上面测试注册的账号,

45、点击连接,客户端显示连接成功。然后点击断开。然后点击服务器停止。再次打开桌面客户端点击连接,客户端显示连接失败。根据以上结果说明服务器打开和停止以及注册功能正常。(3)手持控制端测试使用上面测试中注册的账户建立桌面客户端与服务器的连接,打开安卓客户端姓名输入admin,密码输入ad,点击连接,安卓客户端显示连接失败。再次打开安卓客户端姓名和密码输入之前注册的账户。点击连接,客户端显示连接成功。点击电灯控制开关,与嵌入式控制端连接的led灯点亮,再次点击按钮,led灯熄灭。点击“查看”按钮。温度文本框显示当前温度22.7。当用手指触碰温度传感器时,客户端温度上升并不断变化。由以上测试说明,安卓客

46、户端功能正常。7 总结与展望 77.1 总结本文基于stm32处理器和网络通信设计了家电远程控制系统,建立了家电到到手持设备端的可靠连接,实现了用户对家电实时控制;给出了系统主要软件的设计流程图。以电灯为例,给出了一种基于Internet程家电控制系统,阐述了系统设计方案,详细介绍了远程家电控制过程、系统硬件实用性和远程控制的实现方法。远程控制发送开灯和获取温度命令后,由嵌入式控制端开启电灯和获取室内温度并将信息通过网络传回至手持端。试验结果表明:该系统能够很好地对电灯实现远程控制,室内温度也能实时地远程查询,系统易于操作、性能稳定,具有良好的实用性、可靠性和可扩展性,达到了设计目的。这次毕业

47、设计所获得的经验将对我以后的学习和生活产生莫大的帮助。7.2 展望国内从上世纪九十年代开始发展智能家居技术,经过二十多年的发展,智能家居在一些高端物业、别墅排屋等项目有一些应用,但尚未形成普及之势,远程控制操作的局限性是其中一个很重要的因素。传统智能家居的操作终端主要是开关面板、遥控器,存在极大的局限性。首先,按键的数量局限性,功能简单,扩展不方便。在有些智能家居系统中,还存在多个按键做组合键的情况,容易造成用户的误操作;其次,系统的互控局限性,不同的子系统之间互控性差,对应的面板和遥控器不能共用,用来控制灯光的遥控器,不能控制空调,用户经常被动的在一堆遥控器中选择;再次,操控的空间局限性,红

48、外的遥控器必须在同一个房间才能操作,无线的遥控器在隔了多层墙壁以后,信号严重衰减,操作的准确性不能保证。用户外出上班或者旅游,要控制家居的设备就更困难了。随着计算机技术、传感技术、现代通信技术和自动控制技术的迅速发展,物联网时代应运而生。智能家居控制技术得到飞跃发展。基于Internet的智能控制技术也必将是未来的趋势。参考文献1 覃朗. 基于Windows CE的智能家居终端的设计与实现J.2012年12月.2 刘进.基于单片机的智能窗帘系统设计.科技创新导报J.2015年3 李伟强.移动智能终端改变智能家居生活D.中国公共安全(综合版),2012年.4 扶柏松.Android开发从入门到精

49、通 兵器工业出版社M,北京希望出版社.5 李佳宁,陈旭.利用comm.jar开发包实现Java与单片机全双工串口通信核心分析J. 理论研究(2016年04期).6 古惠行.精稳正弦波激励信号源设计与实现.西安科技大学D.2013年.7 王培刚.基于复杂科学管理理论的软件需求分析研究J.武汉大学.2012年.8 谭恒松.软件UI设计课程教学初探M.教学与管理 (2012年11期)9 张能伟.基于扩展依赖关系模型的Java软件聚类研究J.江西师范大学.2015年.10 Hui-Ling, Zhu, Xin-Yin, Zhu.The High Precision Vibration Signal D

50、ata Acquisition System Based on the STM32 .Sensors & TransducersJ, 2014, Vol.172 (6), pp.98-10411 洪世勇.Java中基于Socket的网络编程J. 技术_知识库 (2013年Z1期)12 汪志达.基于Java的多线程数据通信程序设计D. 应用与开发 (2016年04期)13 郭宏志. Android应用开发详解M. 电子工业出版社.14 吕建波.基于单总线数字温度传感器DS18B20的测温系统设计J.测试测量自动化_测控技术(2012年19期).15 Su, Liangyu.Design of R

51、F Heat Therapy System Based on DS18B20 and FPGA. Sensors & Transducers, 2014, Vol.178 (9) D, pp.140-145致 谢本文是作者在湖北文理学院理工学院做毕业设计期间学习的总结,是在导师李桂华老师指导下完成的。在这几个月毕业设计实践中,李老师对我的精心指导和培养使我在各个方面都受益非浅,在分析问题、解决问题及独立工作的能力方面取得了很大的进步。之前在做这次的毕业设计时,李桂华老师提出了很多有益的建议并给予我莫大的帮助。在此谨向李桂华老师表示衷心的感谢。在理工学院这个学习氛围活跃、团结友爱的大集体里,大家互相帮忙,互相学习,共同提高。在此也要感谢我的各位朋友,大家的支持与帮助使得论文研究工作得以顺利的进行。最后,再次向李桂华老师以及帮助过我的同学们表示最真诚的谢意!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!