基于Web方式的智能家居远程监控系统的设计与实现分析研究 软件工程专业_第1页
基于Web方式的智能家居远程监控系统的设计与实现分析研究 软件工程专业_第2页
基于Web方式的智能家居远程监控系统的设计与实现分析研究 软件工程专业_第3页
基于Web方式的智能家居远程监控系统的设计与实现分析研究 软件工程专业_第4页
基于Web方式的智能家居远程监控系统的设计与实现分析研究 软件工程专业_第5页
已阅读5页,还剩82页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

摘要智能家居是未来家居的发展方向,其利用先进的网络技术、计算机技术和无线通信技术等将家居中的各种电子电气设备连接起来,统一管理、远程监控和资源共享,实现了高效、便利的生活环境。基于此背景,本文设计了基于Web方式的智能家居远程监控系统。OMAP3530Linux操作系统的Internet方式的智能家居管理与控制系能。论文首先对智能家居和远程监控系统的概念及国内外发展现状和趋势进行了阐述,通过对比家庭内网和外网的联网技术,从而得出本设计采用的技术标准;然后,分析了智能家居远程监控的功能需求、智能情景模式的设置和设备信息的组成,得出智能家庭远程监控系统Linux操作系统的移植过程,构建了软件平台;接着,介绍了实现基于boaSQLite数据库的移植、CGICGI操作界面;最后,总结论文取得的成果,提出了下一步工作的重点和方向。关键词:Web,嵌入式Linux,远程监控系统,Boa,SQLiteABSTRACTTheSmartHomeisthefuturedirectionofhomelife.Ittakesadvantageofnetworkingtechnology,computertechnologyandwirelesscommunicationtechnologytoconnectallkindsofelectronicandelectricalequipmentathometorealizetheunifiedmanagement,remotemonitoringandresourceshare,makingthelifemoreefficientandmoreconvenient.Consideringtothissituation,thepaperdesignsthesmarthomeremotemonitoringsystermbasedonWebtechnologies.Inthispaper,basedontheOMAP3530hardwareplatformforSmartHome,asoftwareplatformofembeddedLinuxoperatingsystemwasbuilt,asrelatedprogramsincluded.ThroughtheInternet,themanagementandcontrolsystemofSmartHomewasdesigned,whichhasrealizedthesefunctionsofthecontrolofuseraccess,themanagementandcontrolofhomeappliances,theregistrationandconfigurationofhomedevices,thechoiceofscenemode.Firstly,thepaperintroducestheconceptofSmartHomeandremotemonitoringsystem,andelaboratesthedevelopmentstatusandtrendsofSmartHomeindomesticandaboard.Itcomparesseveralnetworkingtechnologiesofhomenetworkandexternalnetwork,andthenthetechnicalstandardstobeusedaredecided.Secondly,accordingtotherequiredfunctionsoftheSmartHomeremotemonitoringsystem,thesettingsofintelligentscenemodeandthecompositionoftheinformationdevices,theschemedesignofthesmarthome’sremotemonitoringsystemisdesigned,whichcontainsthesystermoftwarearchitecture,thesystem’sbasicoperationonequipmentandthedefinitionofthedevicedescriptionfiles.And,thesoftwaredesignonthetransplantationoftheembeddedLinuxoperatingsystemisdescribedindetail.Then,thethesisfocusesonthethekeytechnologiesoftheWeb-basedmonitoringsysterm,includingthetransplantationoftheembeddedboaserverandtheembeddedSQLitedatabaseandtheworkingprincipleofdynamicinteractiveprogramCGI.ThroughtheprogramCGIandthedatabase,whichhandlesthedevicedescriptionfilesandtheintelligentscenemode,inthebrowsertheWebuserinterfacecanberealized.Inconclusion,thefruitsofthepaperaresummarizedandthefocuspointsanddirectionofthefurtherresearchareproposed.Keywords:Web,EmbeddedLinux,RemoteMonitoringSystem,Boa,SQLite目录摘要 IABSTRACT II目录 III第一章绪论 1课题背景及意义 1智能家居概述 2智能家居及远程监控系统概述 2国外智能家居发展现状及趋势 3国内智能家居发展现状及趋势 5论文主要工作及组织结构 6本文主要研究内容 6本文组织结构 7第二章智能家居远程监控系统的需求分析 9家庭内网组网方式选择 9远程监控方式选择 10智能家居远程监控系统结构 智能家居远程监控系统的各个子系统 13各个子系统的功能 14智能情景模式的定义 16智能情景模式的设置 17设备信息的介绍 21第三章智能家居远程监控系统方案设计与平台搭建 23系统的软件方案设计 23系统的软件架构 23系统对设备的基本操作 25设备信息描述文件 26系统的硬件平台介绍 30系统软件平台的搭建 32嵌入式Linux操作系统的概述 32嵌入式Linux系统开发流程 33嵌入式Linux操作系统的移植与实现 34第四章基于方式的家庭远程监控系统的技术实现 37嵌入式服务器平台的建立 37嵌入式服务器的选择 37嵌入式服务器的移植 38CGI工作原理 41嵌入式数据库的构建 42嵌入式数据库的选择和特点 42嵌入式SQLite数据库的移植 43SQLite的接口函数与SQL语句 44CGI动态交互程序 47第五章基于方式的家庭远程监控系统的界面实现 57用户登录功能 57家居控制的界面 60用户认证设置 60智能照明系统 61家庭电器系统 63家庭安防系统 64设备添加 65情景模式的界面 69第六章总结与展望 71本文总结 71下一步工作与展望 71参考文献 74第一章绪论课题背景及意义2080国防、商务、金融、企业管理和办公都已经离不开网络和信息技术。通过信息的传递实现社这是课题研究的社会背景。CPU科技发展的新动向,智能家居的发展得到更多的关注和空间[1]。以上方面是智能家居研究的技术背景。现代科技力量打破了传统的时空界限,借助网络和飞速发展的信息技术,人们可以足不出户纵揽全球。电子商务、远程教育、家庭上网办公、网上购物、网上旅游聊天、社区智能管理等等,以超乎想象的速度改变了人类的生产、生活方式,更深刻地影响到人类的思维模式和生存状态。为了适应信息化时代要求,在家居方面,世界上一些科研机构已经将智能大厦的概念和模式引进智能小区,并进一步引进家庭,而产生智能家居这一概念。智能家居是指将各种信息设备和住宅设备通过家庭网络连接起来,并保持这些设备与住宅的协调,从而构筑成舒适安全的信息化居住空间,满足人们在家中生活、工作、娱乐和交流的需要,提供安全防护、社区管理的手段。InternetWWW/C/SB/S/结构。B/SWWWInternet服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器WWW服务器上下载程序来3G技术的发展使嵌入式设Internet浏览器对嵌入式设备进行远程监控越来越受到人们的关注。因为工业自动化水平的提高,远程控制成了应用越来越多的手段[2];通过远程控制系统浏览器就可以方便地对IPUSBPC,实现对家庭的监控。因此,无论从社会角度、技术、还是经济考在方式下访问智能家居系统以及如何对智能家居系统中的各种设备进行远程控制或监视。智能家居概述智能家居及远程监控系统概述智能家居(SmartHome)是以住宅为平台,具备建筑、网络通信、信息家电、设备自动化等功能,通过将家庭内部所有的电气设备和信息设备连接起来而组成的网络,科学管理家居生活的各个方面,如语音、数据、视频、通信、商务、环保、信息采集、安全防范、智能控制与管理等方面为一体的综合业务平台和快捷、放便、安全的居住环境。智能家居优化了人们的生活方式和居住环境,帮助人们有效地安排时间、节约各种资源,实现了家电控制、照明控制、室内外遥控、窗帘自控、防盗报警、家庭娱乐、定时控制以及远程监视和控制等功能;从而牵动电子信息、网络通信、房地产、智能化装修、小区和家庭服务以及传统家电企业等一大批产业的蓬勃发展,也关系到社会的进步和国家的科技建设。智能家居的体系大体上可以分成三个部分:家庭外部网络、家庭网关和家庭内部网络。家庭外网是指家庭对外能够通过网关与外部网络(如以太网、因特网、广域网)互联进行信访问、控制和管理。家庭网关则是外部网络和内部网络的桥梁,网关能和家庭网络中的设备通过家庭内部网络实现两者的互联,这样就为每个家庭内部设备提供了外部网络的接口,通过这个网关接口,外部网络可以实现对家庭信息设备和住宅环境的配置和监控,实现了家庭内部网络和外部网络对家庭网关这个服务器的访问。内部网络又包括数据网络和控制网络。PC家庭控制内部网络是指通过家庭内部网络连接的所有控制设备并负责所有与信息设备、住宅环境的查看和监控有关的服务平台,通过一定的传输介质将家庭信息设备、自动化设备、安防报警设备等连接起来,采用统一的通信协议,实现所有信息的传输[3]。图1-1智能家居组成示意通过以上对智能家居的系统结构划分和各个组成部分的介绍,我们可以得到智能家居组成示意图,如下图1-1图1-1智能家居组成示意智能家居的远程监控系统是指家庭内部各种信息设备通过家庭网关与家庭外部网络连PC机登录家中的服务器,在通过用户名和密码验证后,便可以通过浏览器端的界面实现对远方家庭的信息设备的查看和管理,例如灯光、家电、窗帘、门禁和门窗磁等基础设施及室内环境的远程实时监视等工作。国外智能家居发展现状及趋势家电业的发展始于20世纪60年代末至70年代初,主要是机械控制和电气控制式家电。从20世纪70年代末开始,由于电子技术的发展,家电的控制方式进入了电子控制方式,80年代微处理器在各个领域得到应用,出现了微电脑控制家电。1998年以来,信息家电受到信息、家电、通信厂商的广泛关注,许多公司想把信息家电作为重要的发展方向,有的公司甚ITPCIntelCisco3ComSony、ParasonicPhilipsSamsungMicrosoftHPIBMEricssonNokia2070其实是以不同的业务重心来向用户推广的。美国的数字家庭是在运营商提供融合业务的大背景下推动的。微软公司与其他公司在家(SP是面向在内存及处理器性能等方面具有局限性的设备、利用电源线的低价格低带宽网络协议。该协议被定义为通UPnPSCPCEBusHomePlug标准共存。美国的ECHELON公司凭借其在楼宇自动化领域多年的经验以及掌握着电力线载波通信的关键技Lontalk通信协议。(MultiediaHoePlator是一项中间件标准,是根据多媒体家庭应用制定的。它是通过一台机顶盒来完成来自卫星信[4]。MHPJava环境,定义了终端设备和应用程序间接口标准,MHP制定目的是允许众多厂MHP提MHP欧洲电信标准协会(ETI)提出了E广域网管理协议”(69,它是下一代网络中家庭网络设备进行管理配置的通用框架和协议,用于从网络侧对家庭网络中的网关、路由器、机顶盒等设备进行远程集中管理。对于英国电信,智能家居上的家庭网关是研究的重点,通过不同的家庭网关的住宅用户可以实现家庭内部控制、宽带网的接入、路由功能。同时,以套餐形式提供的服务例如家庭内部无线联网、无线电话等为家庭网关推广的重点。在智能家居的产品上,法国电信不仅有家庭网关设备,还有提供以下服务:电力线上网转换插座,支持电力线的高速上网;家庭监控,实现家居设备的自动化智能化,如通过Wi-Fi设备控制家庭影院;娱乐功能,比如将数码设备中的图像和摄像头的监控图像上传至网络相册等,功能比较多。在亚洲,对智能家居研究比较早的有日本和韩国。日本有家电王国之称,所以对智能家ECHONET是有关家庭监控应用标准方面的规范,ECHONET的家庭ECHONET控制装置、ECHONETRouter、ECHONET机器设备所构成,采用ECHONET致力于在家庭内部对家用电器的直接控制,也包括通过家庭网关对家电的远程控20024ECHONET规范的产品。韩国是宽带应用最普及的国家,韩国的智能家居的研究被纳入国家的战略规划,200418200760%不同企业标准的产品互联互通的问题,韩国产业资源技术标准提出了“共同通信网络协议”,并且已被国际电工委员会确定为国标标准方案。X-10组网方便CEBusHomePNAEIB。MoCAHomePlug为现存两大家庭网络标准,HomePlug以电源线作为传输媒介,广泛应用于北美高速网络和亚洲及欧洲网络电视(IPTV)A20106月国际电信联盟(ITU-T)1G/s无法和现HomePlugHomePlug联盟中不同厂商所制定的标准也存有不兼容的问题。通过以上不同国家智能家居的发展过程,可以看出它们对智能家居的发展方向和推动主体有一定的差异:美国的数字家庭推动主体是电信运营商,所以智能家居的发展主要通过电力载波线来实现,将传统电信业务发展到家庭内部;欧洲的家庭网络发展的核心产品是机顶盒,并实现数字广播业务等;韩国的智能家庭的发展推动者是国家,并制定标准统一的产品融合方案,带动了整个产业链,普及了智能家居的应用,值得中国借鉴。国内智能家居发展现状及趋势2090年代的末期,2004—2009年为智能家居缓慢起步时期,2010—2020110%发展为网络家电,数字家庭的产值可到200亿元以上。2003TCLIT巨头成立了“闪联”“息设备资源共享协同服务”标准(IGRS)的建立,以推动数字办公领域的标准化[5]。2004年海尔、清华同方等六家成立“e家佳”联盟,以实现智能家庭的产业化。2005国际消费电子博览会上,提出了网络家电“e家”,实现的智能化产品有多媒体娱乐一体20077DNet-home,它集成了十多种关键技术,实现媒体中心、监控系统、安防报警系统、三表IGRS独特终端加平台的产业化模式,长虹与多个集团合作的“e家”TV载体,承载家庭的广泛连接服务[6]。根据国内智能家居的发展历程,可以发现国内家庭网络的标准和规范主要有e家佳标准和闪联标准。e家佳标准主要目的是将家庭内部通信、娱乐、电气控制、安防报警等多种功能融合在同一个家庭网络平台中,实现数据交互、统一管理,并通过网关实现与外部公众网络的数据交互业;闪联标准的目的是在家庭、办公和公共环境中,通过定义一系列的协议标准,让各种信息设备、家用电器、通讯设备之间资源共享和协同服务。通过以上发展的过程可以看出,我国企业在智能家电、安防系统、智能家居体系方案等各方面的角逐已经开展。智能家居建设在技术上面临的挑战不是设备和实施问题,主要是标准和协议问题。相关智能家居行业的标准制定,使智能家居产品方向更加明确,但是还欠缺[7]。论文主要工作及组织结构本文主要研究内容户进一步选择操作,并把最终操作要求提交给家庭内部网络控制系统;操作对象的设备所属功能参数发生变化后,在家庭网关中的设备功能描述文件应该同时改变,以便用户的下一次操作。要实现以上目标,本论文需研究以下内容:1OMAP3530Linux内核的开发与移植以及文件系统的制据库;2定义和设置了能体现智能特性的情景模式;通过功能需求分析,明确设备信息的内容;3模式的组合操作、设备信息描述文件即组成了智能家居远程监控系统的软件设计方案;4boaSQLiteCGI界面显示控制过程,主本文组织结构1再介绍了目前国内外智能家居的研究现状和发展趋势以及论文研究内容和结构。第2章智能家居远程监控系统的需求分析。先阐述了家庭网络的内网和外网的联网技术,通过对比得出本设计采用的技术标准,然后介绍了远程监控系统的完整结构,同时分析了远程监控系统的各个子系统的功能,并重点介绍了智能家居中常用到的智能情景模式的设置,最后根据以上子系统功能和情景模式中涉及到的设备,明确了设备应具有的主要信息。第3章智能家居远程监控系统方案设计与平台搭建。本章重点实现了远程监控系统的方案设计,包括系统的软件结构的设计、系统对设备基本操作的实现过程和设备信息描述文件的定义。然后对系统的硬件平台做了简要的介绍,并搭建了系统的软件开发平台,过程包括嵌入式操作系统的选择、Linux的移植。第4章基于Web方式的家庭远程监控系统的技术实现。通过几种嵌入式Web服务器的CGICGI程序。第5章基于Web方式的家庭远程监控系统的界面实现。结合第2章的远程监控系统功能需求分析和第3章的设备信息描述文件,通过CGI程序实现了各个监控界面和控制过程。第6章总结与展望。对课题研究的工作情况做总结,并指出下一步工作可开展的方向。第二章智能家居远程监控系统的需求分析内部网三部分[8],下面主要介绍家庭内外网络的主要联网技术,通过技术对比选择合适的联能需求、智能情景模式以及设备的信息。家庭内网组网方式选择家庭内部网络用于连接家庭内部各种家庭电器、设备和传感器等[9],目前用于家庭内部(LALocalAreaNetworoePNIEEE139、802.1、超宽带(,UltraideBand、蓝牙、Zigbee等[10]。家庭内部网络分为家庭数据网与家庭控制网。有线联网技术适用于家庭数据网,因为数据网络侧重于高速的、宽带的、多媒体的应用;无线联网技术适用于家庭控制网络,因为控制网络侧重于低速的、移动性好的、检测控制类的应用[11]。X.10、HomePNA和以太网。X.10是一个开放、标准的协议,利用现有的电力线网络传输数据和语音,不用再次布线、覆盖广、连接方便,它的媒质是电力256HomePNA利用家庭具备的电话线,提供统一并标准的组建局域网的规范,完全继承了以太IEEE802.3CSMA/CD(载波侦测多路访问/冲突检测)2.0Qos能力[12];100Mbit/s100m,支持优先级、VLAN等,虽然实际中应用的端点数不多,只有几十个,其实最多支持的端点数没有限制。HomeRFRFIDZigBee(802.15.4)等[13]2.4GHzISM10[14(家庭无线电射频)2.4GHz50次/s751MHz1600次HomeRFIEEE802.15.4全管理和应用软件方面的技术标准,ZigBee没有蓝牙的复杂规格,它的传输速率介于20~250kbit/sZigBeeZigBee还能连接到烟雾传感器和破碎玻璃传感器中,成为家中安全的保障[16]。家庭内部网络联网上根据不同的内部网络选择有线和无线布网技术。根据各种设备的特点,把家庭内部网络分为通信速率较高的家庭数据网络和通信速率较低的家庭控制网络。通过以上分析,家庭数据网络应选择有线传输方式,有线布网技术选择了以太网,因为技术成ZigBee技术。远程监控方式选择家庭外部网络可以是无线宽带网、有线电视网、电话网和因特网等,大多数采用比较成熟的联网技术,比如选用技术成熟、设备现有、价格实惠的因特网。家庭外部网络实现了本地上网工具接入网络,上网工具登录到家庭网关后可以监控家庭内部所有信息设备[17]。下面将对各种远程控制方案做简单的介绍,并对其特点进行比较。遥控家电方式遥控技术是通过一定的手段对被控物体实施一定距离的控制。遥控家电方式有无线电遥控、有线遥控、红外线和超声波遥控等。遥控最大的最大缺点是受距离所限。无线电遥控是利用无线电信号对被控物体实施远距离控制。无线电遥控不可避免的需要占用一定得无线电频率资源,造成电磁污染;常规的有线遥控需要进行专门的布线,而红外线和超声波遥控则受距离所限。现有的遥控方式中,还有载波通信控制手段和基于无线寻呼的遥控方式,载波方式即通过电力线传递信息,该方式只能局限于同一变电所、同一变压器所管辖的范围内,因此也存在距离的问题,应用范围有限。基于无线寻呼的遥控方式利用了现在的寻呼频率资源,不需占用额外的频谱;随着寻呼网的全国联网,其遥控的距离基本不受限制;但这种方式的受控方动作滞后于控制方的操作,不具备实时性,而且不具备很高的可靠性。通过拨打固定电话控制家电这种远程控制方式的过程是指用户拨打一部双音频的固定电话或者手机后,根据语音提示提交密码,可以启动家庭内部主控制器,并进一步控制安装有分控制器的设备。电话的双工通信相对于遥控方式很有优越性,而且现代电话网络已经发展成熟,可靠性高,所以通过拨打固定电话来控制家居方便、实用,并且实现的技术难度不大,比较容易实现控制设计。缺点是没有友好的人机界面,需要拨打电话,一步步进行控制,速度较慢。手机短信控制家电GSM3G网络发到家中的网关状态查询以及接受来自内部安防模块的报警。优点是灵活方便,缺点是要记住控制指令和实现的技术难度大。手机上网控制家电Internet机上网花费较多,实现的技术难度大,比较难实现控制设计。PC远程控制家电通过手持电脑实现智能家居的远程控制,也就是通过互联网络远程监视和控制,系统通过家庭网关把家庭内部网络和因特网相连接,只要在网络浏览器中输入家庭网关的地址,通过身份认证,就可以看到家里的情况,对家里的电气设备进行控制。这样,无论是在公司还是出差在外地,都可以通过上网登录到家里的PC的Web页面进行家电控制。PC是安全隐患比较大,因为所有的控制环境都连接到因特网上。PCPC远程控制家电或手机上网控制家电综合起来是一个不错的选择。智能家居远程监控系统结构远程PC机、智能手机、iPad等能上网工具已经非常普及,加上互联网的迅速发展和广络。方式的远程无论在哪里,都能时刻掌握智能家居内部的所有情况[18]3G智能手iPad等上网工具。TCP/IPZigbeeRS-232串口来实现它们的连接。智能控制以及家居环境和安防的监控等,控制网络的建立需要控制Zigbee中心节点和携带Zigbee[19]Zigbee技术组成的内部ZigbeeMCUZigbee终端节点,Zigbee终端节点将与家庭网关直接进行交互通信,即“直控模式”;对于具有复杂功能的设备,比如说类似空调的终端节点作为设备与家庭网关之间通信的数据传输通道,即“通道模式”。根据以上分析,智能家居远程监控系统的完整系统结构如图2-1所示。2-1智能家居远程控制网络的系统结构本文设计的基于技术的智能家居远程控制网络主要由远程上网工具、家庭网关、Zigbee界面用户可以浏ZigBee终端设备节点完成对家庭设备的具体控制功能。以上三个部分的组合和通信构成了智能家居的远程监控系统。智能家居远程监控系统的各个子系统设备的控制等操作,为智能家居的各个设备的监控和各类场景模式的实现奠定基础。各个子系统的功能智能照明控制系统智能照明系统是智能家居中必不可少的重要部分,完备的智能照明系统不仅能提供具有一定美感和风格的家居环境,更能实现照明模式统一控制和管理,节约维护成本和能源[19]。智能照明控制系统的主要功能特性如下:流和温度太大的变化对其寿命的影响。场景功能:智能灯光系统还提供了不同的场景照明模式,另外用户也可以根据自己的喜欢的灯光组合制定灯光模式。在场景功能中,用户无需逐一去开灯、关灯和调灯,只需要餐厅壁灯打开、顶灯灭掉,营造点蜡烛的昏暗场景。同时,灯光的不同场景模式还可以与其他的家电设备的场景模式一起应用,组合出更有实用性的智能情景模式。多方式控制功能:智能灯光系统的控制方式多样化,主要有家庭网关的操作界面、手持终端、电脑操作界面以及墙壁上的各种控制开关等,用户根据自己所处环境来选择控制方式。如,在客厅沙发上,可以用手持终端控制每一间房间的灯,坐在书桌电脑前,可以一键达到警示作用。家庭电器控制系统(热水器、地暖设备,回到家就可以享用舒适的生活。这些功能都可以通过互联网电脑远程控制方式来实现的家庭信息电器的智能管理与控制。数字娱乐系统晚上因故无法及时回家,担心家中无人,可以通过电脑,启动了娱乐场景模式,虚拟出家中有人的情况:灯光打开,电视正在播放电视节目这样,可预防偷盗[20]。娱乐是智能家居应用的主要体验,多房间共享家庭影音库:数字电视、DVD、电脑等均可作为视频共享源,实现设定模式的音视频播放。主要远程控制功能有房间选择和切换、影院系统的启动和关闭、音视频的选择、音量调节等。另外,还可以设置背景音乐系统,无论是在厨房做饭、客厅小憩、卧室休息、阳台种花,柔和的背景音乐能带来全身心的放松。主MP3FMZigbee每个房间的背景音乐模式一打开,就可以集中控制室内的音频设备,带来听觉盛宴。空调控制用户回家后都想第一时间享受到舒适宜人的环境,空调开启并设置合适的温度和定时,这项功能在智能家居远程监控系统的空调控制中,用户可以在回家途中提前一小段时间用浏览器登录到家中的家庭网关上,启动空调和通风设备等[21]。室内空气可以控制,家居中的车库也同样可以设置空调控制系统,驱车回家停车入库前,启动空调控制系统,清除掉废气,也可自动定时,到早晨的时候车库内更换新鲜空气。空调可以加入场景模式,能实现模式内所有设备的统一控制,家庭设备的控制会更加方便、快捷。洗浴控制疲惫一天后回到家中,希望直接能洗个热水澡,这时候可以用到远程监控系统的洗浴控制选项。回家之前的一段时间里,通过电脑选定家中的热水器,启动并设置合适的参数,实现智能化洗浴控制。电动窗帘控制在智能家居中,客厅和卧室都有窗帘,通过选择电动窗帘,能实现窗帘控制的自动化,省去不少麻烦。在电动窗帘控制系统中,首先选择房间,再选择窗帘模式如开启、关闭或者半帘等,实现单独控制,也可加入其他场景模式,方便人们起居生活[22]。安防系统家庭安防系统是为了保护用户家庭的财产安全而建立的系统,主要的实现的功能有防止Zigbee摄像机、门磁感应器、煤气泄漏传感器、烟雾检测传感器、智能开关、智能主机即家庭网关以及远程控制终端如智能手机或者电脑等[23]。家庭安全防范的工作原理即实现的过程,如下:探测报警器是由传感器和信号处理组成ZigbeeZigbee号通过网关Zigbee另一方面,用户可以通过电脑浏览家居的视频控制界面,实现实时的视频监控,掌握家居的安全状况。按照大的功能划分,家庭安防系统由三个子系统组成:监控子系统、门襟子系统和报警子系统。整个系统的层次结构如图2-2所示。2-2安防系统的层次结构监控子系统:一般来说监控子系统的主要设备有摄像机、录像机和显示器。通常摄像机采用固定摄像机、云台摄像机、球型摄像机。摄像机按照主流的技术可分为模拟摄像机和网络摄像机,采用模拟摄像机只能在住宅内联网监视、录像和回放,如果需要远程监控则需要采用网络摄像机或者至少需要采用视频服务器才能将家庭内部的安防情况传输给远程的PC机上。门禁子系统:主要设备有门磁感应器、电控锁和Zigbee控制器。报警子系统:主要设备和机构主要有安防探头、报警主机和接警中心。安防探头可采用红外探测器、窗门磁、温湿度探测器、烟雾探测器和燃气泄露探测器等。智能情景模式的定义智能家居不仅需要监控各个子系统,更需要有自动感知控制和情景模式的设置。后两者更能体现智能家居的智能型特点。智能家居的智能性很重要的一点就是自动感知性,即各个智能控制系统能够自动感知周围环境的变化,实现各种自动化控制,使居住环境更加舒适,同时又达到节能环保的目的。例如通过外接各种人体感应器、环境光线传感器等,对室内环境温度、湿度、光照等进行监在家庭安防系统中,一旦出现警情,如非法闯入、火灾、煤气泄露、紧急呼救等,触发相应感应器,安防系统会自动向中心发出报警信息,同时启动相关电器、门窗进入应急状态等。因为本文考虑的是人机交互远程控制方案,所以对自动感知控制不多介绍,只实现了智能情景模式。眠模式、晨起模式、离家模式和自定义模式。回家模式是智能家居远程监控系统只需轻点一下触摸屏上的“回家模式”,回家的效果界面把空调启动并设置相应的参数,其它设备也可以通过此方式先启动;客厅的电动窗帘开启;客厅的电视开启到习惯的频道如新闻频道等。CD机开始播放喜爱的音乐等。(通过灯光场景和情景模式的模式号,可以实现多个设备的同时控制,对数据库文件的访问和数据库表的搜索也起到了简化的作用,工作量大大减少,时间的延迟也会变少,这一点对远程监控系统很有必要。智能情景模式的设置下面以常见的两室一厅作为例子,来描述家居的情况,根据以上定义设置主要的智能情GID_H光模式和各种场景模式。其中,两室一厅的房间中各种设备的布局如图2-3所示:2-3两室一厅的设备布局从上图可以看到,这款两室一厅里有以下房间:客厅、餐厅、厨房、主卧、次卧、卫生间、玄关和两个阳台,在上图中标出了家居中灯和各种家电的分布位置,可以得到房间的主要设备如灯、空调、电动窗帘和热水器等具体设置,如表2-1所示。位置(房号GID_H)名称位置(房号GID_H)名称编号参数位置(房号GID_H)名称编号参数客厅(101)大吊灯A1开关主卧(104)吊灯D1开关射灯A2调光射灯D2调光台灯A3开关台灯D3开关壁灯A4调光床头灯D4开关电动窗帘1A5开关,敞开度电动窗帘2D5开关,敞开度空调1A6开关,温度,定时空调2D6开关,温度,定时电视1A7开关,频道电视2D7开关,频道门窗磁感应器1A8开关门窗磁感应器2D8开关餐厅(102)顶灯B1开关次卧(105)顶灯E1开关壁灯B2调光台灯E2开关射灯B3开关厨房(103)顶灯C1开关床头灯E3开关卫生间(106)顶灯F1开关电动窗帘3E4开关,敞开度热水器F2开关,温度,定时空调3E5开关,温度,定时玄关(107)门灯G1开关门窗磁感应器4G2开关门窗磁感应3器E6开关Zigbee在2.4.2义。表2-4情景模式设置情景模式模式号(GID_M)设备名称模式设置回家模式1组(0x01)灯开启:A1、B1、G1;关闭:其他所有灯;空调A6:开启;温度22℃;定时1h;D6、E5都关闭;电动窗帘A5:开启;开启程度为半开;D5、E4都关闭;热水器F2:开启;温度50℃;35min;电视A7:开启;新闻频道;D7:关闭;门窗磁感应器全关闭;睡眠模式2组(0x02)空调D6、E5:开启;温度22℃;定时1h;A6关闭;门窗磁感应器全开启;其他设备全关闭;主卧晨起模式3组(0x03)灯开启:D1、D3;关闭:其他所有灯;空调A6、D6:开启;温度22℃;定时1h;E5都关闭;电动窗帘2开启;开启程度:全开CD或电视2CD开启或电视2开启到新闻频道门窗磁感应器全关闭;离家模式4组(0x04)门窗磁感应器全开启;其他所有设备全关闭;以上介绍了家居必备的各种智能情景模式中涉及设备的设置情况和主要控制的参数情况,主要用于后面第三章的设备控制帧格式的定义,第三章将介绍如何用数据库、Web服务器、交互式技术等来实现上述智能情景模式。设备信息的介绍通过以上介绍的设备可以了解到,设备的信息主要包括设备名、设备的功能、功能的属性值、房号和模式号等。根据每一个设备的情况来设定设备的控制帧格式很繁琐,也不容易统一管理和控制。观察设备的功能属性值,每个设备的功能属性值的类型有很大的不同,例如日光灯的功能属性4m0~8m中的确定值。单选属性值的功能和复选属性值的功能。具有数值属性值的功能,是指这项功能的属性值有一个范围即有最大值和最小值,其属性值为范围中的一个,比如空调的设定温度和定时等;具有单选属性值的功能是指这项功能的若干属性值中只可以选择一种,比如窗帘的升起和降下;具有复选属性值的功能是指这项功能有多个属性值可以多选或者全部禁选,比如门禁机的重置权限和更改密码等[24]。NSMNweb页面上直接输入所需的具体参数值;Sweb(只能选择一种Mweb页面上以复选的形式出现,即用户可以决定禁止或者使能该功能。具体帧格式见3.1.3小节。NSM备进行有效监控。除了功能信息外,设备的信息还要包括各种组号,比如房号和模式号,这些信息需要用户根据实际情况进行配置,下面分别介绍这些信息的定义和作用。(GID_101页面将显示空调的所有信息,这时候需要显示空调的所在房间,让用户一目了然[25]。另外,便。模式号(M,用来指定设备的所在的情景模式和灯光模式,在情景模式中定义了4Zigbee模式号和对应自己的操作,用户实现一键化控制家居时,发送模式控制帧格式给家庭内部控时延小,能快速的控制所有设备。通过对智能家居远程监控系统的各个子系统的功能分析,可以发现,智能家居远程监控系统,实际上,要完成的基本操作是设备的注册、设备的配置、设备的查看、设备的控制以及智能情景模式的控制。这些基本操作的实现方案将在第三章中介绍。第三章智能家居远程监控系统方案设计与平台搭建系统总体设计中,首先根据第二章中智能家居远程监控系统的结构、功能需求以及设备信息的组成,实现了系统的具体软件方案设计,主要内容有系统软件架构的介绍、系统要完成的基本操作以及设备描述性文件的定义;接着,介绍了系统的硬件平台结构,阐述家庭网关上各个子模块的功能以及对远程监控系统的作用;并在家庭网关上建立了智能家居远程监控系统开发的软件开发平台即嵌入式Linux操作系统。系统的软件方案设计远程监控系统是智能家居必不可少的重要组成部分,根据第二章对它的功能描述,智能家居的远程监控系统需要实现以下几项主要功能:智能照明系统、家庭电器控制系统、安防系统和智能情景模式设置。实现这些功能首先要构建系统的开发平台,主要包括家庭网关的硬件平台的选择、软件平台的搭建、软件架构的设计和实现等,下面将重点介绍这些方面。系统的软件架构智能家居系统分成三部分:家庭外网、家庭网关和家庭内网。在这里,家庭网关用双核OMAP3530Mini开发板来实现,并在家庭网关上实现外网需要的服务器、数据库,3-1所示。3-1远程监控系统的软件架构家庭外网要实现的是应用程序的设计,本文的应用程序是基于方式来实现的,由服务器移植安PC手机、平板电脑,就能随时随地进行查看和处理相关业务[26];第三,系统的业务扩展简单方现。Zigbee息传递。ZigbeeZigbeeHTTP服务器、嵌入式数据库以及通用网关接口ITP协议是ebIoGateway(CGI程序之间进HTTP协议来向服务器请求一些内容(动态程序I将处理结果传送到浏览器端,浏览器端可以解析这些内容并显示在屏幕上。并发送给远端服务器去处理,处理结果会放到标准输出中,发送给浏览器端并显示出来;另一方面在服务器端,CGI程序需要完成传递消息的处理,对消息的处理主要有两种方法,一SQLCGIZigbee节点之间Zigbee3-2所示。3-2远程监控系统工作原理图系统对设备的基本操作对设备的基本操作的实现过程:Zigbee控制节点将设备的示新的设备名以便用户进行配置,需要在数据库的对应表中搜索并显示新设备名;CGI页面显示家庭信息设备的设备名和功页面上也有设备的附加信息。配置好的设备信息会传递给家庭网关,并存储在家庭网关界面上用户可以通过按钮选择要查看的家庭信界面上显示实时的设备状态;ZigbeeZigbee智能情景模式的控制:根据智能情景模式中的设备信息,制作了以模式号作为索引的ZigbeeWeb动态交互程序根据“控制帧格式+模式号”Zigbee格式、模式控制帧格式,所以只介绍控制帧的结构。设备信息描述文件NSM3-3、3-4、3-5所示:3-3N型数据帧格式3-4S型数据帧格式3-5M型数据帧格式对各个字段的含义进行解释如下表3-1所示:3-1数据帧格式中的字段含义字段字段含义字段字段含义EquimentName表示该设备的设备名CWCommandWordNNumbervaluePNParameterNameSSingleSelectMINVMiniumValueMMultiplexSelectMAXMaxiumValueFNFunctionNameSTATECurrentStatedescription用以上三种数据类型可以表示所有设备的功能信息,根据以上三种数据类型可以定义相应数据类型的数据库表,用来实现系统对设备的基本操作,以上数据库中的对设备进行描述的表就是设备信息描述文件,主要包括设备的注册表、状态表、模式表、用户信息表。注册表是指对设备功能信息的记录数据库表,主要包括ZigbeeID、设备名、数据类型(DFT)N型数据,功SS型数据,功能的属性值需要记录复选的多个参数值和状态值等。ZigbeeIDCGI程序中对表的查询是根据数据类型来进行,所以根据类型分开的状态表更有利于查询。模式表是根据第二章定义的智能情景模式定义的模式描述表,记录了每个情景模式下设备的具体设置,主要包括模式名、模式号、ZigbeeID、命令字和参数值。用户信息表是指智能家居远程监控系统的用户信息记录表,包括用户名和密码。在远程监控系统的软件架构中,CGISRegisterMRegisterNStatusSStatus表、MStatusMODDFI。以上所有表放在数据库文REGISTER.dbUSERINFO,它放USRER.db中。所有表的格式如下所示,其中表的上行代表了下行的字节数。表3-2NRegister表格式:23012512522ZigbeeID设备名DFT功能名命令字参数名最小值最大值e(ID号ZigbeeID0xBEEZigbeeID0x2520;DFT:N0x21。表3-3SRegister表格式:230125125120ZigbeeID设备名DFT功能名命令字参数名参数值状态值e(ID号ZigbeeID0xBEEZigbeeID0x2520;DFT:S0x55。表3-4MRegister表格式:2301251120120ZigbeeID设备名DFT功能名命令字参数值1状态值1参数值2状态值2其中:DFT:M。

表3-5NStatus表:2112011ZigbeeID命令字参数值房间名房号模式号表3-6SStatus表:2112011ZigbeeID命令字参数值房间名房号模式号表3-7MStatus表2112011ZigbeeID命令字参数值房间名房号模式号表3-8MODDFI表:201211模式名模式号ZigbeeID命令字参数值表3-9USERINFO表:2520用户名密码及描述情景模式的定义。为实现智能家居远程监控系统的功能(1小节备进行基本操作(3.1.2小节I库表进行操作(3.1.2小节。根据智能家居远程监控系统对设备基本操作3.1.2小节,家庭信息设备的控制与智能情景模式的控制都需要控制命令帧格式,即设备控制帧和模式控制帧,它们是网关发送到ZigbeeZigbee式描述帧。其帧格式分别如下表3-10、表3-11和表3-12所示。3-10设备控制帧(Zigbee控制节点)122n(CONHD)总长度ZigbeeIDN型CV+S型CV+M型CV0x033-11模式描述帧(Zigbee控制节点)12n(CONHD)总长度GID_M+ZigbeeID+N型CV+S型CV+M型CV0x193-12模式控制帧(Zigbee控制节点)12帧类型(CONHD)GID_M0x20其中,CV代表“命令字+参数”,帧头为1个字节,它可以区分帧类型。设备控制帧、模式描述帧和模式控制帧的组合过程如下:设备控制帧:当用户在设备功能页面上输入控制参数值后,CGI动态交互程序根据设ZigbeeIDCW2.4.3小节中以两室一厅的家庭,根据智能情景模式的定义,设计了表2-4即智能情景模式设置。表2-4对应着所有智能情景模式在数据库中MODDFI2-4MODDFI3-6MODDFI的树形数据结构图。MODDFICGIZigbeeZigbee节点将记载此模式描述表,所以在情景模式控制时,Zigbee节点只需要知道控制帧类型和模式号。图3-6MODDFI的树形数据结构图在智能家居远程监控系统页面上,用户选择智能情景模式后,CGI“控制帧头+模式号Zigbee节点根据MODDFI表,实现智能情景模式的设置。系统的硬件平台介绍智能家居远程监控系统的主要部分是家庭网关,本文中家庭网关选用OMAP3530处理器,FPGAZigbeeWCDMA3-3所示。3-7智能家居远程监控硬件结构图OMAP3530MiniARMCortexA8CPU双核处理器,600MHz1GbDDRSDRAM,并提供多个标准接口,如调试接口、USB2.0HOSTSD/MMCPC标准的设备。此模块实现的是一个精简、配备齐全的计算机系统,可以实现并管理各种业务[27]。家庭网关中还扩展了另外几个功能模块,它们的功能分别是:FPGAFPGAIP175D的通信,以太网模块实现了网络接口的扩展,这样既可以让家庭网关连接到外部网络,又能实现家庭内部数据网络。ZigbeeZigbeeZigbee节点能Zigbee关的通信通过串口来实现。WCDMA模块:这个模块的功能是使家庭网络与电信网络相通,是无线网络接入模块。以上模块的组合构成了功能丰富的家庭网关,实现了家庭内外网的互联,对于智能家居远程监控系统的建立创造了必要的条件,远程用户通过外网访问家庭网关,并通过内网实现控制家居生活,对于数据网络则不是智能家居远程监控系统的主要内容,因此不作太多的介绍,下面介绍智能家居远程监控系统的软件平台的搭建。系统软件平台的搭建Linux操作系统的概述LCD的控制功能,再加上其成本低,所以控制领域上应用越来越多。Linux、WindowsCE、µC/OS-Ⅱ、等。下面就比较分析它们,并说明选择嵌入式Linux的理由。WindowsCEWIN32APIARM、x86、MIPSSHx使用同样的函数和界面风格,也支持其编程工具,所以很多应用程序经过简单修改WindowsCE执行了[28],因此开发的便利性很好。不过它的缺点也很RAM太多、需要版权费用等。µC/OS-ⅡANSIC64学习用时,可以通过购买有关书籍获得,当商业用时需缴纳版权费用,价格不高。µC/OS-Ⅱ时需要自己实现很多驱动程序以及文件系统操作程序,因为它只是一个实时内核。是一个实时操作系统。本身系统开销较低,而且任务间通信以及中断处理等灵活,延迟较短,因此系统的实时性很好;最让用户满意的特点是可靠性系统中根据用户自身需要加入系统模块,即此操作系统具有可裁剪性,因而有良好的持续发展能力。不过支持的硬件较少,其源码不开放,费用比较高。LinuxUnixUnixLinux的缺GUI界面而调试不太方面。indowsCExorks-ⅡLinu。不仅仅是因为它的源代码开放和免费、驱动丰富、内核可裁剪等优点,更是因为,主机上的LinuxLinux下执行,实现软件资源共享。Linux系统开发流程PC机为它构建基本的软件系统,并烧写到设备中;另外,嵌入式设备的资源不足以用来开发软件[29]。所以要用到交叉开发模式:在主机上OMAP3530(l)主机LinuxOS的安装本文是基于Ubuntu8.04,此版本易安装和使用。首先是下载虚拟机,通过它来使用映像文件安装Ubuntu。这版系统已经连接了互联网还启动了nfs服务和HTTP服务。建立交叉编译环境源文件不能运行于设备上,要经过编译生成的可执行文件才可以运行于此平台;不同平台编译出的可执行文件放到另一个平台不能运行,需要交叉编译。PC机上的编译工具链为gcc、ld、objcopy、objdump等,它们编译出来的程序在x86平台上运行,要编译出来能在ARM平台上运行的程序,必须使用交叉编译工具arm-linux-gcc等[30],本文采用的是arm-none-linux-gnueabi-gcc等,通过网络下载并安装,安装后还要将交叉编译工具链的路径加入环境变量中,即修改/etc/profile文件。BootLoader系统上电后,有小段程序会实现如系统时钟的变更、存储控制器的初始化、内存加载代码中等操作,这个初始化硬件设备、转备好软件环境、最后调用操作系统内核的一小段程序就是BootLoader。源码公开,可以在网络上获取,本文移植的是X-Loader、U-Boot。Linux内核LinuxLinuxLinuxUboot程序的启动时,LinuxUbootLinux内核的版本为Linux-8。(4)构建Linux根文件系统根文件系统里面应该包含各种目录,目录下有各种文件,比如库文件放在/bin下,配置文件放在/etc下以及可执行程序放在/binLinux它们。本文根文件系统创建的工具选择了Busybox。Linux操作系统的移植与实现ICETEK-OMAP3530-Mini板,Mini板的启动方式常用的有两种:NandFlashJ14SDSD卡启动对于研SDWindowsXPSDFat32格式,通过设置SDSDFat32分区和Ext3分区,分别是启动分区和文件系统分区。从SD开始启动的话,过程如下:SDSDFat32XLoader加载程序,首先把它装配配置到存储XLoader。XloaderUBoot程序到存储器UBoot开始执行。D2UBootuIage读到存储器中,通过解压缩uImage使内核运行。内核启动后进行以下流程:硬件的再次初始化、文件系统的启动和执行等。UbootLinuxKernelLinuxFilesystem。以下就分别介绍它们的移植过程。Xloader程序XloaderBootLoaderTIx-loader1.4.2cdICETEKWork/projects打开复制到得目录;复softwarexloadercp-R../software/v2/xloader.make进行编译,x-loader.binNANDFlash类不能片上运行,不可以直接signGPsignGPx-load.bicpx-load.bin.iftMLOMLO,MLOSD卡XLoaderMLOSD移植完成。XLoaderROMNandFlash、OneNandFlashMMC/SD器件的加载功能。XLoader的作用是一是少量UBootUBoot加载进来并使之运行。XLoader程序运行在片内存储器,所以其程序较小,功能不可能过于复杂。Uboot程序BootLoaderU-BootUboot程序可以互联网上下载,也可以使用已经安装系统里的程序,在software目录下版本是ICETEKWork/projects/KscopeUboot程序并可以设./mkscrboot.srcmake的编u-boot.binSDUboot的移植过程。UBoot启动程序比较复杂,它实现了SD卡中内核压缩文件的加载、解压缩,并使内核运行。下面介绍uImage的生成。内核移植LinuxOMAPLinux2.6.28版本。software/v2拷贝到/home/davinci/ICETEKWork/projects/下;用命令makeuImageuImage在arch/arm/boot目录下,Linux操作系统核心;因为有些模块在内核需要它们的时候才用文件系统中加载到系统内存中,所以是与/ICETEKWork/projects/kernel目录下输入命makemodules,编译生成了系统各驱动模块的文件,一般文件后缀为.ko;这些模块要安装在/home/davinci/ICETEKWork/install目录中。用export命令列出Ubuntu环境变量,若有declare-xINSTALL_MOD_PATH="/home/davinci/ICETEKWork/install/"这一行,则已经在此目录中;若没有,则用命令exportINSTALL_MOD_PATH=/home/davinci/ICETEKWork/install/设置,再用makemodules_install编译内核可加载模块,实现这些内核可加载模块安装到要求的目录中。uImageSD分区,完成内核编译和移植。Linux(Xloader和系统Linux文件系统,用来存放系统配置文件和操作系统支持的其他功能文件,下面就介绍文件系统的建立。Linux文件系统的建立采用流行的BusyBox来建立精简的Linux文件系统,选用busybox1.12.2,可在互联网上(\h)下载。tarzxvf../software/busybox-1.12.2.tar.gz将源程序文件解压缩,生成目录/home/davinci/projects/busybox-1.12.2。为编译生成OMAP3530的代码,需要修改编译器。在busybox1.12.2目录下打开Makefile文件,命令为geditMakefile,修改164行为CROSS_COMPILE?=arm-none-linux-gnueabi-后存盘退出gedit。make、makeinstallBusybox,在/busybox-1.12.2/_install目录下,可以看到编译结果。cp-av../../Demos/runtimeslib_install/lib。_install下必要目录的建立:mkdirrootdevhomesysetcetc/init.dproctmp。每个目录的配置文件可以复制/home/davinci/ICETEKWork/Demos/files目录下的文init.drcS需要被设置可执行属性。用命令sudocp-av~/ICETEKWork/projects/busybox-1.12.2/_install/*/media/EXT3把建SDEXT3sudocp~/ICETEKWork/install/*/media/EXT3,这时候得到的文件系统总共大约占12M字节空间。至此,系统文件制作完毕。LinuxXLoaderUboot,系统上电后它们首先被执行,初始化硬件设备、建立内存空间的映射图,为调用操作系统内核准备好正确的环境,随后加载并编译了Linux2.6.28版本的内核,最后载入Linux文件系统[31]。第四章基于Web方式的家庭远程监控系统的技术实现boaCGICGICSQLite3-2系统工作原理图所示;CGI主要程序段,分别用来处理设备的注册与配置、灯光模式的设置。服务器平台的建立服务器服务器的选择嵌入式设备具有资源有限,而且程序处理复杂程度不高,因此不需要使用大型服务器如Apachethttpd、mini_httpd、shttpd、lighttpdgoaheand等。boa1991年,是开源的,应用很广泛,非常少的内存需求,能耗很小。特别适合webHTTPCGISSL/HTTPSIPv6,支持虚拟主机功能。thttpdACMECWeb服务器,60kBboaboa。mini_httpdHTTPthttpdACMELabsthttpd强,支持静CGI,相对比较适合学习、实验使用,大约实现了服务器所具备的功能。ShttpdCGISSL、无需配置文件,其功能特性较为多样化。shttpdshttpdLighttpdcpuCGIbug而且文档太简略,有些功能配置难。GoAheadbugCGI要手动去改。CGIboaLinux的boaCGI的分析头处理。CGI/1.1标准规定[33],CGIStatusHTTP应答状态(如,Status:500InternalError)和Location进行地址重定向,BoaStautsLocationCGI程序的第一行中的Stauts和Location,其他行的应答头被忽略。通过修改boa的源代码服务器的移植首先,移植嵌入式boa服务器的环境为:PC机安装了Ubuntu8.04操作系统,交叉编译工具是arm-nong-linux-guneabi,目标板为OMAP3530Mini板。移植和配置Boa服务器过程[34]如下:Boa\h,Boaboa-0.94.13.tar.gz,实现解压:#tarxzfboa-0.94.13.tar.gz;bisonflex;src/compat.h120行内容#defineTIMEZONE_OFFSET(foo)foo##->tm_gmtoff为#defineTIMEZONE_OFFSET(foo)100:1:error:pasting"t"anddoesnotgiveavalidpreprocessingtokenmake:***[util.o]错误1;src/log.c72if(dup2(error_log,STDERR_FILENO)==-1){DIE("unabledup2theerrorlog");}注释掉,否则会出现错误:log.c:73unabletodup2theerrorlog:badfiledescriptor;src/boa.c的内容[35]210行开始注释掉:if(passwdbuf==NULL){DIE(”getpwuid”);}if(initgroups(passwdbuf->pw_name,passwdbuf->pw_gid)==-1){DIE(”initgroups”);}否则会出现错误:boa.c:211getpwuid:Nosuchfileordirectory;227行的if(setuid(0)!=-1){DIE(”ickyLinuxkernelbug!”);}否则会出现问题:boa.c:228-ickyLinuxkernelbug!:Nosuchfileordirectory;6.生成Makefile文件。执行:#cdboa-0.94.13/src#./configure(如果没权限,用chmoda+xconfigure,再./configure重新配置)可以生成Makefile文件;7MakefileCC=gccCC=/usr/local/arm/2.95.3/bin/arm-none-linux-gnueabi-gccCPP=gcc-ECC=/usr/local/arm/2.95.3/bin/arm-none-linux-gnueabi-gcc–E;8boaMakefilemakeboa可执行文件,通过命令ls可以查看生成文件的权限以及大小,即#ls–lboa#-rwxr-xr-x1daviddavid1892232011-10-3112:10boa,可以为boa这个二进制文件瘦身,命令如下:#arm-none-linux-gnueabi-strip#ls–lboa#-rwxr-xr-x1daviddavid610522011-10-3112:15boa可以发现,节省了很多空间。boa的可执行文件很小,只有60K大小左右;boaboa.conf#cd/home/davinci/boa/boa-0.94.13#geditboa.conf(a)查看Group和User用户,再查看/etc/group文件和/etc/passwd文件中是否有对应的用户组和用户名,要是没有,则修改成/etc下有的用户组和用户名,否则建立新的用户组和用户名。(b)ScriptAlias的修改修改ScriptAlias/cgi-bin//usr/lib/cgi-bin/为ScriptAlias/cgi-bin//var/www/cgi-bin/在网关的服务器中,CGI程序的存储路径就是/var/www/cgi-bin/;(c)ServerName的设置修改#ServerName\h.here为ServerName\h.here否则会出现错误“gethostbyname::Nosuchfileordirectory”;(d)AccessLog修改修改AccessLog/var/log/boa/access_log为#AccessLog/var/log/boa/access_log否则会出现错误提示:“unabletodup2theerrorlog:Badfiledescriptor”;boaSDEXT3目录下建立/etc/boa路径,在此目录下加boaboa.confHTML文档的主目录/var/wwwCGI脚本所在目录/var/www/cgi-bin;SD4-1所示三行即运行成功:图4-1boa服务器在目标板上移植成功同时,可以用ps命令查看boa进程;index.htmlvar/www下浏览器输入IPboa移植成功。boaHTTPHTTP请求URLCGIHTTPCGICGICGICGI应用程CGICGI绍CGI的工作原理。CGI工作原理CGI服务器同数据库或者串口的通信。CGIC/C++、PerlPerl是解释性语言,具有完成解释的模块,占CCGI程序。CGI“标准输入”与“标准输出”来称呼输入输出[36],外部应用程序经由标准输入来获取数据,经由标准输出传输数据,CGI程序内部处理请求的数据,或直接经过数据库,或直接调用串口实时请求数据,处理的浏览器。浏HTMLCGImethodgetpost两GETURIPOST方法时使用标准输入,这时URICGI程序处理4-2所示。图4-2CGI程序处理流程HTML静态页面向CGI程序中传递的数据称之为参数,参数是以“名字=值”这样的形式存在的。参数中除空格被替换成加号字符外,其他字符被一个一个的变换成“%HH”,HH是ASCIIURICGI程序从环境变量或者标准输入中读取URLURI解码,解码后表单中每个参数由“&”符号text1=value1&text2=value2&text3=value3的信息被送往服务器。CGIC语言开发不是很合适,编程较为CGICGICCGICCGICWindows、Unix、Linux等,使用时只要在程序文档里声明即可免费使用。CGICCGIC2.05cgic2.05MakefilecCC=ar-none-linux-gnueabi-gcrAR=ar-none-linux-gnueabi-ar,找到RANLIB=ranlib,改成RANLIB=arm-none-linux-gnueabi-ranlib。找到gcccgictest.o-ocgictest.cgi${LIBS},改成$(CC)$(CFLAGS)cgictest.o-ocgictest.cgi${LIBS},找到gcccapture.o-ocapture${LIBS},改成$(CC)$(CFLAGS)capture.o-ocapture${LIBS},并保存退出;然后运行make进行编译,得到的CGIC库libcgic.a。capturecgictest.cgiCGIC库的capture和cgictest.cgi拷贝到主机的/www/cgi-bin\h7/cgi-bin/cgictest.cgiCGIC库和测试脚本都移植成功。嵌入式数据库的构建嵌入式数据库的选择和特点Web空间少,而且还可以自适应和自调节,应用广泛。SQLiteSQL数据库引擎CWindows/Linux/UnixMysql、PostgreSQLSQlite的处理速度相比它们的处理速度更快。SQLite的特性如下:SQLiteSQLite250k经常应用与嵌入式场合;SQL-92标准多数支持;可以并行的满足多个读访问,即多个进程或线程可以访问同一个数据。CAPISQL是非常适合桌面程序和小型网站的数据库服务器,硬盘上的数据库文件它能直接读写。本文SQLite3。SQLiteCGICGI程序来打开、操作SQLiteSQLiteCGIAPI函数来操作数界面。SQLite数据库的移植SQLite的移植过程如下:下载地址:\h,最新版本是SQLite-3.7.9,本文选择了比较成熟的3.3.7版本,下载在/home下并解压,命令如下:#tarzxvfsqlite-3.3.7.tar.gz2.手动生成Makefile文件。在sqlite-3.3.8/目录下有一个Makefile范例文件Makefile.linux-gcc,拷贝此文件并重命名为Makefile:#cpMakefile.linux-gccMakefileMakefile的几项:ToP=../sqlite换成ToP=.Tcc=gcc–O6换成Tcc=arm-none-linux-gnueabi-gcc–O6AR=arcr换成AR=arm-none-linux-gnueabi-arcrRANLIB=ranlib换成ANLIB=arm-none-linux-gnueabi-ranlibMKSHLIB=gcc-shared换成MKSHLIB=arm-none-linux-gnueabi-gcc–shared用#注释掉TCL_FLAGS=-I/home/drh/tcltk/8.4Linux用#注释掉LIBTCL=/home/d

温馨提示

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

评论

0/150

提交评论