Caja fuerte con ESP32

Caja fuerte con ESP32

En este tutorial pondremos en práctica los conocimientos de Teclado matricial 4×4 y Girar servomotor y vamos a crear una Caja fuerte con ESP32 siguiendo estos pasos:

  • Conectaremos un teclado matricial 4×4 y un servomotor al ESP32.
  • Declaramos la variable pass con una contraseña en este caso 789.
  • Al escribir un texto en el teclado matricial 4×4 validamos que sean número y los almacenamos en passIngresado.
  • Si al presionar una letra y el valor de la variable pass y passIngresado son iguales movemos el servo 90 grados.

Requerimientos:

  • ESP32.
  • Servomotor.
  • Teclado matricial de 4x4.

Conexiones:

TecladoESP32
C4D15
C3D2
C2D4
C1D16
R4D17
R3D5
R2D18
R1D19
  • Conectamos la tierra (GND) del ESP32 al cable café del servomotor.
  • Conectamos el pin D13 del ESP32 al cable naranja del servomotor.
  • Conectamos la corriente (VIN) del ESP32 al cable rojo del servomotor.
Diagrama de la Caja fuerte con ESP32

Código y diagrama: https://wokwi.com/projects/344754992492577363

Código de la caja fuerte con ESP32

/*
Caja fuerte con ESP32
*/
// 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);
    }
  }
}

Funcionamiento de la caja fuerte con ESP32

🎦 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_CpMeEKTofxs7iottRxJ5YPM7BOc

Los comentarios están cerrados.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad
Salir de la versión móvil