#include <Keypad.h>
#include <Servo.h>
const int buzzerPin = 10;
const int servoPin = 9;
Servo myServo;
const int ROW_NUM = 4; // empat baris
const int COLUMN_NUM = 4; // empat kolom
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {5, 4, 3, 2}; // menghubungkan pin keypad ke pin digital ESP32
byte pin_column[COLUMN_NUM] = {9, 8, 7, 6};
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);
String enteredPin = "";
void setup() {
Serial.begin(115200);
myServo.attach(servoPin);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
char key = keypad.getKey();
if (key) {
if (key != '#') {
enteredPin += key;
tone(buzzerPin, 1000);
delay(100);
noTone(buzzerPin);
} else {
if (enteredPin == "1234") { // Ganti dengan PIN yang Anda inginkan
unlockDoor();
} else {
Serial.println("PIN Salah");
enteredPin = "";
}
}
}
}
void unlockDoor() {
Serial.println("Pintu Terbuka");
myServo.write(90);
delay(1000); // Tunggu selama 1 detik
myServo.write(0);
enteredPin = ""; // Bersihkan PIN yang dimasukkan
}