Nota

Hola, ¡bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.

¿Por qué unirse?

  • Soporte de expertos: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Avances exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos exclusivos.

  • Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo!

Sistema de Control de Acceso

La función principal de este código es realizar la autenticación de usuarios utilizando un módulo RFID. Si la autenticación es exitosa, controla un motor paso a paso para abrir la puerta y emite un sonido a través de un buzzer para indicar el resultado de la autenticación. Si la autenticación falla, la puerta no se abrirá.

Puedes abrir el monitor serie para ver el ID de tu tarjeta RFID y reconfigurar la contraseña en este código.

Componentes necesarios

En este proyecto, necesitamos los siguientes componentes.

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Elite Explorer Kit

300+

Elite Explorer Kit

También puedes comprarlos por separado desde los enlaces a continuación.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Arduino Uno R4 WiFi

-

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Módulo MFRC522

COMPRAR

Motor Paso a Paso

COMPRAR

Zumbador

-

Módulo de Fuente de Alimentación

-

Cableado

Nota

Para proteger la batería del Módulo de Fuente de Alimentación, cárgala completamente antes de usarla por primera vez.

../_images/09_access_bb.png

Esquema

../_images/09_access_schematic.png

Código

Nota

  • Puedes abrir el archivo 09_access_control_system.ino bajo la ruta de elite-explorer-kit-main\fun_project09_access_control_system directamente.

  • O copiar este código en Arduino IDE.

Nota

  • Se utiliza la biblioteca RFID1. La biblioteca se encuentra en el directorio elite-explorer-kit-main/library/, o puedes hacer clic aquí RFID1.zip para descargarla. Consulta Instalación Manual para un tutorial sobre cómo instalarla.

¿Cómo funciona?

A continuación se explica paso a paso el código:

  1. Incluir Archivos de Biblioteca: Se han incluido tres archivos de biblioteca: rfid1.h, Stepper.h y Wire.h. Estas bibliotecas se utilizan para comunicarse con el módulo RFID, el motor paso a paso y para la comunicación I2C.

  2. Definiciones de Constantes: Se han definido algunas constantes, incluyendo ID_LEN (longitud del ID), stepsPerRevolution (pasos por revolución para el motor paso a paso), rolePerMinute (velocidad del motor paso a paso), así como los cuatro pines del motor paso a paso (IN1, IN2, IN3, IN4), el pin del buzzer (buzPin) y variables relacionadas con la autenticación.

  3. Definición de Variables: Se han definido variables como un array para almacenar el ID de usuario leído (userIdRead), el ID de usuario autenticado (userId) y una variable booleana (approved) para indicar la autenticación exitosa.

  4. Instanciación de Objetos: Se han creado instancias de dos objetos: RFID1 rfid y Stepper stepper para interactuar con el módulo RFID y el motor paso a paso, respectivamente.

  5. setup(): En la función setup(), se inicializa la velocidad del motor paso a paso, se establece el pin del buzzer como salida y se inicializa el módulo RFID.

  6. loop(): En la función loop(), se ejecuta la lógica principal. Si approved es 0 (indicando que aún no está autenticado), se llama a la función rfidRead() para leer datos del módulo RFID y luego se borra el array userIdRead. Si approved es 1 (indicando autenticación exitosa), se llama a la función openDoor() para abrir la puerta y se restablece approved a 0.

  7. beep(): Esta función controla el sonido del buzzer en función de los parámetros duration y frequency proporcionados.

  8. verifyPrint(): Esta función produce diferentes sonidos de buzzer en función del parámetro result para indicar si la autenticación fue exitosa.

  9. openDoor(): Esta función controla el motor paso a paso para abrir la puerta a un cierto ángulo (doorStep) y luego espera un período antes de cerrar la puerta.

  10. rfidRead(): Esta función lee datos del módulo RFID, primero llamando a getId() para obtener el ID del usuario y luego a idVerify() para verificar si el ID del usuario coincide con el ID autenticado.

  11. getId(): Esta función recupera el ID del usuario desde el módulo RFID y lo almacena en el array userIdRead. Emite un beep si la lectura falla.

  12. idVerify(): Esta función verifica si el ID del usuario coincide con el ID autenticado y produce un sonido indicando autenticación exitosa o fallida.