Water Monitoring system — ESP32 simulation

An interactive ESP32 circuit simulation you can run free in your browser on Velxio, by gauravudrakar123.

Components

Sketch code

/************************************************************
   ESP32 SMART WATER MONITORING SYSTEM
   FAST + SMOOTH + NON-BLOCKING VERSION

   ----------------------------------------------------------
   HARDWARE
   ----------------------------------------------------------

   ESP32
   HC-SR04 Ultrasonic Sensor
   SSD1306 128x64 OLED
   LED
   Buzzer
   Optional Push Button

   ----------------------------------------------------------
   PINS
   ----------------------------------------------------------

   HC-SR04 TRIG  -> GPIO 27
   HC-SR04 ECHO  -> GPIO 26

   LED            -> GPIO 14

   BUZZER         -> GPIO 13

   OLED SDA       -> GPIO 21
   OLED SCL       -> GPIO 22

   ----------------------------------------------------------
   WATER LEVEL
   ----------------------------------------------------------

   0% -> 100% -> 0%

   Simulation speed:
   50 milliseconds per 1%

   Approximately:
   0 -> 100 = 5 seconds
   100 -> 0 = 5 seconds
   Full cycle = 10 seconds

   ----------------------------------------------------------
   ALARM
   ----------------------------------------------------------

   Below 80%:
       NORMAL
       LED OFF
       Buzzer OFF

   At 80%:
       LED ON
       Buzzer ON

   Buzzer duration:
       30 seconds

   After 30 seconds:
       Buzzer OFF

   Alarm will NOT repeat.

   Alarm becomes available again ONLY after RESET.

   ----------------------------------------------------------
   THINGSPEAK

   Field 1 = Water Level (%)
   Field 2 = Water Height (cm)
   Field 3 = Water Volume (L)
   Field 4 = Distance (cm)
   Field 5 = Status
   Field 6 = LED
   Field 7 = Buzzer

************************************************************/


// ==========================================================
// 1. LIBRARIES
// ==========================================================

#include <WiFi.h>
#include <HTTPClient.h>
#include <WiFiClientSecure.h>

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


// ==========================================================
// 2. WIFI SETTINGS
// ==========================================================

#define WIFI_SSID       "Eye Phone"
#define WIFI_PASSWORD   "sanyttttt"


// ==========================================================
// 3. THINGSPEAK
// ==========================================================

#define WRITE_API_KEY   "W0412S1EMNL59GY1Y"


// ==========================================================
// 4. PIN DEFINITIONS
// ==========================================================

// HC-SR04
#define TRIG_PIN        27
#define ECHO_PIN        26

// LED
#define LED_PIN         14

// Buzzer
#define BUZZER_PIN      13

// OLED
#define OLED_SDA        21
#define OLED_SCL        22


// ==========================================================
// 5. OLED SETTINGS
// ================================