Está en la página 1de 15

Sistema de puerta automática basado en

RFID © LGPL
Asegure su casa mediante la implementación de este práctico sistema
automático de gestión de puertas.
 automatización del hogar
 seguridad de casa
 inalámbrico

 32,535 VISITAS

 17 COMENTARIOS
 80 RESPETOS

COMPONENTES Y SUMINISTROS
Arduino UNO y Genuino UNO

× 1

RFID RC522
× 1
LCD estándar Adafruit - 16x2 blanco sobre azul

× 1

Servos (Tower Pro MG996R)


× 1
LED RGB
× 1
Zumbador

× 1
Resistencia 221 ohm

× 2

Tablero (genérico)

× 1

Cables de puente (genéricos)

× 1

APLICACIONES Y SERVICIOS EN LÍNEA


Arduino IDE

SOBRE ESTE PROYECTO


Ideación
Cuando vemos sistemas sofisticados de gestión de puertas, la etiqueta de precio aparece
inmediatamente junto con la utilidad de curso. En países como India, estos sistemas
automáticos no son baratos con ningún criterio. Entonces, decidimos probar un
prototipo simple y barato para ver si se podía desarrollar un sistema tan robusto usando
la herramienta de nuestra elección, Arduino Uno. Así es como comenzamos a
desarrollar este proyecto y estamos muy contentos con la forma en que finalmente se
ve. Por supuesto, hay innumerables extensiones futuras que tenemos la intención de
imponer sobre este proyecto, pero ese es un tema para nuestra próxima publicación.
Vídeo
CÓDIGO
Sistema de gestión automática de puertas con base RFID Arduino
/ *
* Módulo RFID RC522
* Conexiones LCD (16x2) * * Pin VSS a GND * Pin VCC a 5V *
Proyecto simple: - ¡Arduino leerá la etiqueta RFID y la pantalla
del monitor serie!
*
* Configuración RFID RC522 y Arduino Uno Pin
*
* RFID RC522 Arduino Uno
* SS / SDA D10
* SCK D13
* MOSI D11
* MISO D12
* IRQ no conectado
* GND GND
* RST D9
* 3.3V 3.3V
*
* // Nota: Conectamos LCD a los pasadores analógicos.
* Recuerde, los pines analógicos pueden actuar como pines
digitales,
* pero los pines digitales NO PUEDEN actuar como pines analógicos.
*
* // Estamos conectando "Pin contraste a GND para brillo máximo"
* // También puede conectarlo a 10K Pot si desea cambiar el brillo
De LCD.
* Clavija VEE a GND
*
Clavija RS a Clavija analógica A0 *
Clavija R / W a tierra * Habilite la clavija a Clavija analógica A1
* Clavija D4 a Clavija analógica 5
* Clavija D5 a Clavija analógica 4
* Clavija D6 a Clavija analógica 3
* Clavija D7 al pin analógico 2
* LED + pin a POWER
* LED- pin a GND
*
* El servo está conectado al pin digital 5
*
* LED RGB
* Del LED RGB, solo necesitamos el rojo y el verde,
* Así que no estamos conectando el pin azul del RGB.
*
* Pin rojo al pin digital 6
* Pin verde al pin digital 7
*
* Zumbador al pin digital 8
*
*
* Nota: - RFID usa el protocolo SPI para transferir la información.
* Tomé la melodía (para el zumbador) desde,
* Archivo -> Ejemplos -> Digital -> ToneMelody
* /
// Incluir secciones #include <RFID.h>

#include <SPI.h>
#include <LiquidCrystal.h>
#include <Servo.h>
#include "pitches.h"

// Definir Componente para Arduino Pins


#define SS_PIN 10
#define RST_PIN 9
#define SERVO_PIN 5 #define Red_LED 6 #define Green_LED 7 #define
Buzzer 8 // inicializa la biblioteca con los números de los pines
de la interfaz LiquidCrystal lcd ( A0 , A1 , A2 = { 0x58 , 0x76 ,
0x17 , 0x10 , 0x29 }; // variable para contener tu Access_card
booleano My_Card = false ; // notas en la melodía, tomadas de: //
Archivo -> Ejemplos -> Digital -> ToneMelody

, A3 , A4 , A5 );
Servo DoorLock ;
RFID rfid ( SS_PIN , RST_PIN );
// Identificación única de la etiqueta RFID, a la que desea dar
acceso. int My_RFID_Tag [ 5 ]

