#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6SiWH2BF4"
#define BLYNK_TEMPLATE_NAME "Machine 001"
#define BLYNK_AUTH_TOKEN "D5VXVFG_z5aZKIiNM13JVundXTBuIhg3"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define ledR 25
#define ledY 33
#define ledG 32
#define pinPBR 26
#define pinPBY 22
#define pinPBG 21
#define BLYNK_GREEN "#23C48E"
#define BLYNK_YELLOW "#FFFF00"
#define BLYNK_RED "#D3435C"
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
WidgetLED led1(V4);
int bypass = 0;
int ledStatus = 0; // 0 = Green, 1 = Yellow, 2 = Red
bool blinkV1 = false;
bool blinkV2 = false;
bool blinkV3 = false;
int blinkCount1 = 0;
int blinkCount2 = 0;
int blinkCount3 = 0;
void setLED(int greenState, int yellowState, int redState)
{ digitalWrite(ledG, greenState);
digitalWrite(ledY, yellowState);
digitalWrite(ledR, redState);
}
void updateLEDbyStatus()
{ if (ledStatus == 0)
{ setLED(HIGH, LOW, LOW);
led1.setColor(BLYNK_GREEN);
}
else if (ledStatus == 1)
{ setLED(LOW, HIGH, LOW);
led1.setColor(BLYNK_YELLOW);
}
else if (ledStatus == 2)
{ setLED(LOW, LOW, HIGH);
led1.setColor(BLYNK_RED);
}
}
BLYNK_WRITE(V0) // Bypass
{ bypass = param.asInt();
if (bypass == 0)
{ Blynk.virtualWrite(V1, LOW);
Blynk.virtualWrite(V2, LOW);
Blynk.virtualWrite(V3, LOW);
}
else
updateLEDbyStatus();
}
BLYNK_WRITE(V1) // Green
{ if (bypass == 1)
{ if (param.asInt() == 1)
{ ledStatus = 0;
Blynk.virtualWrite(V2, LOW);
Blynk.virtualWrite(V3, LOW);
updateLEDbyStatus();
}
}
else
{ blinkV1 = true;
blinkCount1 = 0;
}
}
BLYNK_WRITE(V2) // Yellow
{ if (bypass == 1)
{ if (param.asInt() == 1)
{ ledStatus = 1;
Blynk.virtualWrite(V1, LOW);
Blynk.virtualWrite(V3, LOW);
updateLEDbyStatus();
}
}
else
{ blinkV2 = true;
blinkCount2 = 0;
}
}
BLYNK_WRITE(V3) // Red
{ if (bypass == 1)
{ if (param.asInt() == 1)
{ ledStatus = 2;
Blynk.virtualWrite(V1, LOW);
Blynk.virtualWrite(V2, LOW);
updateLEDbyStatus();
}
}
else
{ blinkV3 = true;
blinkCount3 = 0;
}
}
void blinkWidget()
{ if (blinkV1)
{ if (blinkCount1 < 6)
{ Blynk.virtualWrite(V1, blinkCount1 % 2);
blinkCount1++;
}
else
{ Blynk.virtualWrite(V1, LOW);
blinkV1 = false;
}
}
if (blinkV2)
{ if (blinkCount2 < 6)
{ Blynk.virtualWrite(V2, blinkCount2 % 2);
blinkCount2++;
}
else
{ Blynk.virtualWrite(V2, LOW);
blinkV2 = false;
}
}
if (blinkV3)
{ if (blinkCount3 < 6)
{ Blynk.virtualWrite(V3, blinkCount3 % 2);
blinkCount3++;
}
else
{ Blynk.virtualWrite(V3, LOW);
blinkV3 = false;
}
}
}
void checkPB()
{ if (bypass == 0)
{ if (digitalRead(pinPBR) == LOW)
{ ledStatus = 2;
updateLEDbyStatus();
}
else if (digitalRead(pinPBY) == LOW)
{ ledStatus = 1;
updateLEDbyStatus();
}
else if (digitalRead(pinPBG) == LOW)
{ ledStatus = 0;
updateLEDbyStatus();
}
}
}
BLYNK_CONNECTED()
{ led1.on();
Blynk.virtualWrite(V0, LOW);
Blynk.virtualWrite(V1, LOW);
Blynk.virtualWrite(V2, LOW);
Blynk.virtualWrite(V3, LOW);
}
void setup()
{ Serial.begin(9600);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(ledR, OUTPUT);
pinMode(ledY, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(pinPBR, INPUT_PULLUP);
pinMode(pinPBY, INPUT_PULLUP);
pinMode(pinPBG, INPUT_PULLUP);
ledStatus = 0;
updateLEDbyStatus();
timer.setInterval(500L, blinkWidget);
timer.setInterval(50L, checkPB);
}
void loop()
{ Blynk.run();
timer.run();
}
/////////////////////////////////////////////////////////////////////////
// #define BLYNK_PRINT Serial
// #define BLYNK_TEMPLATE_ID "TMPL6SiWH2BF4"
// #define BLYNK_TEMPLATE_NAME "Machine 001"
// #define BLYNK_AUTH_TOKEN "D5VXVFG_z5aZKIiNM13JVundXTBuIhg3"
// #include <WiFi.h>
// #include <WiFiClient.h>
// #include <BlynkSimpleEsp32.h>
// #define ledR 25
// #define ledY 33
// #define ledG 32
// #define pinPBR 26
// #define pinPBY 22
// #define pinPBG 21
// BlynkTimer timer;
// WidgetLED led1(V4);
// #define BLYNK_GREEN "#23C48E"
// #define BLYNK_YELLOW "#FFFF00"
// #define BLYNK_RED "#D3435C"
// char ssid[] = "Wokwi-GUEST";
// char pass[] = "";
// int bypass=0,ledRS=0,ledYS=0,ledGS=0,ledStatus=0;
// BLYNK_WRITE(V0)
// { bypass = param.asInt();
// if(bypass==0)
// { Blynk.virtualWrite(V1,LOW);
// Blynk.virtualWrite(V2,LOW);
// Blynk.virtualWrite(V3,LOW);
// }
// if(bypass==1) led1.setColor(BLYNK_GREEN);
// }
// BLYNK_WRITE(V1) //GREEN
// { if(bypass==1)
// { ledRS = param.asInt();
// Blynk.virtualWrite(V2,LOW);
// Blynk.virtualWrite(V3,LOW);
// if(ledRS==1) ledStatus=0;
// }
// if(bypass==0)
// { for(int i=0;i<3;i++)
// { Blynk.virtualWrite(V1,HIGH); delay(1000);
// Blynk.virtualWrite(V1,LOW); delay(1000);
// }
// }
// led1.setColor(BLYNK_GREEN);
// }
// BLYNK_WRITE(V2) //YELLOW
// { if(bypass==1)
// { ledYS = param.asInt();
// Blynk.virtualWrite(V1,LOW);
// Blynk.virtualWrite(V3,LOW);
// if(ledYS==1) ledStatus=1;
// }
// if(bypass==0)
// { for(int i=0;i<3;i++)
// { Blynk.virtualWrite(V2,HIGH); delay(1000);
// Blynk.virtualWrite(V2,LOW); delay(1000);
// }
// }
// led1.setColor(BLYNK_YELLOW);
// }
// BLYNK_WRITE(V3) //GREEN
// { if(bypass==1)
// { ledGS = param.asInt();
// Blynk.virtualWrite(V1,LOW);
// Blynk.virtualWrite(V2,LOW);
// if(ledGS==1) ledStatus=2;
// }
// if(bypass==0)
// { for(int i=0;i<3;i++)
// { Blynk.virtualWrite(V3,HIGH); delay(1000);
// Blynk.virtualWrite(V3,LOW); delay(1000);
// }
// }
// led1.setColor(BLYNK_RED);
// }
// void kelip()
// { // Serial.print(bypass);
// if(bypass==1)
// { if(ledStatus==0)
// { digitalWrite(ledG,HIGH);
// digitalWrite(ledY,LOW);
// digitalWrite(ledR,LOW);
// }
// if(ledStatus==1)
// { digitalWrite(ledG,LOW);
// digitalWrite(ledY,HIGH);
// digitalWrite(ledR,LOW);
// }
// if(ledStatus==2)
// { digitalWrite(ledG,LOW);
// digitalWrite(ledY,LOW);
// digitalWrite(ledR,HIGH);
// }
// }
// }
// int pbR,pbY,pbG;
// void checkPB()
// { pbR = digitalRead(pinPBR);
// pbY = digitalRead(pinPBY);
// pbG = digitalRead(pinPBG);
// // Serial.print(pbR);
// // Serial.print(pbY);
// // Serial.println(pbG);
// if(bypass==0)
// { if(pbR==0)
// { led1.setColor(BLYNK_RED);
// digitalWrite(ledR,HIGH);
// digitalWrite(ledY,LOW);
// digitalWrite(ledG,LOW);
// }
// if(pbY==0)
// { led1.setColor(BLYNK_YELLOW);
// digitalWrite(ledR,LOW);
// digitalWrite(ledY,HIGH);
// digitalWrite(ledG,LOW);
// }
// if(pbG==0)
// { led1.setColor(BLYNK_GREEN);
// digitalWrite(ledR,LOW);
// digitalWrite(ledY,LOW);
// digitalWrite(ledG,HIGH);
// }
// }
// }
// BLYNK_CONNECTED()
// { led1.on();
// Blynk.virtualWrite(V0,LOW);
// Blynk.virtualWrite(V1,LOW);
// Blynk.virtualWrite(V2,LOW);
// Blynk.virtualWrite(V3,LOW);
// }
// void setup()
// { Serial.begin(9600);
// Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// timer.setInterval(100L,kelip);
// timer.setInterval(10L,checkPB);
// pinMode(ledR,OUTPUT);
// pinMode(ledY,OUTPUT);
// pinMode(ledG,OUTPUT);
// pinMode(pinPBR,INPUT_PULLUP);
// pinMode(pinPBY,INPUT_PULLUP);
// pinMode(pinPBG,INPUT_PULLUP);
// led1.setColor(BLYNK_GREEN);
// digitalWrite(ledG,HIGH);
// }
// void loop()
// { Blynk.run();
// timer.run();
// }
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4