

IoT Water level monitoring with Watmonitor webapp
For households and industry
Watmonitor: IoT Water Level Monitoring Dashboard
Watmonitor is a centralized, web-based IoT dashboard for monitoring liquid and material levels. It collects real-time data from sensor nodes, including ultrasonic and laser distance sensors. The intuitive interface allows users to monitor water level and volume, track trends (rising or decreasing), and check sensor connectivity status. Advanced visualizations include gauge charts for maximum and minimum values over time, as well as line area charts showing historical water level data. All data can be exported in .csv format for SCADA, HMI, ERP, MES, or Excel integration.
Sensor nodes provide water level measurements either as differential (from the top) or total (from the bottom). Watmonitor is designed for precise tracking of liquids (water, oil, fuel) and bulk materials (grains, pellets, feed, biomass). The web application is fully responsive and compatible with all platforms, including smartphones, computers, and Smart TVs. It is available in multiple languages, including English, German, French, Spanish, Russian, and Slovak.
Usage Scenarios
Watmonitor is ideal for real-time water level monitoring in wells, water tanks, sumps, lakes, ponds, rivers, reservoirs, and sewage systems. It is also suitable for wastewater management, industrial water management, and bulk material level measurement in both industrial and residential applications.
Supported Sensor Types
Watmonitor offers a universal web interface compatible with any sensor. It automatically integrates data from ultrasonic, laser distance, or any custom IoT sensors with firmware configured for the system. For industrial-ready solutions, you can connect sensors directly via Watmonitor's API for real-time monitoring and data collection.
Fast prototyping
For fast start with Watmonitor, there are available source codes for DIY open-source hardware. That includes ESP32, ESP8266, Arduino with WiFi, Ethernet support and ultrasonic / ToF laser distance sensors. You can find there basic or more advanced implementations including functionalities such as: Ultra Low Power / Over-The-Air updates. For ESP32 there are also available implementations in ESP-IDF, with FreeRTOS and inter-task communication.
QR / AR Features
Watmonitor allows instant access to the latest sensor data by scanning a QR code with your smartphone. Users can view either a static visualization or an interactive AR (Augmented Reality) scene with fixed camera distance, providing a more engaging way to monitor water levels and other sensor data in real time.
Affordable
Self-hosted
Downloadable graphs
Open-source HW friendly
Responsive
Multilanguage support
White labeling
Support & feedback
Details

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.

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
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 (SCADA, HMI, ERP, MES, MATLAB, Excel).

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.

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.

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.
Gallery
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.
What does the callback look like on Watmonitor?
To write data to Watmonitor, you must use the HTTP request (port 80, or another if it is local hosting) / HTTPS (port 443) POST method to the target host and the data.php file (for example https://hladinomer.eu/data.php). The message parameters are "hodnota" - the water level in centimeters (data type INT) and "token", which represents the authorization token. If the write is successful, you will receive an HTTP 200 header in the server response and also an OK text output. Note: Enter the parameters without quotes.