int melodía [] = {
NOTA_C4 , NOTA_G3 , NOTA_G3 , NOTA_A3 , NOTA_G3 , 0 , NOTA_B3 ,
NOTA_C4 }; // duraciones de nota: 4 = negra, 8 = octava, etc. .:
intnoteDurations [] = { 4 , 8 , 8 , 4 , 4 , 4 , 4 , 4 }; void setup
() { // pon tu código de configuración aquí, para ejecutarlo una
vez: attach ( SERVO_PIN ); // abre el puerto serie a 9600 baudrate.
Serial . comenzar ( 9600 ); // Inicializa el LCD a 16x2 Character
Format lcd . comenzar ( 16 , 2 );

// establece los pines como un


pinMode de entrada / salida ( Red_LED , OUTPUT ); pinMode (
Green_LED , OUTPUT ); pinMode ( Zumbador , SALIDA ); // Servo
conectado a pin Pin 5 Digital DoorLock .

// Inicializar Servo y RFID


SPI . begin (); rfid . init (); } void loop () { // pone aquí su
código principal, para ejecutarlo repetidamente: // Primero suponga
que la tarjeta detectada (o etiqueta) es My_Card, // ¡Luego
revisaremos si es My_Card o no! My_Card =

verdadero ;
DoorLock . escribir ( 0 ); // Servo en la posición 0, la puerta
está cerrada. lcd . clear (); lcd . print ( "Tecnología Robodia" );
lcd . setCursor ( 0 , 1 ); lcd . print ( "¡Soluciones de gy!" ); //
¿Comprueba si se detectaron o no las etiquetas RFID? if ( rfid .
isCard () ) { // si se detecta la etiqueta RFID, busque la ID
Única,

// e imprímalo en la ventana serial


si ( rfid . readCardSerial () ) { lcd . clear (); lcd . imprimir (
"ID ÚNICA es: -" ); retraso ( 500 ); lcd . setCursor ( 0 , 1 ); //
Establezca el cursor LCD en la segunda fila, primer carácter // La
identificación única es 5 dígitos. // Impresión en HEX para un
mejor entendimiento de ( int i = 0 ; i < 5 ;

i ++ )
{ Serie . print ( rfid . serNum [ i ], HEX ); Serial . imprimir (
"" ); lcd . print ( rfid . serNum [ i ], HEX ); lcd . imprimir ( ""
); } retraso ( 500 ); // Compare esta Identificación única de
etiqueta RFID con su ID única de My_RFID_Tag para ( int i =

0 ; i < 5 ; i ++ )
{ // si alguno de los Dígitos Únicos ID no concuerda,

// entonces haz que My_Card = falso y salga del


ciclo
// ¡No es necesario verificar todo el dígito! if ( My_RFID_Tag [ i
] ! = rfid . serNum [ i ] ) { Mi_Card = falso ; romper ; } } Serial
. println (); retraso ( 1000 );

// Si la etiqueta RFID es My_Card, entonces dé acceso


para entrar en la habitación
// de lo contrario, no abra la puerta. if ( My_Card ) { Serial .
println ( " \ n Bienvenido a tu habitación, Robodia!" ); lcd .
clear (); lcd . imprimir ( "Bienvenido a su" ); lcd . setCursor ( 0
, 1 ); lcd . print ( "Habitación, Robodia!" ); retraso ( 2000 );
// Encienda el LED verde como una indicación de permiso
// para acceder a la sala. digitalWrite ( Green_LED , HIGH ); //
Buzzer Config, tomado de: // Archivo -> Ejemplos -> Digital ->
ToneMelody // iterar sobre las notas de la melodía: int i = 0 ;
while ( i < 2 ) { for ( int thisNote = 0 ; thisNote < 12 ; thisNote
++ ) { // para calcular la duración de la nota, tome un segundo

// dividido por el tipo de nota.


// por ejemplo, nota negra = 1000/4, corchea = 1000/8, etc. int
noteDuration = 1000 / noteDurations [ thisNote ]; tono ( 8

, melodía [ thisNote ], noteDuration );


// para distinguir las notas, establezca un tiempo mínimo entre
ellas. // la duración de la nota + 30% parece funcionar bien: int
pauseBetweenNotes = noteDuration * 1.30 ; retraso (
pauseBetweenNotes ); // detiene el tono de reproducción: noTone (

8 );
} i = i + 1 ; retraso ( 500 ); } retraso ( 1000 ); // Ahora, abre
la puerta con la ayuda de Servo Motor DoorLock . escribir ( 180 );
retraso ( 200 ); lcd . clear (); lcd . imprimir ( "La puerta está
abierta" ); lcd . setCursor ( 0 , 1 ); lcd . imprimir (
"¡Ahora!" );
retraso ( 2000 ); lcd . clear (); // Dé 10 segundos de retraso para
ingresar a la habitación

