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:
Teclado | ESP32 |
C4 | D15 |
C3 | D2 |
C2 | D4 |
C1 | D16 |
R4 | D17 |
R3 | D5 |
R2 | D18 |
R1 | D19 |
- 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.
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); } } }
🎦 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