基于Web的猪舍远程监控系统设计与实现
2018-03-26王雪亮高惠芳李小龙
王雪亮 高惠芳 李小龙
摘要:为了实现对养猪场的智能化管理,设计并实现了基于Web的远程监控系统。系统使用MyEclipse作为开发工具,MySQL作为数据库,Tomcat作为Web 服务器,在Spring、Hinernate、Struts2三大框架基础上开发完成。用户通过浏览器访问系统,可查看猪舍内的视频监控和环境参数,并发送控制指令控制下位机以调节环境参数,从而实现对猪场的实时监控管理。
关键词:Web远程监控;视频监控;ActiveX插件;环境参数
DOIDOI:10.11907/rjdk.172398
中图分类号:TP319
文献标识码:A文章编号文章编号:16727800(2018)003010004
英文摘要Abstract:In order to realize the intelligent management of pig farm, a remote monitoring system based on Web is designed and implemented.The system uses MyEclipse as a development tool, MySQL is used as a database and uses Tomcat as a Web server to be developed on the basis of the three major frameworks of Spring, Hinernate, and Struts2. Users visit the system through browser to check the video monitoring and environmental parameters in the piggery, and send control commands to control the environment parameters of the lower computer, so as to realize the realtime monitoring and management of pig farms.
英文关键词Key Words:Web remote monitoring; video surveillance; ActiveX plugin; environment parameters
0引言
猪舍环境对生猪的生长、繁殖和健康起着重要作用,针对大规模养殖中猪舍环境恶劣的现象,本文设计了一种基于Web的猪舍环境远程监控系统[13]。此系统包括现场环境参数监控[4]和视频监控,其目的在于创造一个适宜的猪舍环境,同时方便顾客了解猪场生猪饲养情况,让大家吃上放心猪肉。
如今大多数解决方案都是基于C/S结构设计的,用户只有在特定位置并且打开专用客户端才能查看猪场环境。B/S(浏览器/服务器)架构是随着Internet的兴起,对C/S(客戶端/服务器)结构的一种改进。B/S架构分为三层结构:表示层、应用层、数据层。表示层负责用户事务的显示,应用层负责对用户的操作进行事务处理,数据层为应用层提供相应数据。利用B/S架构可以在任意一台可接入互联网的计算机上实现猪场环境的远程监控。系统实现了环境参数和视频监控的显示,解决了只显示单一环境参数的问题[56],从而使用户对猪场有更直观的了解。
网页部分包括登录页面、当前环境参数显示和控制页面、历史数据查询页面、视频监控页面。每个猪舍都安装了摄像头,每个摄像头对应的IP、端口都保存在数据库中,用户可以根据需要在前端页面进行摄像头的切换。为了实现无刷新下的数据更新,Web前端采用Ajax异步数据交互技术与服务器进行通信。利用监控摄像机提供的SDK开发出ActiveX控件[7],并将控件嵌入到网页中,以供在浏览器端进行视频监控显示。
现在基本上所有的PC客户端都安装有浏览器,所以将前端监控设备的监控视频传输到Web服务器上,由用户通过浏览器进行访问,获取视频监控的数据[89],则不需要单独在客户端安装软件。同时对于视频播放控件的更新,只用将更新后的控件放在Web服务器上,浏览器则会对用户进行提示,用户确定后浏览器即会自动下载安装更新到本地客户端,减少了用户操作步骤,提升了用户体验。
1系统设计
1.1系统功能模块设计
系统的功能模块划分为4部分,如图1所示。
(1)用户管理。实现了系统的用户登录认证工作以及对于不同用户的角色权限管理工作。一般用户不用注册,直接访问监控页面即可;管理员账户需要注册、登录才能访问控制页面,并可以查看有权限要求的摄像机。
(2)实时监控。实现从前端监控设备获取视频监控信号,提供实时视频监控的查看功能。根据IP、端口调用对应摄像机,查看不同猪舍的监控视频;将前端监控设备的监控视频传输到Web服务器上,网页嵌入ActiveX控件,通过接口调用由用户通过浏览器进行访问;还可根据需要添加、删除摄像机。
(3)环境参数显示。主要实现的功能是当前数据的实时显示,需要显示的数据包括温度、湿度、光照强度、二氧化碳浓度、氨气浓度和硫化氢气体浓度,并将历史数据以曲线图形式直观地呈现给用户。
(4)控制部分。能够在网页上远程控制现场设备的开启,控制模式分为手动和自动两种模式。
1.2系统总体结构设计
系统总体框架如图2所示,本系统运用了主流的MVC软件开发模式和JavaBean+Struts2+Spring+Hibernate+Jsp系统架构。采集的数据能够动态、实时地显示在页面上,同时在网页上实现监控视频的实时显示,在数据库录入摄像机的IP和端口实现摄像机切换。系统在正常工作的情况下,能够在网页上查看历史数据,并将历史数据以曲线图形式直观地显示出来,以便更好地掌握猪舍环境的变化。
2系统实现
本系统为实现客户端使用浏览器访问Web服务器功能,使用了B/S模式。客户机使用浏览器访问部署在服务器上的平台系统,按提示下载CA认证根证书并安装。浏览器自动将ActiveX控件下载安装到客户端。安装完毕后,用户即可通过该控件与视频监控前端通信,获取实时视频监控信息,从而实现相关功能。本系统使用的前端监控设备为海康威视公司生产的监控设备。该设备带有配套的视频监控存储服务器和相关功能的SDK包,本系统只需根据该SDK包进行二次开发,编写ActiveX控件调用其SDK包中的接口方法,即可获取该前端监控设备上的监控视频信号实现实时预览,之后在Web页面上的相应位置嵌入ActiveX控件代码。
2.1视频监控模块实现
因为本系统视频实时监控模块终端采用的是海康威视的设备,所以AetiveX控件的开发都是直接调用该公司提供的SDK包内的各种接口函数,ActiveX控件的执行流程如图3所示。
浏览器在解析页面时,如果发现有ActiveX控件的嵌入代码,会检查ActiveX控件的安全性,如果安全,则会提示用户下载该控件,下载完成后即按照与控件打包在一起的控件安装文件INF的指示进行安装。页面中嵌入ActiveX控件的代码为:
var humid=msg.huanjingcanshulist[0].humid;
var light=msg.huanjingcanshulist[0].light;
var co2=msg.huanjingcanshulist[0].co2;
var h2s=msg.huanjingcanshulist[0].h2s;
var nh3=msg.huanjingcanshulist[0].nh3;
MYM("#temp").val(temp);
MYM("#humid").val(humid);
MYM("#light").val(light);
MYM("#co2").val(co2);
MYM("#h2s").val(h2s);
MYM("#nh3").val(nh3);},
error:function(){alert("查詢失败!");}}); }
监控视频的查看则调用嵌入页面的ActiveX控件实现。在查询历史环境页面输入框输入开始时间与结束时间,点击查看历史数据时,Ajax和后台通信查询这段时间的历史记录,利用Struts2的Struts2jsonPlugin.jar插件返回JSON数据,前端页面fusioncharts框架利用返回的JSON数据绘制曲线图,使用户能直观地查看这段时间内的猪场环境。服务器端查询并返回JSON数据代码如下:
List
List
//接下来把查询字段封装到map集合,转换成JSON格式。遍历list集合封装到map集合
if(lishico2list != null && lishico2list.size()>0){
for(HuanJingCanShu obj: lishico2list){
xxx}}
JSONObject jso = new JSONObject();
jso.accumulate("lishihs2list", resList);
HttpServletResponse response = ServletActionContext.getResponse();
xxx
outputStream.write(jso.toString().getBytes("utf-8"));
outputStream.close();
3系统测试
在配置完Tomcat服务器后,需要在浏览器上输入网址,测试Web服务器是否能正常工作。本系统登录页面加入了用户身份验证,当输入的用户名或密码错误时会提示输入错误,并且系统登录失败。
通过登录页面进入本系统后跳转到环境页面,环境页面上能够显示当前各环境参数值,通过点击控制模式按钮,可以选择自动控制或手动控制。页面能够正常显示和发送控制信号,说明整个软件系统正常工作。
历史数据页面使用Fusioncharts对各个历史环境参数数据进行绘图,并使用曲线图展示出来,使用户对历史环境一目了然。这里输入开始时间、结束时间,点击历史温度按钮曲线图如图7所示。
进行视频监控测试时,进入视频监控页面安装好ActiveX控件后,页面即出现视频监控小窗,说明ActiveX控件成功安装。用户选择在不同摄像头下播放按钮,前端监控设备则会把实时监控数据传递给Web服务器,由Web服务器再发送到客户机的浏览器上。
4结语
本文设计并实现了基于Web的远程猪舍监控系统,系统采用MySQL作为数据库,Tomcat作为Web服务器,并使用Spring、Hinernate、Struts2三大框架对系统进行搭建。系统以网页作为数据显示和控制的主页面,主要采用Ajax异步数据交互技术实现与后台通信;使用ActiveX控件对海康公司的前端监控设备进行二次开发,调用其提供的接口函数,完成实时监控视频的预览功能;对监控系统的Web前端页面进行了设计和实现,主要使用Javascript语言调用ActiveX控件对象的响应函数。用户通过浏览器访问系统,可查看猪舍内的视频监控和环境参数,并可发送控制指令控制下位机调节环境参数,从而实现了用户随时随地对猪舍的查看与控制。
参考文献参考文献:
[1]熊伟.基于web的视频监控平台设计与实现[D].武汉:华中师范大学,2014.
[2]林光源,张国平,高雪莲,等.基于JavaWeb的远程库房环境监控系统[J].信息技术,2017(5):5055.
[3]陈诚.基于Web的节水灌溉远程监控系统[J].计算机与现代化,2017(6):8083.
[4]李荣国,王见.MySQL数据库在自动测试系统中的应用[J].计算机应用,2011,31(z2):169171,175.
[5]赵娟.鸡舍环境参数检测及管理系统的研究[D].保定:河北农业大学,2011.
[6]周翔.基于SSH框架的网络集成化楼宇视频监控平台的设计与实现[D].南昌:东华理工大学,2015.
[7]郭永瑞,孙朋德.ActiveX控件的编写和使用[J].科技信息:科学教研,2007(22):4849.
[8]SAMUEL DAYO OKEGBILE,ADENIRAN ISHOLA OLUWARANTI,ADEKUNLE ADERIBIGBE.Web based automatic soil chemical contents monitoring system[J].International Journal of Advanced Pervasive and Ubiquitous Computing (IJAPUC),2016,8(1):4145.
[9]FRANCESCO FROSINI,ROBERTO MINIATI,PAOLO AVEZZANO, et al. Development of a Web based monitoring system for safety and activity analysis in operating theatres[J]. Technology and Health Care,2016,24(1):6368.
责任编辑(责任编辑:黄健)