#define BLYNK_TEMPLATE_ID "TMPL2EgQUBF3"
#define BLYNK_TEMPLATE_NAME "iot"
#define BLYNK_AUTH_TOKEN "z9Vmkn_qFH9uTXpyqwmrQAku_dGQXC_r"
#include <BlynkSimpleEsp32.h>
#include <WiFi.h>
#include <WiFiClient.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#define button1_pin 26
#define relay1_pin 23
int relay1_state = 0;
#define button1_vpin V1
#define SLIDER V2
int sliderVal = 127;
int oldPotVal = 0;
int newPotVal = 0;
BLYNK_CONNECTED(){
Blynk.syncVirtual(button1_vpin);
//Blynk.syncVirtual(V3);
}
BLYNK_WRITE(button1_vpin){
relay1_state = param.asInt();
digitalWrite(relay1_pin, relay1_state);
setLed2();
}
BLYNK_WRITE(SLIDER){
sliderVal = param.asInt();
setLed2();
}
void setLed2(){
if(relay1_state){
ledcWrite(0, sliderVal);
}
else{
ledcWrite(0, 0);
}
}
void setup() {
Serial.begin(9600);
pinMode(relay1_pin, OUTPUT);
pinMode(button1_pin, INPUT_PULLUP);
ledcSetup(0, 5000, 8);
ledcAttachPin(22, 0);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
timer.run();
listen_push_buttons();
checkPot();
}
void checkPot(){
newPotVal = analogRead(34);
if(oldPotVal != newPotVal){
oldPotVal = newPotVal;
Blynk.virtualWrite(V3, newPotVal);
}
}
void listen_push_buttons(){
if(digitalRead(button1_pin) == LOW){
control_relay(1);
setLed2();
Blynk.virtualWrite(button1_vpin, relay1_state);
delay(200);
}
}
void control_relay(int relay){
if(relay == 1){
relay1_state = !relay1_state;
digitalWrite(relay1_pin, relay1_state);
}
}