桂林电大毕业优秀论文基于linux系统的智能家居远程控制系统设计.doc_第1页
桂林电大毕业优秀论文基于linux系统的智能家居远程控制系统设计.doc_第2页
桂林电大毕业优秀论文基于linux系统的智能家居远程控制系统设计.doc_第3页
桂林电大毕业优秀论文基于linux系统的智能家居远程控制系统设计.doc_第4页
桂林电大毕业优秀论文基于linux系统的智能家居远程控制系统设计.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

学科分类号 0801 本科学生毕业论文(设计)题目 (中文):基于linux系统的智能家居远程控制系统设计 (英文):The smart home remote control system based on Linux system design姓 名许双武学 号201008002118 院 (系)计算机与通信工程系 专业、年级通信1001班 指 导 老 师 黄堂森(教授) 2014年 4 月 25桂林电子科技大学本科毕业论文(设计)诚信声明本人郑重说明:我所提交的毕业设计是在指导老师的指导下,经过个人的研究工作所得出的成果,所得成果不存在知识产权上争锋问题。除了文中所引用的内容外,本文章不包含其他已经发表或撰写的作品成果。本文研究作出的贡献的个人与集体在文中已经做出标明,本声明的法律后果由我承但。 本科毕业论文(设计)作者签名: 二 年 月 日基于linux系统的智能家居远程控制系统设计 摘要智能家居是一个居住环境,是以住宅为平台安装有智能家居系统的居住环境,实施智能家居系统的过程就称为智能家居集成。以住宅为平台,利用综合布线技术、网络通信技术、 智能家居-系统设计方案安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。智能家居又称智能住宅,通俗地说,它是融合了自动化控制系统、计算机网络系统和网络通讯技术于一体的网络化智能化的家居控制系统。智能家居将让用户有更方便的手段来管理家庭设备,比如,通过家触摸屏、无线遥控器、电话、互联网或者语音识别控制家用设备,更可以执行场景操作,使多个设备形成联动;另一方面,智能家居内的各种设备相互间可以通讯,不需要用户指挥也能根据不同的状态互动运行,从而给用户带来最大程度的高效、便利、舒适与安全。【关键词】智能家居,ARM8,GPRS模组,Linux,开发板。 The smart home remote control system based on Linux system designSummary Smart Home is a living environment , there is a residential living environment as a platform to install smart home system , the process of implementing smart home system called smart home integration. Residential as a platform to take advantage of integrated wiring technology, network communication technology, smart home - security system design technology, automatic control technology, audio and video technology to integrate home life related facilities , residential facilities and build efficient management of household affairs agenda system , improve home safety , convenience , comfort , artistry , and to achieve eco-friendly living environment. Smart home , also known as smart homes , laymans terms, it is the integration of automation and control systems, computer network systems and network communication technology in one of the networked intelligent home control system . Smart Home will allow users to have a more convenient means to manage the household equipment , such as through home touch screen, wireless remote control, telephone, internet or voice recognition control home devices , but you can perform a scene operations , enabling multiple devices to form a linkage ; another , the various devices within the smart home can communicate with each other , without the user can interact with the command to run depending on the state, thus giving users the greatest degree of efficiency, convenience , comfort and safety.Keywords smart home , ARM8, GPRS module , Linux, development board. 目 录1 绪论11.1 智能家居的概述11.2 论文工作12 开发技术及编译环境22.1 嵌入式web服务器22.2 CGI32.2 html32.3 Javascript32.5 通讯技术42.6 交叉编译环境42.7 交叉编译和链接42.8 系统评估及开发环境52.9 项目设备53 系统设计与实现63.1 需求分析63.1.1用户需求63.1.2需求分析6(1)GPRS接收信息处理6(2)处理 信息及画面显示6(3)系统结构图63.2基本功能模块及解决方案73.2.1基本功能模块7(1) 对外通信模块7(2) 网关模块8(3)设备自动控制模块83.3 硬件模块设计83.3.1 硬件选型9(1) GPRS模组9(2)温湿度传感器103.3.2 硬件连接及测试103.4 平台搭建123.4.1 内核移植123.4.2 boa服务器的移植133.5系统程序设计133.5.1 web与CGI的编写13(1) 登陆web浏览器的设计14(2) LED灯的控制界面与CGI的编写17(3) 温湿度控制界面与CGI的编写20(4) 发送短信214 总结与展望25参考文献26致谢271 绪论科学技术是第一生产力,当科技快速发展给人们带来无限的财富同时,也给人们带来了新的生活方式,许多人开始最求高质量,高享受,安全的生活环境。智能家居则随之而然的产生,智能家居能给我们带来方便又舒适的生活,而越来越多人们喜欢上智能家居环境。1.1 智能家居的概述 自从1984世界第一个智能家居系统的问世,智能家居就在我们的未来生活中一直更新,在进入21世纪以来,智能家居在系统和功能上有了质的飞跃。智慧家居是今后家居领域发展的必然趋势,虽然市场推广才刚刚开始,但行业的竞争已经很激烈,光是宁波就有不下5家企业专门从事这方面开发。制造企业在产业调整和转型中,都需要运用到大数据。今后,数据将成为推进社会进步的第四生产力。市场潜力巨大,同时,智慧家居所依托的大数据分析,也是传统制造企业转型升级的重要途径。比尔盖茨是国外第一个使用智能家居的家庭,至今快有三十年的历史了,智能家居控制系统也逐渐走进大家的视野。目前国内智能家居虽有潜力但发展缓慢,人们的消费观和消费能力并不充分。根据中国智能家居设备行业发展环境与市场需求预测分析报告前瞻分析,目前我国智能家居产品与技术的百花齐放,市场开始明显出现低、中、高不同产品档次的分水岭,行业进入快速成长期。面对中国庞大的需求市场,预计该行业将以年均19.8%的速率增长,在2015年产值达1240亿元。智能家居最初的发展主要以灯光遥控控制、电器远程控制和电动窗帘控制为主,随着行业的发展,智能控制的功能越来越多,控制的对象不断扩展,控制的联动场景要求更高,其不断延伸到家庭安防报警、背景音乐、可视对讲、门禁指纹控制等领域,可以说智能家居几乎可以涵盖所有传统的弱电行业,市场发展前景诱人,因此和其产业下面是智能家居的大楷模型图:相关的各路品牌不约而同加大力度争夺智能家居业务,市场渐成春秋争霸之势。1.2 论文工作 本项目的主要作用是通过远程网页控制LED灯,获取温湿度,以及网页发送消息,以及监督家庭的一些情况,来给人们带来舒适,安逸的生活环境。在探讨智能家居相关开发技术中,以客观需要为基准而开家居系统。开发工程中所做的工作包括:整个系统的需求分析、系统设计和所有模块的具体实现。2 开发技术及编译环境2.1 嵌入式web服务器随着因特网技术的兴起,在嵌入式设备中web成为主要的技术,即B/S模式,能够使嵌入式设备运行一个支持CGI的服务器,使之能生成一些动态页面,用户端通过Web浏览器就就能对设备进行监控与管理。Web服务器能够使嵌入式设备间进行信息交互,使之能够通过网络对设备的监控,方便管理。而且web服务器能过主动将设备信息发给用户。目前,嵌入式Web服务器很多,如emMicro、GoAhead Webserver、RomPager、AppWeb、Apache,Boa、PicoWeb、ChipWeb、Voyager、Quiotix等,且技术比较成熟,本系统使用Boa服务器。Boa 是一款单任务的HTTP 服务器, 与其他传统的Web 服务器不同的是,当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接, 而是通过建立HTTP 请求列表来处理多路HTTP 连接请求, 同时它只为CGI 程序创建新的进程, 这样就在最大程度上节省了系统资源, 这对嵌入式系统来说至关重要. 同时它还具有自动生成目录、自动解压文件等功能, 因此, Boa 具有很高的HTTP 请求处理速度和效率, 在嵌入式系统中具有很高的应用价值。Boa服务器和普通Web 服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客户端返回请求结果等任务。Boa的工作过程主要包括:1、完成Web 服务器的初始化工作, 如创建环境变量、创建TCP 套接字、绑定端口、开始侦听、进入循环结构, 以及等 待接收客户浏览器的连接请求;2、当有客户端连接请求时,Web 服务器负责接收客户端请求, 并保存相关请求信息;3、在接收到客户端的连接请求之后,分析客户端请求, 解析出请求的方法、URL 目标、可选的查询信息及表单信息, 同时根据请求做出相应的处理;4、Web 服务器完成相应处理后, 向客户端浏览器发送响应信息, 关闭与客户机的TCP 连接。Boa服务器根据客户端请求方法的不同, 做出不同的响应:1、如果客户端请求方法为HEAD, 则直接向浏览器返回响应首部; 2、如果客户端请求方法为GET, 则在返回响应首部的同时, 将客户端请求的URL 目标文件从服务器上读出, 并且发送给客户端浏览器; 3、如果客户端请求方法为POST, 则将客户发送过来的表单信息传送给相应的CGI 程序, 作为CGI 的参数来执行CGI 程序, 并将执行结果发送给客户端浏览器。Boa 的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。2.2 CGI CGI是运行在web服务器上的,通过浏览着的数据输入来触发,他是一种通用网管界面。他是http服务器运行在外部的一个接口,他们通过远程访问系统上的使用类型程序,来操控嵌入式设备。 浏览者与服务器进行交互操作是通过标准编写的外部扩展应用程序实现的,因为扩展应用程序能处理客户端浏览器输入的数据。应用程序可以由多种语言编写,比如c/c+,java,vb等。可以根据浏览者填写的的表单发送定制的答复。CGI的主要作用如下:1、通常情况下CGI程序被用来解释处理来自表单的输入信息,在服务器产生相应的处理,并将相应的信息反馈给浏览器。2、CGI程序使网页具有交互功能。如果你曾经遇到过在web上填表或进行搜索, 你用的就是CGI程序。你那时也许没有意识到,因为大部分工作是在服务器上运行的,你看到的只是结果。CGI的处理步骤:1、通过Internet把用户请求送到服务器。2、服务器接收用户请求并交给CGI程序处理。3、CGI程序把处理结果传送给服务器。4、服务器把结果送回到用户。另外CGI对系统资源要求高,容易成为被人非法进入服务器系统的通道,以及系统移植性不是很高。2.2 html 1. html是用来描述网页的一种语言。2. Html是一种超文本标记语言,是一种标记标签。3. Html是包含HTML标签与纯文本,web浏览器访问HTML文件,以网页形式显示出来,显示标签的内容。2.3 Javascript 1、JavaScript 被设计用来向 HTML 页面添加交互行为。 2、JavaScript 是一种脚本语言(脚本语言是一种轻量级的编程语言)。 3、JavaScript 由数行可执行计算机代码组成。 4、JavaScript 通常被直接嵌入 HTML 页面。需要注意的是:Java 和 JavaScript 是两种完全不同的语言。2.5 通讯技术 智能家居系统总线是将家庭范围内的LED灯,温湿度传感器,GPRS模组与开发版连起来,然后将开发版与网络相连接,用户通过网络登陆控制家里设备,也可以通过手机跟GPRS通信来控制设备。2.6 交叉编译环境 图2-1本项目选择的宿主机是一台运行着windows系统电脑的,通过以太网和串口与目标机进行通讯。宿主机的软件资源丰富且操作方便,并且还有很多优秀的开发工具,能够提高软件的开发速度与效益,给开发人员带来极大的方便。目标机主要使用在软件开发阶段,主要是跟嵌入式系统通信的宿主机区分开来,一般是嵌入式应用软件的实际运行环境或者是仿真系统,目标机的硬件资源一般非常有限。嵌入式系统交叉编译环境包括交叉调试器,交叉编译器和仿真,本次项目主要用到交叉编译器和交叉调试器,它们能在宿主机上编译的代码在目标机上运行。在使用交叉编译工具时,现在宿主机上写好代码并编译成可执行的程序,然后放到目标机上单独运行,达到想要的结果。搭建好交叉编译环境是本项目的第一步。开发的交叉编译环境主要有GNU、它能够支持ARM处理器,对于我们编写程序有极大的好处。2.7 交叉编译和链接 在完成软件的编程后,因为开发过程几乎是在windows下的X86的cpu上计算机上完成的,而目标环境却是ARM微处理器,则需要在交叉编译环境中进行交叉编译链接,生成能在ARM上能够运行的程序。交叉连接器与交叉编译器能够运行在宿主计算机上,是能够编译连接生成在目标机上的可执行二进制文件的一种工具。arm-linux-gcc交叉编译器与arm-linux-ld是ARM体系结构中的交叉编译器与交叉连接器。嵌入式系统一般连接后生成的可执行程序要尽量小,所以连接过程的函数库要尽量的小,因此所使用的函数库一般是处理过的。对于嵌入式系统来说,功能于强的程序,他就越大,所以一般的C函数库已经不能够使用了,因此一般采用他们的精化版本。2.8 系统评估及开发环境上位机操作系统:ubuntu ,window xp;系统评估平台:桂林电大爱普提供的开发版(arm 8)编译工具:arm-linux-gcc;2.9 项目设备 1、装有Linux系统或装有Linux虚拟机的PC机一台;2、桂林电大A8开发板一个(5VDC电源适配器);3、GPRS模组(5VDC电源适配器,自备SIM卡);4、温湿度传感器:AM2311;3 系统设计与实现3.1 需求分析 3.1.1用户需求1.通过对用户调查,客户需要以下基本功能:2.接收和处理传感器发送过来的信息;3.处理传感器信息并通过GPRS模组发送给用户;3.1.2需求分析本课题主要通过远程网页控制开发板中的LED灯,获取温湿度的状态信息,并且能够通过GPRS模组发送消息。在网页用户能够看到开发板上的LED灯亮灭情况,并且相应的操作对灯进行控制;用户也能通过网页对家庭温湿度进行控制,超过范围将会对家里温湿度值发给用户;对于GPRS模组,主要是用户可以通过网页发送消息给想要的联系人。(1)GPRS接收信息处理 先初始化开发板的串口配置,然后处理接收串口发送过来的信息,进行字符串分析并处理,得出相应的命定,处理相应的。(2)处理 信息及画面显示主要是将传感器所得到的信息给获取出来, 然后显示在显示在网页上。如果超过安全值,则将在网页上显示警告信息。(3)系统结构图根据分析,得出以下硬件结构如下图3-2所示:图3-23.2基本功能模块及解决方案本节首先对客户需求进行分析得出智能家居基本四个功能模块,然后分析国外各种技术的优缺点,确定课题各模块的功能,最终提出一套自己的智能家居体系。3.2.1基本功能模块 目前国内的智能家居行业处于一个初期的发展阶段,还没有形成一个公认的标准,而且现在的智能家居一般用在住宅或住宅小区,不同的环境对智能家居要求不一样,还有些居民想要有独特的个性化设计,满足自身的需求。在这样不同的要求下,不同的开发商在实施智能家居时有了各自的解决方案和施行方法。有的注重安全防范,有的注重智能控制,有的喜欢有个全面的智能家居系统,满足各方面的需求。但是不管怎样主要模型如下图3-1:图3-1(1) 对外通信模块 智能家居的设计主要是为满足人们对家居环境的舒适,方便,环保。家庭对外通信模块在智能家居系统中扮演着非常重要的角色,使用户能够远程控制家里设备。该模块的功能主要是通过家庭与外部通信链路之间的通信,其中可以使通过GPRS模组,网络等发出特定的指定。随着科技技术的不断发展,智能家居的通信模块的功能得到加强,方法也变得多样化。在过去,只能个完成简单的指定信息,而且传输方向是单方向的,现在提供跟多的数据信息,主要包括通信双方之间的交流、商务信息、娱乐、消息教育信息等。现在的通信方式从英特网再到GPRS,通信方式也越来越多样化与简单化。本项目是用GPRS与英特网远程控制家居设备(这是本项目的主要特色之一),也就是用手机给家中的GPRS模组发命定或者通过英特网访问家中web服务器。使用GPRS模组的好处是,只要手机有信号的地方就能给家中智能家居系统发消息,且成本低,环境影响少。(2) 网关模块家庭网络就是在家庭内部通过不同接口与其他设备相连接,并能进行信息交互,然后并通过家庭网关与外部网络相连,形成面向家庭的业务提供平台。家庭网关在智能家居实现过程中非常重要,没有网关,智能家居就无从说起,所以网关是实现智能家居的基本。家庭网关是家庭私网与外部公网的相连接的关口,他不但能使家庭内部能够对公网的进行访问,又能使用户从公网上对家庭网络的访问和控制,另外还能够对家庭设备进行调控,因此,家庭网关成为智能家居的重要部分。 本项目用的是三星公司生产的s5pv210芯片作为嵌入式家庭网关,他是ARM8的芯片。之所以选择该芯片是基于以下几点考虑; (1)它支持Windows CE和大多数linux系统,而且还带有MMU; (2)它的主频能过满足一般家庭数据传输的需要;(3)他的GPIO口比较多能满足用户的需求;(4)他有一个以太网口供我们接入英特网。(3)设备自动控制模块智能家居是将更多的设备通过某种方式连接,能够将他们的统一在一起便于集中控制,给家庭生活带来方便。现在,家庭自动化控制是现代智能家居最基本的功能,因此也就成了最基本的模块。本项目中,LED灯与开发板相连,可以通过GPRS模组发短信或者通过访问网页对,对led灯进行控制。网页能够不断的向web服务器请求温度传感器的数据,CGI能够获取温湿度传感器的信息,并将此传给网页,也可以通过网页给温湿度传感器设定范围值,当湿度或温度超过范围就会给客户发警告信息。3.3 硬件模块设计本节主要介绍项目中的硬件选择。硬件是智能家居系统实现的基础,通过硬件测试来确定本项目中的方案是否可行。本节通过子模块为列自来说明整体硬件的设计。由于该开发板资源丰富,内容复杂,只对实验中用到的S3 C2440的寄存器进行阐述,如GPIO口的寄存器GPnDAT, GPnCON, GPnUP和DART口的寄存器ULCONn, UCONn, UFCONn。然后阐述了系统硬件连接及测试的整个过程,由最基本的开发板连接、温湿度传感器、GPRS模组,直至将几个功能模块集合到一起,进行测试。3.3.1 硬件选型硬件选型是是整个项目实行的基础。目前项目中,智能家居解决方案有以下三种选择:(1)用一个开发板做家庭网关;(2)弄一个单片机,自己手动连接电路,自己去开发一个家庭网关;(3)用一台普通的计算机来做家庭网关。用单片机做家庭网关的话,虽然成本低,但是效益不怎么高,对于用户来说有点麻烦。而嵌入式设备成本不高,执行效益比较高,而且体积小,方便用户使用。所以本次项目选择使用开发板作为这次项目控制中区。(1) GPRS模组GPRS模组采用STM300通讯芯片 ,利用无线移动网络来实现点对点间的全双工通讯。同时,模组支持tcp/ip协议栈,因此可以利用它进行无线上网。模组通过是UART串行接口与主芯片来通信,可以与任何UART串行通信接口的设备进行连接.。该模组具有以下优点:1. 支持EGSM900m,PCS1900M,DCS1800M多种频段,兼容GSM phase 2/2+2. 集成tcp/ip协议,能够无线上网。3. 能够支持包交换广播控制通道(PBCCH)。4. 能够不受限制的辅助服务数据支持(ussb)。GPRS模组与主控制器通讯是通过标准的串口。该模组的接口是10针的,能够与MCU相连。改GPRS模组也可以通过RS232接口与pc机相连。其模组如下图3-3:图3-3(2)温湿度传感器本项中使用的是AM2311湿敏电容数字模块,他是一款含有含有校准数字信号的输出的温湿度传感器。,他使用的是温湿度传感技术与数字采集技术可靠性强,并且稳定性好,适合长期使用。传感器内部有一个高性能的单片机,并且与单片机相连的有两个高精度元件,一个测温元件盒一个测温元件。每个传感器传感器都是在精确的温湿度教验实中进行检验校准的,且校准的系数以程序的方式存储在单片机中。传感器内部处理数据的时候要调用这些系数。用户可以直接挂在模组的i2c通信接口上,使用简单。本产品具有超快响应、抗干扰能力强、品质卓越性价比极高等优点。该产品为4引线,通信接口连接方便。特殊封装形式可根据用户需求而提供。以图3-4下是模组基本模型:图3-43.3.2 硬件连接及测试先将ARM8的开发板与PC机连接及测试 首先按照2440资料进行硬件连接。(1)先将5V的电源与开发板相连接。 (2)将开发板的串口与电脑相连。 (3)给开发板和电脑分别接上网线。 在PC机上建立超级终端来对开发板进行操作: (1)运行windows xp下的开始一程序一附件一通讯*超级终端; (2)第一次建立超级终端是会询问是否将“HyperTerminal”选择为默认程序,选择“否”就可以了; (3)然后会要求输入区号、电话号码等信息,可以随便输入一些数字,不会有什么影响; (4)为了容易区分其他的超级终端,建议将新建立的连接命名为ARM,如图3-5。(5)再按确定之后,会出现一个端口属性设置的对话框,将端口的波特率设为每秒115200,数据位为0,奇偶校验为无,停止位1,数据流控制位无然后点击确认即可。为了方便以后使用然后将新建立的超级终端放在桌面上,如果连接好后,启动开发板,能看到一些信息,说明连接成功,图3-5设置正确,如图3-6。 图3-6 开机时,超级终端信息如下图3-7所示:图3-73.4 平台搭建3.4.1 内核移植开发板加电之后,会运行一段代码,引导加载程序bootloader,完成初始化硬件设备,映射好内存,将系统的软硬件环境配置好,为最终的启动操作系统作好准备。在嵌入式系统中Bootloader对硬件要求比较严格,不同的版本系统要求有不同的bootloader,现在常用的bootloader主要有ARMboot,REDboot,u-boot,blod等等。本次项目选用的是u-boot。U-boot在目前功能比较全,灵活性比较高,并且开发的bootloader是开源的,它支持处理器种类比较多,比如ARM,x86,MIPS等,能够支持很多种嵌入式系统的内核,由著名的Wolfgang denk软件工程师和denx软件工程师来维护。移植u-boot,主要是看硬件配置中的处理器是否相同,体系结构是否一样,然后是外围接口是佛相符合。如果差不多就可以移植u-boot内核,否则不能移植。本项目使用的是s5pv210的开发板,内核使用的是桂林电大爱普已经编译并配置好的内核,只移植即可,本项目中主要是通过双绞线来烧入内核的,其主要步骤如下:(1) 先将开发板与pc机的网线相连。(2)打开Tftpd32.exe这个程序,设置好内核地址。Tfpd32.exe能够通过双绞线给开发板传送数据的。(3)打开超级终端,然后接通开发板的电源。在超级终端出现倒数3,2,1的时候键盘点击任意按键即可。然后在超级终端敲入 update image命定,等待内核烧入完毕。3.4.2 boa服务器的移植(1)编译boa程序1.首先在上下载boa-0.94.13-src.ar.gz文件2.通过解压器解压文件 $ tar zxvf boa-0.94.13-src.tar.gz3.编译文件 $ Cd ./src$ ./configure(2)boa服务器的移植在运行./configure后按下面步骤修改Makefile文件:将:CC = gccCpp =gcc -E改为:CC = arm-linux-gccCPP = arm-linux-gcc -E 修改完之后再开发板完之后建立相关文件及目录$ cp boa-0.94.13-src/mime.types ./etc 将mime.types文件拷贝到开发板/etc目录下在boa-0.94.13-src/src文件夹下运行./boa程序,即可运行服务器3.5系统程序设计3.5.1 web与CGI的编写Web服务器运行于开发板中,用户可以通过互联网访问开发板www文件夹中的html文件,以网页形式打开,html能够与web服务器通讯,当用户对网页进行操作时,就会触发web服务器中相应的cgi程序。所以对html文件的编写很重要。其中编写主要流程如图3-8:图3-8(1) 登陆web浏览器的设计登陆界面的设计是为了不让随便一个人能够登陆自己家里的web服务器,对家里的设备进行操作,这样做也是为了安全性的提高。本次项目中是在局域网内操作的,目前开发板使用的是静态ip为,所以用户可以在web浏览器中通过格式 ip+端口+目标html文件,即可对家庭登陆网页的访问。下图3-9是登陆网页的界面:图3-9假设网页登陆密码与账户是admin 和123。输入密码和账号点击登陆,就会通过javascript脚本与web服务器中的cgi进行通讯,核对账户与密码是否正确。其中主要代码如下:Html调用javascript里的函数:/这样就可以调用login.js里面的函数了。账户  /输入账号的文本框密码  /输入密码的文本框      /点击登陆后就会访问login.js文件中的check_user函数 Javascript与cgi的通讯部分:Functiong check_user(usrname,pwd,urll_data,type)Var xmlhttp_object = createXHR();Var URL =g_url;If (0 = type)URL+=“/CGI-bin/login_check.cgi?”+”usrname=”+usrname”&usrname+”&pwd=”pwd;/组合准备发送的命定,Ellse if(1=type)URL +=”/cgi-bin/login_check.cgi?”+url_data;Var xmlhttp_status;If(xmlhttp_object)Xmlhttp_object.open(“CGI”,URL,false);Xmlhttp_object.setRequestHeader(“If-Modified-since”,”0”);Xmlhttp_object.send();Xmlhttp_status = xmlhttp_object.status;If(200 = xmlhttp_status)Return xmlhttp_object.responseText;Xmlhttp_object = null;ElseAlert(“please check the Bowser!”);其中字符串变量URL是来与cgi通讯用的。URL +=“/cgi-bin/login_check.cgi?”+”usrname=”+”&pwd”=ppwd是用来拼接字符串的,将想要的字符组合在一起,并与web服务器中cgi-bin文件夹下login_check.cgi进行通讯。Xmlhttp_object.send发送消息的函数。Return xmlhttp_objet.responsetext 将结果返回给网页,Alert(please check the Bowser!)如果输入错误将会出现一个对话框提示错误。CGI程序:data = getenv(QUERY_STRING);/获取javascript发送过来的字符。sscanf(data, %d, &status);/解包,获取想要的字符。Printf(“%d”,Strcmp(status,”admin1234”);/strcmp函数式用来匹配账户密码是否与admin1234是否相同,相同则返回0,否则是非0的,然后将值通过输出函数返回给javascript。登陆成功的界面会进入控制台界面,然后就可以对家庭一些设备进行选择性的控制。其中界面如图3-10:图3-10点击LED灯,发消息,温湿度的监控会显示不同的网页。其中跳转代码如下:window.location.href = g_url+/LED_control.html;/跳转到灯的控制网页window.location.href = g_url+/Send_message.html;/跳转到发送短信网页window.location.href = g_url+/home_humiture.html;/跳转到获取温湿度网页(2) LED灯的控制界面与CGI的编写项目中LED灯的控制是智能家居中一个重要的组成部分,为了能让项目具有稳定可靠性,LED灯的状态必须能够与时时与网页同步。在LED灯的控制界面中,用户可以点击界面的LED灯控制按钮,对开发板相对应的灯进行操作。当灯熄灭时,点击则会打开LED灯,当灯打开时,点击则会开启。这样用户可以在远地办公,也能及时关闭家中未关闭的灯光,也可以提前回家的时候开启家里的灯火。并能提倡节约用电,绿色环保生活。图3-11是LED灯的控制界面图3-11其中CGI主要处理代码如下:(1)获取状态信息:Int data;Read(led,&data,sizeof(data);If(data & 0x02)/先判断第一个灯的信息Led1 = 1;ElseLed1 = 0;If(daa & 0x04) /第二个灯的信息Led2 = 1;ElseLed2 = 0;If(data & 0x08) /第三个灯的信息Led3 = 1;Else Les3 = 0;Printf(“%c,%c,%c”,led1,led2,led3); /把灯的信息发给页面Close(led);CGI先是获取当前LED灯的状态信息。Printf(“%c,%c,%c”,led1,led2,led3);通过printf输出,将信息发给网页,网页通过判断,将网页图片进行跟换。(2) 修改灯的信息:Led =open(“/dev/gpH0,O_RDWR”);printf (“content-Type:text/htmlrn”);Printf(“rn”);Char *query = getenv(“QUERY_STRING”);/控制获取命定Int data;Read(led,&data,sizeof(daata); /获取LED状态If(query !=NULL)&(strlen(query)0)Int light,on_off;If(sscanf(query,”led%d=%d”,&light,&on_off) = 2)If(on_off)Data |= (0x02 light);Write(led,&data,sizeof(data);ElseData &= (0x02 light);Write(led,&data,sizeof(data); Close(led);int led = open(“/dev/gpH0”,O_RDWR);/打开设备文件描述符,其中gpH0是LED灯的驱动文件,存放在dev目录下。Led是文件描述符,对该文件描述的操作,则是对LED灯的操作。O_RDWR是给文件描述符的可读可写权限。Read(led,&data,sizeof(data);/获取灯的状态信息,并存放与data变量里。Char *query = getenv(“QUERY_STRING”);/这句语句是为了获取从网页上发送过来的命定,下面的外层if条件是判断发送过来的命定是否合法。内层if语句是为了给灯的状态置反。close(led)关闭文件描述符,使用完后要进行关闭,释放资源。(3) 温湿度控制界面与CGI的编写家庭温湿度的检测,对于客户来说是必不可少的部分。客户能够在外办公的时候,偶尔能够关心关心以下家里的情况,是否有煤气或者家里湿度过大,有没有温度过高情况。本项目中也特意添加温湿度的监控,客户能够在办公闲余看看家里情况。这样做也有利于家里做好防火防湿。具体情况请看下图3-12:图3-12在检测温湿度一列会显示温度与湿度,用户可以在网页上设置温湿度的最值,超过范围,网页会通过CGI发送消息给用户,并且网页也会显示警告。这样双重提醒,有利于提高办事效益。其中html中 /这句语句是在点击提交后将温湿度最值进行修改。温度监控接口函数如下:float AM_get_temp(int fd)Int rev_buf2 = 0;If(fd = -1)Return -1;ElseRead(fd,rev_buf,sizeof(rev_buf); /*读取驱动文件*/Return (rev_buf0/10.0); /处理读取的数据其中fd是温度传感器的打开的设备文件描述符,read函数读取温湿度的数值。并将结果存放于rev_buf0中。湿度监控接口函数:Float AM_get_humidity(int fd)Int rev_buf2 = 0;If(fd = -1)Returm -1;ElseRead(fd,rev_buf,sizeof(rev_buf);Return (rev_buf1/10.0);这里也是面差不多,fd与renad跟上面的一样,只是结果存放于rev_buf1中。至于短信报警功能将在发送消息的地方进行详细说明。(4) 发送短信如果有一天你在外,忘记带手机了,你想给你家人或朋友发个消息,或者打个电话,那就试试这个吧,虽然不能让你进行电话,但是能够发个短信,能你家人或朋友知道你状况。图3-13是发送短信的界面:图3-13你可以在TELNumber中输入手机号码,在Messages中输入你想说的事。然后网页会将信息传送给CGI,CGI会按AT命定的方式将消息发送出去。这里先说下AT几条常用的AT命定吧。AT 命令来控制MS(Mobile Station)的功能,与GSM 网络业务进行交互 。用户可以通过AT 命令进行呼叫、短信、电话本、数据业务、补充业务、传真等方面的控制 。(1)AT+CSQ 命定格式:AT+CSQ检查网络信号强度与sim卡情况 。返回值+CSQ:*,# 其中*值在10到31间,越大信号越好,#的值一般是99,否则天线与sim卡没接好。(2)短信操作1.AT+CMGF 选择消息格式 设置:TEXT格式:AT+CMGF=1选择消息为TEXT 或PDU 格式 用PDU 格式包括所有头信息的短消息以二进制方式传送写成十六进制的格式 用TEXT 格式命令和响应均为ASCII 字符 选择的消息格式存储在EEPROM 里 命定格式: AT+CMGF 作用:查询当前值返回值:以text方式 +CMGF :1OK2.检测命定格式:AT+CMGF 返回:+CMGF:(0-1)OK 3.AT+CSDH 显示 TEXT 方式参数 该命令为TEXT 方式的结果代码格式:AT+CMDH作用;可以查询当前值。返回:+CSDH:0 OK4.AT+CMGR 读取手机卡的短信消息命令格式AT+CMGR= 采用text 方式的响应 +CMGR:, , 对于SMS-DELIVER +CMGR:, , , 对

温馨提示

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

评论

0/150

提交评论