ZAKÚPIŤ PROJEKT / BUY PROJECT
Project is not available for free download! If you are interested in purchasing the software part of the project with the functionality described on the given page, contact: martinius96@gmail.com
Arduino ESP8266 ESP32 PHP, HTML MySQL HC-SR04 (Ultrasonic) Water Level Ethernet WiFi IoT Sigfox Lora, LoraWan GSM, NB-IoT
The solution requires own webserver

Arduino Water Well Monitor - Try online here!!!


The water level monitor allows you to:
  • Capture the water level from the lid level. Bottom distance can be up to 4 meters.
  • By calculating, the water level can be determined from the bottom and the volume in liters can be determined at a known well width (radius). Based on height, it can be represented in meters or centimeters.
  • Measured data is sent to a MySQL database that archives it with a timestamp.
  • Data is represented in real-time table, which is refreshed via AJAX, without real-time refresher are also plotted in graphs. The latest data in the graphs will appear after refresh.
  • Graphs show the course of the water height for: last 2 hours, last 24 hours, last 7 days, 30 days.
  • Database data is automatically deleted after 60+ days.
  • The system also includes alarm representations of last value, maximum, minimum value in 24 hours, 7 days, 30 days.
  • Used Hardware:
  • Arduino Uno/MegaArduino Uno R3
  • Ethernet shield W5100Ethernet Shield Wiznet W5100
  • or Ethernet module W5500Ethernet Module Wiznet W5500
  • Ultrasonic distance sensor - HC-SR04HC SR 04
  • The system can be used for additional measurements as well as other distances, such as: Snow Height, Object Distance etc.
  • Can also be applied to ESP8266, ESP32, Raspberry, Micro: bit, etc.
  •   
  • With Arduine, data over Ethernet is sent over the HTTP protocol. With ESP boards, it is also possible to create an encrypted HTTPS connection for sending data.
  •   
  • The ability to implement IoT over Sigfox.
  •    System Screenshots:
    Hladinomer - prehľad v reálnom čase
    Hladinomer - historická tabuľka meraní s rozdielmi hladín
    Hladinomer - vývoj hladiny počas dňa čiarovým grafom
    Hladinomer - budíková reprezentácia minima, maxima výšky hladiny

    Scheme

    Hladinomer - schéma zapojenia pre Arduino, ESP32, ESP8266

    Offline tester - Arduino


    #include <NewPing.h>
    
    #define TRIGGER_PIN  3  // Arduino pin tied to trigger pin on the ultrasonic sensor.
    #define ECHO_PIN     4  // Arduino pin tied to echo pin on the ultrasonic sensor.
    #define MAX_DISTANCE 450 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
    
    NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
    
    void setup() {
      Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
    }
    
    void loop() {
      delay(50);                      // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
      unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
      Serial.print("Ping: ");
      Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range)
      Serial.println("cm");
    }
      

    Offline tester - ESP8266 / ESP32


    #include <NewPingESP8266.h>
    
    #define TRIGGER_PIN  5  // Arduino pin tied to trigger pin on the ultrasonic sensor.
    #define ECHO_PIN     4  // Arduino pin tied to echo pin on the ultrasonic sensor.
    #define MAX_DISTANCE 450 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
    
    NewPingESP8266 sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
    
    void setup() {
      Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
    }
    
    void loop() {
      delay(50);                      // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
      unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
      Serial.print("Ping: ");
      Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range)
      Serial.println("cm");
    }