#define BLYNK_TEMPLATE_ID "TMPL3-6ArVBop"
#define BLYNK_TEMPLATE_NAME "WATER FLOW"
#define BLYNK_AUTH_TOKEN "ZqU7wIAYsIgv5CCQTj5l1xgZbXpRPfO6"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
// WiFi credentials
char ssid[] = "Wokwi-GUEST"; // Wokwi default WiFi
char pass[] = "";
// Pins
#define RELAY_PIN 26 // Simulated pump control pin
// Blynk timer
BlynkTimer timer;
// Function to send random sensor values
void sendRandomData() {
// Generate random test values
float voltage = random(200, 240); // 200–240V
float current = random(0, 100) / 10.0; // 0.0–10.0A
float flow = random(0, 50) / 10.0; // 0.0–5.0 L/min
// Send to Blynk Virtual Pins
Blynk.virtualWrite(V1, voltage);
Blynk.virtualWrite(V2, current);
Blynk.virtualWrite(V3, flow);
// Debug prints
Serial.print("Voltage: "); Serial.print(voltage); Serial.println(" V");
Serial.print("Current: "); Serial.print(current); Serial.println(" A");
Serial.print("Flow: "); Serial.print(flow); Serial.println(" L/min");
}
// Receive pump control command from Blynk (V4)
BLYNK_WRITE(V4) {
int state = param.asInt(); // 1 = ON, 0 = OFF
digitalWrite(RELAY_PIN, state);
Serial.print("Pump: ");
Serial.println(state ? "ON" : "OFF");
}
void setup() {
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Pump OFF initially
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Send random data every 2 seconds
timer.setInterval(2000L, sendRandomData);
}
void loop() {
Blynk.run();
timer.run();
}
Loading
esp32-devkit-v1
esp32-devkit-v1