一种基于大数据的水产养殖水质监测系统的制作方法

    专利2022-07-07  142


    本发明涉及一种水质监测系统,特别是一种基于大数据的水产养殖水质监测系统。



    背景技术:

    随着国家人口的日益增长导致食物品种和数量的需求大幅增加,在国内原有的粮食生产总量还无法满足人们对食物多样性的需求,给人们的日常生活造成极大影响;由于水产养殖有着投入资金量少、相比于其他陆地类养殖业生长周期短更短的优点,故而在国内自主发展水产养殖业,不仅能解决进口食品安全问题,还增加人民饮食的多样性;但是传统的水产养殖由于人力资源不足、加之管理不到位,容易造成养殖水质污染、水体中病菌含量增加致使鱼类发病等问题,这些因素制约了传统水产养殖的发展,使得传统水产养殖的产量不大、经济效益不高。



    技术实现要素:

    为了克服现有技术的不足,本发明提供一种基于大数据的水产养殖水质监测系统。

    本发明解决其技术问题所采用的技术方案是:

    一种基于大数据的水产养殖水质监测系统,包括应用检测层、数据应用层和数据技术层;所述应用检测层将采集到的数据输送到所述数据技术层进行转换,所述数据应用层基于大数据对所述数据技术层传来的数据进行分析、并根据分析结果控制所述应用检测层对水体进行相应的调整。

    所述数据应用层包括实时监控模块、实时预警模块、实时报表模块、历史查询模块和图像分析模块;所述实时监控模块和实时预警模块均与所述数据技术层电连接,所述实时报表模块与所述应用检测层电连接;所述历史查询模块与所述图像分析模块电连接。

    所述数据技术层包括各服务器数据模块、计算机数据模块、kafka模块、kafka缓存模块、etl数据清理模块、flume日志收集模块、实时计算模块、flink模块、esper模块、hbase数据仓库模块、冷热备份模块、离线计算模块、spark模块、hdfs分布式文件系统、hive数据仓库模块、数据平台监控系统、数据可视化bdp模块和weka3.4.13模块。

    所述应用检测层包括水位传感器、温度传感器、tds检测计、补光灯、增水泵、自动水阀、叶轮式增氧机、溶解氧传感器、水硬度测试盒、dh检测计、氨氮传感器、加热棒和服务器;所述水位传感器、温度传感器、tds检测计、补光灯、增水泵、自动水阀、叶轮式增氧机、溶解氧传感器、水硬度测试盒、dh检测计、氨氮传感器和加热棒通过所述服务器与所述数据技术层建立通信连接。

    本发明的有益效果是:本发明使用多个传感器检测,使用服务器转接接入大数据,kafka对传入数据进行转化处理,再使用esper、flink对传入数据进行实时处理,若数据出现短缺,将由内部冷备数据进行补充,以至于保证数据流完整,再通过bdp对近几天或近几月关于该池塘水质进行可视化处理,呈现图像供水产养殖人员对水质实时监管,以保证养殖水质适于鱼类生长状态,再利用weka3.4.13进行数据挖掘后,能结合天气对未来几日水产养殖水质状态进行预测,让水产养殖人员更加方便管理养殖鱼塘。

    附图说明

    下面结合附图和实施例对本发明进一步说明。

    图1是本发明的系统原理图。

    图2是本发明的系统结构图。

    具体实施方式

    参考图1,一种基于大数据的水产养殖水质监测系统,包括应用检测层、数据应用层和数据技术层;所述应用检测层将采集到的数据输送到所述数据技术层进行转换,所述数据应用层基于大数据对所述数据技术层传来的数据进行分析、并根据分析结果控制所述应用检测层对水体进行相应的调整。

    参考图2,所述数据应用层包括实时监控模块、实时预警模块、实时报表模块、历史查询模块和图像分析模块;所述实时监控模块和实时预警模块均与所述数据技术层电连接,所述实时报表模块与所述应用检测层电连接;所述历史查询模块与所述图像分析模块电连接。

    所述数据技术层包括各服务器数据模块、计算机数据模块、kafka模块、kafka缓存模块、etl数据清理模块、flume日志收集模块、实时计算模块、flink模块、esper模块、hbase数据仓库模块、冷热备份模块、离线计算模块、spark模块、hdfs分布式文件系统、hive数据仓库模块、数据平台监控系统、数据可视化bdp模块和weka3.4.13模块。

    所述应用检测层包括水位传感器、温度传感器、tds检测计、补光灯、增水泵、自动水阀、叶轮式增氧机、溶解氧传感器、水硬度测试盒、dh检测计、氨氮传感器、加热棒和服务器;所述水位传感器、温度传感器、tds检测计、补光灯、增水泵、自动水阀、叶轮式增氧机、溶解氧传感器、水硬度测试盒、dh检测计、氨氮传感器和加热棒通过所述服务器与所述数据技术层建立通信连接。

    数据技术层是将传感器检测的数据通过服务器送入后台处理,各服务器数据进入kafka模块进行数据类型统一,在由etl数据清理模块将残缺不符合标准的数据筛出,清理后的数据暂时放入kafka缓存模块;在核心技术中采用flink模块对kafka缓存模块的数据进行分发及高速并行计算,esper模块对数据快速实时处理,并将相关数据关联起来得到一个完整的数据流最后存入hbase数据仓库模块;在日常养殖中计算机也会产生相关记录数据,同理使用kafka模块、etl数据清理模块进行数据统一和数据清理;采用flume日志模块收集对计算机产生的数据实现缓存,针对离线这种情况采用spark模块对kafka缓存模块的海量数据进行计算,存入到hive数据仓库模块中,使用hdfs分布式文件系统,最后在用冷热备份将实时计算和离线计算的数据进行备份;当水产养殖人员需要图像分析时,则用数据可视化bdp模块生产有关水产养殖水质监控图像,因为水质监控存在很多不确定因素,我们使用weka3.4.13模块进行数据挖掘和数据预测以提供给水产养殖人员对未来几天的水质提出理想的管理方案,而以上技术层面操作在数据平台监控系统监控完成。

    各服务器数据是指各个传感器传回来的实时数据;计算机数据是指计算机每日产生的操作数据,也称计算机日志数据。

    kafka模块和kafka缓存模块都是在kafka数据流处理平台操作的,只是功能上有所不同;kafka模块是用来把各类传感器数据统一转换为计算机数据,以提供给实时计算或离线计算使用,kafka模块具有高吞吐量、低延迟和高可靠性等优点,每秒可以处理几十万条数据,所以能很好的接收各类传感器传入的数据;kafka缓存模块利用topic在物理上的分组,每个topic能划分出多个分区,每个分区为一个目录,分区命名规则为topic名称 有序序号,第一个分区序号从0开始,序号最大值为分区数量减1,只能保证一个分区内数据的有序性,不同的分区之间是不能保证数据的有序性;kafka模块的高可靠性体现在能自主备份,由上述可知每个分区都为有序目录,各类传感器数据被连续的分配到各自分区中,分区中的每个数据都有一个连续的序列号叫做offset,用来在分区中唯一的标识这个数据。每个分区都有一个服务器“leader”来处理数据的读和写,每个服务器作为“followers”,followers用于复制leader;若leader挂掉了,任意一个followers自动成为新的leader再次进行以上操作,这样就能保证高可靠性。

    etl数据清理模块分三大部分:数据抽取、数据清洗转换、数据的加载,实现etl采用etl工具和sql相结合;数据抽取是从kafka抽取全部数据至ods(操作型数据存储)中有时也可对数据清洗和转换,在抽取过程中需选择不同的方法(触发器方式、时间戳方式、全表比对方式等),以保证etl数据清理模块的高效性。

    作为优选方案,本实施例中采用触发器方式进行数据抽取,在被抽取的数据源表上建立3个触发器,以实现插入、修改和删除功能;每当表中数据发生变化,对应的触发器会将变化的数据记录在增量日志表;增量日志表不储存数据字段信息,而只是储存数据源表名称,更新的关键字和操作,抽取过的数据要及时标注或删除;etl抽取进程是根据数据表名称和实时的关键字从中提取完整记录,通过实时操作情况对目标数据表进行处理。

    etl数据清理模块三大部分中,耗时最长的是清洗转换部分,这部分工作量是占用etl时长的2/3;数据清洗通常是在ods中清洗,对于养殖鱼塘水质检测而言,不符合要求的数据分为不完整数据和错误数据,不完整数据是指该时间段未能将传感器数据完整传入kafka模块造成信息的缺失、根据缺失内容按类别写入实时报表,并要求水产养殖人员在规定时间内补全数据信息;错误数据是指相邻时间传回数据发生突变,使用sql语句方式找出,再反馈至实时报表修正后在正常运行。

    数据的加载是在数据清洗后直接写入dw中;对于相同的数据源dbms会提供dw数据仓库链接功能,使之对kafka模块建立链接关系,可直接使用select访问;对于不同数据源odbc建立数据仓库链接。

    flume日志收集模块的作用是将计算机每日产生的操作数据存储起来的工具,属于分布式系统,必须在hadoop环境下运行;储存etl清理后的数据,flume是由一个个agent连接而成,agent又包含3个模块:source、channel和sink,source模块用来收集数据;channel模块用来存放临时数据;sink模块用来发送数据至目的地(hdfs、hbase),目的地能保证数据的安全性,而后sink模块通知channel模块删除这些临时数据,完成日志收集。

    实时计算模块是用于对大量数据进行实时计算。

    flink模块用于对数据流进行实时分布式计算,具有批处理、流处理和查询操作三大功能;批处理功能主要是对静态数据操作,将静态数据转化为分布式数据,以便flink模块进行处理;流处理功能主要是对数据流操作,将数据流转换为分布式数据流,以便flink模块进行处理;查询操作功能主要是将结构化数据转化为关系表,利用sql中的dsl进行查询。我们使用流处理功能对kafka缓存模块中的数据进行计算。

    esper模块用于对同一类型的多个数据以多种类型窗口统计数据并关联分析,具有高吞吐量和低延时的优点,能够更快更多的处理海量数据;esper模块的核心是jar包可扩展和storm(实时分布式框架)应用;计算流程为第一步选择合适语句有两种方法,第一种过滤,只有符合条件的事件才会进入引擎;第二种where,不管是否符合条件,事件都会进入引擎;第二步窗口类型有四种选择:长度窗口、时间窗口、批量长度窗口和批量时间窗口,批量窗口是指在固定的时间间隔或长度满足条件时在进行第三步,我们使用批量时间窗口对水产养殖数据进行收集,经过计算后能更有效快速发现问题;第三步计算aggregationandgrouping(聚合函数和分组统计)。

    hbase数据仓库模块用于存储实时计算的分布式数据库,具有可伸缩、面向列和实时读写的的特点,可伸缩是指根据情况对负载增减节点;面向列是指列(族)储存和控制权限可独立检索,空间利用率更高。hbase整体架构分为四部分,包含master服务器、regionserver服务器和zookeeper。zookeeper管理hbase的regionserver所有信息包括数据段存放位置等,可协调和控制集群,也可给予水产养殖人员查询与操作,还能提高读写效率;master服务器负责各类协调工作,比如建表、删表、合并等操作,这样大大降低了集群对master的依赖,所以节点一般只有1-2个,即使宕机,集群依然可以储存和删除数据;regionserver服务器是指用来存储数据,水产养殖人员从zookeeper中获取regionserver的地址,并从中获取想得到的数据。

    冷热备份模块用于对实时计算和离线计算数据进行备份;冷备份是指数据库正常关闭,离线状态下对大量的历史数据进行备份,数据丢失时能快速精准的恢复某个时间点的数据文件;热备份是指数据库运行状态下实时备份,可对多数数据库实体进行恢复。

    离线计算用于大量数据进行离线计算。

    spark模块用于批量处理离线数据和交互查询历史数据,其架构为clustermanager、worker、driver和executor;需要在clustermanager(主节点)和worker(从节点)分别启动master服务器和worker服务器进行资源管理;driver是执行程序的开始指令,负责调度,使用的是application的main()函数,即task任务的分发,worker用来管理运算节点和创建executor(执行器)并行处理;计算流程为第一步搭建运行环境并启动content,第二步向资源管理器申请运行执行器资源,第三步由执行器向spark申请任务,第四步将应用程序分发给执行器,第五步构建dag图,由taskscheduler把任务发送到执行器执行,第六步运行完释放所有资源。

    hdfs分布式文件系统用于多服务器统一并存储文件;基本组件有namenode、datanode和secondarynamenode,namenode管理系统文件的元数据,维护树状目录结构;datanode用来复制管理水产养殖人员提交的数据;secondarynamenode是用来在紧急情况下恢复数据,分两种情形,日常情形下帮助加载元数据,紧急情形下可恢复数据。

    hive数据仓库模块用于批量处理海量数据和储存hdfs中静态化数据。

    数据平台监控系统用于监控已公布数据、关键指标和可用性能;监控已公布数据主要体现在实时数据上,对于kafka需要监控机制进行监控,保证数据完整性;监控关键指标主要体现在监控实时计算结果;性能监控主要监控数据读写是否出现问题。若出现问题可使用实时预警系统预警,定期给水产养殖人员发送整合监控结果。

    数据可视化bdp模块用于实时对水产养殖水质数据变化过程的可视化。

    weka3.4.13模块用于经进行离线计算和实时计算的数据进行挖掘,预测未来几天的水质数据变化。

    通过数据应用层,水产养殖人员能得到水产养殖鱼塘各个技术指标的实时数据和历史数据,其中包括实时监控、实时预警、实时报表、历史查询和图像分析;实时监控是指对各个传感器传回来的数据进行监控,当某一参量不符合标准时将反馈信息传回至该传感器,使之数据参量进行校正,例如当水位传感器检测到养殖鱼塘水位较低,则会通过实时监控将信息传回传感器,可自行使用增水泵校正水位至标准水位,同时实时预警系统将不符合指标参量进行标注,并提醒水产养殖人员,实时报表能够同步对应用检测层的各个参量进行实时反馈记录;由于水产养殖是一个长期过程,在发生问题时还应对历史养殖数据进行分析以找出问题根源所在,水产养殖人员在该系统中可使用历史查询查找历史数据,还可通过历史图像分析更直观看出这段时间水质的变化趋势,更快速发现问题及时处理,以减少大量经济损失。

    实时监控是用来对数据技术层计算结果给予反馈,实时对养殖鱼塘的各个技术指标进行监控。

    实时预警是用来对数据技术层计算出不符合标准的数据进行标注并提醒水产养殖人员。

    实时报表用于实时记录由传感器传回的所有数据。

    历史查询用于给水产养殖人员提供自行对历史和进行养殖鱼塘信息查询。

    图像分析是对历史技术指标的汇总及对未来水产养殖状况的预测,使用图像呈现。

    在传统水产养殖中,水产养殖人员常常通过自身经验去判断水质好坏,其结论并不具备科学理论依据,这种不完善的养殖体系往往在重大气候灾害面前容易给养殖户造成巨大的经济损失;应用检测层分别通过多个传感器进行实时监测水质中水位、水温、溶解总固体、光线、溶解氧、ph值、氨和水硬度这些技术指标来帮助水产养殖人员进行科学管理养殖鱼塘,省时省力饲养水产养殖鱼,以上技术指标在通过各自的服务器将实时数据传送到数据技术层,执行有效处理相关数据后,出现相应问题再通过相对应的服务器反馈和回馈,给予相应的解决方案。

    水位传感器用于检测养殖鱼塘水位,通常养殖鱼塘的标准水位为2-3米,同时养殖鱼塘的水位需要根据季节变化进行一定调整;如冬夏两季适宜深水养殖,水位为2.5-3米,这样水位在冬天具有一定的保温作用,夏天养殖鱼塘深水位的底层水域能起到降温作用;春天和秋末时则正好相反,水位为2-2.5米以利于养殖鱼在春天增进食欲,促进生长;在秋末,使鱼多吃饲料,以储备能量过冬;若水位传感器检测到水位不符合标准水位范围,则传输异样数据至服务器进行相应处理。

    温度传感器是用来检测养殖鱼塘温度,正常养殖鱼塘温度范围为20-25℃,养殖鱼在该温度下食欲旺盛、体制强壮、活跃度最高;当水温升降2-3℃养殖鱼类尚可忍受这类范围的温度变化;若温度升降超过3℃时,养殖鱼容易生病且不进食,会造成经济损失;若温度传感器检测到温度升降超过3℃,则传输异样数据至服务器进行相应处理。

    tds检测计用于检测养殖鱼塘中溶解总固体含量,溶解总固体包括水中溶解的各种有机物或无机物的总量,范围在100-300ppm,同时要注意温度保持在25℃左右,温度过高会使tds值增加;若tds值增加大于300ppm属于污染水质,不利于养殖鱼类生长;小于100ppm属于纯净水质,纯净水中没有氧气和矿物质等微量元素,易导致鱼类死亡;若tds检测计检测到不符合该范围的tds值,则传输异样数据至服务器进行相应处理。

    补光灯用于夜间(19:00-5:00)藻类进行光合作用产生氧气提供给养殖鱼,若到该时间段则打开补光灯。

    增水泵和自动水阀是用来当水位、温度、tds值异常做出相对应处理,若水位降至2米以下、温度大于等于28℃或tds值异常都需要打开增水泵进行调节;当水位升至3米以上、温度小于等于17℃或tds值异常都需要打开自动水阀进行调节;在日常养殖过程中增水泵和自动水阀根据实际情况来控制水量的大小。

    叶轮式增氧机用于为养殖鱼塘增加溶解氧,每亩鱼塘至少配置2台叶轮式增氧机,按照季节来说夏季温度较高,养殖鱼塘溶解氧含量相对下降,在中午12:00-14:00需要打开叶轮式增氧机进行增氧,以避免养殖鱼浮头,进而导致死亡;按照水位来说,当水位为上升到3米及3米以上,水质中溶解氧含量不足,需打开叶轮式增氧机来补充氧分,使养殖鱼塘内溶解氧含量维持在5-8mg/l。

    溶解氧传感器用于检测养殖鱼塘中溶解氧含量,淡水中溶解氧饱和含量为8-10mg/l,主要来自浮游植物的光合作用和空气溶解;致使养殖鱼塘中溶解氧含量下降的原因是水中生物的呼吸作用和有机物(粪便、死亡藻类等)的分解作用,故放养密度应控制在正常范围内;例如一亩鱼塘可饲养800公斤鱼,鱼种包括350-400尾白鲢鱼、40尾鳙鱼、100尾草鱼、50尾团头鲂、100尾鲫鱼和6-8尾青鱼最为合适,若超过此范围将导致呼吸耗氧量增大,如草鱼在低于2mg/l环境下开始浮头,0.4mg/l会致死,所以养殖鱼塘溶氧量应保持在5-8mg/l,有效抑制有毒物质发生的化学反应。

    水硬度测试盒用于检测鱼塘水硬度,养殖鱼水硬度范围在7-10.5gpg(水硬度单位)。

    ph检测计用于检测养殖鱼塘ph值,养殖鱼塘的ph值应保持在6.5-8.5,在培育阶段ph值在7.5-8,成鱼阶段ph值在7-8.5最为合适;当ph值低于6.5时,养殖水呈现酸性,使养殖鱼严重缺氧浮头,即便养殖鱼塘溶解氧含量正常,仍会引发鱼类酸中毒和各类传染病(纤毛虫病、吸管虫病、水霉病等);当ph值过高时,养殖水呈现碱性,腐蚀鱼鳃组织,导致呼吸困难,引发养殖鱼氨中毒,致使养殖鱼窒息死亡;维持养殖鱼塘ph值在标准范围的方法如:日常适当加水放水,定时定量投喂,若出现异常除了利用自动水阀换底层水体外,还需养殖人员人为干预。

    氨氮传感器用于检测养殖鱼塘中氨的含量,国家渔业水质标准总氨氮含量不超过0.02mg/l;在正常养殖过程中很难达到标准含量,经研究表明水产养殖氨氮含量应小于0.2mg/l,危害养殖鱼的主要物质是游离氨;中毒情况分为2种,一种为慢性氨氮中毒,主要表现为摄食量减少,养殖鱼生长缓慢,此时氨氮含量过高则鱼类死亡;另一种为极性氨氮中毒,养殖鱼表现亢奋抽搐,游动失去平衡;产生氨氮含量超标的原因一般分为以下几种:1.过多残余饲料;2.过多鱼类排泄物;3.养殖生物密度过大;4.养殖水体没有合适的藻类;ph值和温度的变化会改变养殖水体的氨氮含量,ph值和温度越高,养殖水体氨氮含量越大,则毒性越大;具体计算方法是:分子氨含量=tan(氨氮值)*分子氨百分比,以上这些步骤可在数据技术层完成。

    加热棒用于提高养殖水体温度;由于养殖水体温度升降范围不宜过大,在冬季除了使用浅水升温原理,还需使用加热棒对水体温度调节。

    服务器用于传输上述各类传感器数据或反馈数据技术层给各类传感器的数据。

    以上的实施方式不能限定本发明创造的保护范围,专业技术领域的人员在不脱离本发明创造整体构思的情况下,所做的均等修饰与变化,均仍属于本发明创造涵盖的范围之内。


    技术特征:

    1.一种基于大数据的水产养殖水质监测系统,其特征在于它包括应用检测层、数据应用层和数据技术层;所述应用检测层将采集到的数据输送到所述数据技术层进行转换,所述数据应用层基于大数据对所述数据技术层传来的数据进行分析、并根据分析结果控制所述应用检测层对水体进行相应的调整。

    2.根据权利要求1所述的基于大数据的水产养殖水质监测系统,其特征在于所述数据应用层包括实时监控模块、实时预警模块、实时报表模块、历史查询模块和图像分析模块;所述实时监控模块和实时预警模块均与所述数据技术层电连接,所述实时报表模块与所述应用检测层电连接;所述历史查询模块与所述图像分析模块电连接。

    3.根据权利要求1所述的基于大数据的水产养殖水质监测系统,其特征在于所述数据技术层包括各服务器数据模块、计算机数据模块、kafka模块、kafka缓存模块、etl数据清理模块、flume日志收集模块、实时计算模块、flink模块、esper模块、hbase数据仓库模块、冷热备份模块、离线计算模块、spark模块、hdfs分布式文件系统、hive数据仓库模块、数据平台监控系统、数据可视化bdp模块和weka3.4.13模块。

    4.根据权利要求1所述的基于大数据的水产养殖水质监测系统,其特征在于所述应用检测层包括水位传感器、温度传感器、tds检测计、补光灯、增水泵、自动水阀、叶轮式增氧机、溶解氧传感器、水硬度测试盒、dh检测计、氨氮传感器、加热棒和服务器;所述水位传感器、温度传感器、tds检测计、补光灯、增水泵、自动水阀、叶轮式增氧机、溶解氧传感器、水硬度测试盒、dh检测计、氨氮传感器和加热棒通过所述服务器与所述数据技术层建立通信连接。

    技术总结
    本发明公开了一种基于大数据的水产养殖水质监测系统,包括应用检测层、数据应用层和数据技术层;应用检测层将采集到的数据输送到数据技术层进行转换,数据应用层基于大数据对数据技术层传来的数据进行分析、并根据分析结果控制应用检测层对水体进行相应的调整;本系统使用多个传感器检测,使用服务器转接接入大数据,kafka对传入数据进行转化处理,再使用ESper、Flink对传入数据进行实时处理,若数据出现短缺,将由内部冷备数据进行补充,以至于保证数据流完整,再通过BDP对近几天或近几月关于该池塘水质进行可视化处理,呈现图像供水产养殖人员对水质实时监管,以保证养殖水质适于鱼类生长状态,再利用WEKA3.4.13进行数据挖掘后,能结合天气对未来几日水产养殖水质状态进行预测,让水产养殖人员更加方便管理养殖鱼塘。

    技术研发人员:刘青龙;刘科润;李泰馨;马海龙
    受保护的技术使用者:电子科技大学中山学院
    技术研发日:2020.11.12
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-5051.html

    最新回复(0)