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+ |
También puedes comprarlos por separado desde los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
- |
|
- |
|
- |
Cableado
Nota
Para proteger la batería del Módulo de Fuente de Alimentación, cárgala completamente antes de usarla por primera vez.
Esquema
Código
Nota
Puedes abrir el archivo
09_access_control_system.ino
bajo la ruta deelite-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 directorioelite-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:
Incluir Archivos de Biblioteca: Se han incluido tres archivos de biblioteca:
rfid1.h
,Stepper.h
yWire.h
. Estas bibliotecas se utilizan para comunicarse con el módulo RFID, el motor paso a paso y para la comunicación I2C.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.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.Instanciación de Objetos: Se han creado instancias de dos objetos:
RFID1 rfid
yStepper stepper
para interactuar con el módulo RFID y el motor paso a paso, respectivamente.setup()
: En la funciónsetup()
, se inicializa la velocidad del motor paso a paso, se establece el pin del buzzer como salida y se inicializa el módulo RFID.loop()
: En la funciónloop()
, se ejecuta la lógica principal. Siapproved
es 0 (indicando que aún no está autenticado), se llama a la funciónrfidRead()
para leer datos del módulo RFID y luego se borra el arrayuserIdRead
. Siapproved
es 1 (indicando autenticación exitosa), se llama a la funciónopenDoor()
para abrir la puerta y se restableceapproved
a 0.beep()
: Esta función controla el sonido del buzzer en función de los parámetrosduration
yfrequency
proporcionados.verifyPrint()
: Esta función produce diferentes sonidos de buzzer en función del parámetroresult
para indicar si la autenticación fue exitosa.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.rfidRead()
: Esta función lee datos del módulo RFID, primero llamando agetId()
para obtener el ID del usuario y luego aidVerify()
para verificar si el ID del usuario coincide con el ID autenticado.getId()
: Esta función recupera el ID del usuario desde el módulo RFID y lo almacena en el arrayuserIdRead
. Emite un beep si la lectura falla.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.