《基于WindowsCE的智能家居模拟系统.docx》由会员分享,可在线阅读,更多相关《基于WindowsCE的智能家居模拟系统.docx(61页珍藏版)》请在三一办公上搜索。
1、2010年广东省电子设计竞赛智能家居方案书题目:智能家居模拟系统Simulating System of Intelligent Home姓 名: 刘永鑫,王文雄,江泽良 学院: 华南农业大学 工程学院 指导老师: 俞龙 日期: 2010-9-11 目 录摘 要41.系统方案设计51.1.项目背景与需求分析51.2.系统概述51.3.系统功能与指标51.4.方案比较与选择61.4.1.处理器比较61.4.2.硬件系统通信方案比较61.4.3.操作系统比较71.4.4.Windwos CE平台软件开发语言比较71.4.5.Windwos CE平台Web服务方案比较71.5.系统架构82.系统实现
2、原理92.1.基于Windows CE嵌入式Web服务器(用户接口层)91.4.6.服务器软件概览91.4.7.主控模块101.4.8.Web服务模块131.4.9.短信查询与控制服务151.4.10.状态监视服务172.2.命令数据交换器(软交换层)182.2.1.命令数据交换器软件流程图说明192.2.2.命令数据交换器硬件电路说明192.2.3.协议帧1说明212.2.4.协议帧2说明232.2.5.RS485总线网设计方案252.3.执行机构实现原理(命令执行层)272.3.1.软件流程272.3.2.硬件电路283.系统测试313.1.本地用户接口测试313.2.Web服务测试333
3、.2.1.PC端测试333.2.2.手机远程访问Web服务器测试363.3.手机短信控制测试373.4.系统实际工作效果图394.特色405.原创性声明406.附录416.1附录1 Abstract416.2附录2 查新报告426.3附录3 参考文献436.4附录4 关键程序源代码446.4.1.软交换层与命令执行层软件代码446.4.2.用户接口层程序代码526.5附录5 系统实物图596.6附录6 TQ2440开发平台60摘 要智能家居,目的是综合运用各种技术手段使人类家居中各组成部分变得智能化和人性化。基于这种理念,本智能家居模拟系统运用Web服务技术,为用户提供一套对家居各种构件,如灯
4、光、水龙头、空调、等进行远程实时闭环监控的报告的解决方案。用户可以通过电脑、移动终端等任何可访Web服务的设备,登录本系统指定的Web站点,通过网页操作方式对家居中上述构件进行操作和状态查询,在此基础上,本系统还提供了手机短息查询与控制功能。具有较强的灵活性和较高的可靠性。关键词: 智能家居 状态监控 Web服务 手机短信控制1. 系统方案设计1.1. 项目背景与需求分析随着现代家居中电气化程度的逐渐提高,对家中的各种电器进行统一调控,尤其是远程控制,逐渐成为一种迫切的需求。也成为了智能家居技术研究的一大热点。综观目前市场上形形色色的家居电器智能化控制管理装置,均极少能为用户提供网页管理与控制
5、的接口。本文智能家居模拟系统(简称智能家居,下同)在这方面给出了一个实用性较强的方案,并扩展了短信功能,介绍如下:1.2. 系统概述本智能家居模拟系统是一个住房的微缩模型。在设计本模型时,硬件上,只抽象出一般家居内所具有的基本设施,这些基本设施包括灯光照明、空调制冷、水阀、窗帘和门禁5个部分,并在本系统中对其进行模型化,进而控制。本模拟系统硬件上使用高亮度发光二极管模拟实际家居中的照明灯具,用制冷片和温度传感器模拟生活中的空调,用电磁阀模拟生活中的浴缸水龙头等。软件上,则按照一个完整的智能家居控制系统的需求来进行系统规划与编码实现。1.3. 系统功能与指标本模拟系统旨在为用户提供一个对家居住房
6、里基本设施的工作状态进行监测和控制的平台,如图 1所示,包括以下几个部分:(1) 提供两种远程控制方式和一个图形化的本地控制界面,远程控制方式有: Web网页的方式和用手机短信方式。(2) 模拟操作包括:灯光、空调设备、水阀、窗帘的状态检测和控制,即查询状态和控制开关,空调温度设定,门状态检测(开或关)和门禁的开关,以及获取当前住房大厅图像;(3) 系统实时检测每个基本设施状态,并实时在Web网页上反馈给用户;(4) 若开启门禁,或当门被非法打开时,则系统会自行报警并用手机短信的方式告知用户。图 1 整体功能架构1.4. 方案比较与选择1.4.1. 处理器比较为实现本系统的功能,硬件处理器有以
7、下选择:STM32处理器与ARM9处理器。以下分别概述。STM32处理器:代表型号为:stm32f103rbt6,此处理器基于ARM7TDMI架构,片上资源丰富,具有体积小、功耗低的特点,且容易使用(可视作32位单片机使用)。ARM9处理器:代表型号为:s3c2440,此处理器基于ARM920T架构,具有丰富的扩展接口,由于具有MMU(内存管理单元),因此可以运行复杂的操作系统。虽然STM32处理器完全具备实现本系统的硬件资源,但由于其运行主频受到限制(最高只有72MHz),同时运行多个任务时,会出现性能瓶颈。因而采用ARM9处理器加操作系统的方案,本次使用的开发板为广州天嵌科技有限公司提供的
8、TQ2440开发平台(见附录6)。1.4.2. 硬件系统通信方案比较现代家居中往往会存在较多的电器设备,因此会在一定的频率范围内产生噪声干扰,因此选择通信方案时应考虑所组成通信系统的抗干扰能力。常用的通信方案有:RS-232方案 RS-485方案、RS-422方案。以下分点阐述。RS-232方案,本方案出现最早,主要用于计算机与微处理器以及微处理器之间的短距离通信,通信码率较低(1200bps115200bps)。抗干扰性能与防静电能力都较差,RS-422 方案:本方案采用两对差分传输线分别进行收发、因此具有较好的抗干扰能力与较远的通信距离,已成为工业通信标准之一。RS-485 方案:采用一对
9、差分线加上方向控制电路实现半双工通信,通信稳定、可靠,且具有很强的抗干扰以及抗静电的能力。支持多机通信,已成为应用最广泛的工业通信标准。通过上述比较,可知,不可采用抗干扰能力弱的RS-232通信,而RS-422通信需要较多线材(5条线)。因而使用RS-485通信方案1.4.3. 操作系统比较系统选择上,主流方案选择有二:嵌入式Linux方案或Windows CE方案,分述如下。嵌入式Linux:优点:完全开源,不需要授权,且有较多开源驱动或库函数可以调用。缺点:开发环境较差,只支持C语言开发。Windows CE:优点:完全开放(Windows CE 6.0已经实现完全开源),官方技术支持良好
10、,开发环境(Visual Studio、Platform Builder)界面友好且功能强大,支持多种开发语言,开发难度低。缺点:商用需要授权,部分驱动程序需要自行编写。在本次设计中,考虑到开发的便捷性,以及项目组成员对开发环境的熟悉程度。选择Windows CE作为系统平台。1.4.4. Windwos CE平台软件开发语言比较Windows CE下应用软件开发可以有以下两种选择:基于.Net Compact Framework托管代码(Managed Code)(以下简称.Net CF)的软件开发;基于C+本地代码(Native Code)的开发。以下分别阐述。基于.Net CF托管代码的
11、软件开发:.优点:Net CF是Windows平台下.Net Framework(以下简称.Net)的一个子集,由于它对常用的系统API进行了封装,并提供了简洁的调用接口,因此使用方便,且能够快速地开发出功能强大的应用软件,已成为Windows平台下软件开发的主流。代表语言为C#与VB.NET。由于基于.Net或.Net CF的应用程序不发布时不直接成汇编指令,直到执行前一刻才借助目标机器上的.Net或.Net CF服务程序翻译成本机指令。因此,程序可以在任何带有.Net 或 .Net CF服务程序的系统中运行,具有很强的跨平台特性。缺点:C#或VB.NET无法直接调用C或C+编写的程序;启动
12、时会消耗一定的系统资源;无法直接进行系统驱动开发。基于C+本地代码的开发:优点:在Windows CE平台下C+程序具有较高的运行效率与较低的资源占用率,且能调用到系统中所有的资源,也适合进行底层驱动开发,缺点:提供的接口函数声明大都较复杂,在做人机界面时灵活性较差;由于直接生成基于CPU的汇编指令,因此若CPU类型发生变化,即使系统相同,程序也必须重新编译。考虑到本项目存在用户接口以及人机界面开发的工作量远远大于驱动的情况,因此,软件主体选用C#语言开发,摄像头驱动则用C+编写,调试完成后并封装成动态链接库(DLL)。这样即可用C#调用。1.4.5. Windwos CE平台Web服务方案比
13、较在Windows CE上实现Web服务有以下两种方案:1、直接使用Windows CE系统内核自带的HTTPD组件实现Web服务。2、移植一套PC机中的HTTP协议到服务器端软件中。对于方案1,依赖Windows CE系统内核组件,因此存在对运行环境依赖性强的缺点,且HTTPD组件只能用C或C+开发,与本项目选定的开发语言(C#)不符。对于方案2,由于是服务器端软件自带HTTP协议,因此不依赖系统环境,并可以根据需求灵活控制;由于HTTP协议并不复杂,且有开源实现代码(如kayak, lightweight C# web server and framework),移植并不困难。因此选择本方
14、案。1.5. 系统架构模拟系统的总体架构如图 2所示,可以分为3个层次,分别如下:(1) 第一层:用户接口层,是基于Windwos CE的嵌入式Web服务器;(2) 第二层:软交换层,命令数据交换器;(3) 第三层:命令执行层,执行机构(包括摄像头和GPRS短息模块等部件)。图 2 系统总体架构图这3个层次的内容和作用如下表 1所示。表 1:系统个层次内容功能一览表名称内容作用用户接口层1、 基于S3C2440ARM芯片的嵌入式开发板;2、 WinCE嵌入式操作系统;3、 用C#编程语言自行设计的Web服务器软件。1、 当用户使用手机等移动终端或电脑终端访问该服务器是为用户提供基于Web网页的
15、查询、控制服务;2、 接收用户提交的操作命令,并将操作命令编码后交给软交换层,如果是用户需要获取当前房屋的图像时就直接控制摄像头模块;3、 将用户操作结果反馈给用户(刷新Web页面,在新Web页面中体现)。4、 实时监控房屋各个元素的状况,发生异常状况时(如小偷破门而入)发生报警并将信息通过短信方式告知用户。软交换层1、 具有2个异步串行口的单片机最小系统和RS485电路2、 自行设计的通信协议程序。1、 接收来自用户接口层的命令帧并进行解析;2、 根据解析命令帧的结果分别给各个控制机构发送专门的命令帧;3、 收集各个执行机构返回的结果并反馈给Web服务器;4、 当出现门被非法打开时向服务器报
16、警。命令执行层1、 监测和控制家居各种受控元素(灯光、空调、窗帘、水阀、门禁等)的硬件控制电路及其软件程序、执行机构;2、 摄像头模块和GPRS短信模块控制软件。1、 各个执行机构接收交换器发来的命令帧;2、 各个执行机构根据命令帧内容监控各个受控元素的状态;3、 把执行结果反馈给交换器;4、 需要特别说明:由于门禁要求有较高的实时性,并没有连接入RS485总线网,二是直接与交换器相连接。2. 系统实现原理需要说明的是,由于条件限制,对于某些硬件只能利用成品。例如基于S3C2440ARM芯片的嵌入式开发板,部分软件也只能是在原有基础上进行移植,例如系统中的HTTP协议就是从上位机中的HTTP协
17、议根据嵌入式WinCE平台的特点移植而来的。也就是嵌入式技术。本设计以系统层次分明为其特点,所以实现原理按照分层、分块地进行,介绍关键软、硬件模块的实现方法。着重阐述以下3个部分:(1) 基于Windows CE嵌入式Web服务器实现原理;(2) 命令数据交换器实现原理;(3) 一般执行机构实现原理。2.1. 基于Windows CE嵌入式Web服务器(用户接口层)1.4.6. 服务器软件概览图 3 服务器总体功能架构服务器功能架构见图 3,它是整个系统的用户接口与底层服务的核心。实现以下功能:为用户提供图形化的人机界面、与底层交换器通信、驱动CMOS摄像头、提供Web服务、实施状态监视、提供
18、短信查询与控制控制、检测门禁并报警,共6项功能。且6项功能会被同时开启。因此在软件设计上,须使用多线程的设计方法,以达到较快的响应速度与较好的扩展性。以下将详细参数软件中各个模块实现的功能与实现原理。1.4.7. 主控模块功能概述主控模块是本次设计中软件的核心,负责各个顶层服务模块之间的功能协调与控制,并为用户提供一个图形化的用户界面。实现原理主控模块架构见图 4图 4 主控模块架构图在实现用户界面上,C#开发语言的优势非常明显,并不需要编写代码,直接在开发环境中画出即可。由“服务器软件概览”中所述,本次需要使用多线程的设计方法。多线程的实现可以使用System.Threading.Threa
19、d.系统中的主控串口、GSM模块、摄像头这些资源都无法接受多线程并发控制或访问类型上属于独占性资源,因此,在软件设计时,将主控串口和摄像头分配给主控模块中的核心业务线程管理。若其他服务(例如:Web远程访问)需要调用独占性资源时必须先向主控模块提交申请,再由主控模块中的核心业务线程进行统一调配。摄像头驱动程序在本项目中则是通过移植SMDK2410 Windows CE BSP中的ov9650驱动程序,并进行封装得到。通用数据处理模块是一个全局性数据处理方法的封装。底层交换器与Windows CE进行通信时使用的是RS-232串口,因此,底层交换器通信模块实质上是一个经过派生的串口通信模块,继承
20、于System.IO.Ports.SerialPort.门禁报警服务,由于门禁报警信号是通过底层交换器通信模块传递,因此可以将此项服务集成到主控模块中,当出现门禁报警信号后,由核心业务线程调用短消息查询与控制服务向用户报警并记录。图 5 主控模块工作流程图1.4.8. Web服务模块功能概述Web服务模块作为系统远程控制接口的一部分,目的是让用户可以利用任何可以上网的计算机配合支持HTTP协议的浏览器(例如:Internet Explore)实现对家中情况的远程掌控。实现原理以下先对Web服务及其相关概念进行阐述广义上的Web服务是指一系列互联并可以通过互联网访问的超文本(Hypertext)
21、内容组成的系统。其中信息传输协议为超文本传输协议(Hypertext Transfer Protocol)简称HTTP协议。在进行多媒体信息传输时超文本则扩充为超媒体(Hypermedia)HTTP协议:是一种用于发布和组织超文本内容的网络协议,用于在服务器与客户端间进行请求与应答的协议。也是Web服务的最基本通信协议。可见,要实现Web服务,首先要实现HTTP协议。而HTTP协议位于互联网体系结构的应用层。由位于传输层的传输控制(TCP)协议提供通信保障。从传输层上看,基于HTTP协议的请求与应答本质上是基于TCP协议的数据通信过程。图 6 Web服务模块内部架构根据以上原理设计的Web服务
22、模块架构如图 6所示。其中,TCP/IP通信模块则负责按照TCP通信规范对指定服务端口的侦听。并负责数据通信,在实现上,可以直接使用System.Net. TcpListener.HTTP协议解析模块则按照HTTP协议规范对收到的数据报文进行解析,以从数据报中提取客户端(可以看成浏览器)的请求,并通过主控模块通信接口与主控模块协作,从而实现远程访问与控制的功能。Web服务控制线程则为主模块提供对整个Web服务模块的控制接口,即:Web服务控制接口Web服务模块详细流程图见图 7图 7 Web服务模块工作流程图1.4.9. 短信查询与控制服务功能概述短信查询与控制服务模块作为系统远程控制接口的一
23、部分,目的是让用户可以利用在远程尤其是无法使用互联网的时候利用手机短信实现对家中情况的远程掌控。实现原理在嵌入式系统中实现短信收发,往往借助于GSM(Global System for Mobile)模块,由于GSM模块是以RS-232串口作为控制与通信接口,并以AT指令作为控制指令。因此在系统中利用串口实现对GSM模块的控制即可实现本部分功能。图 8 短信查询与控制服务模块架构图短信查询与控制模块架构如图 8所示,其中,串口通信模块实现对串口的初始化串口收发的功能。在实现上,可直接使用System.IO.Ports.SerialPort.PDU编解码模块实现将GSM模块收到的信息进行解码和将
24、需要发送的信息进行编码的功能。由于从手机中发出的短信内容上都经过了UCS2(中英文混合内容)或者UCS2-7(全英文内容)编码,GSM模块收到的是包含短信内容与发送方信息的PDU字符串。因此,要从短信中提取出有用信息就必须要进行PDU解码。再者,由于GSM通信网无法直接发送中文短信,因此在发送中文短信之前要对信息内容进行UCS2编码,并将编码后的信息内容连同发送方信息一同打包成PDU字符串。GSM模块控制线程为主控模块提供对短消息查询控制服务模块的控制接与通信接口(见图 8短消息服务控制接口、主模块通信接口),并对整个服务模块的工作状态进行监控,以实现短信侦听与发送。短信查询与控制模块工作流程
25、图见图 9图 9 短信查询与控制模块工作流程图1.4.10. 状态监视服务功能概述状态监视服务模块在启动后将定时向主控模块申请查询智能家居中各个受控量的状态,并与参照表比对,如果有受控量发生变法,则会立即通知主控模块,向用户发出警报信息。实现原理状态监视服务模块架构见图 10图 10 状态监视服务模块架构图其中,状态监视服务线程为主控模块提供对本服务模块的控制接与通信接口(见图 10 状态监视服务控制接口、主模块通信接口),并对整个服务模块的工作状态进行监控,以状态监控与报告。定时器则实现对受控量的定时采集。状态监视服务模块工作流程图见图 11 态监视服务模块工作流程图2.2. 命令数据交换器
26、(软交换层)在系统架构部分已经对命令数据交换器的作用进行了说明,这部分不再赘述。在这里需要详细说明的是其软件程序。虽然系统不是很复杂,但是执行机构有多个,为了方便交换器与下面执行机构进行命令数据的通信,需要设计一套简单的协议(帧)。另外,由于上层服务器与交换器通信的命令数据格式数量又和交换器与执行机构之间的不同,所以,有需要再设计多一个协议帧来专门用于交换器和服务器之间的通信,所以共有两个协议帧。 在物理层面上,无论是交换器与服务器之间,还是交换器与各个执行机构之间(门禁除外),都是用异步串行口UART进行通信的。其中,交换器与服务器之间通过MAX232芯片转为RS232电平进行通信,而交换器
27、与各个执行机构之间则是用MAX485芯片TTL电平转换为RS485电平进行通行,构成RS485总线网。接下来,将从以下5个方面进行说明:(1) 软件流程说明;(2) 硬件电路图说明;(3) 协议帧1说明用于交换器与服务器之间;(4) 协议帧2说明用于交换器和各个执行机构之间;(5) RS485总线网说明。2.2.1. 命令数据交换器软件流程图说明交换器的软件流程图如图 12所示。图 12 命令数据交换器程序流程图 从图 12中,我们可以看到,在初始化后程序就进入对服务器命令帧的侦听状态,分为两种状况,如果接收到来自服务器的命令帧,那么就顺序执行以下操作:n 提取帧类型和各个字段的命令参数;n
28、根据帧类型和对应某个执行机构的字段参数,给该执行机构发送命令,同时开启定时器计时(门的状态检测除外,直接检测并返回结果);n 如果在定时器超时时间(500毫秒)之内接收到执行机构的执行反馈帧,则把结果整理后反馈给服务器;如果超时,则把结果设置为超时类型,并把超时情况告诉服务器;n 继续侦听服务器是否发来命令。如果没有接收到服务器的命令帧,则顺序执行以下操作:n 判断用户是否开启门禁(注意门禁开启关闭与门的开启关闭是不同的)n 如果用户开启了门禁,则判断门是否被非法打开(如小偷破门而入),如果被非法打开,则马上向服务器发送紧急报警帧,直到服务器应答为止。如果用户没有开启门禁或门禁开启但门没有被非
29、法打开,则返回侦听服务器是否发来命令帧。2.2.2. 命令数据交换器硬件电路说明命令数据交换器的硬件电路图如图 13(下页中)所示。交换器所用的单片机芯片是带有2个全双工异步串行口UART的宏晶STC12C5A60S2芯片,其中,串口1通过MAX232芯片与服务器通信,串口2通过MAX485芯片与各个执行机构通信。图 13 命令数据交换器硬件电路图2.2.3. 协议帧1说明用于交换器与服务器之间的帧格式如图 14所示,各个字段参数如表 2所示。图 14 交换器与服务器通信帧格式表 2:交换器与服务器通信协议帧说明表名称字节数参数类型备注帧头2“#”2个#号帧尾20x0D 0x0A回车键分隔符1
30、;分号帧类型1#define FT_Control C /控制类 #define FT_Query Q /查询类 #define FT_Reply_Ctrl R /控制应答类 #define FT_Reply_Query K /查询应答类 #define FT_Emergency E /紧急、突发情况 #define FT_Reply_Emergency T /紧急、突发情/况回复#define FT_HandShake H/握手帧 所有帧类型鸿定义灯光参数5服务器命令:#define OT_Open O/打开#define OT_Close C/关闭#define OT_Undo U/不操作
31、 交换器应答:#define RT_ON 0 /打开状态 #define RT_Off 1/关闭状态 #define RT_Unknow 2/不可控状态 #define RT_Timeout 3 /超时类型5个参数分别对应5颗灯,”OT”是”Operation Type”的简写,表示操作类型,”RT” 是”Result Type”的简写,表示结果类型空调窗帘参数4#define OT_Default D /默认,不改变,专门用/于空调温度设定;4个字节中第一是空调开关(状态),参数与灯光参数值相同;第四字节是窗帘开关(状态),参数值与灯光参数形同;第二、三字节是设定空调或当前室内温度,参数值比
32、较特殊,对于设定空调温度时,可以是不改变OT_Default(不是OT_Undo)或”0”9”,反馈时时当前室内温度,参数值为”0”9”水阀参数1与灯光参数值类型相同门禁参数1服务器命令:#define Guard_On 0 /门禁开启#define Guard_Off 1/门禁关闭交换器应答:#define RT_ON 0/打开状态 #define RT_Off 1/关闭状态注意门禁开启关闭与门的打开关闭状态时不同的概念2.2.4. 协议帧2说明用于交换器和执行结构之间通信的协议帧格式比较简单,如图 15所示,各个字段参数说明如表 3所示。图 15 交换器与执行机构通信帧格式表 3:交换器与
33、执行机构通信帧说明表名称字节数参数类型备注帧头2“#”2个#号帧尾20x0D 0x0A回车键分隔符1;分号帧类型1#define FT_Control C /控制类 #define FT_Query Q /查询类 #define FT_Reply_Ctrl R /控制应答类 #define FT_Reply_Query K /查询应答类 只有4种目的地址1交换器命令;#define LightAddr 0x03 /灯光模块地址#define ConditionAddr0x07 /空调窗帘模块地址#define WaterAddr 0x0f /水控制节点地址执行机构应答#define Serve
34、rAddr 0x7e /服务器地址 由于门禁是由交换器直接控制的,所以没有设计地址源地址1交换器命令:#define ServerAddr 0x7e /服务器地址执行机构应答:#define LightAddr 0x03 /灯光模块地址#define ConditionAddr 0x07 /空调窗帘模块地址#define WaterAddr 0x0f /水控制节点地址由于门禁是由交换器直接控制的,所以没有设计地址参数长度1根据系统当前设计,各个执行机构参数个数都是可知的。#define LightDataNum 0x05 /灯光,5个#define ConditionDataNum 0x04
35、/空调窗帘,4个#define WaterDataNum 0x01 /水阀,1个#define DoorDataNum 0x01 /门(禁),1个参数1交换器命令:#define OT_Open O /打开#define OT_Close C /关闭#define OT_Undo U /不操作 #define OT_Default D /默认,不改变,专门用/于空调温度设定;执行机构应答:#define RT_ON 0 /打开状态 #define RT_Off 1 /关闭状态 #define RT_Unknow 2 /不可控状态2.2.5. RS485总线网设计方案为了加强通信的距离和可靠性,
36、命令数据交换器与各个执行机构(门禁除外)之间是通过RS485进行通信的,它们分别作为主机或从机接入RS485总线网中,其中命令数据交换器是主机,其他执行机构是从机。该RS485总线网是半双工的,接收与发送状态的切换时通过软件设置的。在软件设计时规定,主机可在除等待从机应答时之外的任何时候切换发送接收状态,而从机只有在应答主机时时发送状态,其他状态下都是出于接收状态,不允许从机主动给主机发送信息。无论是作为主机的命令数据交换器还是作为从机的各个执行机构,在硬件电路上都设计一个RS-485接口电路,在这里给出这个电路并说明,同时给出MAX485引脚图及其说明(英文)。在下部分一般执行机构接收电路是
37、就不再阐述。RS-485接口电路如图 16所示。其中,RXD线接单片机RXD引脚,TXD接单片机TXD引脚,LineA接RS485总线网A线,LineB接RS485总线网B线,DIR是接收和发送状态切换引脚,当DIR为低电平时出于接收状态,为高电平时出于发送状态。其中MAX485芯片引脚图如图 17所示,引脚功能说明(英文)如图 18所示。图 16 UART转RS485电路图 17 MAX485芯片引脚图(原技术文档截图)图 18 MAX485芯片引脚说明(原技术文档截图)2.3. 执行机构实现原理(命令执行层)系统中的几个执行机构其原理,包括软件流程和硬件电路基本相似。接下来就一起进行说明。
38、2.3.1. 软件流程首先是软件流程,几个执行机构的软件流程都如图 19所示。从图中可以看到执行机构上电后,顺序执行以下步骤:(1) 初始化完成后开始不断侦听交换器是否发来命令帧;(2) 如果接收到命令帧,则立即进行地址匹配,如果接收到命令帧的目的地址与本机地址一致,即表明该帧是发送给本机的,那么就执行第(3)步,否则丢弃命令帧并返回第(1)步继续监听;(3) 提取帧类型和参数,判断帧类型是控制帧还是查询帧,根据帧类型执行不同操作,即执行第(4)步;(4) 如果是控制帧,则根据参数控制控制对象的开关,然后把控制结果反馈给交换器,返回监听命令帧状态;如果是查询帧,查询控制对象的开关状态并反馈给交
39、换器,然后返回监听命令状态。需要说明的关于控制对象开关状态的检测是用ADC读取控制对象供电电压来判断是否工作的。图 19 执行机构软件流程图2.3.2. 硬件电路关于硬件电路,这里不给出每个执行机构模块全部电路,所有执行机构模块都是采用STC12C5A60S2这一款单片机,模块的最小系统电路和UART转RS485通信电路就省略,下面仅给出控制对象的接口电路并简单说明。1) 灯光控制电路(用LED模拟)图 20 灯光控制接口电路2) 空调控制、检测电路本次设计中,模型化的空调是一个半导体制冷片,额定工作电压12V,电流6A,由于工作电流较大,因此需要独立的开关电源进行供电。为了尽量接近真实的控制
40、情况,本次将直接对220V交流电的通断,进而实现对制冷片的控制。如图 21所示,用单片机P01口控制光耦MOC3021(可控硅输出的光耦),再用光耦驱动双向晶闸管BT139,由于光耦和BT139都是双向的,所以能保证交流电正负半周都正确通过,从而使开关电源与制冷片正常工作。图 21 空调控制电路判断空调是否工作,一个简便的方法就是判断制冷片是否供电正常,方法是通过分压电阻将制冷片的12V供电电压降压后送入单片机AD通道,从而读出制冷片的供电电压值。进而判断空调是否正常工作。3) 窗帘控制电路窗帘的控制实质上就是步进电机的控制,如图 22所示,4条信号线通过R11-R15限流然后再通过通道的光耦
41、PC847实现光电隔离,最后通过ULN2003驱动芯片把电流放大到500mA左右进而驱动步进电机,通过单片机编程改变输入信号的相序就能控制步进电机正反转,进而完成对窗帘的控制图 22 窗帘控制电路4) 电磁阀控制电路电磁阀的控制电路见图 23,由于该电磁阀需要的工作电流为1A,所以本电路采用了大功率开关管13005来驱动电磁阀,为了防止电磁阀关闭的时候的反电动势对电路造成不良影响,在电磁阀上需要反向并联保护二极管1N4007。而大功率开关管13005则用光耦PC817与单片机隔离,以避免强电对弱电的干扰。图 23 电磁阀控制电路3. 系统测试3.1. 本地用户接口测试图 24 系统启动并开启W
42、eb服务器图 25 系统启动后与GSM模块通信成功图 26 本地查询、设置界面图 27 摄像头测试界面3.2. Web服务测试3.2.1. PC端测试 在PC端使用Internet Explore 浏览器进行测试,测试前,将系统与PC机器连入同一子网或者确保PC机能用ping命令能够成功探测本系统嵌入式Web服务器的IP地址。测试结果如下:图 28 从PC机访问嵌入式Web服务器进行查询图 29 门状态查询图 30 Web控制图 31 通过Web远程采集图像图 32 通过Web查询门禁报警记录3.2.2. 手机远程访问Web服务器测试本次测试中使用三星SGH-I8000手机配合Pocket I
43、E 浏览器对系统Web服务功能进行测试,测试前先将通过无线路由器将手机与本系统嵌入式服务器连入统一网段。即可进行测试,结果如下:图 33 手机通过浏览器查询家中状态图 34 提交请求进行控制图 35 通过手机获取图像3.3. 手机短信控制测试开始测试前应先确保本系统的GSM模块已插入SIM卡并已经通电。启动服务器端软件即可进行测试。结果如下:图 36 获取IP地址图 37 通过短信查询状态的结果图 38 门禁警报短信图 39 状态改变报警短信3.4. 系统实际工作效果图图 40 系统工作时实效果4. 特色本系统的特色分为三个方面:1、Web网页查询与控制,2、短信查询、控制,3、图像采集,4、图形化用户界面。因此本项目组认为本设计具有较强的实用性和推广价值。5. 原创性声明本智能家居模拟系统的构思和设计思想、本方案文档均属本团队成员的原创成果,并在指导老师的指导下独立完成。非本项目组完全原创的模块仅有以下几点:n 基于S3C2440 ARM芯片的嵌入式开发板使用的是广州天嵌科技有限公司的产品tq2440开发板(包括摄像头扩展模块)。n 用于给空调(模拟)和水阀供电的两个开关电源是从广州岗顶新赛格电子城购买现有产品。n 使用的WinCE5.0嵌入式操作系统是本团队使用Platform Builder 基于SMDK2410 BSP裁