Technická podpora projektu - hlásenie SW problémov, bugov: martinius96@gmail.com

Dostupné knižnice pre mikrokontroléry (Arduino / ESP32 / ESP8266)


Archív knižnice (.zip) rozbaliť do C:/Používatelia/[Používateľ]/Dokumenty/Arduino/libraries
Názov knižnice Funkcia knižnice Stiahnuť
NewPing

Knižnica pre AVR mikrokontroléry (ATmega) Arduino Uno / Nano / Mega. Umožňuje vykonávať meranie ultrazvukovými senzormi vzdialenosti RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™.

Stiahnuť
NewPingESP8266

Knižnica pre ESP8266 a ESP32 mikrokontroléry. Umožňuje vykonávať meranie ultrazvukovými senzormi vzdialenosti RCW, US-XXX, IOE-SR0X, SR0X, HC-SR0X, HY-SRF0X, DYP-MEXXX, Parallax PING)))™.

Stiahnuť
VL53L1X

Knižnica pre Arduino, ESP8266 a ESP32 mikrokontroléry. Umožňuje vykonávať meranie ToF laserovými snímačmi STMicroelectronics VL53L1X.

Stiahnuť
Ukážkové zdrojové kódy pre mikrokontroléry kompatibilné s rozhraním Watmonitor sú dostupné na Githube.
  • ESP32 s podporou FreeRTOS, Ultra Low Power, Over The Air, ESP-IDF, Arduino Core. WiFi / PHY Ethernet cez RMII rozhranie / LoRa
  • ESP8266 s podporou Ultra Low Power, Over The Air, Arduino Core, WiFi
  • Arduino s podporou Ethernet modulov Wiznet W5100 - W5500, ENC28J60, Arduino Core
  • Raspberry Pi Pico W s MicroPython implementáciou
  • Sketches

    HTTPS - ESP32 + WiFi - HC-SR04 / JSN-SR04T WiFi in useHC-SR04JSN-SR04T V3.0JSN-SR04T


     
    /*|-------------------------------------------------------------------------------|*/
    /*|Project: Water level monitor - HTTPS - ULP - ESP32                             |*/
    /*|Author: Martin Chlebovec (martinius96)                                         |*/
    /*|E-mail: martinius96@gmail.com                                                  |*/
    /*|Info, schematics: https://martinius96.github.io/hladinomer-studna-scripty/en/  |*/
    /*|Test web interface: https://hladinomer.eu/?lang=en                             |*/
    /*|Revision: 18. Oct. 2025                                                        |*/
    /*|-------------------------------------------------------------------------------|*/
    
    #include <WiFi.h>
    #include <WiFiClientSecure.h>
    #include <NewPingESP8266.h>
    
    const char * ssid = "MY_WIFI_SSID"; //WiFi SSID
    const char * password = "MY_PASSWORD"; //WiFi PASSWORD
    
    //HOST
    const char* host = "hladinomer.eu"; //host (server)
    String url = "/data.php"; //URL address to to target PHP file
    
    //Root CA cert - ISRG Root X1
    const static char* test_root_ca PROGMEM = \
    "-----BEGIN CERTIFICATE-----\n" \
    "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\n" \
    "-----END CERTIFICATE-----\n";
      
    #define uS_TO_S_FACTOR 1000000
    #define TIME_TO_SLEEP  300
    #define pinTrigger    22
    #define pinEcho       23
    #define maxVzdialenost 450
    RTC_DATA_ATTR unsigned long BootCount;
    NewPingESP8266 sonar(pinTrigger, pinEcho, maxVzdialenost);
    WiFiClientSecure client;
    
    void setup() {
      Serial.begin(115200);
      WiFi.begin(ssid, password); //pripoj sa na wifi siet s heslom
      while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.print(F("."));
      }
      Serial.println(F(""));
      Serial.println(F("WiFi connected, IP:"));
      Serial.println(WiFi.localIP());
      client.setCACert(test_root_ca);
    
      int vzdialenost = sonar.ping_cm();
      delay(50);
      if (vzdialenost > 0) {
        vzdialenost = 0;
        for (int i = 0; i < 10; i++) {
          vzdialenost += sonar.ping_cm();
          delay(50);
        }
        vzdialenost = vzdialenost / 10;
        Serial.print(F("Distance is: "));
        Serial.print(vzdialenost);
        Serial.println(F(" cm."));
        String data = "hodnota=" + String(vzdialenost) + "&token=123456789";
        client.stop();
        if (client.connect(host, 443)) {
          client.println("POST " + url + " HTTP/1.0");
          client.println("Host: " + (String)host);
          client.println(F("User-Agent: ESP"));
          client.println(F("Connection: close"));
          client.println(F("Content-Type: application/x-www-form-urlencoded;"));
          client.print(F("Content-Length: "));
          client.println(data.length());
          client.println();
          client.println(data);
          Serial.println(F("Data successfully sent"));
            while (client.connected()) {
              String line = client.readStringUntil('\n');
              if (line == "\r") {
                break;
              }
            }
            String line = client.readStringUntil('\n');
        } else {
          Serial.println(F("Connection wasnt performed..."));
        }
      }
      else {
        Serial.println(F("Distance between ultrasonic sensor and water level is out of range."));
      }
      client.stop();
      delay(250);
      if (BootCount < 1) {
        delay(30000);
      }
      BootCount++;
      esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
      Serial.println("Setup ESP32 to sleep for every " + String(TIME_TO_SLEEP) + " Seconds");
      esp_deep_sleep_start();
    }
    
    void loop() {
    
    }
    

    HTTPS - ESP32 + WiFi - VL53L1X / TOF400C WiFi in useVL53L1X / TOF400C


    
    /*|-------------------------------------------------------------------------------|*/
    /*|Project: Water level monitor - HTTPS - ULP - ESP32                             |*/
    /*|ToF laser ranging sensor 0-400 cm - VL53L1X (TOF400C)                          |*/
    /*|Author: Martin Chlebovec Your-IoT (martinius96)                                |*/
    /*|E-mail: martinius96@gmail.com                                                  |*/
    /*|Info, schematics: https://martinius96.github.io/hladinomer-studna-scripty/en/  |*/
    /*|Test web interface: https://hladinomer.eu/?lang=en                             |*/
    /*|Revision: 18. Oct. 2025                                                        |*/
    /*|-------------------------------------------------------------------------------|*/
    
    #include <WiFi.h>
    #include <Wire.h>
    #include <VL53L1X.h>
    #include <WiFiClientSecure.h>
    
    const char * ssid = "SSID_NAME"; //WiFi SSID
    const char * password = "WIFI_PASSWORD"; //WiFi PASSWORD
    
    //HOST
    const char* host = "hladinomer.eu"; //host (server)
    String url = "/data.php"; //URL address to to target PHP file
    
    //Root CA cert - ISRG Root X1
    const static char* test_root_ca PROGMEM = \
        "-----BEGIN CERTIFICATE-----\n" \
        "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\n" \
        "-----END CERTIFICATE-----\n";
    
    #define uS_TO_S_FACTOR 1000000
    #define TIME_TO_SLEEP  300
    RTC_DATA_ATTR unsigned long BootCount;
    VL53L1X sensor;
    WiFiClientSecure client;
    
    void setup() {
      Serial.begin(115200);
      Wire.begin(22, 23);
      Wire.setClock(400000); // use 400 kHz I2C
      sensor.setTimeout(500);
      if (!sensor.init())
      {
        Serial.println("Failed to detect and initialize sensor!");
        while (1);
      }
    
      sensor.setDistanceMode(VL53L1X::Long);
      sensor.setMeasurementTimingBudget(50000); // 50 ms
      sensor.startContinuous(50); // Meranie každých 50 ms
      WiFi.begin(ssid, password); //pripoj sa na wifi siet s heslom
      while (WiFi.status() != WL_CONNECTED) {
        delay(1000);
        Serial.print(F("."));
      }
      Serial.println(F(""));
      Serial.println(F("WiFi connected, IP:"));
      Serial.println(WiFi.localIP());
      client.setCACert(test_root_ca);
      int vzdialenost =  sensor.read() / 10;
      delay(50);
      if (vzdialenost > 0) {
        vzdialenost = 0;
        for (int i = 0; i < 10; i++) {
          vzdialenost += sensor.read() / 10;
          delay(50);
        }
        sensor.stopContinuous();
        vzdialenost = vzdialenost / 10;
        Serial.print(F("Distance is: "));
        Serial.print(vzdialenost);
        Serial.println(F(" cm."));
        String data = "hodnota=" + String(vzdialenost) + "&token=123456789";
        client.stop();
        if (client.connect(host, 443)) {
          client.println("POST " + url + " HTTP/1.0");
          client.println("Host: " + (String)host);
          client.println(F("User-Agent: ESP"));
          client.println(F("Connection: close"));
          client.println(F("Content-Type: application/x-www-form-urlencoded;"));
          client.print(F("Content-Length: "));
          client.println(data.length());
          client.println();
          client.println(data);
          Serial.println(F("Data successfully sent"));
          while (client.connected()) {
            String line = client.readStringUntil('\n');
            if (line == "\r") {
              break;
            }
          }
          String line = client.readStringUntil('\n');
        } else {
          Serial.println(F("Connection wasnt performed..."));
        }
      }
      else {
        Serial.println(F("Distance between laser sensor and surface is out of range."));
      }
      client.stop();
      delay(250);
      if (BootCount < 1) {
        delay(30000);
      }
      BootCount++;
      esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
      Serial.println("Setup ESP32 to sleep for every " + String(TIME_TO_SLEEP) + " Seconds");
      esp_deep_sleep_start();
    }
    
    void loop() {
    
    }