Item Description
I offer a web application programmed for me for the level meter project. The web application allows to record data from the sensor node, which sends information about the water level in the well / tank at regular intervals (5 min). The data is visualized to the user in the web interface in the dashboard, or historically in time in graphs, tables.
Ultrasonic measurement is used. The principle of measuring ultrasonic sensors is to send a Trigger signal with a length of 10 μs (microseconds), which bounces off the water level and returns to the receiver - Echo. The Time-of-Flight method is used to recalculate the time between sending and receiving the signal to obtain the differential water level from the sensor.
After sending the data to the web interface, a correction is performed, when the real level is calculated from the bottom of the well, which is entered into the database. The correction is made on the basis of the known depth of the well and the accepted differential water level from the ultrasonic sensor. The web interface in the dashboard also visualizes the current well volume in liters based on the known well diameter. Both values are also visualized with a tendency from the previous measurement t.k. rises, falls, stabilized by XY cm / by XY liters.
Ultrasonic sensors are suitable for:
- Digged wells
- Septics and cesspools
- Streams and lakes
- Plastic rainwater tanks
- Silos (bulk filling measurement)
- Containers (waste monitoring, collection container filling)
- Boilers (monitoring of wood, pellets, coal, wood chips)
- Manholes and cellars (groundwater monitoring)
Ultrasonic sensors are NOT suitable for:
- Drilled wells (due to detection characteristics - wide beam)
- Pipes and tubes (due to detection characteristics - wide beam)
- In wells with a tributary (the turbulent level dampens the ultrasound, measurement is impossible)
- To places with a sudden change in temperature (temperature affects the time of sound propagation, so even the stationary level appears to fluctuate)
- For vacuum tanks (measurement is impossible)
The project uses an ultrasonic distance sensor HC-SR04 - (detection angle 15 °), or a water test sensor JSN-SR04T (detection angle is up to 60 °).
It is also possible to use similar sensors with the same measurement method and Trigger, Echo signals: US-02X, IOE-SR0X, HC-SR0X, HY-SRF0X, DYP-ME007. The detection angle represents the width of the beam. It is possible to measure the level up to 400 resp. 450 cm (based on data from the catalog sheet of individual sensors).
It is possible to use an Arduino microcontroller (Uno / Mega) with a Wiznet W5100 or W5500 Ethernet module or its newer version USR-ES1 to operate the project. WiFi platforms from Espressif Systems - ESP8266 (NodeMCU, Wemos D1 Mini, Generic Board) or ESP32 (Devkit, or a separate module such as ESP32-WROOM-32) can be used for air data transmission. The wiring diagram for all platforms is available directly in the web application together with the source codes in the Wiring language (.ino app), resp. An experimental implementation in the ESP-IDF framework with a real-time operating system - FreeRTOS with the Queue blocking mechanism is also available for ESP32. Also ESP32 can be used with PHY Ethernet LAN8720 module controlled by WiFi controller (MAC layer) via RMII interface.
The ESP8266 and ESP32 microcontroller platforms (Wiring implementations) can also be operated in ULP (Ultra-Low Power) mode, which dramatically reduces their consumption to the level of tens of microamperes. Suitable for battery operation for several years (it is necessary to use a transistor to switch the power supply for the sensor, requires modification of the source code).
The second operating mode is StandBy, where the platform runs in standard mode and can be extended with the implementation of Over The Air (OTA), which offers firmware updates via LAN directly from the ArduinoIDE interface, espota.py is used for the upload process. Arduino with Ethernet only supports HTTP connectivity and does not support OTA update or Low-power mode! HTTP and HTTPS encrypted connections to the web server can be used for the ESP8266 and ESP32 platforms.
If fixed internet is not available at the given place, it is also possible to use data transmission via the IoT network Sigfox, which covers most EU countries and is thus a suitable alternative for areas without internet coverage. The SIGFOX WISOL 868MHz UART modem (SFM10R1) is compatible, which communicates with the microcontroller via AT commands via UART.
The modem is suitable for IoT applications with low current consumption. Message limit 12B (used 4B for water level UINT_32), custom callback from Sigfox backend executes HTTP / HTTPS POST request to write data to web interface. Because the Sigfox network has a limited number of messages per day (140), measurement and data transmission is performed every 11 minutes. In the case of a license for 140 messages, it is possible to use other - system data for transmission, for example GPS coordinates from the Sigfox ATLAS system (it is necessary to edit the file for writing to the database, + change of table fields).
To run the project, it is necessary to have a web server with Apache / Nginx support (for .php scripts) on the public IP address or in the LAN network, where the platform sends data from the ultrasonic sensor. ATTENTION, in case of Sigfox operation the server must be accessible from the Internet, otherwise it is not possible to write data! An application runs on the web server that visualizes the user's latest data in a dynamic report with a microcontroller connectivity indicator.
The web interface also contains a record of records - maximum, minimum value of the water level in 24 hours, 7 days, 30 days. This data is visualized in the alarm clock representation. Highs and lows indicate continuous well yield.
The web application also has various configurable data that are needed to correctly determine the water level - the depth of the well to the bottom (it serves as a calibration value for measurements). The ultrasonic sensor returns the water level from the top of the well, not from the bottom.
Therefore, the measurement is subtracted from this calibration value to determine the actual water level from the bottom. The second variable parameter is the well diameter. Setting the well diameter is important for converting the level to a liter by fighting the well. The settings subpage also contains an estimate of the maximum depth of the well at a given diameter for the most accurate measurements without reflections - it takes into account the detection characteristics of the sensor.
This estimation of the maximum well depth is performed by trigonometry and allows the user to better select the sensor for his requirements with respect to the dimensions of his well.
Data is sent to the web interface via HTTP / HTTPS protocol with POST payload. The microcontroller is authenticated via a parameter in the POST request. Actions in the web interface (deleting the record, configuring settings, displaying the source code for the microcontroller) are behind the login via HTTP Auth Basic - name and password (it is recommended to use the web interface under HTTPS).
The project is also suitable for laymen, a .pdf document with instructions is available for the implementation of the web interface, which explains step by step the setup and launch of the project on the web hosting / local web server.
The project can be tested in advance with your hardware on the test web interface (I will send the link in the message). The last recalculated measured data from the web interface can be transferred to MQTT Broker (with another microcontroller that acts as a JSON client - program implementations are available).
These datas are distributed in JSON format on the .php subpage. It can be integrated into your own automation (Domoticz, Hassio, Loxone, etc.) and visualize data from the level meter in other visualizations, e.g. Grafana. It is then possible to create your own automation for watering the garden, irrigation, etc. based on water level data.
On request, you can try a full-featured web application (except HTTP Auth on the settings and source code subpages) in advance with your hardware. I supply exclusively a software solution. I do not offer hardware or its installation!
Other types of water level sensors that can be integrated (you need to create your own firmware):
- Laser (LiDAR)
- Hydrostatic
- Electrostatic (capacitive / inductive)
- Pressure (differential / with compensating atmospheric pressure sensor)
- Optical
- Mechanical (float)
- Magnetic (Hall)
- Microwave (radar)
- Note: If the water level calculation from the bottom is performed on the microcontroller side, it is necessary to set the well depth to 0 cm on the web interface.
The web interface is available in Slovak, German, Russian and English.
Features
Data visualisation webpage that can use regular or custom sensors that can provide measurements in multiple methods (Time of Flight etc...).
All Reviews
Free support included
Future item updates
100% Satisfaction guarantee
Download code immediately after purchase
Without any isssue on 100% and published by the developer
Quality guarantee for your satisfaction
All Questions
Future item updates
100% Satisfaction guarantee
Download code immediately after purchase
Information
Category | Scripts & Code / PHP Scripts |
First Release | 7 August 2022 |
Last updated | 7 August 2022 |
Files included | .php, .css, Javascript .js |
Framework HTML/CSS | Bootstrap |
Framework Javascript | jQuery |
Software version | PHP 5.6, PHP 7.0, PHP 7.1, PHP 7.2, PHP 7.3, PHP 7.4, .NET 2.0 |
File Size | 18 MB |
Database version | MySQL 4.x, MySQL 5.x |
Frameworks | PHP Scripts |