基于嵌入式Web服务器的pH值检测系统的设计
2015-04-17于翰林卢泽民朱咏莉
于翰林 卢泽民 朱咏莉
摘要:水环境中的pH(酸碱度)值直接反映水环境中藻类的活力、二氧化碳的存在状态等,对水产养殖具有重要的参考意义。为甲鱼养殖环境设计了1种基于嵌入式服务器的pH值检测系统,以pH复合玻璃电极作为传感节点;以ARM6开发板为核心构建系统的软硬件平台及Web服务器,同时作为硬件的采集终端和嵌入式网关核心。系统可以对甲鱼养殖环境中的pH值及温度等参数进行检测,同时将数据接入互联网,用户可通过客户端IE浏览器实现对检测数据的远程在线监测。
关键词:嵌入式Web服务器;酸碱度;浏览器;网关;甲鱼
中图分类号: TP274文献标志码: A文章编号:1002-1302(2015)01-0390-03
收稿日期:2014-02-28
基金项目:国家自然科学基金(编号:40901112)。
作者简介:于翰林(1987—),男,山东聊城人,硕士研究生,主要从事农业电气化与自动化研究。E-mail:yuhanlin_2008@163.com。
通信作者:卢泽民,博士,副教授,硕士生导师,主要从事农业工程装备研究。E-mail:luzm@ujs.edu.cn。在工厂化水产养殖中,水质参数监控是健康养殖的重要环节,水质监控可以掌握养殖水体的温度、浊度、pH值、溶解氧等对水产品生长环境有重大影响的水质参数,其中pH值是池塘中水质的重要指标之一,不仅会直接影响甲鱼的生理活动,而且会通过改变水产养殖环境中的微生物理化因子而间接作用于甲鱼[1],pH值过高或过低都会对甲鱼的生长造成危害。确保适宜的水体温度、pH值、溶解氧等参数值,创造良好的养殖环境对甲鱼生长至关重要。目前的检测方法测得的pH值不够精准,实时性不够稳定,因此,准确、方便、快速地测量水体中的pH值大小,为甲鱼的正常生长繁殖提供一个稳定、合理的生存环境在水产养殖中具有重要意义。本研究构建基于 ARM-Linux 的嵌入式服务器,系统中ARM6处理器既作为采集电路的核心又作为嵌入式网关的核心,通过编写相应的应用层CGI程序,实现浏览器/服务器(B/S)通信[2-3],具有以下特点:(1)简易的嵌入式服务器代码和服务器端应用程序代码,实现Web服务器的基本功能;(2)采用B/S通信架构,直接读取远程的检测数据。本系统的开发简单,操作方便,成本低,易于实现,反复测试证明系统的精确性和稳定性均达要求。
1系统硬件平台设计
1.1系统硬件整体结构
在硬件系统中,其整体设计主要包括2个部分:采集电路与嵌入式网关,详见图1。pH传感器对水体水质中的pH值参数进行初步检测,同时调理电路对传感器采集来的模拟信号进行放大、滤波和稳压处理[4],被处理后的信号经过开发板的2路AD进行模数转换和相应的结果计算,同时通过以太网网关跟以太网进行协议转换和数据交换,最后在客户端的浏览器中对检测的数据进行实时读取。
1.2采样电路的设计
酸碱度传感器采用E-201-C型pH复合玻璃电极,在25 ℃时,其电极输出电压与pH值的关系为59.16 mV/pH,即在氢离子活度变化10倍时,电动势偏移59.16 mV。由于pH复合玻璃电极的内阻值较大,要求前置放大器具备高输入阻抗值[5],因此选择高输入阻抗的运算放大器 CA3140来实现阻抗匹配、降低测量噪声、提升系统稳定性等[6],其余的普通运放选用运算放大器TL082,硬件电路如图2所示。
在测量pH值之前要对其调理电路作调试,首先对运算放大器CA3140的调零端进行调零,调零时应将2个输入端全部接地,小量程电压表连接运放输出端,调整P1,使得电压表读数接近零。而后对整个pH信号调理电路进行调试,其方法是:断开pH电极输入,使P2居中,之前接pH值信号输入运放的输入端接地,调节P3,使电路输出电压为700 mV,此时相当于输出的pH值为7;之前接pH值信号输入的运放输入端接通-414.1 mV的输入电压,调节P2,使电路输出电压为1 400 mV,此时对应的是输出pH值为14,pH信号调理电路板便可以正常工作。
1.3嵌入式网关构建
嵌入式网关硬件结构如图3所示。在嵌入式网关的构建中,选用DM9000A作为以太网芯片的核心。DM9000A以太网芯片是功能异常强大的以太网控制器,产自Davicom公司,有1个10/100 M的自适应物理层与4 k双字节的静态随机存储器。此外,DM9000A控制器还提供了与介质无关的接口,该控制器支持8位、16位的接口来访问内部的存储器设备,从而支持不同模型的处理器[7-8]。
2系统软件设计
2.1Web服务器在软件平台上的实现
本研究完成了1个简易、低成本的Web服务器的设计,实现了Web服务器的基本功能,包括页面的请求与响应、HTML 文件解析和数据传送[9]。建立socket网络连接是构建Web服务器的基础,在Linux下,用户通过socket接口进行网络编程操作[10]。编写Web服务器本质上就是建立起客户端与服务器端的socket连接,服务器端读取客户端请求,并进行相应操作;客户端首先读取服务器端应答和请求,然后对其进行解析、绘图并且加以运行[11]。客户端与服务器的交互主要包括客户请求及服务器应答,请求和应答格式均在超文本传输协议(HTTP)中有明确定义。Web服务器工作流程如图4所示。客户端和Web服务器交互的基本布局为:(1)客户发送请求:GET filename HTTP/version;(2)服务器发送应答:HTTP/version status-code status-message。
用户浏览器端与服务器端建立socket连接后,用户通过在浏览器端单击1个链接的形式获取网页,即发送1个命令请求,服务器端利用GET命令接受请求、读取请求,并打印输出相关数据信息。endprint
2.2应用层CGI程序设计
通用网关接口 (common gateway interface,CGI)表示一段程序,运行在Web服务器上,其主要功能是在Web的环境下,从客户端向Web服务器传达若干信息或命令,而后Web服务器启动指定程序来完成特定工作[12]。在浏览器/服务器模式下,CGI是由浏览器的输入命令进行触发的。
首先,用户在浏览器端的地址栏中输入要访问的地址并通过回车来触发这个指令申请,同时浏览器将这个申请命令通过TCP协议发送到服务器端并被接收。Web服务器端在接收完这些申请之后,按照.htm或者.html的后缀来认识这个文件是否是HTML类型的文件。如果是HTML类型的文件,Web服务器会从当前的存储中读取到正确的HTML型文件,并将其以网页的形式送回到浏览器端。Web浏览器、服务器以及CGI程序运行关系如图5所示。
用户浏览器端与服务器端建立socket连接后,用户通过在浏览器端单击1个链接的形式获取网页,即发送一个命令
请求,服务器端利用GET命令接受请求、读取请求,并打印输出相关数据信息。本研究设计的简易Web服务器仅支持GET命令,仅接受请求行,而略过了其他复杂参数。主循环如下所示:
sock=make_server_socket(atoi(av[1]));//建立socket连接监听客户端请求
if (sock=-1)
exit(2);
while(1)
{fd=accept(sock,NULL,NULL);//接受请求
fpin=fdopen(fd,“r”);
fgets(fpin,request,LEN); //读取客户端的请求
read_until_crnl(fpin); //跳过其他命令
process_rq(request,fd); //接收客户端请求
Fclose(fpin);
}……3试验测试
通过在不同的温度下对pH值进行校正,完成pH值为400、6.86、9.18的标准溶液测量,然后通过最小二乘法对不同温度下pH值直线进行拟合(pH值相对应温度变化保持线性关系),写入到检测程序中,通过查询相应直线就能得到不同温度下测量的相对应pH值[13]。试验测量数据如表1所示。
表1pH值标定数据
温度
(℃)Ex(pH值=4.00)
(mV)Ex(pH值=6.86)
(mV)Ex(pH值=9.18)
(mV)254937669562649776695627492764957284937609572949276395530492762956注:Ex为标定电压值。
考虑到温度对pH值的影响,采用了常用的最小二乘法来拟合直线。
设定标曲线,也就是实际输出与输入的特性曲线是y=f(x);拟合直线的方程是Y=A+BX。按最小二乘法,拟合直线与定标曲线的响应点输出量偏差平方和为最低[14]。
(A,B)=∑ni=1(yi-A-Bxi)2(1)
式中:xi是测试得到的输入数据;yi是测试得到的输出数据;n为测试数据组数目。
确定拟合直线方程中的A、B作为变量来求解,分别对A、B变量求偏导,且令其等于零得:
A=2∑ni=1(yi-A-Bxi)=0;
B=2∑ni=1(yi-A-Bxi)xi=0。
整理后得:
∑ni=1yi=nA+B∑ni=1xi
∑ni=1xiyi=A∑ni=1xi+B∑ni=1x2i。
经过计算∑xi、∑yi、∑xiyi、∑x2i数值,代入方程组,构成关于A、B的二元方程组,解得A、B值,即求得拟合直线方程。
在对试验数据进行处理时,采用了最小二乘法拟合直线。本试验选用pH值为6.86、9.18进行2点标定,具体拟合的直线参数如表2所示。其系数k=1/b,b=A。
表2不同温度下拟合pH值曲线系数
温度
(℃)pHx=k(Ex-b)bk≤24219.129 080.012 477 225~29193.606 420.012 036 730~34174.005 020.011 744 135~39174.374 180.011 779 8≥40182.629 240.011 999 3
同时,在嵌入式开发板上运行Web服务器,在上位机浏览器中输入应用CGI程序的名称,通过Web服务器执行应用程序[15],在客户端浏览器上实时读取相应的pH值显示信息,实现数据的远程在线监测。
4结论
在系统中,将ARM芯片既作为信号的采集终端又作为以太网网关的核心,有效利用了硬件资源。同时,在实时性、稳定性较强的Linux操作系统上移植TCP/IP协议,构建Web服务器,编写应用层通用网关接口程序,实现对水质中pH值的远距离实时监测,满足了信息传输和对系统远程控制的要求。经反复试验证明,系统具备较强的实时性和稳定性,达到了设计要求。
参考文献:
[1]朱明瑞,曹广斌,蒋树义,等. 工厂化水产养殖水体的pH值在线自动控制系统[J]. 水产学报,2007,31(3):335-342.
[2]张文香,王志敏,张卫国. 海水鱼类工厂化养殖的现状与发展趋势[J]. 水产科学,2005,24(5):50-52.
[3]Bertocco M,Ferraris F,Offelli C,et al. A client-server architecture for distributed measurement systems[J]. Instrumentation and Measurement,IEEE Transactions on,1998,47(5):1143-1148.endprint
[4]顾相平,胡荣林,朱顺五. 一种基于无线传感器网络的水质监测pH值感知节点硬件设计[J]. 计算机与现代化,2011(9):49-52.
[5]刘星桥,曾毓楠,季峰. 基于SOC单片机的pH值检测与控制[J]. 微计算机信息,2008,24(5):99-101.
[6]Alcaraz C,Roman R,Najera P,et al. Security of industrial sensor network-based remote substations in the context of the internet of things[J]. Ad Hoc Networks,2013,11(3):1091-1104.
[7]Drndarevic V,Bolic M. Gamma radiation monitoring with internet-based sensor network[J]. Instrumentation Science and Technology,2008,36(2):121-133.
[8]仲崇权,鲁辛凯,李卓函,等. 基于嵌入式Web远程监控的研究与应用[J]. 仪器仪表学报,2006,27(增刊1):575-577.
[9]封相远. 基于Linux操作系统的Web服务器的设计与实现[D]. 天津:天津大学,2007.
[10]马新涛,李洪平. 基于ARM和Linux的嵌入式网关的设计与实现[J]. 中国新技术新产品,2010(7):49.
[11]魏计林,邱选兵,王青狮,等. 单芯片嵌入式网关在煤矿井下人员定位中的应用[J]. 现代电子技术,2008(21):143-145,149.
[12]魏丹. Web服务器性能与Web框架应用的研究[D]. 开封:河南大学,2006.
[13]李成春. 基于CC2430无线多参数传感器检测网络的设计[D]. 镇江:江苏大学,2010.
[14]解同信. 最小二乘法求作拟合直线[J]. 北京工业职业技术学院学报,2006,5(3):5-7.
[15]黄伟伟. 基于嵌入式Web服务器的车载动中通远程监控系统的设计与实现[D]. 南京:南京邮电大学,2013.侯波,徐小华,胡晓飞. 基于LabVIEW和GSM的温室大棚环境远程监控系统设计[J]. 江苏农业科学,2015,43(1):393-395.endprint