// importa libreria Keypad
#include <Keypad.h>
//Agregamos las libreriras del servo
#include <ESP32Servo.h>
//Instanciamos nuestro servo
Servo servo;
//Declaramos el pin del servomotor
int pinServo=13;
// define numero de filas
const uint8_t ROWS = 4;
// define numero de columnas
const uint8_t COLS = 4;
// define la distribucion de teclas
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
// pines correspondientes a las filas
uint8_t colPins[COLS] = { 16, 4, 2, 15 };
// pines correspondientes a las columnas
uint8_t rowPins[ROWS] = { 19, 18, 5, 17 };
// crea objeto con los prametros creados previamente
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
//Password que se debe ingresar
String pass="789";
//Pasword que se esta ingresando en el teclado
String passIngresado;
void setup() {
Serial.begin(115200);
//Inicializamos la posicion del servo
servo.attach(pinServo, 500, 2500);
servo.write(0);
}
void loop() {
//Alamacenamos la tecla que se preciono
char key=keypad.getKey();
//Si se preciono una tecla
if(key){
//Si la tecla es entre 0 y 9
if(key>='0' && key<='9' ){
//Agregamos esa tecla al string
passIngresado=passIngresado+key;
Serial.println(passIngresado);
delay(10);
}
//Si prcionamos las teclas A B C D * #
else if(key>='A' || key<='B' || key<='C' || key<='D' || key<='*' || key<='#' ){
//Si el texto ingresado tiene texto
if(passIngresado.length()>0){
//Si el texto ingresado es igual al pass
if( passIngresado==pass ){
Serial.println(" Abrir");
//Abrimos el servomotor
servo.write(90);
delay(1000);
//Cerramos el servomotor
servo.write(0);
Serial.println(" Cerrar");
}
//Si la contraseña es icorrecta
else{
Serial.println(" Acceso denegado");
//Cerramos el servomotor
servo.write(0);
delay(1000);
}
//Reseteamos la contraseña ingresada
passIngresado="";
}
else{
Serial.println(" Acceso denegado");
//Cerramos el servomotor
servo.write(0);
delay(1000);
}
Serial.println(key);
}
}
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
keypad1:R1
keypad1:R2
keypad1:R3
keypad1:R4
keypad1:C1
keypad1:C2
keypad1:C3
keypad1:C4
servo1:GND
servo1:V+
servo1:PWM