// ¡Después de esa puerta se cerrará otra vez!


para ( int i = 10 ; i > 0 ; i - ) { lcd . imprimir ( i ); lcd .
print ( "Sec.HurryUp!" ); retraso ( 1000 ); lcd . clear (); } //
Ahora, la puerta está cerrada y el LED verde está apagado. DoorLock
. escribir ( 0 ); digitalWrite ( Green_LED , BAJO)

( "La puerta se cerrará" );


lcd . setCursor ( 0 , 1 ); lcd . imprimir ( "en" ); lcd . impresión

);
retraso ( 200 ); lcd . clear (); lcd . imprimir ( "La puerta está
cerrada" ); lcd . setCursor (

0 , 1 );
lcd . imprimir ( "¡Ahora!" ); retraso ( 2000 ); } // Si RFID Tag no
es My_Card, entonces // No abra la puerta y // encienda el LED rojo
y el zumbador como una indicación de Advertencia: // Alguien más
está intentando ingresar a su habitación. else { Serial . println (
" \ n Salga de aquí!" ); lcd . clear (); lcd . imprimir ( "¡La
tarjeta NO SE ENCUENTRA!" ); lcd . setCursor
( 0 , 1 );
lcd . imprimir ( "¡Fuera de aquí!" ); for ( int i = 0 ; i < 7 ; i
++ ) { digitalWrite ( Zumbador , ALTO ); digitalWrite ( Red_LED ,
ALTO ); retraso ( 500 ); digitalWrite ( Zumbador , BAJO );
digitalWrite ( Red_LED , BAJO

);
retraso ( 500 ); } retraso ( 1000 ); } } } // Poner el lector RFID
en alto, hasta que no detecte ninguna etiqueta RFID. rfid . detener
(); }

ESQUEMAS
Sistema de gestión automática de puertas basado en RFID
DESCARGAR
COMENTARIOS
Por favor, inicie sesión o regístrese para comentar.

Elkin Carmona
Hace 2 años

Buen proyecto! Estoy probando mi módulo RFID con su código, pero no puedo
encontrar dónde obtener la biblioteca RFID.h. ¿Podrías dejármelo saber, por favor?
Gracias.

Rufistofeles
Hace 2 años

Tal vez esto ayude ...


https://community.particle.io/t/getting-the-rfid-rc522-to-work-solved/3571/3
Rufistofeles
Hace 2 años

Tal vez esto ayude ...


https://community.particle.io/t/getting-the-rfid-rc522-to-work-solved/3571/3

Huésped
Hace 2 años

¿Qué pasa si la clave de la tarjeta se pierde? y ¿qué pasa si la batería se quedó sin
energía? ¿Qué puedo hacer para abrir la puerta? necesito algunas respuestas gracias

joemarksp12
Hace 2 años

Buen proyecto. ¿Puedo hacer una pregunta? ¿Qué pasa si la fuente del poder se
pierde? ¿cómo puedo salir? y ¿qué pasa si pierdo la clave de mi tarjeta para el sensor?
¿Cómo puedo abrirla todavía? necesito algunas respuestas, gracias.

raphael gris
Hace 2 años
¿Alguna vez has sido pirateado? ¿o quieres hackear a alguien o algo? ¿Quieres probar la
fortaleza de protección de tu sitio web, computadora o red? ¿Quieres hackear una
computadora, sitio web o red? Amenazas en las redes sociales Tiene su cuenta de
Facebook, Twitter o Google+. Puede ayudarlo a restaurarlo y hacer un seguimiento de
la persona que lo hizo en muchos casos. Espionaje y Vigilancia por
Computadora. ¿Desea instalar spyware en un teléfono celular o computadora? ¿Desea
saber si tiene spyware en su computadora? Transferencia de cuenta bancaria a todos los
bancos ... Hackear y actualizar o cambiar calificaciones universitarias Cuentas bancarias
hackear registros criminales hackear Facebook, hackear cualquier cuenta de redes
sociales, hackear Android y iPhone Hack ..... Intercepción de mensajes de texto ...
hackear interceptación de correo electrónico, hackear IpTwitters Untraceable, hackear
cuentas de correo electrónico, hackear (Cambios de Grado), restaurar sitios web
bloqueados, hackear servidores,raphaelgrayhacks@gmail.com

