Проект недоступен для бесплатного скачивания! Если вы заинтересованы в приобретении программной части проекта с функциями, описанными на данной странице, свяжитесь с: martinius96@gmail.com
Arduino ESP8266 ESP32 PHP, HTML MySQL HC-SR04 (Ultrasonic) Water Level Ethernet WiFi JSN-SR04T
Для решения требуется пользовательский веб-сервер

Монитор уровня воды в колодце с Arduino - Попробуйте онлайн здесь


Монитор уровня воды позволяет:
  • Захватите уровень воды с уровня крышки. Нижнее расстояние может быть до 4 метров.
  • Посредством расчета можно определить уровень воды снизу, а объем в литрах можно определить при известной ширине (радиусе) скважины. В зависимости от высоты он может быть представлен в метрах или сантиметрах.
  • Измеренные данные отправляются в базу данных MySQL, которая архивирует их с отметкой времени.
  • Данные представлены в виде таблицы в реальном времени, которая обновляется через AJAX, без обновления в реальном времени также отображаются на графиках. Последние данные на графиках появятся после обновления.
  • Графики показывают изменение высоты воды за: последние 2 часа, последние 24 часа, последние 7 дней, 30 дней.
  • Данные базы данных автоматически удаляются через 60+ дней.
  • В систему также включены аварийные представления последнего значения, максимального, минимального значения за 24 часа, 7 дней, 30 дней.
  • Использованное оборудование:
  • Arduino Uno/MegaArduino Uno R3
  • Ethernet-щит W5100Ethernet Shield Wiznet W5100
  • или модуль Ethernet W5500Ethernet Module Wiznet W5500
  • Ультразвуковой датчик расстояния - HC-SR04HC SR 04
  • Система может использоваться для дополнительных измерений, а также для других расстояний, таких как: высота снега, расстояние до объекта и т. Д.
  • Также может применяться к ESP8266, ESP32, Raspberry, Micro: bit и другим.
  • С Arduine данные по Ethernet отправляются по протоколу HTTP. С помощью плат ESP также возможно создать зашифрованное соединение HTTPS для отправки данных.
  • Возможность реализовать передачу IoT через сеть Sigfox.
  • Скриншоты системы:
    Hladinomer - prehľad v reálnom čase
    Hladinomer - historická tabuľka meraní s rozdielmi hladín, objemu litrov
    Hladinomer - vývoj hladiny počas dňa čiarovým grafom
    Hladinomer - budíková reprezentácia minima, maxima výšky hladiny

    Schéma (Wiring diagram)

    Hladinomer - schéma zapojenia pre Arduino, ESP32, ESP8266 - ultrazvukový senzor vzdialenosti HC-SR04 / JSN-SR04T

    Offline tester - Arduino


    #include <NewPing.h>
    
    #define TRIGGER_PIN  5  // Arduino pin tied to trigger pin on the ultrasonic sensor.
    #define ECHO_PIN     6  // 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


    #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");
    }
      

    Offline tester - ESP32


    #include <NewPingESP8266.h>
    
    #define TRIGGER_PIN  22  // Arduino pin tied to trigger pin on the ultrasonic sensor.
    #define ECHO_PIN     23  // 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");
    }