版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章城市环境采集Linux开发案例城市环境采集Linux开发案例本章分析Linux技术在城市环境采集中的应用,共分2个模块:1.系统总体设计与Linux驱动开发:先进行系统总体设计分析,嵌入式Web服务器应用、Boa服务器移植、CGI开发技术,实现嵌入式Web服务器应用开发。2.城市扬尘监测系统开发:软件界面框架分析、TVOCLinux驱动开发、LEDLinux驱动开发、PWMLinux驱动开发、扬尘检测功能设计,实现扬尘检测系统。第3章城市环境采集Linux开发案例
3.1系统总体设计与Linux驱动开发城市环境采集Linux开发案例嵌入式Web服务器,是基于嵌入式系统而实现的Web服务器。很好理解,拆分成两个部分,Web服务器+嵌入式。Web服务器,即通常所说的网页服务器。用IE等浏览器访问时,网页内容储存的地方就叫做Web服务器。大型的网站等,对服务器的硬件要求比较高,可以支持成千上万个客户端同时访问,而且速度要快。嵌入式Web服务器,是Web服务器当中的一种。在嵌入式系统上实现的一个Web服务器,可以通过浏览器等去访问,对硬件要求稍微低一点。举个简单的例子,用的路由器,就是一个典型的嵌入式Web服务器,通过等可以直接访问。本项目是嵌入式Linux中使用Web服务器的应用示例,利用嵌入式Linux和网络技术结合,实现采集远程的设备数据,通过互联网达到远程监控设备的目的,功能需求分析如表所示。3.1.1系统总体设计分析
系统需求分析功能功能说明TVOC气体传感器采集功能通过Arm扩展模块的TVOC传感器采集气体数据扬尘等级实时动态显示功能通过扩展板的点阵屏、OLED屏以及LED等动态显示等级变化web应用控制功能通过web应用程序对系统采集的气体数据通过仪表盘、曲线图以及地图进行显示城市环境采集Linux开发案例城市环境采集系统,其硬件主要边缘计算网关、Arm扩展模块构成。硬件结构框图如下:网关连接Arm扩展模块的TVOC传感器实时采集气体数据,PC端的WEB管理界面可实时查看传感数据以及历史数据,硬件结构框图如图所示。3.1.1系统总体设计分析
系统总体设计城市环境采集Linux开发案例城市环境采集系统,其软件模块主要由硬件驱动程序、Boa服务软件、PC端Web管理软件构成,软件总体结构框图如图所示。3.1.1系统总体设计分析
系统总体设计城市环境采集Linux开发案例LighttpdLibHttpd是一个开源轻量级嵌入式Webserver,提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的webserver环境。lighttpd适合静态资源类的服务,比如图片、资源文件,同时也适合简单的CGI(CommonGatewayInterface)公共网关接口应用的场合。ShttpdShttpd,持CGI,SSL,cookie,MD5认证,由于shttpd可以轻松嵌入其他程序里,因此shttpd是较为理想的webserver开发素材,开发人员可以基于shttpd开发出自己的webserver。ThttpdThttpd是一种开源Web服务器,简单、小巧、易移植、快速和安全的HTTP服务器。对于并发请求不使用fork()来派生子进程处理,而是采用多路复用技术来实现。BoaBoa服务器是一个小巧高效的Web服务器,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。但Boa支持CGI,能够为CGI程序fork出一个进程来执行。3.1.2嵌入式Web服务器应用
常见嵌入式Web服务器城市环境采集Linux开发案例Mini_httpdMini_httpd是一个小型的HTTP服务器,开源,适合于中小访问量的站点。AppwebAppweb是一个快速、低内存使用量、标准库、方便的服务器,最大特点就是功能多和高度的安全保障。GoAheadGoAhead是跨平台的服务器软件,可以稳定地运行在Windows,Linux和MacOSX操作系统之上。3.1.2嵌入式Web服务器应用
常见嵌入式Web服务器城市环境采集Linux开发案例Boa是一种单任务的Web服务器,当有连接请求到来时,它并不为每个连接单独创建进程,也不通过复制自身进程来处理多连接,而是通过建立HTTP请求列表来处理多路HTTP连接请求,同时它只为CGI程序创建新进程,因此,Boa具有很高的HTTP请求处理速度和效率。嵌入式Web服务器Boa和普通Web服务器一样,能够完成接收客户端请求、分析请求、响应请求、向客户端返回请求结果等任务,它的工作过程主要包括:3.1.2嵌入式Web服务器应用Boa服务器(1)完成Web服务器的初始化工作,如创建环境变量、创建TCP套接字、绑定端口、开始侦听、进入循环结构,以及等待接收客户浏览器的连接请求;(2)当有客户端连接请求时,Web服务器负责接收客户端请求,并保存相关请求信息;(3)在接收到客户端的连接请求之后,分析客户端请求,解析出请求的方法、URL目标、可选的查询信息及表单信息,同时根据请求做出相应的处理;(4)Web服务器完成相应处理后,向客户端浏览器发送响应信息,关闭与客户机的TCP连接。城市环境采集Linux开发案例(1)移植Boa服务器过程
解压文件,并进入./boa/src目录
执行./configure配置编译环境
make编译源代码,修改错误
创建boa安装目录/boa
修改defines.h文件中的SERVER_ROOT,使其指向改动后的配置文件路径
复制必要的文件到安装目录
修改boa配置文件
实现HTML页面文件(2)移植到嵌入式开发板
在源代码编译的时候,指定交叉编译工具链
编译目标文件并复制到安装目录
将整个/boa目录复制到nfs共享根目录下面3.1.3Boa服务器移植Boa服务器移植(方法与流程、配置)城市环境采集Linux开发案例HTML源文件3.1.3Boa服务器移植Boa服务器测试<html><head><title>CGITEST</title></head><body><h1>TestPage<h1><h2>CGIC<h2></body></html>2)HTML对应的CGI源文件intmain(intargc,char**argv){printf("Content-type:text/html\n\n");printf("<html>\n<head><title>CGITEST</title></head>\n<body>\n");printf("<h1>TestPage<h1>\n");printf("<h2>CGIC<h2>\n");printf("</body>\n</html>\n");return0;}可以打开浏览器在地址栏中输入ip/cgi-bin/hello.cgi出现如图所示,说明cgi功能可以使用。城市环境采集Linux开发案例3.1.3Boa服务器移植Boa服务器测试3)实现嵌入式web远程控制功能点击hello~之后服务器跳转,页面显示的内容如图所示。(详细源码详细请查看文档)城市环境采集Linux开发案例服务器端与客户端进行交互的常见方式多,CGI是其中之一。CGI是外部扩展应用程序与Web服务器交互的一个标准接口。根据CGI标准,编写外部扩展应用程序,可以对客户端浏览器输入的数据进行处理,完成客户端与服务器的交互操作。CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。对于许多静态的HTML网页无法实现的功能,通过CGI可以实现表单的处理、对数据库的访问、搜索引擎、基于Web的数据库访问等等。3.1.4CGI开发技术CGI简介城市环境采集Linux开发案例1)CGI接口CGI程序可以用任何程序设计语言编写,如Shell脚本语言、C语言等。CGI接口标准包括标准输入、环境变量、标准输出三部分。1.标准输入CGI程序像其他可执行程序一样,可通过标准输入从Web服务器得到输入信息,如Form中的数据,这是向CGI程序传递数据的POST方法。在操作系统命令行状态可执行CGI程序,对CGI程序进行调试。2.环境变量Web服务器和CGI接口另外设置了一些环境变量,用来向CGI程序传递一些重要的参数。CGI的GET方法还通过环境变量QUERY-STRING向CGI程序传递Form中的数据。3.标准输出CGI程序通过标准输出将输出信息传送给Web服务器,传送给Web服务器的信息可以用各种格式,以在命令行状态调试CGI程序。3.1.4CGI开发技术CGI工作原理城市环境采集Linux开发案例2)CGI程序实例3.1.4CGI开发技术CGI工作原理intmain(){intn,len=0;printf("Welcomebackhome/plain\n\n");if(getenv("Welcomebackhome"))n=atoi(getenv("CONTENT-LENGTH"));printf(“Welcomebackhome=%d\n”,n);for(n=0;n<len;n++)printf("CONTENT=%c",getchar());return0;}CGI程序的工作过程总结如下
1.求出环境变量长度;
2.循环使用getchar()或者其他文件读函数得到所有的输入;
3.将输出信息的格式告诉Web服务器;
4.通过使用printf()或其他的文件写函数,将输出传送给Web服务器。
CGI程序从Web服务器得到输入信息,进行处理,然后将输出结果再送回给Web服务器。城市环境采集Linux开发案例用户通过网页客户端(浏览器)实现对服务器端(嵌入式系统)的查询访问和下发数据命令,如图所示。3.1.5开发实践:嵌入式Web服务器应用Boa开发框架与移植GW3399开发板CGIBOA服务器Web网页客户端数据显示图像显示套接字虚拟文件SOCKET-likeGET方法POST方法每个网页上的不同模块对应不同的CGI基于客户机/服务器计算模型协议HTTP超文本传输协议传输单元:Web网页城市环境采集Linux开发案例
Boa服务器的源代码修改与编译步骤如下:1)将boa文件通过共享文件夹拷贝到PC虚拟机的/home/目录;2)然后在/home/boa目录下面输入命令进行解压;3)输入命令配置boa生成Makefile;4)建立交叉编译开发环境,设置环境变量5)返回开发目录/home/boa/boa-0.94.13,修改CC和GCC对应的选项6)修改文件boa/boa-0.94.13/src中compat.h、boa.c和log.c;7)修改完源代码文件后输入命令开始编译源代码8)通过编译信息修改错误;3.1.5开发实践:嵌入式Web服务器应用Boa开发框架与移植城市环境采集Linux开发案例CGI程序设计Web页面源代码:3.1.5开发实践:嵌入式Web服务器应用Web应用程序<htmlxmlns="/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>web控制GW3399开发板led</title></head><body><h1align="center">基于GW3399的web控制GPIO口</h1><formaction="/cgi-bin/cgi_led.cgi"method="get"><palign="center">led的测试工作</p><palign="center">请输入需要控制的led<inputtype="text"name="led_control"/></p><palign="center">请输入控制led的动作<inputtype="text"name="led_state"/></p><palign="center"><inputtype="submit"value="sure"/><inputtype="reset"value="back"/></p></form></body></html>(CGI程序源代码详细请查看文档)城市环境采集Linux开发案例1)服务器移植成功后,在IE浏览器地址栏输入6:34768/index.html,会出现如图所示界面,这里6要对应自己开发板的IP地址,端口号也是如此,如果网页上显示的是字母,需要使用IE浏览器兼容模式下运行。3.1.5开发实践:嵌入式Web服务器应用Boa配置与运行城市环境采集Linux开发案例2)然后按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国视讯切换器数据监测研究报告
- 2023年天然气液化装置项目评价分析报告
- 2024至2030年中国绕线模架数据监测研究报告
- 2024至2030年中国直联式空气压缩机数据监测研究报告
- 2024至2030年中国柄轴套数据监测研究报告
- 2024至2030年中国往复式三缸活塞泵数据监测研究报告
- 2024至2030年中国在线杀毒系统数据监测研究报告
- 云南省昭通市绥江县2024-2025学年七年级上学期11月期中数学试题
- 辽宁省营口市(2024年-2025年小学五年级语文)人教版小升初真题((上下)学期)试卷及答案
- 江西省抚州市(2024年-2025年小学五年级语文)人教版随堂测试(上学期)试卷及答案
- SB/T 10895-2012鲜蛋包装与标识
- GB/T 5237.1-2017铝合金建筑型材第1部分:基材
- GB/T 26121-2010可曲挠橡胶接头
- GB/T 25497-2010吸气剂气体吸放性能测试方法
- 城市绿地系统规划 第9章 工业绿地规划
- 高中思想政治课选择性必修2《法律与生活》教材使用建议与典型课例研究课件
- 数学的发展历史课件
- 外来人员入厂安全告知书
- DB22-T 5036-2020建设工程项目招标投标活动程序标准-(高清正版)
- 工程监理聘用合同(一)
- 写作指导:顺叙倒叙插叙课件
评论
0/150
提交评论