ZAKÚPIŤ PROJEKT / BUY PROJECT
Projekt nie je dostupný zdarma na stiahnutie! Pri záujme o kúpu softvérovej časti projektu s funkčnosťou, ktorá je na danej stránke rozpísaná kontaktovať na adrese: martinius96@gmail.com
Arduino ESP8266 ESP32 PHP, HTML MySQL HC-SR04 (Ultrasonic) Water Level Ethernet WiFi IoT Sigfox Lora, LoraWan GSM, NB-IoT
Riešenie vyžaduje vlastný webserver s MySQL databázou

Hladinomer - Vyskúšajte online TU!!!


Hladinomer umožňuje:
  • Snímať výšku hladiny vody (alebo inej kvapality) od úrovne veka. Vzdialenosť dna môže byť maximálne 4 metre.
  • Výpočtom je možné určiť výšku hladiny vody od dna a pri známej šírke studne (polomer) je možné určiť aj objem v litroch. Na základe výšky možné reprezentovať v metroch, centimetroch, litroch, kubických veličínách.
  • Namerané dáta sú odosielané skrz PHP skripty do MySQL databázy, ktorá ich archivuje s časovou značkou pridania.
  • Dáta sú reprezentované v real-time tabuľke, ktorá je obnovovaná cez AJAX, bez real-time refreshu sú vykreslené aj do grafov. Najnovšie dáta v grafoch sa zobrazia po refreshi.
  • Grafy ukazujú priebeh výšky vody za: posledné 2 hodiny, posledných 24 hodín, posledných 7 dní, 30 dní.
  • Dáta z databázy sú automaticky premazávané po 60+ dňoch (predchádza preplnenia databázy), možnosť blokácie automatického premazávania dát.
  • Súčasťou systému sú aj budíkové reprezentácie poslednej hodnoty, maximálnej, minimálnej hodnoty za 24h, 7 dní, 30 dní.
  • Webové rozhranie obsahuje zdrojové kódy pre jednotlivé platformy - Arduino, ESP8266, ESP32 s prepojením ultrazvukového senzora HC-SR04, schémy zapojenia.
  • Možnosť modifikovať priemer studne, hĺbku studne s automatickým započítaním do prepočtov meraní z ultrazvukového senzora.
  • Použitý hardvér:
  • Mikrokontróler: Arduino Uno/Mega + Ethernet W5100/W5500 / ESP8266 (NodeMCU) / ESP32 (DevKit)
    Hardvér pre hladinomer - Arduino, ESP32, ESP8266, hĺbka studne
  • Systém je možné použiť na ďalšie doplnkové merania aj iných vzdialeností, napríklad: Výška snehu, vzdialenosť objektu a pod.
  • Možné aplikovať aj na platformy ESP8266, ESP32, Raspberry, Micro:bit a iné.
  • Pri Arduine sú dáta cez Ethernet odosielané po HTTP protokole. Pri ESP doskách je možné vytvoriť aj šifrované HTTPS spojenie pre odosielanie dát, možnosť overenia klienta klientským certifikátom a pod.
  • Dáta je možné odosielať cez POST/GET request
  • Možnosť implementovať aj IoT prenos cez sieť Sigfox, či LoraWan.
  • Schéma zapojenia pre Arduino a ďalšie screenshoty z behu systému:
    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");
    }