#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6NVSXaogc"
#define BLYNK_TEMPLATE_NAME "ESP32 Assignment"
#define BLYNK_AUTH_TOKEN "LT9Lm6ch_txWLoW_r-ciytAk4vutVExA"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// WiFi credentials (Wokwi default)
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Pin definitions
#define LED_PIN 5
#define SW1_PIN 18
#define SW2_PIN 19
#define POT_PIN 34
BlynkTimer timer;
// -------- LED control from Blynk (V0) --------
BLYNK_WRITE(V0) {
int ledState = param.asInt();
digitalWrite(LED_PIN, ledState);
}
// -------- Read buttons + potentiometer --------
void sendInputs() {
int sw1 = digitalRead(SW1_PIN);
int sw2 = digitalRead(SW2_PIN);
// Buttons use INPUT_PULLUP (pressed = LOW)
Blynk.virtualWrite(V1, sw1 == LOW ? 1 : 0);
Blynk.virtualWrite(V2, sw2 == LOW ? 1 : 0);
int potValue = analogRead(POT_PIN);
int moisture = map(potValue, 0, 4095, 0, 100);
Blynk.virtualWrite(V3, moisture);
}
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
pinMode(SW1_PIN, INPUT_PULLUP);
pinMode(SW2_PIN, INPUT_PULLUP);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
timer.setInterval(500L, sendInputs); // update every 0.5 sec
}
void loop() {
Blynk.run();
timer.run();
}