#include <Keypad.h>
#include <ESP32Servo.h>
Servo servo1;
int servoPosition;
//String lockStatus = "locked";
String code;
String pswd = "1596";

String pressedKey;
char keyMap[4][4] = {
  {'1','2','3', 'A'},
  {'4','5','6', 'B'},
  {'7','8','9', 'C'},
  {'*','0','#', 'D'}
};

byte rowPins[4] = {14, 27, 26, 25};
byte columnPins[4] = {33, 32, 18, 19};
 
Keypad keypad = Keypad(makeKeymap(keyMap), rowPins, columnPins, 4, 4 );
 
void setup(){
  Serial.begin(115200);
  servo1.attach(17);
}
 
void loop(){
  
pressedKey = keypad.getKey();
if (pressedKey) {
  code = code + pressedKey;
  Serial.println(code);
}

//user unlock
if (code == String("1596A")) {
  servo1.write(180);
  Serial.println("Unlocked");
  code = "";
}

//first method of checking if the variable contains something, in this case #
if (code.indexOf('#') != -1){
  Serial.println("Code reset");
  code = "";
  servo1.write(90);
}

//second method of checking if the variable contains something, in this case *
if (pressedKey == String("*")) {
  Serial.println("Code reset");
  code = "";
  servo1.write(90);
}

//admin unlock
if (code == pswd) {
  servo1.write(180);
  Serial.println("Unlocked");
  code = "";
}

}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
keypad1:R1
keypad1:R2
keypad1:R3
keypad1:R4
keypad1:C1
keypad1:C2
keypad1:C3
keypad1:C4
servo1:GND
servo1:V+
servo1:PWM