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

Caja fuerte con ESP32
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

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)