Validar contraseña con el ESP32
Ahora que hemos conectado nuestro teclado matricial 4×4 vamos a validar contraseña con el ESP32 para ser exactos seguiremos estos pasos:
- Ingresaremos una variable con la contraseña “ABCD45” por ejemplo.
- Esperamos a ingresar la contraseña y comparamos la contraseña.
- Si la contraseña es correcta, encendemos un led verde.
- Si la contraseña es incorrecta, encendemos un led rojo.
Requerimientos:
- ESP32.
- Teclado matricial 4×4.
- 2 Led (Rojo y Verde)
- 2 Resistencias 330 Ohms.
- Cables.
Conexiones:
Teclado | ESP32 |
C4 | D15 |
C3 | D2 |
C2 | D4 |
C1 | D16 |
R4 | D17 |
R3 | D5 |
R2 | D18 |
R1 | D19 |
- Led rojo al pin 13 del ESP32.
- Led verde al pin 12 del ESP32.
Código de como validar contraseña con el ESP32:
// importa libreria Keypad #include <Keypad.h> // 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); //Declaramos la variable que almacena el password char pass[7]="ABCD45"; //Varible que alamacena la clave que se va ingresando char ingresaPass[7]; //Variable que define el numero de letra que se va ingresando int indice=0; int pinLedVerde=12; int pinLedRojo=13; void setup() { pinMode(pinLedVerde, OUTPUT); pinMode(pinLedRojo, OUTPUT); Serial.begin(115200); } void loop() { // obtiene tecla presionada y asigna a variable char key = keypad.getKey(); // comprueba que se haya presionado una tecla if (key) { //Alamacenamos la letra ingresada en arreglo de letras ingresaPass ingresaPass[indice]=key; //Aumentamos la letra que se va a alamacenar indice++; // envia a monitor serial la tecla presionada Serial.println(key); digitalWrite(pinLedVerde, LOW); digitalWrite(pinLedRojo, LOW); } //Si ya se ingresaron 6 letras o mas if(indice>=6){ //Si el password coincide con la clave ingresada if(strcmp(pass,ingresaPass)==0){ // Mostramos el mensaje de acceso permitido Serial.println("Acceso permitido"); digitalWrite(pinLedVerde, HIGH); } //Si el password NO coincide con la clave ingresada else{ // Mostramos el mensaje de acceso denegado Serial.println("Acceso denegado"); digitalWrite(pinLedRojo, HIGH); } //Regresamos el indice a 0 para ingresar nuevas letras al password indice=0; } }
Código y diagrama: https://wokwi.com/projects/343761263713583700
Librerías del teclado: https://github.com/Chris–A/Keypad
🎦 Este curso: https://www.youtube.com/watch?v=VuJkqL2Ys3Y&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6&ab_channel=ProgramadorNovato
🎦 Curso de Arduino: https://www.youtube.com/watch?v=oGinJt9aALc&list=PLCTD_CpMeEKSqw3Nh7rA9aXUAzbPIPkdv&ab_channel=ProgramadorNovato
🎦 [CURSO] C++ DE 0 A HEROE: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc
Ave que vuela, a la cazuela.