《2023年-智能家居灯光控制系统的设计与实现毕业设计;.docx》由会员分享,可在线阅读,更多相关《2023年-智能家居灯光控制系统的设计与实现毕业设计;.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、湘潭大学毕业设计说明书目 院业号名师 教 导 题 学专学姓指:智能家居灯光控制系统的设计与实现:信息工程学院:电子信息工程:2006550806:李焕:姚志强完成日期:2010年5月湘潭大学毕业设计任务书设计题目:智能家居灯光控制系统的设计与实现学号: 2006550806 姓名: 李焕 专业:电子信息工程指导教师:系主任:一、主要内容及基本要求收,利用DSP的仿真环境CCS实现服务器端的socket编程,并利用二、重点研究的问题三、进度安排四、应收集的资料及主要参考文献科技大学出版社,2003.用,2006,26(12):299302.灯光控制系统设计 科学地设计家庭照明系统,家庭一般分为客
2、厅,卧室, 餐厅,厨房,书房,卫生间等。由于它们在家庭当中不同的作用,可以有区别的 来设计各个部分的灯光照明。(1)客厅是会客的区域,也是一个家庭集中活动的场所。一般配有吊灯、射灯、 壁灯、筒灯等,可以用不同的灯光相互搭配产生不同的照明效果。如休闲、娱乐、 电视、会客等场景模式供随时选用。例如:设定会客场景为吊灯亮80%、壁灯亮 60%、筒灯亮80%;看电视场景为吊灯亮20%、壁灯亮40%、筒灯亮10%o因 为采用了调光控制,灯光的照度可以有一个渐变的过程,通过遥控器或通过面板 的现场控制,可以随心所欲地变换场景,给主人营造一种温馨、浪谩、幽雅的灯 光环境。(2)餐厅采用场景控制设定各种照明模
3、式,可设为中餐、西餐等多种灯光场景, 给家人营造一种温馨、浪漫、高雅的就餐灯光环境。照明要综合考虑,一般只要 中等的亮度就够了,但桌面上的亮度应适当提高。(3)卧室是主人体息的地方,需要控制中央的吊灯,床头的射灯、壁灯以及四周 的筒灯,营造一个宁静、温和、安样的休息场所。同时也要满足主人整理、阅读、 看电视、休息等不同亮度要求。要根据不同要求,调节出适合身心、能减少疲劳 的灯光亮度。(4)厨房要有足够的亮度,而且宜设置局部照明。(5)卫生间要求一般,而如果有特殊要求,如化妆等就要有足够的亮度了,并且 应配置局部照明。(6)书房则以功能性为主要考虑,为了减轻长时间阅读所造成的眼睛疲劳,应考 虑色
4、温较接近早晨太阳光和不闪的照明。智能照明系统利用遥控器或可视控制界面,可以随心所欲地调节每组灯的亮度和 开关。实用性和舒适度是家庭灯光照明的两大设计原则。另外个人风格也相当 重要,只有这样才能设计出既实用又舒适的家庭生活环境。总而言之,照明系统 是生活中最为常用,最为基础的系统。它的智能化无疑会给人们的生活带来深刻 的影响。它不仅大大方便了人们的生活,也许它还会从一定程度上改变人们的生 活方式,从而提高生活质量。根据ICETEK-DM642-AVM评估板提供的资源,模拟实际用户家庭的使用情况,设计了如表2-1、表2-2所示的一组灯光控 制系统。用ICETEK-DM642-AVM评估板上的四个L
5、ED灯模拟灯具的各种状态。 设计了客厅和卧室两个房间。客厅和卧室中分别有三盏灯:吊灯、筒灯、台灯。92.2客户端GUI程序设计2.2.1 图形用户界面概述图形用户界面GUI (Graphics User Interface)是由各种图形对象(如图形窗口、 图轴、菜单、按钮、文本框等)构建的用户界面,是人机交流信息的工具和方法, 在该界面内,用户可以根据界面提示完成整个工程,而不必去了解工程内部是如 何工作的。MATLAB可视化界面的设计一般有两种方法:一是直接通过编写M脚1. GUIDE界面介绍界面由菜单和控件构成。界面菜单包括图形窗的标准菜单、自定义的用户菜单、 现场菜单。PC平台上,缺省情
6、况下产生的MATLAB图形窗总有一个顶层菜单条 (Top-level menu)o它包含5个标准菜单项:文件、编辑、工具、窗口和帮助。可以使用uimenu指令创建自定义用户菜单。现场菜单总是和某个(些)图形对 象相联系,并通过鼠标右键激活,方便用户的交互性操作。除菜单外,控件是另一种实现用户与计算机交互的主要途径。表2-3列出了十种 控件特征及功能。1011在GUI面板中点击对象浏览器按钮可打开对象浏览器,在该浏览器中可以方便 地显示出所有的图形对象,单击该对象则可以打开相应的属性编辑器。(4)菜单编辑器(Menu Editor)在GUI面板中点击菜单编辑按钮可打开才当编辑器,通过菜单编辑器可
7、以为图 形界面添加、设置和修改菜单项,以及为右键添加快捷菜单。 网格标尺设置编辑器(Grid and Rulers)通过网格标尺设置编辑器,可以再GUI面板中添加网格以及标尺,来方便用户 的界面设计。选择GUIDE主菜单中Tools/Grid and Rulers即可打开网格标尺设 置编辑器。(6) GUI应用属性设置编辑器(GUIDE Application Options)通过该编辑器可以设定GUI界面缩放形式、GUI对句柄操作的响应方式,以及 定义GUI的保存方式。选择GUIDE主菜单中的Tools/GUI Options即可打开GUI 应用属性设置编辑器。客户端GUIDE界面设计1 .
8、灯光控制系统的GUIDE界面设计根据节所述的智能灯光控制系统的运行模式,选择Push Button Pop-up Menu、Static Text三种控件来构建灯光控制系统的客户端图形界面。其中Push Button用来构建连接、退出按钮。这两个按钮用来控制用户界面与DSP的通信。 Pop-up Menu用来选择控制不同的灯具及其亮度或选择不同的运行模式。StaticText用来显示用户界面上的静态信息,用做其它控件的标签,在该用户界面中用 于显示控制项目名称。在 MATLAB中Command Window窗口下输入guide命令,在弹出的对话框 GUIDE Quick Start中的Crea
9、t New GUI选项下选择Blank GUI,新建一个空白模 板。空白模板可以让用户自由设置个性化的界面。选择File-Preferences,选择复 选框Show names in component palette选项,单击OK可显示出控件的名称。空 白页如图2-1所示。图2-2为设计好的灯光控制系统的图形界面。12图2-1 GUI空白模板图2-2灯光控制系统客户端界面在空白模板中添加好所需的控件组件。选择控件,单击一Property Inspector II按 钮,打开一Property Inspector II对话框,依次更改名称、数据类型等控件属性。 其中对于按钮来说String属
10、性是显示在按钮上的标题,对于下拉菜单来说String 属性是弹出菜单的字串。Tag属性的值,是每个控件唯一的标识符,GUIDE用它 来构造GUI中不同控件的唯一响应函数名。因为控件在刚建立时,GUIDE给它 们的都是默认名,为了突出每个控件的个性,表现它的作用,要重新设置Tag 的属性。图2-3为设置下拉菜单属性的界面。图2-3设置下拉菜单属性13当设置好界面后,点击界面上的保存按钮,MATLAB自动生成两个文件: lightcontroLm文件和lightcontroLfig文件。为了完成单击控件时响应相应的事件 或行为,需要对不同控件编写相应的回调函数。在用户界面编辑窗口选中控件, 点击鼠
11、标右键,选择View Callbacks-Callback,即可进入控件相应的回调函数进 行代码的编写或添加,使之实现相应的功能。保存后生成的FIG文件包含GUI 图形窗口以及所有后裔的描述(包括所有对象的属性值),而生成的M文件包括 GUI设计、控制函数以及定义为子函数的用户控件函数,主要用于控制GUI展 开的各种特性。界面上的连接按钮是要创建一个UDP对象,其回调函数会在节MATLAB 环境下UDP数据报的发送和接收中介绍。退出按钮的作用是停止远程控制,点 击它时会出现一个对话框,提醒用户是否真的退出系统。其流程图如图2-4所示。 下拉菜单用来选择控制不同的灯具及其亮度或选择不同的运行模式
12、。在刚打开用 户界面时,虽然下拉菜单中显示有各种灯具、运行模式、亮度选择,但是这不会 调用回调函数,只有当下拉菜单被点击时才会执行相应的命令。流程图如图2-5 所示。图2-4退出按钮回调函数流程图图2-5下拉菜单回调函数流程图回调函数别写好后,在设计面板中选择一run II命令,MATLAB会自动调用程序代码,14调试成功后,通过选择按钮,即可实现对应函数的调用和执行。二、智能家居系统客户端界面的设计智能家居系统包括八个子系统,即灯光控制系统、远程监控系统、可视对讲系统、 安防报警系统、家电控制系统、窗帘控制系统、背景音乐系统和小区服务系统。 智能家居系统主界面如图2-3所示。lightcon
13、trol;%调用 lightcontrol.m 函数。set (smartsystem/visible595off5);%不显示智能家居系统界面。set (lightcontrol/visible9/on9);%显示灯光控制系统界面。若要求退出子系统时返回智能家居系统主界面,则可在各子系统的退出按钮的回 调函数中的case=是后加入以下代码:_set (smartsystem/visible,on,); %显示智能家居系统主界面。set (lightcontrol/visiblcoff5);%不显示灯光控制系统界面。图2-6智能家居系统主界面2.3 MATLAB GUI程序转换成可执行文件对于
14、一个通用的,比较成熟的解决方案,当然期望它能应用到更多的场合,而.exe (可执行)文件可运行于所有的通用Windows操作系统。因此,将M文件转换 成.exe文件会使用户使用起来更加方便,加强了应用程序的通用性。151 .设置编译器:在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是 在Matlab命令窗口输入:Mbuild -setupo按提示选择matlab自带编译器LCC。 进行操作的信息如下:Would you like mbuild to locate installed compilers y/n? ySelect a compiler:
15、1 Lcc-win32 C 2.4.1 in D:R2007asyslcc0 NoneCompiler: 1Please verify your choices:Location: D:R2007asyslcc Are these correct y/n? yTrying to update options file: C:Documents and SettingsxtuApplication DataMathWorksMATLABR2007acompopts.batFromtemplate:D: R2007abinwin3 2mbuildoptslcccompp .batDone2 .将脚
16、本编译为可执行文件:已有 lightcontrol.m 文件和 lightcintrol.fig 文件,在 matlab 的 command 窗口 中输入: mcc -B sgl lightcontrol.mo (这是因为已有 lightcontrol.m 文件和 lightcintrol.fig 文 件)。编译成功会生成 ccExcluded-iles.log、lightcontrol.exe、lightcontrol.pij lightcontrol_main.c lightcontrol_mcc_component_data.c readme.txt lightcontrol.ctf 七
17、个文件。若使用 MATLAB R2008a 版本,lightcontrol.exe 和 lightcontrol.ctf 合并 成了一个文件,即lightcontrol.exe文件。在本设计中因为要与TMS320DM642 ICETECK-AVM板相连,故应该使用MATLAB R2007a版本。3 .在未安装matlab的机器上运行可执行程序。有了 lightcontrol.exe和lightcontrol.ctf两个文件就可以在未安装matlab的机器上 运 行客户 端图形 界面。将 R2007atoolboxcompilerdeploywin32 中 MCRinstaller.exe安装到
18、该计算机上,运行生成可执行程序脱离matlab运行所需 的函数库。将2中生成的lightcontrol.exe和lightcontrol.ctf拷贝到该计算机同一 路径。运行lightcontrol.exe将生成lightcontrol_mcr文件夹,包含程序运行所需的 库。16第3章远程通信的设计与调试3.1 网络通信模块设计网络任务除了在网络任务主线程中完成对协议栈的配置和初始化外,还使用 NDK提供的API函数TaskCreat()创建了一个新的网络任务线程,即一服务器任 务II。服务器任务使用典型的客户机/服务器(Client/Server)结构实现。图3-1 C/S技术模型对于传输层
19、协议的选择,考虑到智能家居系统信息的数据量大,如果采用可靠地、 面向连接的TCP协议势必要消耗过多的网络资源,且不能保证实时性,而采用 不可靠的、无连接的UDP协议来传输信号则更符合智能家居系统的实时性要求。 因此本系统选择UDP协议,相应的套接字也选用数据包套接字。系统网络通信 部分的基本流程如图3-2所示。17图3-2系统的网络通信基本流程套接字(socket)是 TCP/IP 网络的应用程序接口 (Application Programming Interface ,API),它定义了许多函数或例程,可以用来开发TCP/IP网络上的应用 程序。套接字是一种通信机制,凭借这种机制,客户/服
20、务器系统的开发工具可 以在本地单机上进行,也可以跨网络进行。套接字明确地将客户和服务器区分开 来,套接字机制可以实现多个客户连接到一个服务器。根据连接启动的方式及本 地socket要连接的目标,socket之间的连接过程可以分为如下三个步骤: (1)服务器监听:服务器端套接字处于等待连接状态,实时监控网络状态。(2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器 端socket。为此,客户端的socket必须描述它要连接的服务器端套接字,指出服 务器端socket的地址和端口号。(3)连接确认:是当服务器端套接字监听到或者接收到客户端套接字的连接请求 时,它就响应客户端套接
21、字的请求,建立一个新的线程,把服务器socket的描述 发给客户端,一旦客户端确认此描述,连接就建立好了。对于客户机来说,连接 请求被接收,客户端的socket便被成功创建了,socket便可以开始进行。而服务 器端socket继续处于监听状态,继续接收其它客户端socket的连接请求。183.2服务器端的socket程序设计3.2.1 TI通信开发套件NDK的结构TI 公司结合 C6000 芯片推出了 TCP/IP NDK(Network Developer s Kit)开发套件, 其主要组件包括:(1)支持TCP/IP协议栈程序库。(2)示范程序。(3)支持文档。 NDK采用紧凑的设计方法
22、,实现了用较少的资源耗费来支持TCP/IP。NDK仅用 200-250K程序空间和95K数据空间即可支持常规的TCP/IP服务。NDK的软件 开发环境是TI的开发工具CCS(code composer studio)o它包含有实时操作系统 DSP/BIOS和主机与目标板之间的实时数据交换软件RTDXo图3-3 NDK中TCP/IP协议栈的结构图3-3所示为NDK中TCP/IP协议栈的结构。实用NDK相对于操作系统和底层 硬件是透明的,这主要是由OS.LIB提供与操作系统DSP/BIOS的接口,HAL.LIB 提供对硬件的支持来完成的。在NDK的TCP/IP协议栈中STACK.LIB包括了顶 层
23、套接字到底层链路层的所有功能,NETCTRL.LIB在整个协议栈中起关键作用, 协调操作系统和底层硬件驱动,管理所有网络事件。NETTOOL.LIB提供配置网 络的各种服务。3.2.2 NDK的配置和使用在CCS下使用NDK需要在以下几点做特别处理:(1) NDK在DSP/BIOS下的使用DSP/BIOS是TI开发的实时微型操作系统,支持实时分析、线程管理、调度软件 中断、周期函数以及外部硬件中断与各种外设的管理。使用DSP/BIOS所有与硬 件有关的操作都必须借助操作系统本身提供的函数完成,应避免直接控制硬件资 源。基于DSP/BIOS的程序与传统开发过程是不同的,用户编写的程序由 DSP/
24、BIOS调度,不再19按编写的次序顺序执行。同样开发基于DSP/BIOS的网络应用程序也必须要遵循 一些原则:1 .在CDB文件中为HAL创建一个周期为100ms的PRD函数,用来驱动 UTimerTickO系统函数;2 . OS需要钩子函数为TCP/IP堆栈加载和保存私人变量指针,所以必须在CDB 文件中创建两个钩子函数NDK_hookInit()和NDK_hookCreate();3 .必须把工程项目的Include Searching Path指向NDK安装目录下的inc文件夹; 4为了保证使用NDK的工程项B能正确编译,在CCS的Link Order要按一定的 顺序添加库文件,推荐的顺
25、序是:NETCTRL.LIB HAL_xxxLIB STACK.LIB OS.LIB;5 .在使用NDK的过程中,OS和HAL会创建三个内存段,分别是PACKETMEM、 MMBUFFER、OBJMEM,必须在CMD文件中为这三个段在内存中分配存储空 间;6 .至少要使用32K的cache,否则应用程序会产生不可预料的错误。(2)包含的文件和库文件编译时需要包含库文件和文件路径,一般默认为c:tic6000ndkinco323 TCP/IP堆栈的初始化和配置在任何socket应用程序建立之前,TCP/IP堆栈必须被正确的配置,然后再初始 化。通常可以动态创建或者在DSP/BIOS中静态创建一个
26、堆栈初始化任务,不管 应用程序当中建立了多少socket,在整个系统中只能有一个堆栈初始化任务,并 且该任务会成为整个网络任务的唯一调度者,因此该任务在应用程序结束前不会 返回。堆栈初始化过程:(1)使用NC_SystemOpen(),该函数为所有网络应用程序建立 堆栈和内存环境; 使用CfgNew。,该函数会创建一个配置句柄,利用该句柄 使用CfgAddEntry。函数可以添加DHCP、DNS、HTTP等服务和配置socket缓冲 区大小与ARP超时参数;(3)使用NC_NetStart(),该函数根据前面的配置参数 启动网络,并创建三个回调函数,分别是网络启动时只运行一次的函数、网络被 关
27、闭时只运行一次的函数、当IP地址改变时运行的函数。通常会在启动函数里 面创建自己的应用程序线程,在关闭函数里面删除创建的应用程序线程。网络应用程序的开发图3-4为服务器端所执行命令的流程图。其相应的程序采用手动配置IP, UDP 协议传输数据,如下:网络初始化NC_SystemOpen();20 hCfg = CfgNew();CfgAddEntry(hCfg.CFGTAG_SYSINFO,CFGITEM_DHCP_HOSTNAME,09s-trlen( HostName)9(UINT8*)HostName,0)/配置IPbzero( &NA, sizeof(NA);NA.IPAddr
28、 = inet_addr(LocalIPAddr);NA.IPMask = inet_addr(LocalIPMask);strcpy( NA.Domain, DomainName );NA.NetType = 0;/配置默认网关bzero( &RT, sizeof(RT);RT.IPDestAddr = 0;RT.IPDestMask = 0;RT.IPGateAddr = inet_addr(GatewayIP);/配置socket缓冲区大小rc = 8704;CfgAddEntry(hCfg,CFGTAG_IP9CFGITEM_IP_SOCKBUFMAX,CFG_ADDMODE
29、.UNIQUE,sizeof(uint),(UINT8 *)&rc,0);启动网络服务dorc = NC_NetStart(hCfg,NetworkOpen,NetworkClose,NetworkIPAddr);while(rc > 0);/配置应用层协议,本程序采用UDPSOCKET s;struct sockaddr_in sin 1;s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);if(bind(s,(PSA) &sinl, sizeof(sinl) < 0)ConPrintf("failed bind (
30、%d)n",fdError();goto leave;向PC机传送码流sendto(s,pBuf,test,0,&sin 1 ,sizeof(sin 1)21/防止发送过快,任务暂停8msTaskSleep(8);图3-4为服务器端流程图3.3客户端的UDP程序设计在 MATLAB的命令窗口中输入tmtool命令可进入 MATLAB工具箱,点击 Hardware项,可看到其支持的与各种仪器设备进行数据通讯的方式。其中包括 UDP网络通信协议。双击Hardware下的UDP选项可进入UDP的操作界面。在 Add new UDP instrument中的Address项下输入要连
31、接的PC的IP地址,在Port 中输入进行通信的端口号。单击Add就会创建一个UDP对象。选中上一步键入 的地址,单击Identify则此UDP对象就加载到Hardware下的UDP工具中。双 击UDP工具下的该对象地址,则可进入对此对象进行操作的界面。单击Connect 按钮,可实现与所创建的对象的连接。在Communicate项下的Data to write中输 入要传输的字符,点击Write,下面的信息栏中就会出现上一步所执行的动作。可 点击Disconnect中断和该对象的连接。所有这些操作的相应代码都会体现在 Session Log中。图3-5为使用UDP发送数据的连接图以及相应的程
32、序。22图3-5为使用UDP发送数据的连接图以及相应的程序由图3-5可分析出发送和接收UDP数据包的主要步骤,如下:1 .创建UDP对象并初始化objl = instrfind(6 Type udp, RemoteHostS 172.16.121.44, c RemotePort 8000, Tag, “);objl =udpC172.16.121.44 8000);这个函数的主要目的是创建一个连接对象objl。其中主要的属性有:Type (对象 类型),RemoteHost (远程主机名/IP), RemotePort (端口号,这里是 8000), Tag (标志位)等。2 .打开设备对象
33、fopen(objl)o3 .数据报的发送和接收fprintf(obj 1, number9); %number 为要写的 ASCAII 字符fscanf(obj 1, number )。number 为要读的 ASCAII 字符4 .关闭并清除设备对象close(objl);clear(objl)o5 .4网络通信调试连接实验设备,设置Code Composer Studio2.2在硬件仿真(Emulator)方式下运 行,要使板上的USB接口与PC机上的USB接口相连。要进行socket通信,则 连接板上的23网络接口与PC机上的网络接口。连接220V供电电源。打开验箱上的开关,给 实验箱
34、供电。上电正常时,ICETEK-DM642-AVM评估板上的上电指示灯常亮, 复位指示灯熄灭。拨动仿真选择开关,选择DM642仿真方式。打开液晶显示屏 电源开关,此时液晶显示屏上应显示条状彩条。如果没有彩条显示,可按下复 位键S1,再次观察液晶显示屏是否有彩条输出。打开服务器端的工程,进行编译、 连接。按下试验箱上的复位键,下载并运行程序。下载好服务器端程序后,运行客户端的GUI界面,可以在MATLAB环境下运行, 也可以独立运行已生成的可执行文件。先按下连接按钮,进行UDP设备对象的 创建。连接成功后,就可以选择灯具的不同运行模式发送给服务器端。如图3-6(1) 所示,客户端发送了打开客厅吊
35、灯的请求给服务器端,该命令的编码为1。若服 务器端与客户端的通信链路正常,CCS中一sdoutll就会显示收到的数据,如图 3-6(2)所示,最近一次接收的数据1。相应地,ICETEK-DM642-AVM评估板上的 用户指示灯会以8421编码的形式亮服务器端接收到的数据,即一sdout II显示最 近一次接收到的数据。如图3-6(3)所示。D6、D7、D8、D9是评估板上的四个用湘潭大学毕业设计评阅表学号: 2006550806 姓名: 李焕专业:电子信息工程 毕业设计题目:智能家居灯光控制系统的设计与实现湘潭大学毕业设计鉴定意见李焕 专业: 电子信息工程图表 17 张学号: 20065508
36、06 姓名:毕业设计说明书 29页目录摘 要IAbstract II引第 1 章开 发 系 统 简介41.1MATLAB环境简介4户指示灯。8位寄存器0x90080010控制指示灯的亮、灭,只有低四位有效。寄 存器从低(第0位)到高(第3位)分别对应D6 II到一D9 II四个指示灯。如果需要 点亮指示灯,该指示灯的寄存器控制位上要置高电平(1),关闭时置低电平(。)。3-6 (2) CCS调试图3-6(1) GUI界面控制图243-6(3)评估板显示图25第4章总结和展望4.1 课题总结根据设计要求,(1)详细设计了灯光控制系统客户端的图形用户界面,使得对灯光系统的控制可 视化。(2)考虑到
37、灯光控制系统只是智能家居系统的一个子系统,设计了一个智能家居 系统图形用户界面,集成了八个子系统。通过点击不同按钮可调用不同子系统的 图形用户界面。(3)通过UDP协议实现了客户端和服务器端的通信。实验结果是在客户端用户 界面上选择灯具的运行状态,服务器端接收到客户端发出的请求后,在 ICETEK-DM642-AVM评估板上模拟对应灯具的运行模式。4.2 课题展望下一步工作应该从以下几个方面改进。(1)智能家居系统包括八个子系统,即灯光控制系统、远程监控系统、可视对讲 系统、安防报警系统、家电控制系统、窗帘控制系统、背景音乐系统和小区服务 系统。下一步工作要具体分析并设计各个子系统的功能,在一
38、个智能家居系统界 面上实现对每个子系统的控制,使该系统功能更加全面。(2)网络通信部分采用UDP协议,控制命令通过UDP数据报直接发送,没有进 行加密措施,在实际应用中就会存在很大的安全隐患,系统容易受到威胁。下一 步工作应该在系统中加入密码保护措施,使系统更加安全。26(3)本设计还只是处在模拟家用电器的运行模式的阶段,没有实际控制家用电 器。若要把系统应用于实际中,还有很多工作要做。最主要的就是要详细了解各 种家用电器的运行模式和性能,对其加以正确的控制。实现一个真正的安全、方 便、智能的家居系统。27致谢大学四年的时光已接近尾声,我想借此机会表达对母校,我的父母、亲人,老师 和同学由衷的
39、谢意。首先我要感谢我的指导老师姚志强老师。姚老师严谨的治学精神,实事求是的研 究作风给我留下了深刻的印象,这必将是我以后学习的榜样。一授人以鱼不如授 之以渔II,我做毕业设计的每个阶段,从选题的确定到查阅资料,尤其在设计任 务完成的过程中,姚老师努力教导我培养分析问题和解决问题的能力。在将近三 个月的时间里,我查阅分析资料的能力有了很大的提高,能够从众多资料中提炼 对自己有用的信息。姚老师总能够引导并鼓励我去学习并应用一些知识,这在很 大程度上锻炼了我的自学能力,并让我更加相信没有做不到的事,只有不愿去实 干的人,只要肯做,就一定能够做到。所有这些这将会使我受益终生。同时我要感谢道坚丁九和白云
40、海学长,在本次设计工作中,他们给予我了很多专 业性的帮助。不仅如此,他们在学习过程中坚定的毅力以及不怕困难,勇于挑战 的精神都是我应该努力的方向。感谢李幸富和聂鹏鹏同学,他们也给予我很多真 诚的帮助。感谢我的家人对我一如既往的关怀和鼓励。他们教了我很多做人的道理以及踏实 实干的精神。在精神和物质上都给予了我最大的支持,使我能够更加积极地面对 学习和生活中的困难,勇于进取。同时感谢我的同班同学和朋友,在困难时他们 帮助我,在犯错时他们教导我,在灰心时他们鼓励我。他们的支持就是我前进的 动力。28参考文献1汪安民,程昱,徐保根编著.DSP嵌入式系统开发典型案例M.北京:人民 邮电出版社,2007.
41、2张雄伟著.DSP芯片的原理与开发应用M.北京:电子工业出版社,2000.3陈建光.精通MATLAB GUI设计M.北京:电子工业出版社,2008.4董振海.精通MATLAB7编程与数据库应用M.北京:电子工业出版 社,2007.5李宗.智能家居中灯光控制系统的研究D.硕士论文.上海:上海交通大 学,2008.6李真芳,苏涛,黄小宇.DSP程序开发MATLAB调试及直接目标代码生 成M .西安:西安电子科技大学出版社,2003.7王巧花.基于MATLAB的图形用户界面(GUI)设计J.煤矿机械, 2005,(03):6062.8瑞泰创新.ICETEK-DM642-AVM实验指导书M.北京:北京
42、瑞泰创新科技有 限责任公司.9王军宁,何迪译.TI DSP/BIOS用户手册与驱动开发M.北京:清华大学出 版社,2007.10李方慧.TMS320c60。系列DSP原理与应用M.北京:电子工业出版 社,2003611王玮,张卫宁等.基于TMS320DM642的网络功能开发的研究与实现J.计算 机应用,2006,26( 12):299-302.12 TMS320C6000 TCP/IP Network Developer s Kit (NDK) User s Guide (SPRU523A)Z. TI, 2001.13 TI C6000DSP上 TCP/IP协议栈的实现J.网络通讯与安 全,2
43、007,(03):688689.14王磊.基于以太网的嵌入式家电远程控制系统M.广东:华南农业大 学,2006515王军宇等著.数字信号处理技术原理与开发应用M.北京:高等教育出版 社,2003.6.16汪安民,张松灿著.TMS320c6000 DSP实用技术与开发案例M.北京:人 民邮电出版社,2008.17叶敏著.数字信号处理与交换网M.北京:北京邮电大学.18江思敏,刘畅著.TMS320C6000 DSP应用程序开发教程M.北京:机械工 业出版社,2005.29附录一:智能家居系统界面的程序代码function varargout 二 smartsystem(varargin)% SMA
44、RTSYSTEM M-file for smartsystem.fig% SMARTSYSTEM, by itself, creates a new SMARTSYSTEM or raises the existing % singleton*.% H = SMARTSYSTEM returns the handle to a new SMARTSYSTEM or the handle to % the existing singleton*.%SMARTSYSTEMCCALLBACKhObject,eventData,handles,.) calls thelocal% function n
45、amed CALLBACK in SMARTSYSTEM.M with the given inputarguments. % SMARTSYSTEMCProperty9/Value9,.) creates a new SMARTSYSTEM or raises the % existing singleton*. Starting from the left, property value pairs are% applied to the GUI before smartsystem_OpeningFcn gets called. An%unrecognized property name
46、 or invalid value makes property application%stop. All inputs are passed to smartsystem_OpeningFcn via varargin.% *See GUI Options on GUIDE,S Tools menu. Choose "GUI allows only one % instance to run (singleton)".% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the re
47、sponse to help smartsystem% Last Modified by GUIDE v2.5 16-May-2010 11:08:39% Begin initialization code - DO NOT EDITglobal handles;gui_Singleton = 1;gui_State = struct(6gui_Name99mfilename,.gui_Singleton, gui_Singleton5.6gui OpeningFcn95 smartsystem_OpeningFcn5.gui_OutputFcn, smartsystem_OutputFcn9.306gui_LayoutFcn 5.6gui_Callback );if nargin && ischar(varargin1)gui_State.gui_Callback = str2func( v