#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Servo.h>
// กำหนดค่าหน้าจอ LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
// กำหนดค่าคีย์แพด
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] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// กำหนดค่ามอเตอร์เซอร์โว
Servo myServo;
int servoPin = 10;
String password = "1234"; // กำหนดรหัสผ่าน
String inputPassword = "";
void setup() {
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Enter Password:");
myServo.attach(servoPin);
myServo.write(0); // ล็อคประตู
}
void loop() {
char
key = keypad
.getKey
(); lcd.setCursor(inputPassword.length(), 1);
lcd.print("*");
if (inputPassword.length() == 4) {
delay(500);
if (inputPassword == password) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Access Granted");
myServo.write(90); // ปลดล็อคประตู
delay(5000);
myServo.write(0); // ล็อคประตูอีกครั้ง
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Access Denied");
delay(2000);
}
inputPassword = "";
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Enter Password:");
}
}
}
I2luY2x1ZGUgPFdpcmUuaD4KI2luY2x1ZGUgPExpcXVpZENyeXN0YWxfSTJDLmg+CiNpbmNsdWRlIDxLZXlwYWQuaD4KI2luY2x1ZGUgPFNlcnZvLmg+CgovLyDguIHguLPguKvguJnguJTguITguYjguLLguKvguJnguYnguLLguIjguK0gTENECkxpcXVpZENyeXN0YWxfSTJDIGxjZCgweDI3LCAxNiwgMik7CgovLyDguIHguLPguKvguJnguJTguITguYjguLLguITguLXguKLguYzguYHguJ7guJQKY29uc3QgYnl0ZSBST1dTID0gNDsgCmNvbnN0IGJ5dGUgQ09MUyA9IDQ7IApjaGFyIGtleXNbUk9XU11bQ09MU10gPSB7CiAgeycxJywgJzInLCAnMycsICdBJ30sCiAgeyc0JywgJzUnLCAnNicsICdCJ30sCiAgeyc3JywgJzgnLCAnOScsICdDJ30sCiAgeycqJywgJzAnLCAnIycsICdEJ30KfTsKYnl0ZSByb3dQaW5zW1JPV1NdID0gezksIDgsIDcsIDZ9OwpieXRlIGNvbFBpbnNbQ09MU10gPSB7NSwgNCwgMywgMn07CktleXBhZCBrZXlwYWQgPSBLZXlwYWQobWFrZUtleW1hcChrZXlzKSwgcm93UGlucywgY29sUGlucywgUk9XUywgQ09MUyk7CgovLyDguIHguLPguKvguJnguJTguITguYjguLLguKHguK3guYDguJXguK3guKPguYzguYDguIvguK3guKPguYzguYLguKcKU2Vydm8gbXlTZXJ2bzsKaW50IHNlcnZvUGluID0gMTA7ClN0cmluZyBwYXNzd29yZCA9ICIxMjM0IjsgLy8g4LiB4Liz4Lir4LiZ4LiU4Lij4Lir4Lix4Liq4Lic4LmI4Liy4LiZClN0cmluZyBpbnB1dFBhc3N3b3JkID0gIiI7Cgp2b2lkIHNldHVwKCkgewogIGxjZC5iZWdpbigpOwogIGxjZC5iYWNrbGlnaHQoKTsKICBsY2Quc2V0Q3Vyc29yKDAsIDApOwogIGxjZC5wcmludCgiRW50ZXIgUGFzc3dvcmQ6Iik7CiAgbXlTZXJ2by5hdHRhY2goc2Vydm9QaW4pOwogIG15U2Vydm8ud3JpdGUoMCk7IC8vIOC4peC5h+C4reC4hOC4m+C4o+C4sOC4leC4uQp9Cgp2b2lkIGxvb3AoKSB7CiAgY2hhciBrZXkgPSBrZXlwYWQuZ2V0S2V5KCk7CiAgaWYgKGtleSkgewogICAgbGNkLnNldEN1cnNvcihpbnB1dFBhc3N3b3JkLmxlbmd0aCgpLCAxKTsKICAgIGxjZC5wcmludCgiKiIpOwogICAgaW5wdXRQYXNzd29yZCArPSBrZXk7CiAgICBpZiAoaW5wdXRQYXNzd29yZC5sZW5ndGgoKSA9PSA0KSB7CiAgICAgIGRlbGF5KDUwMCk7CiAgICAgIGlmIChpbnB1dFBhc3N3b3JkID09IHBhc3N3b3JkKSB7CiAgICAgICAgbGNkLmNsZWFyKCk7CiAgICAgICAgbGNkLnNldEN1cnNvcigwLCAwKTsKICAgICAgICBsY2QucHJpbnQoIkFjY2VzcyBHcmFudGVkIik7CiAgICAgICAgbXlTZXJ2by53cml0ZSg5MCk7IC8vIOC4m+C4peC4lOC4peC5h+C4reC4hOC4m+C4o+C4sOC4leC4uQogICAgICAgIGRlbGF5KDUwMDApOwogICAgICAgIG15U2Vydm8ud3JpdGUoMCk7IC8vIOC4peC5h+C4reC4hOC4m+C4o+C4sOC4leC4ueC4reC4teC4geC4hOC4o+C4seC5ieC4hwogICAgICB9IGVsc2UgewogICAgICAgIGxjZC5jbGVhcigpOwogICAgICAgIGxjZC5zZXRDdXJzb3IoMCwgMCk7CiAgICAgICAgbGNkLnByaW50KCJBY2Nlc3MgRGVuaWVkIik7CiAgICAgICAgZGVsYXkoMjAwMCk7CiAgICAgIH0KICAgICAgaW5wdXRQYXNzd29yZCA9ICIiOwogICAgICBsY2QuY2xlYXIoKTsKICAgICAgbGNkLnNldEN1cnNvcigwLCAwKTsKICAgICAgbGNkLnByaW50KCJFbnRlciBQYXNzd29yZDoiKTsKICAgIH0KICB9Cn0=
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Servo.h>
// กำหนดค่าหน้าจอ LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
// กำหนดค่าคีย์แพด
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] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// กำหนดค่ามอเตอร์เซอร์โว
Servo myServo;
int servoPin = 10;
String password = "1234"; // กำหนดรหัสผ่าน
String inputPassword = "";
void setup() {
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Enter Password:");
myServo.attach(servoPin);
myServo.write(0); // ล็อคประตู
}
void loop() {
char key = keypad.getKey();
if (key) {
lcd.setCursor(inputPassword.length(), 1);
lcd.print("*");
inputPassword += key;
if (inputPassword.length() == 4) {
delay(500);
if (inputPassword == password) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Access Granted");
myServo.write(90); // ปลดล็อคประตู
delay(5000);
myServo.write(0); // ล็อคประตูอีกครั้ง
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Access Denied");
delay(2000);
}
inputPassword = "";
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Enter Password:");
}
}
}