#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int ledPin = 13;
const int buttonPin = 7; // Button connected to digital pin 7
int attemptCount = 0;
const int maxAttempts = 3;
bool unauthorizedAccess = false;
String correctFullName = "kushal sourav";
String correctRegisterNumber = "2347125";
String enteredFullName = "";
String enteredRegisterNumber = "";
void displayPattern() {
String initials = String(correctFullName.charAt(0)) + "." + correctFullName.charAt(correctFullName.indexOf(' ') + 1) + ".";
String lastFourDigits = correctRegisterNumber.substring(correctRegisterNumber.length() - 4);
lcd.setCursor(0, 0);
lcd.print(initials+ " " + lastFourDigits);
String sequence = "";
int minLength = min(correctFullName.length(), correctRegisterNumber.length());
for (int i = 0; i < minLength; i++) {
sequence += String(correctFullName.charAt(i), HEX) + " ";
sequence += String(correctRegisterNumber.charAt(i), HEX) + " ";
}
lcd.setCursor(0, 1);
lcd.print(sequence);
}
void setup() {
lcd.begin(16, 2);
lcd.backlight();
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
Serial.println("Enter Full Name:");
displayPattern();
}
void blinkLED() {
digitalWrite(ledPin, HIGH);
delay(500); // 500 ms ON
digitalWrite(ledPin, LOW);
delay(500); // 500 ms OFF
}
void loop() {
if (Serial.available() > 0) {
String input = Serial.readStringUntil('\n');
input.trim();
if (enteredFullName.length() == 0) {
enteredFullName = input;
Serial.println("Enter Register Number:");
} else if (enteredRegisterNumber.length() == 0) {
enteredRegisterNumber = input;
if (enteredFullName == correctFullName && enteredRegisterNumber == correctRegisterNumber) {
Serial.println("Access Granted");
unauthorizedAccess = false;
attemptCount = 0;
} else {
Serial.println("Access Denied");
attemptCount++;
if (attemptCount >= maxAttempts) {
unauthorizedAccess = true;
}
}
enteredFullName = "";
enteredRegisterNumber = "";
}
}
if (unauthorizedAccess || digitalRead(buttonPin) == HIGH) {
blinkLED();
} else {
digitalWrite(ledPin, LOW);
}
delay(100);
}