当前位置:首页 > 单片机 > 单片机
[导读] 智能温室监控系统是近年来发展起来的节约型设施农业技术,通过计算机综合控制,在充分利用自然资源的基础上,调节温度、湿度、光照强度等环境因素来获得作物生长的最佳条件,从而达到提高作物产量、改

智能温室监控系统是近年来发展起来的节约型设施农业技术,通过计算机综合控制,在充分利用自然资源的基础上,调节温度、湿度、光照强度等环境因素来获得作物生长的最佳条件,从而达到提高作物产量、改善品质、增加经济效益的目的。嵌入式系统与Intemet技术的结合是当今发展的趋势,如何将嵌入式产品与Internet连接起来实现室内设备的统一监控与管理,通过Internet实现对设备行为的访问与交互是目前研究的热点。本文提出一种基于嵌入式Web技术的智能温室监控系统设计方案,系统以嵌入式处理器作为上位机,通过构建嵌入式Web服务器,借助CGI(Common Gateway Interface)技术控制中心与嵌入式Web服务器端之间的动态数据交互,来满足嵌入式设备直接与Internet联网的要求,使管理者可以不受空间限制,通过Internet利用Web浏览器完成对设备的远程访问、监控和维护等操作。

1 系统总体设计
本设计基于ARM9开发平台,构建嵌入式开发环境,裁剪移植Linux操作系统。系统采用嵌入式Web服务器对设备进行功能配置,利用温度、湿度、光照强度传感器采集数据,采用嵌入式数据库对监测数据进行分析和存储。系统通过控制程序协调温室参数,并对控制参数进行监测,从而为温室中的作物提供最佳的生长环境。
嵌入式网络监控系统分客户端主机和现场嵌入Web服务器智能监控设备两部分,监控系统的结构如图1所示。


客户端主机通过浏览器与Web服务器交互式处理数据,从而实现对网络智能设备的远程监控。其中嵌入式Web服务器和监控端位于温室现场,监控端完成对温室环境参数(温度、湿度、等数据)的采集,并将采集结果存入数据库,通过CGI技术,管理人员通过网络便可了解温室内环境情况。系统采用Boa作为嵌入式Web服务器,负责监控、接收和分析用户请求,传送静态页面和调用后台CGI(Common Gate Interface)程序。

2 系统硬件设计
为了保证系统的实用性和可扩展性,系统选用Samsung公司的S3C2440A作为CPU处理器,S3C2440A带有丰富的外围接口,是一款高性价比的ARM核SoC芯片,工作频率最高可达400 MHz。系统硬件结构如图2所示。


系统配置有内存大小为64 M的SDRAM和128 M的Nand Flash。外接320x240的LCD触摸屏,实现本地用户人机接口,进行设备管理,通过USB接口连接摄像头,完成温室环境的图像采集;通过DM9000外扩以太网接口实现与无线局域网设备的连接和Interact的连接。另外,系统还扩展有RS485接口,可用于系统的扩展,通过布线连接相应的设备。

3 系统软件设计
整个系统软件结构如图3所示,数据采集程序通过数据采集设备(传感器、摄像头等)按照用户预先设定的参数周期性的下发查询命令,将采集到的结果写入SQLite数据库,监控人员使用浏览器通过Web服务器(Boa)管理和维护系统。


网络服务程序由嵌入式Web服务器和CGI脚本程序两部分组成:服务器通过监听80端口,监听来自网络的用户请求,如有用户请求,则启动相应的CGI脚本程序,将请求信息转化为服务器可以识别的数据格式,从SQLite数据库中读出所需的信息,再由CGI程序将信息转化为Web浏览器能够识别的格式,作为HTTP应答消息回送客户端显示。CGI脚本程序完成的功能主要包括:配置、查询设备相关信息及查询设备告警信息等。
3.1 嵌入式Linux操作系统
用于嵌入式系统中的操作系统很多,如Linux,Vxworks,WindowsCE等。相比而言,Linux兼容POSIX1003.1标准,支持多线程、多任务系统且具有源码公开、完全免费和广泛的移植性等特点,使用更加灵活。同时具有强大而稳定的网络功能和完善的开发工具,支持TCP/IP协议栈,可提供FTP、TELNET等服务,同时还可以通过应用程序向其他系统提供服务。因此,选择Linux 2.6.32作为嵌入式操作系统。
3.2 交叉编译Boa
本系统采用尽可能简单的嵌入式Web服务器,即Boa,能够实现HTTP1.1协议的基本内容,支持CGI,支持认证,是一个单任务的HTTP服务器,Boa体积小,只有几十kB。交叉编译工具使用的是arm-linux-gCC4.3.2。
1)下载Boa源码包boa-0.94.13targz,解压后,在boa-0.94.13\SRC目录下运行#/configure命令生成Makefile文件。
2)修改Makefile文件,其中:CROSS_COMPILE=/usr/LOCal/arm/4.3.2/bin/arm-linux-。
3)运行#make命令,生成可执行程序boa,运行#/usr/loeal/arm/4.3. 2/bin/arm-linux-strip boa命令删除调试信息。
3.3 嵌入式数据库的移植
Sqlite数据库对嵌入式来说是一个很好的数据库引擎,可有力地减小应用程序管理数据的开销。具体的移植过程:
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通用性强,可以稳定、高效地在目标系统中运行,为网络化远程实时监控系统的实施提供了技术保障。其不仅可以运用于温室信息监测,还可运用于其他环境监测,能满足信息采集扩展性、分布性、实时性的要求。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助...

关键字: 电机控制器 机器人 嵌入式

支持高达48V@5A的PD受电模式,达到目前USB PD最高标准。

关键字: 嵌入式 开发板

【2024年4月8日,德国慕尼黑讯】低碳化和数字化是当今时代人们面临的两大核心挑战,人类社会需要依靠创新和先进的技术,才能破除挑战、推动转型进程。在德国纽伦堡举办的2024国际嵌入式展(Embedded World 20...

关键字: 半导体 微控制器 嵌入式

TDK 株式会社(TSE:6762)进一步扩充 Micronas 嵌入式电机控制器系列 HVC 5x,完全集成电机控制器与 HVC-5222D 和 HVC-5422D,以驱动小型有刷(BDC)、无刷(BLDC)或步进电机...

关键字: 嵌入式 电机控制器 内存

嵌入式开发作为信息技术领域的重要分支,在当今智能化社会中的地位日益显著。它不仅在日常生活中的消费电子产品、工业自动化、汽车电子、航空航天等诸多领域发挥着不可或缺的作用,而且随着物联网、大数据、人工智能技术的发展,嵌入式开...

关键字: 嵌入式 信息技术

中国,北京和德国,纽伦堡 - EQS Newswire - 2024年4月2日 - 绿芯将于4月9日至11日在德国纽伦堡举行的2024年嵌入式世界展会 ((embedded world 2024),4A号馆606展位)展...

关键字: 固态硬盘 嵌入式 智能交通

虽然嵌入式芯片架构市场上有明确的引领者,但该行业正在快速扩张,预计未来几年将出现许多新的机会。当然,在这样的热门行业中,永远有创新技术和新产品的一席之地。

关键字: 嵌入式 处理器 RISC-V

2024年3月8日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起供货Advantech的VEGA-P110 PCIe Intel® Arc A37...

关键字: 嵌入式 GPU卡 边缘AI

康佳特采用博世力士乐的 ctrlX OS 操作系统

关键字: 计算机模块 嵌入式 机器人
关闭
关闭