#define BLYNK_TEMPLATE_ID "TMPL3CYvhAzuA"
#define BLYNK_TEMPLATE_NAME "project"
#define BLYNK_AUTH_TOKEN "Sj0hU8kxUOmaOO7hJCmaE7RoQ3guoWye"
#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include<ESP32Servo.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define S1 25
#define S2 26
#define S3 27
#define S4 32
#define S5 33
int serv=0;
Servo myservo;
#define ledGreen 12
#define ledRed 15
int distance;
long duration;
int vote1 = 0;
int vote2 = 0;
int vote3 = 0;
int vote4 = 0;
int totalVotes=0;
void setup() {
pinMode(0,OUTPUT);
pinMode(2,INPUT);
Serial.begin(9600);
myservo.attach(23);
lcd.init();
lcd.backlight();
Blynk.begin(auth, ssid, pass);
pinMode(S1, INPUT_PULLUP);
pinMode(S2, INPUT_PULLUP);
pinMode(S3, INPUT_PULLUP);
pinMode(S4, INPUT_PULLUP);
pinMode(S5, INPUT_PULLUP);
pinMode(ledGreen, OUTPUT); // green LED pin
pinMode(ledRed, OUTPUT); // red LED pin
lcd.clear();
lcd.print(" Electronic ");
lcd.setCursor(0, 1);
lcd.print(" Voting Machine ");
delay(4000);
lcd.clear();
}
void loop() {
digitalWrite(0, LOW);
delayMicroseconds(2);
digitalWrite(0, HIGH);
delayMicroseconds(10);
digitalWrite(0, LOW);
duration=pulseIn(2,HIGH);
distance=duration*0.034/2;
Serial.println("distance:");
Serial.println(distance);
if(distance<10){
myservo.write(180);
digitalWrite(ledGreen, LOW); // Turn off the green LED
digitalWrite(ledRed, LOW); // Turn off the red LED
delay(1000);
lcd.setCursor(1, 0);
lcd.print("BJP");
lcd.setCursor(1, 1);
lcd.print(vote1);
lcd.setCursor(5, 0);
lcd.print("INC");
lcd.setCursor(5, 1);
lcd.print(vote2);
lcd.setCursor(9, 0);
lcd.print("AAP");
lcd.setCursor(9, 1);
lcd.print(vote3);
lcd.setCursor(13, 0);
lcd.print("OTH");
lcd.setCursor(13, 1);
lcd.print(vote4);
myservo.write(0);
if (digitalRead(S1) == LOW) {
vote1++;
digitalWrite(ledGreen, HIGH); // Turn on the green LED
while (digitalRead(S1) == LOW);
}
if (digitalRead(S2) == LOW) {
vote2++;
digitalWrite(ledGreen, HIGH); // Turn on the green LED
while (digitalRead(S2) == LOW);
}
if (digitalRead(S3) == LOW) {
vote3++;
digitalWrite(ledGreen, HIGH); // Turn on the green LED
while (digitalRead(S3) == LOW);
}
if (digitalRead(S4) == LOW) {
vote4++;
digitalWrite(ledGreen,HIGH); // Turn on the green LED
while (digitalRead(S4) == LOW);
}
if (digitalRead(S5) == LOW) {
totalVotes = vote1 + vote2 + vote3 + vote4;
if (totalVotes) {
digitalWrite(ledRed, HIGH); // Turn on the red LED
digitalWrite(ledGreen, LOW); // Turn off the green LED
if (vote1 > vote2 && vote1 > vote3 && vote1 > vote4) {
lcd.clear();
lcd.print("BJP is Winner");
delay(3000);
lcd.clear();
} else if (vote2 > vote1 && vote2 > vote3 && vote2 > vote4) {
lcd.clear();
lcd.print("INC is Winner");
delay(3000);
lcd.clear();
} else if (vote3 > vote1 && vote3 > vote2 && vote3 > vote4) {
lcd.clear();
lcd.print("AAP is Winner");
delay(3000);
lcd.clear();
} else if (vote4 > vote1 && vote4 > vote2 && vote4 > vote3) {
lcd.clear();
lcd.print("OTH is Winner");
delay(3000);
lcd.clear();
} else {
lcd.clear();
lcd.print("Tie Up Or");
lcd.setCursor(0, 1);
lcd.print("No Result");
delay(3000);
lcd.clear();
}
} else {
lcd.clear();
lcd.print("No Voting....");
delay(3000);
lcd.clear();
}
vote1 = 0;
vote2 = 0;
vote3 = 0;
vote4 = 0;
digitalWrite(ledGreen, LOW); // Turn off the green LED
digitalWrite(ledRed, LOW); // Turn off the red LED
}
}
Blynk.virtualWrite(V1,vote1);
Blynk.virtualWrite(V2,vote2);
Blynk.virtualWrite(V3,vote3);
Blynk.virtualWrite(V4,vote4);
Blynk.virtualWrite(V0,"hi");
Blynk.run();
}