嵌入式Web技术在智能温室监控系统中的应用
地减小应用程序管理数据的开销。具体的移植过程:
1)在Sqlite的官网下载linux版本的Sqlite3.6.23,解压sqiite-amalgamation-3.6.23.tar.gz并进入sqlite-3.6.23目录。
2)mkdir build在sqlite3.6.23目录内建立编译文件夹并进入,Sqlite的编译就在这个文件夹内进行。
3)../configure--host=srm-linux--prefix=/usr/local/sqlite3选定编译器为arm-linux-gcc,并指定安装目录为/usr/local/sqlite3,这个路径是可以根据自己的需要进行修改。
4)make &&make install安装成后在sqfie3目录下生成bin、include、lib三个文件夹,分别为可执行文件,头文件与库文件,由于采用动态编译,所以生成的库是动态库,将它们复制到系统的相应文件夹下。此时,就可以在目标板上运行sqlite3。
3.4 CGI程序的设计
CGI定义Web服务器与用户之间访问与执行程序的标准接口,它使浏览器和Web服务器之间具有交互性。图4表明了本系统中浏览器、Web服务器和CGI程序之间的关系。
当客户通过浏览器访问Web服务器时,浏览器与Web服务器建立TCP连接并发送HTTP请求,Web服务器收到HTTP请求后,分析请求内容,如果为静态文档请求,则直接返回该请求的结果,如果是CGI请求,则Web服务器把该请求通过环境变量、命令行参数或标准输入的方式传给指定的CGI程序,同时接管这个CGI程序的标准输出,CGI程序进行相应的信息处理后,将处理结果以HTML形式的文件送到标准输出,Web服务器在CGI程序输出的内容上附加一些头标信息和状态行,然后把结果送回浏览器。
3.5 系统软件流程图
用户通过HTML页面监控远程设备包含2个流程:1)客户端到服务器的数据通信。客户端将用户的操作传送给WEB服务器,服务器再调用相应的CGI应用程序控制底层设备,实现设备监控;2)服务器到客户端的数据通信。即服务器把CGI程序对底层设备监控的结果反馈给客户端,供用户浏览。
一个CGI应用程序首先通过环境变量REQUEST-METHOD判断客户端发送的是哪一种数据请求。若是GET请求,则通过环境变量QUERY-STRING获取数据。若是POST请求,则通过标准输入(stdin)获取客户端传送的数据。使用CET方法发送HTML表单数据时,表单数据将作为查询字符串传送给CGI应用程序,而用POST方法发送表单数据时,表单数据通过C语言标准输入(stdin)直接传给CGI应用程序。CGI应用程序完成了相关的运算和对底层设备的操作之后,还应该将相应的执行结果反馈给用户。
CGI应用程序通过WEB服务器将结果传送给客户端浏览器,使用户直观的看到操作的执行结果。使用标准输出(Printf)就可以实现数据发送,WEB服务器得到这些输出信息,以HTML网页的形式反馈给客户端浏览器。具体的操作流程如图5所示。
4 案例实现
目前Web技术中生成动态页面的方法有CGI、PHP和服务器脚本(如JSP和ASP等),但后两者需要Web服务器具有这些脚本的运行支持模块。在嵌入式Web服务器中,考虑到资源限制问题,一般都只提供CGl支持,因此在嵌入式设备中Web应用开发实际上就是基于CGI的程序开发。使用C语言编写CGI程序,内嵌Html脚本,这样当执行CGI程序时,即可完成对硬件的操作,又可将操作结果显示在网页。CGI程序用getchar()等函数获得用户提交的数据。用pantf()函数负责输出。执行结果要以完整的Html文件格式输出,比如一个CGI文件中的输出语句如下:
打开Web浏览器,在地址栏输入Web服务器IP地址,先是身份验证网页,验证后,显示的监控信息网页如图6所示。
5 结论
在嵌入式监控系统中,基于嵌入式Linux平台,利用嵌入式Web服务器和嵌入式数据库对远程设备进行操作和管理是嵌入式监控系统的发展方向。本文在嵌入式Linux平台下使用Boa作为Web服务器,应用CGI技术实现的动态WebServer通用性强,可以稳定、高效地在目标系统中运行,为网络化远程实时监控系统的实施提供了技术保障。其不仅可以运用于温室信息监测,还可运用于其他环境监测,能满足信息采集扩展性、分布性、实时性的要求。
- 嵌入式系统在电源设计中的运用(09-20)
- 一种小型智能化UPS系统的嵌入式设计方案(09-16)
- 基于无线传感器网络的嵌入式远程测控系统研究(10-17)
- 嵌入式工业以太网控制器的设计和应用(10-17)
- 基于4G通信的嵌入式数据通信系统设计(10-10)
- 嵌入式CPU卡在医用便携式监护仪中的应用及设计(09-23)