Water level monitoring system (Watmonitor) is a IoT dasboard based on PHP, HTML5 and lightweight Bootstrap Bare template. It provides gateway for sensor node to pass the data of water level measurement into SQL database in periodical 5-minute intervals. For users it comes with user friendly responsive web interface that offers real-time data of water level and water volume, connection status of sensor node, but it provides also historical data visualisations via graphs, table visualisations or also minimal or maximal measurement per day, week or month. The web interface is universal and can be used with any sensor node for hobby / industrial usage. There are example source codes available for open-source hardware Arduino, ESP32 and ESP8266 and ultrasonic sensors that can be used for sending data into the dashboard. These examples utilize ultrasonic sensors, including popular models like HC-SR04 and its waterproof variant JSN-SR04T, to record data about the water level in dug wells through a sensor node equipped with a microcontroller. In addition to HC-SR04 and JSN-SR04T, our program supports various sensors with Trigger/Echo signals, such as RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, and Parallax PING)))™ series, providing flexibility in implementation. The sensor node routinely conducts 10 averaged measurements with the ultrasonic sensor every 5 minutes. The recorded values are then transmitted to the server via multiple interface options, including WiFi, Ethernet, IoT network LoRaWAN, NB-IoT, or Sigfox. Web interface comes in various language options.
Ultrasonic sensors operate by sending a Trigger signal with a 10 μs duration, which reflects off the water surface and returns as the Echo. The Time-of-Flight method calculates the time between transmission and reception to determine the distance of the water level from the sensor. The speed of sound is calculated at 343 m/s at a temperature of 20 °C, forming the basis for accurate distance measurement. An essential parameter is the beam width, representing the detection characteristic. The HC-SR04 sensor features a narrow 15° detection characteristic, making it suitable for narrower wells and tanks. While the HC-SR04 is ideal for narrower environments, it is not waterproof and has a higher risk of corrosion in wet conditions. Therefore, placing it above the well is recommended to minimize the impact of humidity. The JSN-SR04T, a waterproof sensor, has a wider 60° detection characteristic. However, this limits its use in narrow wells, as the beam widens with distance. A larger well diameter is required (e.g., 6 meters diameter for a well depth of 4.5 meters) to guarantee accurate measurements without reflections. Ultrasonic sensors, in general, are maintenance-free. However, the JSN-SR04T sensor has a control electronic board that should not be exposed to moisture and water. The sensors, including JSN-SR04T, can measure a maximum height of approximately 400 to 450 cm, providing a versatile range for various well depths. Understanding the intricacies of ultrasonic water level sensors empowers effective monitoring, ensuring precision and reliability in diverse environmental conditions. Explore placement strategies and the features of HC-SR04 and JSN-SR04T for optimal results in your water level measurement system.
Firmware name | Firmware function | ESP8266 | ESP32 |
---|---|---|---|
Ultra Low Power |
Firmware for ULP applications with low current consumption. The firmware is loaded via the bundled ESPTOOL tool automatically, which is run with a .bat script (in the script it is necessary to change the COM port of your ESP board). After uploading the firmware and assuming that ESP does not have the SSID and password from the previous project stored, WiFiManager will start, which is used to configure the existing WiFi network. ESP will start broadcasting an open WiFi network with SSID -> Hladinomer_AP in AP mode. After connecting the client (Windows / Android / iOS) the Captive portal will start on 192.168.4.1 (the client should be redirected automatically). WiFiManager allows you to select a WiFi network in range in the web interface, set a password. After successfully connecting ESP to the specified WiFi network and assigning IPv4 from the given range, Captive Portal will be turned off, ESP remains in STA-Station mode. Subsequently, the sensor node will start transmitting data to the web interface Water Level Monitor . The next time the sensor node is started, Captive Portal and WiFiManager will no longer start, as the WiFi network configuration is permanently preserved. After datas are sent to server, ESP microcontroller will switch to Deep Sleep mode. It will turn off main processor Xtensa. ESP8266 is awakened via WAKE timer (jumper between GPIO16 and RST required - check Wiring diagram), ESP32 is awakened via RTC Timer. |
ESP8266 .bin firmware | ESP32 .bin firmware |
StandBy |
Firmware for StandBy mode of the microcontroller, which sends at regular intervals (5 min) measurements of the water level to the web server and at the same time maintains connectivity with the AP in the LAN network. The firmware is loaded via the bundled ESPTOOL tool automatically, which is run with a .bat script (in the script it is necessary to change the COM port of your ESP board). After uploading the firmware and assuming that ESP does not have the SSID and password from the previous project stored, WiFiManager will start, which is used to configure the existing WiFi network. ESP will start broadcasting an open WiFi network with SSID in AP mode --> Hladinomer_AP. After connecting the client (Windows / Android / iOS) the Captive portal will start on 192.168.4.1 (the client should be redirected automatically). WiFiManager allows you to select a WiFi network in range in the web interface, set a password. After successfully connecting ESP to the specified WiFi network and assigning IPv4 from the given range, Captive Portal will be turned off, ESP remains in STA-Station mode. Subsequently, the sensor node starts transmitting data to the web interface Water Level Monitor. The next time the sensor node is started, Captive Portal and WiFiManager will no longer start, as the WiFi network configuration is permanently stored. |
ESP8266 .bin firmware | ESP32 .bin firmware |
Enhance your well monitoring experience with our advanced web interface, backed by a powerful backend that leverages trigonometry to estimate the maximum depth of your well. This innovative solution is designed to calculate the optimal depth for each sensor, based on its unique characteristics, making it accessible even for those unfamiliar with sensor selection. The project seamlessly integrates with microcontrollers, with the option to use the widely popular Arduino platform (Uno/Mega) in revision R3. This compatibility extends to Ethernet shields communicating via the ICSP interface. Alternatively, Ethernet modules such as Wiznet W5100, W5500, and USR-ES1, as well as MicroChip's ENC28J60 with software TCP stack, are fully supported, enabling HTTP connectivity on port 80. Explore the versatility of WiFi microcontrollers, including Espressif Systems' ESP8266 and ESP32, both of which offer various operating modes such as StandBy, StandBy + OTA for remote firmware updates, and deep sleep mode for ultra-low-power applications. The ESP microcontrollers stand out by providing encrypted communication through the HTTPS protocol. ESP32 goes a step further, allowing the use of PHY Ethernet with the LAN8720 RMII interface, supporting both HTTP and HTTPS connections. Security is a priority with the incorporation of Root CA certificates in .pem format directly into the source code of the microcontrollers, stored in flash memory (PROGMEM) to optimize RAM usage. These certificates, issued for 10 to 20 years, eliminate the need for frequent renewals. Effortlessly access real-time data on water level and volume in JSON format through the web interface. Take your well monitoring to the next level by integrating our water level monitor project via MQTT into popular home automation platforms like Hassio, Domoticz, and Loxone. Visualize data on dedicated dashboards such as Grafana, Ubidots, Thingsboard, or Cayenne. Empower your peripheral control capabilities by using data from the web interface to manage irrigation, watering, and domestic waterworks. Elevate your well monitoring experience with our user-friendly and technologically advanced solution, catering to both experts and novices alike.
Operating mode | StandBy | StandBy + Over The Air (OTA) | Ultra Low Power (ULP) | FreeRTOS |
---|---|---|---|---|
Microcontroller | - | - | - | - |
Arduino + Ethernet | ✓ | × | × | × |
ESP8266 | ✓ | ✓ | ✓ | × |
ESP32 | ✓ | ✓ | ✓ | ✓ |
Library name | Library function | Download |
---|---|---|
NewPing |
Library for AVR microcontrollers (ATmega) Arduino Uno / Nano / Mega. It allows to perform measurements with ultrasonic distance sensors RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™. |
Download |
NewPingESP8266 |
Library for ESP8266 and ESP32 microcontrollers. It allows to perform measurements with ultrasonic distance sensors RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™. |
Download |
Ethernet2 |
Library for AVR microcontrollers (ATmega) Arduino Uno / Nano / Mega. It enables communication with the Ethernet module Wiznet W5200 to W5500 via the SPI interface. |
Download |
Ethernet3 |
Library for AVR microcontrollers (ATmega) Arduino Uno / Nano / Mega. It enables communication with Ethernet module Wiznet W5500 V2 - USR-ES1 via SPI interface. |
Download |