Watmonitor
Watmonitor's webapp responsive with smartphones, real-time data overview

Water level monitoring system with Watmonitor webapp

Your IoT within reach

Watmonitor: IoT water level monitoring dashboard

Webapp based on PHP, HTML5, Bootstrap. Centralized web interface capable receiving water level data from IoT (Internet of Things) sensor node (Arduino, ESP32, ESP8266 or custom one) and storing them in MySQL / MariaDB database. It empowers user to see actual data of water level, volume, measurement tendency and sensor's connectivity status in real-time. User is able to browse through all measurements in table with timestamp with option to delete exact record. It is also possible to see water level measurements in Line graphs, where user is able to download full or user-selected part of graph for visualisation or further analysis in 3rd party softwares (MATLAB, EXCEL), e.g. .csv format.

Web interface has also statistics that visualises maximum and minimum water level measurement per time period of day, week, month in Gauge graph. Sensor node can provide water level in differential (from the top) or total (from the bottom) measurement. Suitable for applications in dug wells, cesspools, tanks. Can also be used to monitor bulk materials in storage areas such as silos, containers. Web application is fully responsive and available for all platforms including smartphones, computers, Smart TVs. Webapp is translated to English, German, French, Spanish, Russian and Slovak language.

Usage Scenarios

Ideal for continuous water monitoring in wells, tanks, sumps, lakes, ponds, rivers, reservoirs, and sewage systems at home or for industrial use.

Supported Sensor Types

Watmonitor supports a wide range of sensor technologies, including: ultrasonic, optical, laser, radar, Capacitive, etc.

Sensor node

For Watmonitor, several source codes (Arduino Core) are available for open-source hardware ESP32, ESP8266 and Arduino with support for WiFi, Ethernet connections to this web interface. All implementations are tied to ultrasonic distance sensors with Trigger and Echo signals (HC-SR04, HY-SRF05, JSN-SR04T). For ESP8266 and ESP32, extended program implementations with support for Deep Sleep (ULP), Over-The-Air (OTA) are also available. For ESP32, in addition, the use of FreeRTOS (inter-task communication), program implementations in ESP-IDF (Espressif IoT Development Framework), and support for PHY Ethernet with LAN8720.

QR code scanner

Streamline monitoring in multi-sensor installations with Watmonitor’s QR code scanning feature. Easily retrieve data for any sensor node by scanning its assigned QR code using a smartphone. This eliminates the need to know the specific Watmonitor interface address, offering a quick, reliable way to access the most recent data from any sensor node.

Affordable

Self-hosted

Downloadable graphs

Open-source HW friendly

Responsive

Multilanguage support

White labeling

Support & feedback

Details

Check Watmonitor
Overview page of Watmonitor's webapp. Provides real-time data about water level and water volume values, connectivity

The root (Overview) page

The main overview of actual state of Watmonitor's sensor node data, connectivity

Watmonitor's main page displays real-time water level data, volume, and trends (increase/decrease). It also shows the time of recording and sensor node connectivity status, providing users with up-to-date information for effective water monitoring.

Historical measurements within Watmonitor's system. Possible to delete value and also to browse through records or maximum and minimum values per week, month, day

History & Records pages

Whole data history, min / max recordings for set period of time

The History page in Watmonitor displays all water level measurements in a table format, with the option to delete any record. The Records page shows the minimum and maximum water levels for the last 24 hours, 7 days, and 30 days, presented in a gauge visualization for easy monitoring.

Line Area graphs by ApexCharts.js providing water level measurements taken in time with history up to 1 year ago.

Line Area Graphs

Overview of water level data in different time series, up to 1 year ago.

Watmonitor's Graph page allows users to easily view and analyze time-series water level data. Users can download the entire graph or specific sections and export the data in multiple formats, including .csv, .png, and .svg, for further analysis and reporting.

Automatiaclly pre-generated source code for ESP32 (Espressif Systems) microcontroller with WiFi or PHY Ethernet connection method to the Watmonitor's interface via HTTP or HTTPS

ESP32 program

Automatically-generated source code for ESP32 (Arduino IDE)

