#define BUTTON_PIN 18 // Pushbutton simulating fingerprint sensor
#define GREEN_LED 4 // Attendance confirmed
#define RED_LED 5 // Waiting for attendance
#define RELAY_IN 21 // Relay IN pin (controls relay)
bool attendanceTaken = false;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP); // Button between GPIO18 and GND
pinMode(GREEN_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
pinMode(RELAY_IN, OUTPUT);
digitalWrite(RED_LED, HIGH); // Initial state: waiting
digitalWrite(GREEN_LED, LOW);
digitalWrite(RELAY_IN, LOW); // Relay OFF
Serial.begin(115200);
Serial.println("Attendance System Ready");
}
void loop() {
if (digitalRead(BUTTON_PIN) == LOW && !attendanceTaken) {
// Simulate attendance confirmation
Serial.println("Attendance confirmed!");
digitalWrite(RED_LED, LOW);
digitalWrite(GREEN_LED, HIGH);
digitalWrite(RELAY_IN, HIGH); // Turn relay ON (game power ON)
attendanceTaken = true;
delay(30000); // Game active for 30 seconds
// Reset system
digitalWrite(RELAY_IN, LOW); // Turn relay OFF (game power OFF)
digitalWrite(GREEN_LED, LOW);
digitalWrite(RED_LED, HIGH);
attendanceTaken = false;
}
}