#define BLYNK_PRINT Serial
/* Fill in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID "TMPL635WdYq2g"
#define BLYNK_TEMPLATE_NAME "Lab Test1"
#define BLYNK_AUTH_TOKEN "G-BpfA5oHGj-fWR7VbdOmCl4yoVIMyaP"
char ssid[] = "PSConnect";
char pass[] = "pass@5099";
int led1 = 27, led2 = 14, poten = 33;
bool is_on = false;
int brightness = 0;
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
BlynkTimer timer;
BLYNK_CONNECTED()
{
Blynk.syncAll();
}
BLYNK_WRITE(V0)
{
is_on = param.asInt();
Serial.print("LED Switch: ");
Serial.println(is_on ? "ON" : "OFF");
digitalWrite(led1, is_on);
Blynk.syncVirtual(V1);
}
BLYNK_WRITE(V1)
{
brightness = param.asInt();
Serial.print("Brightness: ");
Serial.println(brightness);
if (is_on) analogWrite(led2, brightness);
else analogWrite(led2, 0);
}
void updateBrightnessByPotenEvent()
{
int potenValue = analogRead(poten);
int bn = map(potenValue, 0, 4095, 0, 255);
if (brightness != bn) {
Blynk.virtualWrite(V1, bn);
Blynk.syncVirtual(V1);
}
}
void setup()
{
Serial.begin(115200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(poten, INPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
timer.setInterval(100L, updateBrightnessByPotenEvent);
}
void loop()
{
Blynk.run();
timer.run();
}