Software and data visualization platform for groundwater level and quality monitoring system
C Oppus1, M A L Guzman2, J C Monje1, M L Guico1, G Ngo1, A Domingo1, J C Kwong1, M G Retirado1
1Electronics, Computer, and Communications Department, Ateneo de Manila University, Katipunan Avenue, 1108, Philippines
2Environmental Science Department, Ateneo de Manila University, Katipunan Avenue, 1108, Philippines
Email: coppus@ateneo.edu1
Abstract. Rapid urbanization and increasing population come with the increased extraction and use of groundwater resources. To track the effect of these activities on groundwater level and quantity, a system for real-time monitoring is devised. In this paper, we present a software system design that enables a locally-developed groundwater level and water quality monitoring hardware setup to gather water quality parameter data, send it to a cloud server, and present organized data for better visualization. The hardware setup consists of an Arduino microcontroller. Upon deployment, the hardware setup is linked to an Android application that connects to the web-based platform.
Introduction
The bulk of the water supply in the Philippines is groundwater [1]. Based on the water rights granted by the National Water Resources Board (NWRB), 49% of groundwater is consumed by the domestic sector, and the remaining percentage is shared by agriculture, industry, and other sectors [2]. Due to the growing population in the country, the demand for water surges, resulting in a continued increase in the extraction of groundwater [1]. With almost half the population relying on groundwater for drinking [3], it is imperative that constant monitoring of groundwater level and quality be implemented. Other near-real time monitoring systems with data visualization utilizing different water-pertinent sensors had also been developed to monitor rain, flood, rivers, and sea levels [4][5][6]. The Groundwater Management Plan (GMP) project seeks to provide accessible real-time water level and quality data from various monitoring wells located all over the Philippines. This data can guide policymakers in making informed decisions regarding groundwater use and regulation [7].
To better provide meaningful data to various stakeholders, the goal of this paper is to develop a software system that would assist the project in delivering real-time water level and quality data. This is to be done by (1) developing a program that would enable the designed hardware setup to perform data calibration, gathering, and transmission of groundwater quality and quantity parameters, (2) setting-up a cloud service that stores the data transmitted by the hardware, and (3) coming up with an avenue to visually showcase the data gathered by the deployed system [8].
System Design
The general framework for this paper focuses on the sensor node (sensor control box), cloud server, and data dashboard through a web-based platform. The interaction, as shown in Figure 1, follows a flow starting from the sensors to the box, then to the cloud service, and finally to the visualization component. While not integral to the hardware setup, a supplementary Android application comes
handy when calibrating or debugging the hardware system. Similar systems have also been developed with data visualization presented to either an existing open- or an exclusively- developed platform [9][10][11].
Figure 1. General Software System Design.
-
- Sensor Node
The sensor node program is in the Arduino language. This is in line with the use of the Bluno Mega 2560 as the microcontroller dedicated to data gathering and transmission.
After calibration, the node gathers and transmits, at an hourly rate, the following parameters: pH levels, Temperature in Celsius, Electrical Conductivity (EC) in micro Siemens/centimeter (micro;S), Total Dissolved Solids (TDS) in parts per million (ppm), Salinity in practical salinity unit (psu), static water level (SWL) in meters below ground, and battery reading in volts.
The data transmission from the node to a cloud server is done through a GSM/GPRS module. To utilize the module, a library is compiled based on the GPRS library so that the methods relating to data transmission can be called by the main Arduino program. This library has the capability to flush the stream data, and send it over HTTPS reliably.
-
- Android Application
The Android application is coded in Android Studio 3.4 with Gradle as the build tool. The creation of an application serves as a convenient feature to access the microcontroller for calibration and debugging.
The application is capable of sending commands to the microcontroller and receiving data through serial communication at a common baud rate. Taking into full consideration the microcontrollerrsquo;s specifications, the serial communication may be established using Bluetooth connection or via USB On-the-Go (OTG).
-
- Cloud Service
Serving as the bridge between the sensor node and the web-based platform, the cloud service is where the data from the hardware setup is archived and accessed for display through REST APIs. The cloud also houses the following information about a well site where the sensor node is deployed:
-
-
- Sensor node ID
- Site name, address, and area
- Latitude and Longitude
- Wellrsquo;s as-built SWL
- Installation date
-
There are two types of tables that are kept in the cloud – a
剩余内容已隐藏,支付完成后下载完整资料
地下水位和水质监测系统的软件和数据可视化平台
摘要 当今,快速的城市化以及人口数量的增加带来了地下水资源的进一步开采和利用。为了跟踪这些活动对地下水位和地下水质量的影响,特此设计了一种实时监测系统。在本文中,我们提出了一个软件系统设计,使一个本地开发的地下水位和水质监测硬件设置收集水质参数数据,发送到云服务器,并呈现有组织的数据,以进行更好地可视化。硬件设置包括一个Arduino微控制器。部署后,将硬件设置链接到Android应用程序,该应用程序将连接到基于Web的平台上。
- 介绍
菲律宾的大部分供水是地下水[1]。根据国家水资源委员会(NWRB)授予的水权,家庭部门消耗了国家每年开采的49%的地下水,其余百分比由农业,工业和其他部门共同消耗[2]。由于本国人口的增长,对水的需求激增,导致地下水的开采量持续增加[1]。由于本国几乎一半的人口均饮用地下水[3],因此必须对地下水位和水质进行持续监测。于此同时还开发了其他利用不同水相关传感器进行数据可视化的近实时监测系统,以监测雨水,洪水,河流和海平面[4] [5] [6]。地下水管理计划(GMP)项目旨在通过对位于菲律宾各地的水数据进行各种监测井提供可访问的实时水位和质量数据。该数据可以指导决策者就地下水的使用和法规做出明智的决策[7]。
为了更好地向各个利益相关者提供有意义的数据,本文的目的是开发一个软件系统,该软件系统将有助于向该项目提供实时的水位和水质数据。这可以通过(1)开发程序来实现,该程序将使设计的硬件能够执行数据校准,收集和传输地下水水质和水量参数的操作,(2)设置一个存储硬件数据的云服务平台,以(3)提出一种可以将部署系统收集的数据进行可视化的途径[8]。
- 系统设计
本文的总体框架通过基于Web的平台着重于传感器节点(传感器控制盒),云服务器和数据仪表板。如图1所示,交互遵循从传感器到盒子,然后到云服务,最后到可视化组件的流程。虽然不是硬件设置所必需的,但还提供了用于替代的Android应用程序。在校准或调试硬件系统时非常方便。同样的还开发了类似的系统,将数据可视化呈现给现有的开放式或专用开发的平台[9] [10] [11]。
图1.通用软件系统设计
2.1.传感器节点
传感器节点程序使用Arduino语言。这与Bluno Mega 2560作为专用于数据收集和传输的微控制器的使用是一致的。
校准后,节点以每小时的频率收集并传输以下参数:pH值,摄氏温度,微西门子/厘米(micro;S)的电导率(EC),百万分之几的总溶解固体(TDS)( ppm),实际盐度单位(psu)中的盐度,地下米以下的静态水位(SWL)和伏特单位的电池读数。
从节点到云服务器的数据传输是通过GSM / GPRS模块完成的。为了利用该模块,基于GPRS库编译了一个库,以便与数据传输有关的方法可以由Arduino主程序调用。该库具有刷新流数据并可靠地通过HTTPS发送数据的能力。
2.2 .Android应用程序
Android应用程序使用Gradle作为构建工具在Android Studio 3.4中进行了编码。应用程序的创建是为了更便捷的访问微控制器以进行校准和调试。
该应用程序能够将命令发送到微控制器,并通过串行通信以通用波特率接收数据。在充分考虑微控制器的规格的情况下,可以使用蓝牙连接或通过USB On-the-Go(OTG)建立串行通信。
2.3。云服务
作为传感器节点和基于Web的平台之间的桥梁,云服务是使用硬件设置数据的存档和访问,可通过REST API进行显示。云服务中还包含有关部署传感器节点的井场的以下信息:
bull;传感器节点ID
bull;站点名称,地址和区域
bull;纬度和经度
bull;地下水的静态水位
bull;安装日期
云中保存了两种类型的表:用于在井场存储信息的表,以及用于存储由传感器节点传输的所有数据的表。
2.4.基于Web的平台
基于Web的平台可确保为公众提供更好,更有效的数据表示。有两种访问平台的方法-专用和公开。专用访问主要用于跟踪常规且一致的数据传输,因此需要用户帐户才能访问。公开访问更多地迎合了公众的需求,并显示了简化后数据并用图形表示。
该平台建立在PHP-Laravel上,PHP-Laravel是一个Web应用程序框架,旨在为Web项目中的常见任务提供工具,例如身份验证,路由,会话和缓存。在获取生成的API时,使用Promise and Fetch API接口。提取允许程序发出网络请求,类似于XMLHttpRequest(XHR)。主要区别之一是Fetch使用Promises,它提供了一种避免回调的方法。Promise是一个对象,代表异步功能的响应状态(未决,已实现或已拒绝)。
-
程序设计
3.1.传感器节点
传感器节点的Arduino草图可分为三个功能块:(1)校准,(2)数据收集和(3)数据传输。校准功能在启动时仅运行一次,而数据的收集和传输则每隔一小时间就连续执行。
在校准过程中,该程序被设计为在启动时被激活。在图2的流程图中,首先提示用户选择是否进入校准模式。如果20秒钟内未采取任何措施,程序将继续进行数据收集和传输。校准过程可细分为五个命令:(1)pH,(2)EC,TDS,盐度和(3)温度,(4)读取模式和(5)手动模式的校准。
在校准pH参数时,程序将要求用户连续将pH传感器浸入三(3)种不同的pH溶液(例如,pH 7,pH 4和pH 10)中。该程序旨在连续读取传感器的模拟电压。当仍浸入相应的pH溶液中时,一旦传感器读数稳定下来,用户就可以按下确认按钮以接受校准值。显示的最后一个模拟读数用作溶液pH值的基准值。
在校准EC,TDS和盐度时,该程序将要求用户在干燥的表面以及浸入1,440 micro;S和12,880micro;S溶液的情况下,记录来自EC传感器的读数。EC传感器带有一个电路,该电路能够按照要求的步骤校准EC,TDS和盐度。
图2.传感器校准流程图
在校准温度参数时,程序将要求用户将温度传感器浸没在室温,冰点和沸点的水中。
在读取模式下,程序将显示所有的参数读数。这样可确保在将传感器下降到监控井之前,正确的校准了传感器。此模式还可用于检查传感器返回的值是否稳定。
手动模式用于需要用户手动输入值的参数,例如用于将自身与云服务器中其他传感器节点区分开的传感器节点ID。在此模式下,也可以通过将深度传感器的模拟值输入为零深度(未淹没)以及将传感器淹没到的地下水的估计深度来进行SWL校准。
对于pH,EC和温度传感器,收集了九个连续的数据点。然后将这些用于设置每个传感器值的中值。SWL和电池电压读数通过Bluno Mega的ADC读取,并记录为绝对值。
读取所有需要的参数后,将进行数据传输。首先从基于软件的GSM / GPRS模块激活开始,然后短暂延迟以确保模块设法锁定在基站上。传输之前,本地副本存储在传感器节点的SD卡上。保存后,将在配置模块时考虑使用的网络和通信标准。为了确保数据传输的可靠性,系统在继续操作之前会考虑云服务器的响应。如果到云服务器的传输失败,则系统将再次尝试,并在经过预定次数的尝试后停止。
完成数据收集和传输后,该程序将GSM / GPRS模块设置为进入睡眠模式一个小时,然后再次激活它以收集和传输一组新的数据点,如图3所示。
3.2.Android应用程序
Android应用程序由单个活动组成,该活动包括按钮,TextView小部件和EditText小部件,如图4的截屏所示。这些按钮用于将命令发送到传感器节点,例如,校准选项。TextView用作微控制器发送的串行信息的显示区域。在手动校准模式下,EditText用作用户输入命令的区域。
图3.数据收集和传输流程图
图4. Android应用程序的屏幕截图
要运行该应用程序,用户必须允许程序提出的使用蓝牙或者使用USB的请求。
3.3.云服务
生成两个REST API –用于访问井场信息的API和用于访问传感器节点传输的数据的API。
为了使API访问井场信息,将创建四个HTTP请求,即读取,插入,更新和删除。该API访问有关传感器节点所处站点的信息表。
读取是一个GET请求,该请求以JSON格式返回所有油井站点上的信息。
插入是一个POST请求,它将在电子表格中追加新行,并需要有关该站点的必要信息作为参数。在所有参数中,严格要求传感器节点ID,而其他所有参数则可能留空,并在以后使用更新请求时填写。
更新是PATCH请求,允许用户修改与声明的传感器节点ID相关的任何信息。可以通过此请求修改除传感器节点ID之外的所有信息。这要求在对信息进行任何修改之前,所选的传感器节点ID首先要存在于记录中。
Delete是一个DELETE请求,它删除与指定的传感器节点ID相关的所有信息。一旦调用此操作就无法撤消,并且不会影响其他API。
为了访问访问传感器节点发送的数据的API,将创建三个HTTP请求,即addWell,addItem和getItem。该API访问包含传感器节点发送的数据的表。
addWell是一个POST请求,允许用户为特定传感器节点创建表。此请求需要传感器节点ID作为参数。该请求与井位信息API的插入请求一起被调用。
addItem是在传感器节点程序的数据传输部分期间调用的另一个POST请求。它要求输入传感器节点ID和数据参数值。成功调用后,将在指定的表后追加一行。
getItem是一个GET请求,它返回表中记录的所有数据的JSON格式。要检索数据,需要所需传感器节点的ID。
3.4。基于网络的平台
专用平台具有向用户呈现数据的三个页面,即“摘要页面”,“查看站点页面”和“添加井站点页面”。
图5所示的“摘要页面”显示了一个数据表,其中包含有关站点的所有信息。也有显示信息的卡,例如已部署的传感器节点总数,传感器节点已部署的区域/省总数,以及当前日期和时间。该摘要页面允许用户修改有关该站点的任何信息,并从记录中删除该站点。
在查看站点页面上,用户可以图形和表格格式查看和下载传感器节点发送的所有数据点。在图6页面的屏幕截图中,显示了有关所选站点的信息。要查看所有这些详细信息,用户必须首先选择要查看的传感器节点。该页面允许用户修改有关所选站点的任何信息。
在“添加井场”页面上,向用户显示一个表格,其中他们必须填写有关传感器节点的必要信息。该页面的屏幕快照如图7所示。
图5. “摘要”页面的屏幕截图
(a)
(b) (c)
图6.查看站点页面:(a)初看时全屏;(b)左侧;(c)右侧
图7. Add Well Site页面上的表单的屏幕截图。
图8. “站点位置”页面上的菲律宾地图的屏幕截图 图9.具有所选站点的“站点位置”页面的屏幕截图。
另一方面,公共平台具有两个页面,分别向用户展示数据,即“站点位置页面”和“仪表盘页面”。
站点位置页面上是传感器节点的位置。Google Maps API用于提供地面井场的地图和标记。该页面的屏幕截图如图8所示。在此页面上,用户可以通过单击标记本身或通过屏幕左上方的下拉按钮选择站点名称来查看更多站点信息。用户选择站点后可以查看的示例如图9所示。信息窗口包含以下详细信息:
bull;地面井的地点名称和位置
bull;最新的SWL数据
bull;传感器节点上次发送数据的时间戳
bull;网站本身的图片
在仪表板页面上,用户可以查看图形表示和从传感器节点接收到的数据表。图10显示了该页面的屏幕截图。用户通过下拉选项选择要访
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[261372],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。