#include <WiFi.h>
#include <HTTPClient.h>
#include <LiquidCrystal_I2C.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* token = "2BVONtoXmBh5nogutyDXZMqAktDk1cG7KitA4a9oBul";
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Define LED pins
const int led1Pin = 25;
const int led2Pin = 26;
const int led3Pin = 27;
// Define Button pins
const int button1Pin = 35;
const int button2Pin = 32;
const int button3Pin = 34;
// Variables to store vote counts
int trump = 0;
int harris = 0;
int moodeng = 0;
void sendline(){
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin("https://notify-api.line.me/api/notify");
http.addHeader("Authorization", "Bearer " + String(token));
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
http.POST("message=Develop by your local penguin");
int httpCode = http.POST("READY");
if (httpCode > 0) String response = http.getString();
http.end();
delay(250);
}
}
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("America E-Voting");
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(button3Pin, INPUT_PULLUP);
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
Serial.println(" READY ");
}
void loop() {
if (digitalRead(button1Pin) == LOW) {
trump++;
lcd.setCursor(0, 1);
lcd.print("Trump 1: ");
lcd.print(trump);
digitalWrite(led1Pin, HIGH);
delay(500);
digitalWrite(led1Pin, LOW);
delay(500);
//sendline();
}
// Check if Button2 is pressed
if (digitalRead(button2Pin) == LOW) {
harris++;
lcd.setCursor(0, 1);
lcd.print("Harris 2: ");
lcd.print(harris);
digitalWrite(led2Pin, HIGH);
delay(500);
digitalWrite(led2Pin, LOW);
delay(500);
//sendline();
}
// Check if Button3 is pressed
if (digitalRead(button3Pin) == LOW) {
moodeng++;
lcd.setCursor(0, 1);
lcd.print("Moodeng 3: ");
lcd.print(moodeng);
digitalWrite(led3Pin, HIGH);
delay(500);
digitalWrite(led3Pin, LOW);
delay(500);
//sendline();
}
// Add a small delay to avoid bouncing issues
delay(1000);
}