#include <Keypad.h>
#include <Servo.h>
// Define the password
const String password = "1234"; // Change this to your desired password
String input = "";
// Setup servo
Servo lockServo;
const int servoPin = 9;
const int lockedPos = 0; // degrees
const int unlockedPos = 90; // degrees
// Keypad setup
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; // Connect to R1-R4 of keypad
byte colPins[COLS] = {6, 7, 8, 10}; // Connect to C1-C4 of keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
lockServo.attach(servoPin);
lockServo.write(lockedPos); // Lock position
Serial.println("Enter Password:");
}
void loop() {
char
key = keypad
.getKey
();
if (input == password) {
Serial.println("\nAccess Granted!");
unlock();
} else {
Serial.println("\nAccess Denied!");
lock();
}
input = ""; // Clear input after check
}
input = ""; // Clear input on '*'
Serial.println("\nInput Cleared");
}
else {
}
}
}
void unlock() {
lockServo.write(unlockedPos);
delay(5000); // Stay unlocked for 5 seconds
lock();
}
void lock() {
lockServo.write(lockedPos);
}
I2luY2x1ZGUgPEtleXBhZC5oPgojaW5jbHVkZSA8U2Vydm8uaD4KCi8vIERlZmluZSB0aGUgcGFzc3dvcmQKY29uc3QgU3RyaW5nIHBhc3N3b3JkID0gIjEyMzQiOyAvLyBDaGFuZ2UgdGhpcyB0byB5b3VyIGRlc2lyZWQgcGFzc3dvcmQKU3RyaW5nIGlucHV0ID0gIiI7CgovLyBTZXR1cCBzZXJ2bwpTZXJ2byBsb2NrU2Vydm87CmNvbnN0IGludCBzZXJ2b1BpbiA9IDk7CmNvbnN0IGludCBsb2NrZWRQb3MgPSAwOyAgICAvLyBkZWdyZWVzCmNvbnN0IGludCB1bmxvY2tlZFBvcyA9IDkwOyAvLyBkZWdyZWVzCgovLyBLZXlwYWQgc2V0dXAKY29uc3QgYnl0ZSBST1dTID0gNDsKY29uc3QgYnl0ZSBDT0xTID0gNDsKY2hhciBrZXlzW1JPV1NdW0NPTFNdID0gewogIHsnMScsJzInLCczJywnQSd9LAogIHsnNCcsJzUnLCc2JywnQid9LAogIHsnNycsJzgnLCc5JywnQyd9LAogIHsnKicsJzAnLCcjJywnRCd9Cn07CgpieXRlIHJvd1BpbnNbUk9XU10gPSB7MiwgMywgNCwgNX07ICAgLy8gQ29ubmVjdCB0byBSMS1SNCBvZiBrZXlwYWQKYnl0ZSBjb2xQaW5zW0NPTFNdID0gezYsIDcsIDgsIDEwfTsgIC8vIENvbm5lY3QgdG8gQzEtQzQgb2Yga2V5cGFkCgpLZXlwYWQga2V5cGFkID0gS2V5cGFkKG1ha2VLZXltYXAoa2V5cyksIHJvd1BpbnMsIGNvbFBpbnMsIFJPV1MsIENPTFMpOwoKdm9pZCBzZXR1cCgpIHsKICBTZXJpYWwuYmVnaW4oOTYwMCk7CiAgbG9ja1NlcnZvLmF0dGFjaChzZXJ2b1Bpbik7CiAgbG9ja1NlcnZvLndyaXRlKGxvY2tlZFBvcyk7IC8vIExvY2sgcG9zaXRpb24KICBTZXJpYWwucHJpbnRsbigiRW50ZXIgUGFzc3dvcmQ6Iik7Cn0KCnZvaWQgbG9vcCgpIHsKICBjaGFyIGtleSA9IGtleXBhZC5nZXRLZXkoKTsKCiAgaWYgKGtleSkgewogICAgU2VyaWFsLnByaW50KGtleSk7CgogICAgaWYgKGtleSA9PSAnIycpIHsKICAgICAgaWYgKGlucHV0ID09IHBhc3N3b3JkKSB7CiAgICAgICAgU2VyaWFsLnByaW50bG4oIlxuQWNjZXNzIEdyYW50ZWQhIik7CiAgICAgICAgdW5sb2NrKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgU2VyaWFsLnByaW50bG4oIlxuQWNjZXNzIERlbmllZCEiKTsKICAgICAgICBsb2NrKCk7CiAgICAgIH0KICAgICAgaW5wdXQgPSAiIjsgLy8gQ2xlYXIgaW5wdXQgYWZ0ZXIgY2hlY2sKICAgIH0KICAgIGVsc2UgaWYgKGtleSA9PSAnKicpIHsKICAgICAgaW5wdXQgPSAiIjsgLy8gQ2xlYXIgaW5wdXQgb24gJyonCiAgICAgIFNlcmlhbC5wcmludGxuKCJcbklucHV0IENsZWFyZWQiKTsKICAgIH0KICAgIGVsc2UgewogICAgICBpbnB1dCArPSBrZXk7CiAgICB9CiAgfQp9Cgp2b2lkIHVubG9jaygpIHsKICBsb2NrU2Vydm8ud3JpdGUodW5sb2NrZWRQb3MpOwogIGRlbGF5KDUwMDApOyAvLyBTdGF5IHVubG9ja2VkIGZvciA1IHNlY29uZHMKICBsb2NrKCk7Cn0KCnZvaWQgbG9jaygpIHsKICBsb2NrU2Vydm8ud3JpdGUobG9ja2VkUG9zKTsKfQo=
#include <Keypad.h>
#include <Servo.h>
// Define the password
const String password = "1234"; // Change this to your desired password
String input = "";
// Setup servo
Servo lockServo;
const int servoPin = 9;
const int lockedPos = 0; // degrees
const int unlockedPos = 90; // degrees
// Keypad setup
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; // Connect to R1-R4 of keypad
byte colPins[COLS] = {6, 7, 8, 10}; // Connect to C1-C4 of keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
lockServo.attach(servoPin);
lockServo.write(lockedPos); // Lock position
Serial.println("Enter Password:");
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.print(key);
if (key == '#') {
if (input == password) {
Serial.println("\nAccess Granted!");
unlock();
} else {
Serial.println("\nAccess Denied!");
lock();
}
input = ""; // Clear input after check
}
else if (key == '*') {
input = ""; // Clear input on '*'
Serial.println("\nInput Cleared");
}
else {
input += key;
}
}
}
void unlock() {
lockServo.write(unlockedPos);
delay(5000); // Stay unlocked for 5 seconds
lock();
}
void lock() {
lockServo.write(lockedPos);
}