// Blynk Configuration
#define BLYNK_TEMPLATE_ID "TMPL6MfVPg-5p"
#define BLYNK_TEMPLATE_NAME "TURBIDITY"
#define BLYNK_AUTH_TOKEN "4KEEcMumKuUiLxI0NgL-ay1hvBTIsIV4n" // Replace with your Blynk Auth Token
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
// WiFi credentials
char auth[] = "4KEEcMumKuUiLxI0NgL-ay1hvBTIsIV4"; // Replace with your Blynk Auth Token
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Blynk timer and sensor update interval
BlynkTimer timer;
const long interval = 10000; // Interval to send sensor data to Blynk (milliseconds)
// Rainfall and Turbidity sensor pins
const int RAIN_PIN = 34; // Analog pin connected to Rain sensor
const int TURBIDITY_PIN = 35; // Analog pin connected to Turbidity sensor
void setup() {
Serial.begin(115200);
delay(10);
// Connect to WiFi
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
// Initialize Blynk with the authentication token
Blynk.begin(auth, ssid, pass);
// Setup a function to be called every interval
timer.setInterval(interval, sendSensorData);
}
void loop() {
Blynk.run();
timer.run();
}
void sendSensorData() {
// Read rain sensor state (example analog reading)
int rainState = analogRead(RAIN_PIN);
// Read turbidity sensor value (example analog reading)
float turbidityValue = analogRead(TURBIDITY_PIN);
// Send data to Blynk
Blynk.virtualWrite(V0, rainState);
Blynk.virtualWrite(V1, turbidityValue);
// Print to Serial (optional for debugging)
Serial.print("Rain State: ");
Serial.println(rainState);
Serial.print("Turbidity Value: ");
Serial.println(turbidityValue);
}