Gregory Akau
Hace 2 años

wow, este proyecto es increíble, pero copié los códigos y traté de verificar, pero me está
dando error, "rfid.h no es un directorio" y descargué y agregué la biblioteca MFRC522,
y la cambié a MFRC522.h y obtuve error en "pitches.h", ¿qué debo hacer?

usuario6352438
Hace 2 años

Hola, recibirás "pitches.h" de los ejemplos de Arduino.


Ir a Arduino IDE -> Archivo -> Ejemplos -> Digital -> toneMelody

 3 gracias

fab_seeker
Hace 2 años

¡Hola! ¡Gracias por este interesante proyecto!


Traté de hacerlo y encontré algunos obstáculos. Cuando leí en otros comentarios,
reemplacé rfid.h con MFRC522.h. Mantuve el nombre del objeto "rfid" y utilicé las
siguientes funciones y estructuras de la clase MFRC522:
RFID rfid (SS_PIN, RST_PIN); -> MFRC522 rfid (SS_PIN, RST_PIN);
rfid.init (); --------------> rfid.PCD_Init ();
rfid.SerNum [i] ----------> rfid.uid.uidByte [i]
rfid.isCard () ------------> rfid.PICC_IsNewCardPresent ()
rfid. readCardSerial () ----> rfid.PICC_ReadCardSerial ()
rfid.halt (); --------------> rfid.PICC_HaltA ();
También agregué lanzamientos.h a mi proyecto. Está ubicado como escribió
user6352438 aquí:
"Arduino IDE" -> Archivo -> Ejemplos -> Digital -> toneMelody
Por el momento, el comportamiento de la pantalla, la parte rfid (con Id correcto e
incorrecto) y el trabajo del motor. Todavía estoy depurando el led y el sonido que no
funcionan.
También agregaré un potenciómetro para administrar el contraste de la pantalla lcd
(ajustando el voltaje en el Pin V0 de la pantalla LCD).
Espero eso ayude. ¡Y gracias de nuevo!

 2 gracias

wergor
Hace 2 años

en términos de seguridad, los controles UID son prácticamente el peor método de


autenticación. ¿Alguien conoce bibliotecas y / o hardware que soporte métodos más
sofisticados?

Yitno
Hace un año

Hola. Me gusta tu proyecto, pero donde puedo descargar las bibliotecas RFID.h y
"pitches.h", ayúdame

Sven Hamelsveld
Hace un año

Hola, el proyecto se ve muy bien, pero al igual que algunos otros, no puedo hacer que
compile 😦
primero gime sobre el RFID.h y después de eso va a los tonos.h y luego a la
aplicación.h ....
¿Pueden proporcionarnos instrucciones o un archivo zip con todo el código necesario
para ponerlo en funcionamiento?
Tnx

marvinscott39
hace 3 meses
Puede obtener la biblioteca RFID.h haciendo clic en el enlace que alguien publicó
anteriormente. La biblioteca de lanzamientos se encuentra en su "archivo> ejemplo>
digital> Tonemelody". Para su aplicación. No estoy muy seguro, pero intente buscar e
intente descargar el archivo comprimido e inclúyalo también en sus bibliotecas.

wencybolante
Hace un año

Buen proyecto, he estado buscando este tipo de productos porque haré uno para mi
proyecto Capstone, pero el mío es el sistema de tarifa de autobús basado en RFID.

ameerulislam
hace 9 meses

Estoy obteniendo el error de compilación, supongo que necesito los archivos de la


biblioteca. donde los obtengo?

marvinscott39
hace 3 meses

He hecho todas mis conexiones y este código que acabo de copiar y pegar, e incluí la
biblioteca RFID.h. Recibo un error que me insinúa sobre "application.h" pero no
encuentro nada en GitHub, ¿algún consejo aquí?

mihiruk
Hace 2 meses

Hola,
¿alguien puede decirme cómo obtener el número de RFID de 5 dígitos? Tengo solo un
número de 4 dígitos y el código solicita cinco dígitos. Por favor, dime que resuelva este
problema.

También podría gustarte