The Program page provides pre-generated source code for IoT sensor nodes based on the ESP32 platform, supporting both WiFi and PHY Ethernet connectivity with FreeRTOS, depending on the selected protocol (HTTP or HTTPS). The system automatically configures routes to upload data to Watmonitor on your domain. This source code is compatible with Arduino Core 3.0.X (2024), making it easy to integrate with your IoT water monitoring setup.

Schematics, wiring diagrams for supported IoT microcontrollers used for water level monitoring using ultrasonic sensors, including ESP32, ESP8266 and Arduino

Wiring diagram

Wiring diagrams for all supported open-source hardware

The wiring diagrams available on this page are designed for open-source hardware platforms such as ESP32, ESP8266, and Arduino, with program implementations available on GitHub. Simplified pin-mapping tables are also provided to help non-technical users easily set up the hardware for their water monitoring system.

Watmonitor image

Options

Options to set waterwell dimensions, language

This page allows users to input water well dimensions (depth and diameter) to calculate the total water level and volume of the well. The page supports multiple language options, including English, Slovak, German, Russian, French, and Spanish, making it accessible to a wide range of users.

Frequently Asked Questions

The most asked question from the community answered below

Do I need web hosting to run Watmonitor on my own server?

Yes, to run Watmonitor independently, you will need either local or internet web hosting. In order to execute the PHP scripts for Watmonitor, your server must have Apache or NGINX installed. Ensure that you are using PHP version 5.6 to 7, as Watmonitor is not compatible with PHP version 8.

Is it difficult to configure the web application for Watmonitor?

Configuring the web application for Watmonitor is made easy with a detailed, step-by-step guide in PDF format. This guide simplifies the setup process for all users, including instructions for importing the .sql file into MySQL, configuring connect.php with your database credentials, setting up HTTP Auth data, and entering the device token.

Will Watmonitor automatically generate source code for my hardware?

Yes, Watmonitor will automatically generate source code sketches for your hardware, including ESP32 with WiFi or PHY Ethernet connection and supported ultrasonic sensors. The generated sketches will include the necessary MCU token, calculate the trace to the target PHP file, and automatically add your domain (note: localhost will not work—ensure you use an accessible IP or domain name). The Root CA certificate (for HTTPS connections) is not modified, so you will need to manually add it into the sketch for the ESP32.

Are there additional source codes available beyond those in the Watmonitor app?

Yes, there are several additional source codes available on GitHub that are compatible with the Watmonitor interface. These include examples for Arduino with Ethernet (ENC or Wiznet series), ESP8266, ESP32, and other transmission technologies such as LoRaWAN and Sigfox IoT. You can access these source codes by clicking the "Sensor node examples" button at the top of this page.

What language options are available in the Watmonitor web app?

The Watmonitor web app offers full language translations for the following languages: English, German, Russian, Spanish, French, and Slovak, making it accessible to a global audience.

Can I log data from the Watmonitor into other systems?

Yes, Watmonitor provides JSON output through its web interface, allowing you to easily parse and integrate the data into other systems. Supported platforms include Loxone, Grafana, Kibana, Domoticz, Node-RED, Home Assistant, Thingsboard, and more. The data includes the latest water level, water volume, and time of record, all stored in the database.

How is Communication Established Between the Server and the Arduino/ESP32 Sensor Node?

Arduino/ESP32 sensor node communicates with the webserver using HTTP or HTTPS protocols. Every 5 minutes, the sensor node measures the water level and sends the data via a POST request. This request includes detailed water level information. Upon receiving the data, the webserver stores it in a MySQL database, enabling instant visualization of water levels through the Watmonitor web application. This ensures real-time monitoring and efficient data management.

How Does the IoT Sensor Node Perform Measurement?

The IoT sensor node, powered by Arduino or ESP32, measures distance using an ultrasonic sensor with the Time-of-Flight (ToF) method. It sends a HIGH voltage pulse to the Trigger pin of the ultrasonic sensor for 10 μs and then measures the time it takes to detect a HIGH voltage signal on the Echo pin. Using the speed of sound, the sensor calculates the distance in centimeters with high precision. This efficient process ensures accurate distance measurement for IoT applications.

Available source codes for ESP32 Espressif Systems microcontroller for ultrasonic IoT sensor node application