版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1 绪论11.1 课题背景11.2 研究意义11.3 研究现状21.4研究内容21.4.1 系统介绍31.4.2 模块划分31.5 小结42 系统需求分析52.1 系统功能需求52.2 系统性能需求52.3 系统可行性研究62.3.1 技术可行性62.3.2 经济可行性72.3.3 操作可行性72.4 系统运行环境72.5 小结83 系统总体设计93.1 系统结构设计93.2 系统工作原理103.3 系统关键技术123.4 小结124 系统详细设计与实现134.1 数据存储134.2 系统功能的设计与实现144.2.1 登录功能的详细设计144.2.2 家居状态的详细设计174.2.3
2、修改密码功能的详细设计224.3 远程电器控制模块的模拟实现234.4 小结235 系统测试245.1 单元测试245.2 功能测试255.3 性能测试255.4 小结266 结论27附 录28参考文献31致 谢331 绪论1.1 课题背景随着社会的发展和科学技术的进步,数字网络生活时代已经到来,以家庭智能化、物业管理现代化和社区服务信息化为典型特征的智能社区也在悄然应运而生。住宅智能化是人类住宅的又一场新的革命。它能够为人们提供更加轻松、有序、高效的现代生活方式,是未来居住模式的必然发展趋势。随之而然,智能家居系统也在逐渐成为一个新兴的研究领域。智能家居提供的是一个具有高度安全性、生活舒适性
3、和通信快捷性的信息化与自动居住空间6。智能家居是指将家庭中各种与信息相关的通信设备、家用电器和家庭保安装置,通过家庭总线技术连接到一个家庭智能化系统(即家庭控制器)上,以实现监视、控制和家庭事务型管理,并保持这些设施与住宅环境的和谐与协调。要实现家居的智能化,必须在家电里面加入接收和控制端,这样就能对家里的电器、灯光、电源、家庭环境进行方便地控制,使人们尽享高科技带来的简便而时尚的现代生活。将社会的信息化建设与小区的信息化、智能化建设有机地融合起来,充分利用已有的宽带网络,做到资源共享,达到节省投资、降低使用费用、方便物业管理,为用户提供尽可能多的高品质服务,已成为房产商、电信运营商、物业管理
4、公司、城市公用事业公司和用户等几方共同关注的问题。自动化的智能家居不再是一幢被动的建筑,相反,成了帮助主人尽量利用时间的工具,使家庭更为舒适、安全、高效和节能。家居智能化技术起源于美国,网络系统中的各个设备均可实现资源的共享。因其布线简单、功能灵活,扩展容易而被人们广泛接受和应用。目前,已经有越来越多的机构和个人开始了对智能家居的研究。1.2 研究意义智能家庭控制系统是以以太网、现场总线、公共电话网、无线网的传输网络为平台,控制技术为技术平台,现场总线为应用操作平台,构成一个完整的集家庭通信、家庭设备自动控制、家庭安全防范等功能的控制系统3。智能家居控制系统的总体目标是通过采用计算机技术、网络
5、技术、控制技术和集成技术建立一个由家庭到小区乃至整个城市的综合信息服务和系统,以此来提高住宅高新技术的含量和居民居住环境水平。使人们享受到高科技带来的方便快捷的生活方式。人们的生活方式在逐渐加快,因此生活中就需要更为便捷的生活方式。智能家居就是在这种情况下应运而生的。人们需要通过一个按钮就可以实现对家具的控制,减少了原来需要寻找遥控器或者是开关等方式带来的不便。从而使人们的家更舒服,更方便。系统通常由系统服务器、家庭控制器(各种模块)、路由器、通讯器、控制器、无线收发器、各种传感器等主要部分组成。1.3 研究现状由于中国的居住模式和文化与发达国家有很大的区别,所以智能家居在中国的发展也体现出其
6、独具的特色。中国人口众多,城市住宅建设也多选择密集型的住宅小区方式,因此很多房地产商会站在整个小区智能化的角度来看待家居的智能化,也就出现了目前一统天下、无所不包的“智能小区”的模式。智能小区同样是中国特有国情的产物。智能小区与公共建筑中的智能建筑的主要区别是,智能小区强调住宅单元个体,侧重物业管理功能。真正意义的智能小区中的单元-单个住宅,应该安装智能家居(Smart home),这样智能小区的功能才得以有效运用,对大型社区来说,智能小区是智能家居运行的基础平台。其实无论是安全防护还是智能家居,都应该属于智能住宅的大的范畴,其中不单单包括智能安防以及智能家居,还包括诸多住宅智能化的功能,随着
7、物联网技术的发展兴起,其广阔的运用以及领先的技术优势必定能改改变现在的市场现状,未来的智能家居将是物联网相关运用的一个典范,将家居系统完美的结合以及协同各种传感元件进行有效感知,其中不单单指内部感知,更包括了系统对外部的感知以及数据交换。1.4研究内容系统采用典型的C/S(Client/Server客户机和服务器)架构。C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。由客户端调用send()方法发送控制信息,控制服务器端的家居状态,服务器受到控制信号之后,修改现在的状态,并把修改之后的状态通过recived()方法返还给客
8、户端。客户端调用相应的recived()方法把结果显示出来。1.4.1 系统介绍使用J2me技术实现手机界面,以及家用电器的监视和控制、照明设备的监视、调节和控制、门的控制、窗帘的控制等。并实现客户端与服务器端之间的通信。通过手机上的各个按钮控制发送信号,进而实现家居的开关控制。系统选用J2me技术开发基于手机平台的信息控制端软件。以发送数据信号的方式发送到控制端,实现控制家居设备的功能。J2me是sun公司针对嵌入式、消费类电子产品推出的开发平台,是一系列规范的集合,由JCP组织制定相关的JSR并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,确保兼容性8。通过使用
9、J2me中的无线网络开发技术实现手机客户端与系统终端的通讯。使用通用连接框架技术建立HTTP连接。使用servlet技术实现计算机之间的即时通讯。1.4.2 模块划分根据系统本身的需要,我们把系统分为以下模块:主页面显示智能家居控制系统的字样,以及输入密码的输入框。密码输入成功则可以直接进入智能家居控制系统的主界面。如果密码输入错误,则需要重新输入。对密码的设定采用最大不能超过八个字符的简单定义来实现对系统安全的保护工作。密码输入成功则可以登陆控制家具的页面。根据房间的布局,把整个家庭分为三个模块。分别为客厅、厨房和卧室,对房间中的家居进行合理的分配,从而达到更高效的目的。同时为了方便修改密码
10、。把修改密码的功能也和这三个控制页面一起,放入到了同一个界面中。下面介绍各个房间中能够控制的家用电器。客厅中能够控制的家用电器包括:防盗门、窗帘、吊灯、空调和电视。防盗门、窗帘和电视的控制分为两个分别是“开启”和“关闭”。吊灯的控制除了在“开启”和“关闭”的基础上增加了一个亮度调节的控制,用滑动条的形式来实现对温度的调解。根据空调的特性,给空调又增加了温度和湿度的控制。分别用两个滑动条来实现对家居的控制。厨房中能够控制的家用电器包括:灯、窗帘。厨房中的灯和窗帘的控制分为“开启”和“关闭”两个设置。卧室中能够控制的家用电器包括:床头灯、窗帘和吊灯。卧室中的床头灯和台灯一样在开启和关闭的基础上增加
11、了对亮度调节的控制。窗帘则只有“开启”和“关闭”的功能为了方便人们的操作,增加了修改密码的功能。在卧室的下面就是改密的字样。点击确定按钮,则可以修改密码,键入新密码,返回密码修改成功的字样。无论何时何地,只要您想要控制家中家居的状态,拿起手机,进入到智能家居控制系统,选择要更改的房间,以及要控制的电器,选择之后点击发送按钮,就可以实现对家用电器状态的更改。空调和其它的模式则不同,不仅具有开和关的状态,还增加了温度的调节和控制。电灯的控制方式和空调的类似,在开和关控制的基础上增加了调解亮度的功能。使人们能够根据自己的喜好来调节亮度。丰富了人们选择的范围,使选择方式不再单一。1.5 小结本章首先介
12、绍了该课题的背景、研究意义,我们了解到此系统广阔的发展前景,以及适用性。在不改变人们居住环境的前提下,实现对家居的监制和控制。接着介绍了有关该系统的国内外研究现状,以便于在前人研究基础上能有所创新。充分结合前人的研究,使系统更为完善,更满足用户的需求。最后介绍了研究内容,对自己所研究的内容进行了更加彻底的分析。方便人们了解到此系统实现的所有功能。2 系统需求分析2.1 系统功能需求项目主要实现用户对家用电器的控制,其中包括家居的开和关,以及其他的相关操作。客户端发送控制信息的请求,通过网络传输方式发送到服务器端,服务器端相应客户端的操作,然后再把结果返回给客户器端。其中家用电器的控制在开和关相
13、关控制的基础上增加了智能调节控制。空调实现了用下拉框的形式开实现对湿度和温度的控制。进而为人们实现对家具的控制提供了方便。该系统共分为五个模块,分别为登陆、客厅、厨房、卧室和改密。模块一:为了保证客户使用信息的安全性,为此系统添加了登陆模块,运行智能家居控制系统的客户端,就要键入密码,密码输入正确就自动跳转到家居的控制页面,反之重新键入密码。模块二:客厅中的家用电器主要包括:防盗门、窗帘、吊灯、空调和电视。实现对防盗门、窗帘的开关控制、对吊灯的开关操作以及亮度调节的控制、对空调的开关操作以及对室内温度和湿度的控制以及调节控制电视的开和关,等等一系列的操作。模块三:厨房中的家用电器主要包括:吊灯
14、和窗帘。还是用下拉菜单实现对各个家电的开关控制。模块四:卧室中的家用电器主要包括:吊灯、窗帘和台灯。这个模块中的家具设计的虽然不是很多,但是也同样实现了家具的开关和家用电器的监制和控制。模块五:用户可以修改密码,键入你想要设置的新的密码,点击设置按钮就可以设置你想要的新的密码了。2.2 系统性能需求智能家居控制系统是一个很有发展前景的系统。因此为了使本系统能够长期使用,必须使系统满足安全、稳定、可靠、高效的运行模式,生活水平的提高,伴随着生活质量的提高。同时人们生活的节奏也逐渐加快,怎样高速的完成任务就是我们要考虑的主要问题。因此系统应满足如下性能需求:(1) 较强的扩展能力和通用性,此系统即
15、能够满足一个家庭之间的远程控制,同时对一个小区来说也同样适用。由于这次我们主要研究的是控制家居这方面的内容,以后,我们还可以扩展此系统,加上远程通信、智能报警等等各项功能。(2) 由于本系统的界面简单明了,因此人们很容易就学会操作。扩大了系统的用户群。在不改变人们生活住宅的情况下,有效的实现对家居的控制。使人们可以节约时间,享受生活。(3) 系统的准确性和及时性系统处理的准确性和及时性是我们要考虑的主要问题。在控制家电的过程中,确保对家居状态更改的准确而且及时。优化系统,使系统的反应能力和控制家居的能力满足用户多功能的需求。2.3 系统可行性研究验证一个系统是否可行,需要从多个方面着手分析。其
16、中主要的内容包括:技术可行性、经济可行性和操作可行性三个方面。2.3.1 技术可行性系统采用J2me技术。使用J2me中特有的手机模拟器进行开发,实现对各种家居的控制。J2me技术规范定义了Java技术在资源有限制的设备中的表现形式。J2me主要适用于小型嵌入式设备,这些设备与PC或是服务器设备相比没有统一的硬件标准、外观与操作方式,其功用也是千差万别13。但是J2me在使用于这些设备的同时也保留了Java的传统特性,即任何时间和任何地点的代码具有可移植性、部署灵活性、安全的网络传输性,以及代码稳定性。Java平台的主要优点是它允许我们编写可移植的应用程序。Java平台的可移植性来自其执行模型
17、。具体地说,它是由于在运行时使用JVM来将Java字节码处理成机器码,因而在硬件之上提供了兼容性层。Java平台的执行模型还引入了一些在设备本机应用程序中缺乏的重要安全性优点。(1) 在给定的时间内能够实现任务书中的功能。能够实现页面的跳转以及对服务器端家电的控制。(2) 从软件的质量方面来看,软件运行速度较高,功能具备有实用价值。后期软件维护代价相应比较小。(3) 软件的生产率较高。能在短时间内完成有效地工作。2.3.2 经济可行性系统虽然需要依靠硬件来实现,但是开发成本相对较低。后期维护简单方便。如果能够实现,则能够取得可观的效益。收益远远大于支出,因此此项目在经济方面是可行的。2.3.3
18、 操作可行性对于用户来说,能够使用该软件系统,能够方便人们的生活,使人们生活的环境更加的美观。墙面上不会再到处都是开关,同时也不用为了寻找遥控器而发愁。使用此系统,能够使人们的生活方式发生天翻地覆的变化。让人们享受科技带来的方便生活。在家中你可以拿起手机,选择要控制的家电,然后更改其开关状态,在户外也同样可以控制,实现家中和户外同等控制的功能,同时优化了无线网络传输过程中网络延迟带来的时间上的延迟,使人们在最短的时间内接收到服务器端返回的家居控制的信息。2.4 系统运行环境(1) Windows XP。(2) JDK,JDK是Java开发工具包(Java Development Kit)的英文
19、缩写。它是一种用于构建在Java平台上发布的应用程序、Applet和组件的开发环境。JDK是一切Java应用程序的基础,所有的Java应用程序是构建在这个之上的。它是一组API,也可以说是一些Java Class。(3) Sun WTK,Sun公司为了J2ME而提供了WTK开发工具,是最基本的J2ME程序开发工具,它是免费提供的,体积小,执行速度较快,完全遵守J2ME的各种规范,因此是J2ME程序员最基础的必备的工具。(4) Eclipse,Eclipse是一个非常著名的集成开发工具,其自身功能强大而易用。另一个非常重要的特点是其提供了非常灵活的扩展能力。它提供了丰富的接口可以扩展其本身。同样
20、Eclipse中也包含J2ME支持的插件,而且不止一种。(5) EclipseMe,EclipseMe自动为Midlet创建了三个方法,作用如下:startApp方法是当程序被启动时执行的方法;pauseApp是当程序被暂停或被打断(如有拨入的电话)时调用的方法;destroyApp是当Midlet被销毁时调用的方法。2.5 小结本章对系统进行了需求分析,首先通过对系统的功能需求的分析,了解了该模块所应完成的所有功能。接着进行了系统性能需求的分析,以便于能够保证系统长期、安全、稳定、可靠、高效的运行。接接下来要进行系统可行性研究,主要从技术、经济、操作这三个方面加以分析。紧接着我们又分析了该系
21、统所需要的运行环境。为系统的开发做好了准备。3 系统总体设计总体设计过程首先寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。3.1 系统结构设计系统采用C/S架构进行设计。在通信过程中,移动客户端与家庭系统模块是通过TCP协议建立的可靠连接。首先移动客户端和家庭系统模块之间建立Socket连接,家庭系统模块在端口上监听等待客户端连接。客户端连接之后,需要输入密码,密码正确后服务器端会开启一个线程为此客户通信,并将这个Socket连接保存到向量中。在客户端和
22、家庭系统模块之间建立输入输出流。客户端与服务器端通过Socket可以建立连接。客户想要改变家中的家居状态,只需要进入家居控制系统中,选择想要更改家居所在的房间,然后选择家居,进而改变家具的状态,通过调用send()方法向服务器端发送请求,由服务器端响应,然后服务器端将更改家居的状态,之后将结果返回给客户端。客户端通过调用recived()方法来获得家居更改之后的状态。本文主要研究客户端的设计,其中客户端主要完成的功能设计如下:(1) 用户登陆模块主要实现对用户的验证操作。为了保证用户信息的安全性,因此需要用户键入密码,如果密码输入正确,则可以进入智能家居控制系统,如果密码输入错误,则需要重新输
23、入。(2) 房间选择模块的设计。根据人们在现实生活中的生活环境的布局,考虑系统的实用性,因而将智能家居控制系统分为客厅、厨房和卧室这三个房间状态。点击客厅,跳转进入下一个页面,显示客厅中的所有家居,即包括:防盗门、窗帘、吊灯、空调和电视。点击厨房,跳转进入另外一个页面,显示厨房中所能够控制的所有家居,即包括:吊灯和窗帘。点击卧室则跳转进入另一个页面,显示卧室中所能够控制的所有家居,即包括:吊灯、窗帘和台灯。其中房间模块的功能结构图如下所示:图(1)各房间所包含家居的功能图(3) 家居状态选择模块的设计主要包括对家电控制的设计。改变了人们对家居操作过于单一的模式,增加了对家居状态和性能的人为控制
24、。当人们要对客厅中的防盗门的开关状态进行控制时,需要首先键入密码,进入智能家居控制系统,然后选择客厅点击进入之后选择防盗门来进行控制,其中对防盗门的控制包含两种状态:开启和关闭。而吊灯的选择方式和选择防盗门时类似,在开启和关闭的基础上增加了对亮度调节的控制。方便了人们对灯光亮度的选择。而空调则在开启和关闭的基础上增加了对温度和湿度的调节。方便了人们的操作。(4) 修改密码模块的设计,从始至终不可能说一直使用一个密码,因此增加了修改密码的模块,方便了用户的操作。3.2 系统工作原理系统由多个类构成。需要客户端通过网络发送对家居的控制。服务器端接收到客户端发送的信息,然后再返回给客户端。本系统是基
25、于HTTP网络的用于智能家居环境中的一种远程自动控制系统。其工作原理为:用户通过自身的手机发出命令请求,在家值守的家庭系统模块接收信息并对信息进行处理,把处理结果通过串行总线传输到单片机上,单片机根据信息调制出相应的红外频率控制相应的设备,完成用户给出的命令。并把最终的控制结果返回给客户端。系统工作原理图如下所示:客户端类类网络服务器端图(2)系统工作原理图各个程序之间通过方法和类的调用来建立关联。选择登陆智能家居控制系统,该界面实现内容主要包含在MainMID这个类中,其中需要键入密码,同时如果密码输入错误,也可以对密码再进行修改。直至密码输入正确。则会跳入到下一个页面。下一个页面则是家具的
26、控制页面。选择所要控制的家具类型,进入相应的房间之后,我们就可以选择要控制的家电类型来实现对家居的控制。然后通过网络连接将要发送的数据发送到服务器端。等待服务器端做出响应。目前出现的家居处理平台一般分三类:一类是机顶盒,也就是彩电与机顶盒组合,能够与家庭安全防范系统、家庭自动化系统,以及互联网结成一体,实现家电控制、娱乐、交流和信息分享等方面的智能化。其次,就是利用家用电脑去控制各种家用电器,以家用电脑为基础的智能家居系统。用电脑来运行智能家居管理软件,能提供更多的高级控制特性,实现组合控制和条件控制。由于所有的控制可自行定义,所以组合控制流程可以根据实际需要,自由地加以调整和改变。第三,模块
27、式无线遥控模组,普通开关可以利用这模块,不需要对原来的普通开关、插座进行深度的改造,就可迅速成为多功能智能型无线遥控开关、插座。Java技术具有较强的兼容性,接受并处理控制设施发出的信息,然后传送信号给予控制家电或者其他家居的子系统。这处理平台可形象地理解为一个信息中心,它的职能就是在家居智能系统中,引导和规划家居子系统中的各种信号。有了它,你可以通过电话,或者无线遥控器来和家居子系统进行快速的沟通。这个家居处理平台具有良好的扩展性能,以满足用户在使用过程中不断变换的需求。3.3 系统关键技术(1) JiNi技术JiNi(Java Intelligent Network Infrastruct
28、ure)是Sun公司的研究与开发项目,它能极大扩展Java技术的能力。JiNi技术可使用范围广泛的多种硬件和软件即可与网络相连接的任何实体能够自主联网。家庭网络是一个动态环境,当有新设备加入家庭网络里,应该能被王阔中其它的设备识别,同时它也能发现网络中其它设备。为了实现设备间的即插即用和互联,SUN公司引入了Jini技术。Jini的目的是将成组的设备和软件构件联合成一个单一、动态的分布式系统。Jini基于Java语言,是一种面向服务的中间技术,运行于TCP、IP协议之上,跨平台运行,独立于底层操作系统和通信技术,设备间可相互查询、理解所具备的功能,家庭网络无需人工参与,网络设置可自动完成。(2
29、) MIDPMIDP定义了一套完整的用户界面接口,全部定义在javax.microedition. lcdui包中。MIDP用户界面程序包的核心抽象是类Displayable。根据用户的交互,应用程序在完成任务的每一步不断设置和重设在Display对象上的当前Displayable对象。用户任务(指与用户界面的交互)通过Command对象来实现。当用户选择了一个Command对象之后,应用程序自动获得通知。作为反馈,应用程序经常改变当前的Displayable对象,把另一个Displayable作为当前值。设备软件管理了本地应用程序和MIDP应用程序之间的物理显示资源的共享。Displayab
30、le的子类有两种:Canvas:允许应用程序进行图形处理和输入处理的底层对象。Screen:封装了完整的用户界面组件(类Alert、List、TextBox、Form)的高层对象。List:允许从一个预定义的选择集中选择。TextBox:是一个拥有可控制编辑方法的平坦文本编辑器。Alert:显示临时信息或者简单选择问询。Form:更宽泛的容器,允许显示多个密切相关的叫做Item的用户界面元素。3.4 小结本章通过对系统的结构、工作原理等各方面的设计,对系统的流程以及系统所要完成的功能都有了较为深入的了解。为人们掌握智能家居的使用方法了解智能家居奠定了坚实的基础。4 系统详细设计与实现4.1 数
31、据存储在MIDP规范中,提供了记录管理系统(Record Management System, RMS),这个记录管理系统就是一个小型简单的数据库管理系统(Database Management System),除了能用于管理系统储存的资料之外,也可以用于存储对象的状态信息。RMS是J2me的一个重要的子系统,目的是实现应用程序本地数据的持久性存储。RMS是管理数据的系统,Record(记录)是系统中最重要的实体。在移动设备存储空间存储的并不是字段,而是字节数组。RMS的职责是存储和唯一标识记录,而表示数据的任务是由应用程序来完成的。这样做的目的是简化MIDP的实现,使得J2ME的子系统尽量的
32、小巧、灵活。Record Store(记录仓储)是一系列的有序集合,记录是不能单独存在的,必须属于记录仓储。记录仓储保证记录的读写操作都是原子的,数据不会被破坏。在API中记录仓储是由javax.microedition.rms.RecordStore实现的。每条记录代表了一条数据信息。一条记录由一个整型的RecordID与一个代表数据的byte数组两个子元素组成。RecordID是每条记录的唯一标识符,利用这个标识符可以从记录仓储中找到对应的一条记录。其中RMS所使用的空间图如图所示:图(3)RMS空间图系统中对密码的存储是通过RMS进行实现的。首先要在系统中使用RMS,首先需要定义RMS的
33、名称。在系统中定义的RMS的名称是RMS_NAME,然后对它进行实例化,使用rs=openRSAnyway(RMS_NAME)来进行。要写入密码,首先就需要打开RMS,使用rs= RecordStore.openRecordStore(rsname, ture)函数,然后returen rs;即可实现。密码写入之后则需要关闭仓储,使用rs= RecordStore.deleteRecordStore(rsname)来实现。系统中输入密码的时候要验证密码输入是否正确,这个时候也需要用到仓储。首先需要用函数RecordStore.openRecordStore(RMS_NAME, ture)来打开
34、仓储和仓储中存储的数据进行比对,然后调用相应的函数来验证。4.2 系统功能的设计与实现该智能家居控制系统实现了以下几个功能:登陆、客厅模块、厨房模块、卧室模块和改密等一系列的功能。下面将对以下几种功能进行详细的论述。客户端完成的主要功能包括对家居的控制。通过客户端发送控制信息通过网络传送到服务器端,再由服务器端返回给客户端。进而实现对家居的控制。其中,系统功能结构图如下所示:图(4)系统功能结构图4.2.1 登录功能的详细设计登录功能是为了保证用户信息的安全,因此在智能家居控制系统的首页需要键入密码,键入密码之后,则需要点击菜单按钮,然后点击登入按钮,如果密码输入正确之后才能进入智能家居控制系
35、统。如果密码输入错误,则会返回一个页面,提示密码输入错误,请重新输入。系统名称的实现:系统标题“智能家居控制系统”首先需要使用title来定义系统名称。实现方法如下:public static String TITLE=“智能家居控制系统”;其中要设计它的位置,则需要使用锚点来实现,锚点的作用就是设置占用屏幕矩形方块的具体位置。实现方法如下:g.drawString(Main MID. TITLE,getWidth() /6+10,10,Graphics.TOP|Graphics.LEFT);字体的实现方法每个Graphics都有一个Font对象与其关联,来进行文字的渲染操作,调用其类方法se
36、tFont(null),即可使字体恢复到默认状态。使用static Font getFont (int face, int Style, int size)来获得一个对象以表示字体所具有制定的外观。使用的均为最大字体。Face参数,用来定义字体的外观。其中使用到的Font类定义的外观常数如下:Static int FACE_PROPORTIONAL:“比例”字体外观,数值64被制定给此数。Style参数,用来定义字体的样式。在这个类中使用到Font类定义的样式参数如下:Static int STYLE_PLAIN:格式常数“常规”,数值0被制定给此常数。Static int STYLE_BOL
37、D:格式常数“加粗”,数值1被制定给此常数。首页显示图片的实现方法:首先需要构建画布,使用back = Image. createImage(“/First.png”)来实现对画布图片的载入。用低级用户界面Canvas实现智能家居控制系统中按钮的设置。其中对按钮的定义操作包括:private Command Cmd_Back; private Command Cmd_Send; 按钮实现的方法包括:Cmd_Back = new Command(返回, Command.BACK, 1);Cmd_Send = new Command(发送, Command.OK, 1);密码键入中文本框的实现则通
38、过TextField类来实现。TextField类用于带约束的文本类型输入。密码的设置要求输入密码的最大值为8个字符。因此对密码的限制要求是32位。首先要对TextField进行后台的实例化,然后设置这个文本框所在的位置,以及位数。实现方法是textfield=new TextField(“” , “”,8,TextField.ANY|TextField.PASSWORD);输入密码之后要获取TextField中的文本,使用方法是textfield.setString(str);来实现。密码框的画法包括对颜色、字数的限制。其中对颜色的控制方法是调用setColor()方法来设置字体的颜色。使用
39、g.drawRect()方法来设置矩形的边框。Fillrect()方法则表示使用指定的画刷来填充矩形。系统运行界面如下所示:图(5)系统运行界面PassWordCanvas类主要包含TextField子类,首先要对TextField在后台进行实例化,TextField是用于带约束的文本类型输入。textfield = new TextField(, , 8, TextField.ANY | TextField.PASSWORD); / 后台TextField实例化。其中还包括对登录界面中字体颜色、背景等方面的设计。键入密码“1234”之后点击菜单中的登陆按钮我们就可以进入到智能家居控制系统的页
40、面。如果输入密码错误,则跳转到密码输入错误页面,重新输入密码,直到密码输入正确,则可以进入到控制页面。密码错误界面的实现方法如下:使用Screen类的子类Alert来实现临时信息的显示。密码输入错误,则跳转进入密码错误界面,实现方法是initAlert()方法。其中显示文字的实现方法是alert= new Alert(“密码错误”,“请输入正确的密码!”,null,AlertType.ALARM);控制按钮的实现方法是:alert.addCommand(new Command(“退出”,Command.CANCEL,2); alert.addCommand(new Command(“返回”,C
41、ommand.BACK,1);文字显示的位置也是通过锚点来实现。其中密码输入错误之后页面提示界面如下:图(6)密码键入错误要实现对该页面的设计,首先需要填充背景的颜色,画出背景的边框、标题等。要通过确定锚点来实现对功能的定位。而键入的密码则存储在仓储中。通过调用getNextRecordID()方法来验证键入的密码是否正确。如果密码输入错误,则会调用initAlert()方法将“密码错误,请输入正确的密码”返回给用户。如果密码输入错误,我们可以选择回删按钮,调用deleteOneChar()方法来删除字符。最终输入正确的密码后,调用IntoSystem()方法进入系统。4.2.2 家居状态的详
42、细设计密码键入成功之后,就会自动跳转到家居的控制页面。选择客厅点击开始按钮,就会进入到家具的选择页面。其中包括:防盗门、窗帘、吊灯、空调和电视的控制。防盗门、窗帘和电视的状态包括开启和关闭两种状态。另外吊灯在开启和关闭的基础上另外增加了对亮度的控制。空调则是在开启和关闭的基础上增加了对湿度和温度的调节和控制。输入密码正确之后,则可以进入到系统控制界面。其中包括:客厅、厨房、卧室和修改密码功能。其中,这几个模块在页面中的显示方法是通过数组的形式来定义的。定义方法是private String SEECT_ITEM = “客厅”,“厨房”,“卧室”,“修改密码”,然后通过if语句来实现对文本框现在
43、所在位置的确定。Fnt= Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN|Font.STYLE_BOLD, Font.SIZE_LARGE);这里实现了对字体的定义,然后调用setFont()函数来实现。欢迎回到温暖之家这几个字的实现方法如下:g.setColor(0x0011CC)最终显示的字体为蓝色。确定位置所使用的函数是g.drawString(“欢迎回到温暖之家”,getWidth()/6+10,10,Graphics.TOP|Graphics.LEFT),确定屏幕中这几个模块所在的位置,使用Graphics类提供的绘图来实现。
44、实现方法为g.setFont(fnt);g.setColor(0xAA2200);g.drawString(SELECT_ITEMi, pos0 - 1, pos1 * (i + 3),Graphics.TOP | Graphics.LEFT);其中,系统运行界面图如下所示:图(7)家居状态选择界面客厅、厨房、卧室的布局都是类似的,现在我们选择以客厅为例,客厅中的家居包括:防盗门、窗帘、吊灯、空调和电视。这几个家居的实现方法和上面我们实现的方法类似,但是在文本上增加了矩形方框的设计。选择客厅调用FamilyList函数in=new FamilyList(display,this, “客厅”,s
45、tringArray, Image.createImage(“keting.png”);使用void drawRect()函数来实现。其运行界面图如下所示:图(8)客厅运行页面(1) 对灯光的控制包括:无线射频灯光控制系统由智能面板开关和调光器组成,调光器用以发送和接收命令信号,命令通过无线电传播,而不是通过家庭的电源线路传输。每个面板开关都备有一个不同的遥控识别代码。这些代码利用19位识别技术,使接收器能准确辨别每个指令。即使邻居同时使用,也绝对不会因其遥控器干扰而发生传输错误。调光开关同样内置RF无线射频发射器,能独立于遥控器或移动开关之外,控制落地灯或桌灯的开关或随意调节灯光亮度。减少干
46、扰,传送或接收指令更加准确无误。其中,开启和关闭,除了在位置上的设置之外,还增加了矩形框的设计。当矩形框在开启这两个字上面时,开启二字加粗,关闭使用常规。首先定义两个函数fnt和fnt2来表示常规和加粗两种状态下所调用的方法。分别为fnt=Font.getFont(Font.FACE_PROPORITIONAL,Font.STYTLE_ BLOD|Font.STYLE_PLAIN,Font.SIZE_LARGE);fnt2=Font.getFont(Font.FACE_PROPORITIONAL,Font.STYTLE_ PLAIN,Font.SIZE_LARGE),选中的矩形框的实现方法为g
47、.drawRect(BaseX-5,BaseY,60,20)滚动条的实现则使用文本方式,通过进度条来选择所要填充矩形的多少。使用g.drawRect(60,91,101,20)来绘制矩形。使用g.fillRect(61,90+2,ROLL,19)来填充矩形。其中滚动条参数的设置使用的函数是g.drawString(ROLL + , 105, baseY, Graphics.TOP | Graphics.LEFT)开关的开关设置为0和1,如果为滚动条方式则设置为0100然后实现开启和关闭,灯光控制图如下所示:图(9)吊灯状态选择(2) 对信息家电的控制包括:信息家电控制是一个整合了红外控制和无线
48、控制的多功能遥控系统。它可以控制多达五种红外设备(如:电视机、空调、DVD、功放、窗帘等)和开关、插座等无线设备。信息家电控制系统主要由信息家电控制器和各种智能遥控开关组成。信息家电控制器可以把普通红外电器的遥控器的编码通过学习的方式转存下来从而替代原有的家电遥控器。同时它本身还是无线遥控器,可以发射433.92MHz频率的控制信号,所以它可以控制这个频段的智能开关、智能插座以及无线红外转发器等。电视控制页面的实现方法如下:首先需要在新的屏幕上确定锚点,确定好开启和关闭按钮在屏幕上的位置。然后,调用g.drawString()方法在屏幕上显示开启和关闭字样。然后在开启和关闭处绘制文本框实现方法
49、是g.drawString(“开启”,BaseX,BaseY,Graphics.TOP|Graphics.LEFT)确定开启所在的位置。g.drawString(“开启”,BaseX+75,BaseY,Graphics.TOP| Graphics.LEFT)在开启的后面距离开启距离为75的地方绘制关闭的字符串。然后使用g.drawRect(Basex+70,BaseY,60,20);来画选中框的位置,当我们想要开启电视的时候,点击开启按钮,系统调用drawRecr函数。绘制出这个文本框。同理,选择关闭按钮的时候也是如此。文本框是长为60宽为20的矩形。点击以后,系统通过调用send()方法,将
50、控制信息发送到控制端。等待控制端的响应。其中,我们以电视为例,其中对电视的控制图如下所示:图(10)对空调的控制(3) 对空调的控制包括:空调的红外编码和其他家电的红外编码有很大区别,空调遥控器上每一个按键所对应的红外编码不是固定的。比如按下温度增加或减少的按键,它并不是简单地发送一个固定的温度增加或减少的红外编码,而是向空调发送一个当前工作状态的编码(这个编码包含空调当前是多少度)。因此实现对空调的控制结构就比较复杂。人们要实现对室内温度和湿度的控制就需要先对发送出的数据进行编码,将编码之后的结果发送到服务器端,再由服务器端来响应对空调的控制。空调页面的实现方法和上面台灯的实现方法类似,增加
51、了一个滚动条,其中分别是对温度和湿度的控制。实现方法是使用数组分别定义两个文本框然后调用。具体的实现方法虽然类似,但是却是分别实现的。其中空调页面的实现方法在电视的基础上增加了人性化的设计。即温度控制这几个汉字的显示方法是定义在数组中,其中的一个既是对温度和湿度调节的控制,调用setRolligString()来显示。然后调用addChildList(cncs)来控制页面。对空调的控制图如下所示:图(11)运行界面如图所示厨房中的家具包括窗帘和吊灯。调用ITEM_SELECTED()方法选择要进入的界面。然后使用stringArray方法来定义家具的类型。调用厨房中药使用的图片chufang.
52、png,其中对吊灯的亮度调节,则选择setRollingString()方法来进行显示。开关的样式等也是在画布中画出的。设置子菜单,调用setLastPage()方法将上层页面设置为当前页面。设置文本和背景图片,要设置背景图片则需要对Canvas进行重绘。其它的都和客厅中的实现方法类似。4.2.3 修改密码功能的详细设计密码键入成功,进入智能家居页面之后,就可以修改用户的密码。选择通过上下按键的选择,选中改密这个文本框,然后点击开始按钮,则可以修改系统的密码,键入新的密码,然后就可以完成对密码的修改。想要修改密码成功,首先要打开仓储RMS将想要修改的密码存储,打开仓储的方法是通过调用openR
53、ecordStore()方法来将想要修改的密码存储进去。存储成功则需要关闭仓储,即调用deleteRecordStore()方法关闭RMS。当我们下次要进入系统的时候则需要输入修改之后的密码了。修改密码功能的实现和进入系统时键入密码的实现方法有类似的地方。其中密码修改成功的显示方法是g.drawString(“密码修改成功”,20,80,Graphics.TOP|Graphics.LEFT),键入新密码之后,新密码要存入仓储中,因此需要打开仓储,密码修改成功之后,需要关闭仓储。4.3 远程电器控制模块的模拟实现用无线通信方式进行家电的控制灵活性较强 、覆盖范围较广,免去了综合布线的费用和精力,
54、缺点是家庭内部要有家庭网关和无线路由路,接收端还要有响应的接收装置,成本较高。因此,基于实用性和大众化方面考虑,本文所研究的家电控制器的控制采用I/O控制。家电的本地集中控制硬件设计是利用嵌入式系统的I/O口对家用电器的用电进行控制。系统通过S3C2410的I/O口输出高低电平来进行控制,同时用发光二极管指示家用电器工作状况。发光二极管,表示家用电器通电,发光二极管灭,表示家用电器断电。由于被控模块家用电器大多使用220V交流电,属于强电电路,所以使用继电器控制家电。在芯片与继电器中间加驱动电路。驱动电路可以利用光电耦合的通、断去控制继电器的开与关。也可以利用三极管的饱和与截止去控制继电器的开
55、与关,这里采用三极管方式。当I/O口引脚输出低电平时,三极管饱和导通。在远程监控的过程中需要网络操作,因此我需要留有两个接口,分别是send和recived。Send()方法用来实现对服务器端的控制,recived()方法用来接收由服务器端返回的数据。使用Cmd_Send方法来发送要修改的控制信息。并使用setCommandListener(this)来设置对功能键侦听。4.4 小结本章通过对整个智能家居控制系统的客户端进行了详细的论述。其中介绍了每个功能模块所包含的内容,以及实现的方法。通过详细设计、编码去实现预期的各项功能。除了应该保证软件的可靠性之外,使将来编写出的程序可读性好、容易理解
56、、容易测试、容易修改和维护,是详细设计编码阶段最重要的目标。程序在设计的过程中,程序内部的良好文档资料,有规律的数据说明格式,简单清晰地语句构造和输入输出格式等,都对提高程序的可读性有很大的作用,也在相当大的程度上改进了程序的可维护性。5 系统测试5.1 单元测试单元测试集中检测软件设计的最小单元模块。通常,单元测试和编码属于软件过程的同一个阶段。在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。可以应用人工测试和计算机测试这两种不同类型的测试方法,完成单元测试工作。这两种测试方法各有所长,互相补充。通常,单元测试期
57、间着重从下述5个方面对模块进行测试。(1) 模块接口首先应该对通过模块接口的数据流进行测试,如果测试数据不能正确地进出,所有其他测试都是不切实际的。在对模块接口进行测试时主要检查下述几个方面:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致。登陆模块中,输入密码,密码正确,则可以登陆此系统,如果密码错误,则返回“请输入正确的密码!”的提示字样。经过验证,可以正常运行。在家具选择模块,对客厅、厨房、卧室和修改密码这四个模块均能正常选择,没有异常情况。(2) 局部数据结构对于模块来说,局部数据结构是常见的错误来源。检查局部数据说明、初始化、默认值等方面是否出现错误。对于按钮的开启和关闭,我们采用默认值0和1来进行设置。对滚动条的设置则采用0100的动态控制。通过对该系统的运行测试,该系统可以正常运行。选择的过程中也不会出现错误。(3) 重要的执行通路由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《骨肿瘤x线表现》课件
- 《城市工程改造伦理》课件
- 合伙开台球厅合同协议书
- 《显像管电路-习题》课件
- 2025年淮安货运资格证考题
- 2025年宁德货运从业资格证模拟考试题
- 2025年成都货运从业资格证考题500道题
- 2025年南京货运从业资格试题答案解析
- 第七单元 语文园地七-人教部编版(含答案)
- 医院建设变更协议
- 2024届高考英语词汇3500左右
- 剪刀式登高车安全技术交底
- 2024-2030年国内环保垃圾桶行业市场发展分析及发展前景与投资机会研究报告
- 2023-2024学年云南省昆明市呈贡区九年级(上)期末物理试卷
- 儿科吸痰小讲课
- 全国职业院校技能大赛高职组(社区服务实务赛项)考试题及答案
- 资金支付管理办法实施细则
- 《数学广角-集合》说课稿
- 国家突发公共卫生事件应急预案(2006年02月26日)
- 2024年+H1综艺广告大盘报告-66正式版
- 参观河南省博物院
评论
0/150
提交评论