#define BLYNK_TEMPLATE_ID "TMPL30b5ga8AF"
#define BLYNK_TEMPLATE_NAME "MALLAPU ROHITH"
#define BLYNK_AUTH_TOKEN "ig5-VSKwc01QiIQswvXG55hNFKVoHv14"


#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST";
char pass[] = "";          // WiFi Password (empty for Wokwi)

// LED pins
#define LED1_PIN 2
#define LED2_PIN 4
#define LED3_PIN 5

// LED states and brightness
int led1State = 0;
int led2State = 0;
int led3State = 0;

int brightness1 = 0;
int brightness2 = 0;
int brightness3 = 0;

// ===== LED1 Control (Button: V0, Slider: V1) =====
BLYNK_WRITE(V0) {
  led1State = param.asInt(); // Read button value
  if (led1State == 1) {
    analogWrite(LED1_PIN, brightness1); // Turn ON with current brightness
  } else {
    analogWrite(LED1_PIN, 0);           // Turn OFF
  }
}

BLYNK_WRITE(V1) {
  brightness1 = param.asInt(); // Read slider value
  if (led1State == 1) {
    analogWrite(LED1_PIN, brightness1); // Update brightness if LED is ON
  }
}

// ===== LED2 Control (Button: V2, Slider: V3) =====
BLYNK_WRITE(V2) {
  led2State = param.asInt();
  if (led2State == 1) {
    analogWrite(LED2_PIN, brightness2);
  } else {
    analogWrite(LED2_PIN, 0);
  }
}

BLYNK_WRITE(V3) {
  brightness2 = param.asInt();
  if (led2State == 1) {
    analogWrite(LED2_PIN, brightness2);
  }
}

// ===== LED3 Control (Button: V4, Slider: V5) =====
BLYNK_WRITE(V4) {
  led3State = param.asInt();
  if (led3State == 1) {
    analogWrite(LED3_PIN, brightness3);
  } else {
    analogWrite(LED3_PIN, 0);
  }
}

BLYNK_WRITE(V5) {
  brightness3 = param.asInt();
  if (led3State == 1) {
    analogWrite(LED3_PIN, brightness3);
  }
}

void setup() {
  Serial.begin(115200);
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);

  // Set LED pins as outputs
  pinMode(LED1_PIN, OUTPUT);
  pinMode(LED2_PIN, OUTPUT);
  pinMode(LED3_PIN, OUTPUT);
}

void loop() {
  Blynk.run();
}