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

IoT Water level monitoring with Watmonitor webapp

For households and industry

Watmonitor - IoT level monitoringdashboard

Watmonitor is a centralized web application for visualizing the level of liquids and bulk materials. It allows connecting sensor nodes via API and storing data in a database. Thanks to the intuitive interface, you can monitor the current level and volume in real time, including trends (rise, fall) and connection status.

Key features

  • Real-time tank level and volume values ​​with measurement trends
  • Advanced visualizations – graphs with measurement history
  • Data export from graphs in .svg, .png, .csv formats
  • Maximum and minimum level values ​​for periods
  • Support for differential and total level measurements
  • Responsive design – usable on both PC and smartphone
  • Possibility of integration via JSON endpoints into other systems

The solution is designed to monitor liquids - water, oil, fuel, bulk materials such as biomass, pellets, seeds, feed, granules and other materials.

Usage Scenarios

An ideal solution for real-time water level monitoring in dug and drilled wells, retention tanks, shafts, lakes, rivers and cesspools. Also suitable for applications in waste and water management, or for measuring the height of bulk materials in industrial applications - tanks, halls, warehouses, silos with the possibility of integration into existing systems.

Supported Sensor Types

The web interface is universal – it does not distinguish from which sensor it obtains data. Any sensor for which you customize the firmware is supported. For a ready-made industrial sensor solution, just set up a callback to the Watmonitor API for data logging.

Fast Prototyping

Watmonitor enables rapid and efficient prototyping using DIY hardware and ready-to-use source codes. It supports ESP32, ESP8266, Raspberry Pi Pico W (including MicroPython), and Arduino platforms with WiFi or Ethernet connectivity (Arduino Core). The provided source codes include implementations for ultrasonic and ToF laser sensors, with advanced features such as Ultra Low Power mode and OTA updates. For ESP32, ESP-IDF versions are available, featuring FreeRTOS integration and inter-task communication. Experimental builds for LoRa PPP and LoRaWAN connectivity are also provided.

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.

Watmonitor QR code

Affordable

On-premise

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 (MATLAB, OriginLab, Excel, PowerPoint).

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 offers pre-configured ESP32 source codes for IoT sensor nodes with Wi-Fi and ULP mode support. It works with ultrasonic (JSN-SR04T, HC-SR04) or ToF laser (VL53L1X) sensors.

All routes to your Watmonitor instance are automatically configured. Source code is configured based on used protocol when viewing (HTTPS for secured connection, or HTTP for testing, localhost instance). The code is Arduino Core 3.X.X compatible for quick and seamless hardware integration.

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, you will need either local or internet web hosting. In order to execute the PHP scripts for Watmonitor, your server must have Apache (HTTPD) or NGINX service installed. Watmonitor has been tested and works on PHP versions 7 to 8.4.

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 ESP32 with WiFi and ULP and supported ultrasonic or ToF laser 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, default used is Let's Encrypt Root CA certificate ISRG Root X1.

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 LPWAN. You can access these source codes by clicking the "Sensor node examples" button at the top of this page.

In what languages is Watmonitor available?

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.

How to integrate Watmonitor into other systems?

Watmonitor has two JSON API endpoints - accessible via HTTP GET:
json_output.php – provides the latest known data (natively used by QR scanner / AR visualization).
json_output2.php – provides all recorded data with the option to enter GET parameters to limit the results (from–to), or all from, or all to.
Endpoints allow integration into other automation-enabled systems: Node-RED, Ignition SCADA, NetSuite, AWS IoT Core, ThingsBoard, Grafana, ELK Stack, Power BI, Tableau, Home Assistant... Extendable with webhooks for automation (Zapier, IFTTT, n8n, Microsoft Power Automate), or AI.

How is Communication Established Between the Server and Sensor Node?

The sensor node communicates with the webserver via HTTP or HTTPS. At regular intervals (e.g., every 5 minutes), it measures the water level and sends it using a POST request. The server stores the data in a MySQL database, allowing visualization of water levels through the Watmonitor web application and reliable monitoring of trends.

How Does the IoT Sensor Node Perform Measurement?

The IoT sensor node, measures distance using the Time-of-Flight (ToF) principle. With an ultrasonic sensor, it sends a short trigger pulse and measures the time for the echo to return. With a laser ToF sensor, it emits light pulses and calculates distance from the reflected signal’s travel time. Both methods deliver comparable measurements suitable for IoT applications.

What does the callback look like on Watmonitor?

To send data to Watmonitor, make an HTTP POST request to the host's data.php file (e.g., https://hladinomer.eu/data.php) using port 80 or 443. Include two parameters: hodnota (water level difference in cm, INT) and token (authorization). The request must include the header Content-Type: application/x-www-form-urlencoded. A successful write returns an HTTP 200 response with OK.

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