#include <Keypad.h>
#include <ESP32Servo.h>
const int servopin=18;
#define buzz 19
int z;
int pos = 0;
int len_key = 6;
char main_key[6] = {'2','6','5','7','3','1'};
char input_key[6];
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]={27,26,25,33};
byte colPins[COLS]={4,16,17,5};
Keypad keypad=Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
Servo myservo;
void open(){
myservo.write(90);
Serial.println("open");
delay(300);
for(int a=0;a<2;a++){
tone(buzz, 500, 20);
delay(200);
noTone(buzz);
}
}
void KEYcheck(){
int bnr=0;
for(int i=0;i<6;i++){
if(input_key[i] == main_key[i]){
bnr++;
}
}
if(bnr == len_key && z == len_key){
delay(3000);
z=0;
open();
}
else{
Serial.print("salah");
delay(300);
z=0;
}
for (int zz=0; zz<len_key; zz++) {
input_key[zz]=0;
}
}
void setup(){
Serial.begin(115200);
myservo.attach(servopin, 500, 2400);
myservo.write(0);
}
void loop(){
char key = keypad.getKey();
if(key != NO_KEY){
switch(key){
case '*':
z=0;
break;
case '#':
KEYcheck();
break;
default:
Serial.println(key);
input_key[z] = key;
z++;
}
}
}