18. Abrir puerta

Abrir una puerta con ESP32

Ya manejamos un teclado matricial 4×4 despues aprendimos a Validar contraseña con el ESP32 ya teniendo esos conocimientos vamos a Abrir una puerta con ESP32 siguiendo 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 y movemos el servo 90 grados y despues lo cerramos a 0 grados.
  • 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.
  • Servomotor.
  • Cables.

Conexiones:

TecladoESP32
C4D15
C3D2
C2D4
C1D16
R4D17
R3D5
R2D18
R1D19

  • Led rojo al pin 13 del ESP32.
  • Led verde al pin 12 del ESP32.
  • Servo al pin 21 del ESP32.
Abrir una puerta con ESP32
Abrir una puerta con ESP32

Código de como abrir una puerta con ESP32:

/*
Abrir una puerta con ESP32
*/
// importa libreria Keypad
#include <Keypad.h>
//  importa libreria Servo
#include <ESP32Servo.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;

//Inicializamos las variables de los pines del led verde y rojo
int pinLedVerde=12;
int pinLedRojo=13;
//Inicializamos la variable del pin del servo
int pinServo=14;

//Instaciamos e servo
Servo servo_1;

void setup() {
  pinMode(pinLedVerde, OUTPUT);
  pinMode(pinLedRojo, OUTPUT);
  servo_1.attach(pinServo, 500, 2500);
  //Movemos el servo_1 a 0 grados
  servo_1.write(0);
  //Esperamos 1.5 segundos
  delay(1500);
  
  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);
      //Movemos el servo_1 a 0 grados
      servo_1.write(179);
      //Esperamos 1.5 segundos
      delay(2500);
      //Movemos el servo_1 a 179 grados
      servo_1.write(0);
      //apagamos el led verde
      digitalWrite(pinLedVerde, LOW);
      //Esperamos 1.5 segundos
      delay(1500);

    }
    //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/343768666860421715

Librerías del teclado: https://github.com/Chris–A/Keypad

ESP32 abrir puerta

🎦 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

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. :)