You are on page 1of 10

& Llmanos ahora: 997646858 Contacte con nosotros Iniciar sesin

0
Buscar $ %
S/. 0,00

INICIO ARDUINO COMUNICACIN SENSORES ACTUADORES BLOG

TUTORIALES

# All Blog News Tutorial mdulo Lector RFID RC522

ARTCULOS Tutorial mdulo Lector RFID RC522


POPULARES Posted by ! Tutoriales " 34 Comments

Tutorial
trasmisor de
celda de carga
HX711, Balanza Digital ago
23, 2015

Configuracin
del mdulo
bluetooth HC-
05 usando comandos AT ago
08, 2015

Tutorial
Mdulo GPS Los lectores RFID(Radio Frequency IDentification) en la actualidad
con Arduino estn teniendo bastante acogida en los sistemas de identificacin,
jun 25, 2015
su uso abarca desde sistemas de seguridad, acceso de personal,
identificacin y logstica de productos, como llaves de puertas
elctricas, entre otras aplicaciones.
ARTCULOS Su principio de funcionamiento consiste en pasar un TAG, cerca de
RECIENTES un lector RFID, el TAG tiene la capacidad de enviar informacin al
lector. Dicha informacin puede ser desde un simple cdigo o todo
un paquete de informacin guardo en la memoria del Tag.

Los TAGs viene en diferentes modelos, los ms comunes son en


Tutorial tarjetas y en llaveros, pero tambin vienen como etiquetas
Sensor de adhesivas e incluso ya viene incrustados en algunos productos.
Distancia Los Tags tienen internamente una antena y un microchip,
SHARP sep
encargado de realizar todo el proceso de comunicacin, la energa
28, 2016
lo obtiene de la seal de radiofrecuencia, que si bien la energa en
Arduino y la seal es pequea, es suficiente para hacer trabajar el microchip,
ESP8266 como
esto es la razn por la que es necesario acercarlos a una pequea
cliente web
ago 24, distancia generalmente menor a 10 cm. Pero existen Tags activos,
2016 que incorporan bateras, estos tiene alcance de varios metros de
distancia.
Robot mvil
controlado por
bluetooth
ago 06,
2016
Mdulo RFID RC522
Es el que usaremos en este tutorial, este mdulo funciona como
Lector y Grabador de Tags RFID.

PROMOCIONES
ESPECIALES

Mdulo
Transceiver
LORA
433MHz
XL1278
El
transmisor
con
el
mayor
rango
del...

S/. 53,00
S/.
55,00

Todas
Todas los
los
promociones
promociones
especiales
especiales '

ETIQUETAS
sensor cnc Este mdulo utiliza un sistema de modulacin y demodulacin de
13.56MHz, frecuencia que en la actualidad utiliza la tecnologa
Servo robot
RFID.
LED LCD

infrarrojo driver
EL mdulo se comunica por SPI, por lo que se puede implementar
rele relay con cualquier microcontrolador con interfaz SPI, como un Arduino.

Bien, empecemos a armar nuestro proyecto:

NOVEDADES

1. Conexin del entre el mdulo RFID y Arduino


Shield
Relay
v2
La Mdulo RC522 Arduino Uno, Nano Arduino Mega
manera
ms
sencilla SDA (SS) 10 53
y
rpida
de SCK 13 52
controlar
cargas
de MOSI 11 51
alta
corriente...
MISO 12 50
S/. 45,00

IRQ No conectado No conectado


Sensor
de
humedad GND GND GND
relativa
y
temperatura RST 9 9
DHT21
(AM2301)
El
3.3V 3.3V 3.3V
sensor
DHT21
te
permite
medir temperatura
y
humedad
relativa
de
forma...

S/. 25,00

Sensor
de
flujo
de
agua
2"
YF-
DN50
El
sensor
de
flujo
permite
medir
Como se observa en la conexin, el mdulo trabaja con un voltaje
el de 3.3V, por lo que la parte lgica tambin debera trabajar con el
caudal mismo nivel de voltaje, para prueba y testeo se puedo conectar
de directamente a los pines del Arduino (nivel TTL 5V), pero se
agua
recomienda usar conversores de niveles de voltaje.
en
una
tubera
y
asi...
2. Programacin del Mdulo RC522: Lectura del
cdigo de identificacin
S/. 125,00

Para poder trabajar el Modulo en Arduino es necesario descargar


Servo su librera correspondiente, la que usaremos ser una de las ms
MG996R
comunes, la desarrollada por Miguel Balboa.
11kg
Servo Librera RFID
robusto,
de Una vez descargada, importamos la librera a nuestro IDE de
alto Arduino, con esto estamos listos para programar.
rendimiento,
compacto,
con
engranes
A continuacin se muestra un sketch para leer el cdigo de
de
metal,... identificacin de nuestros Tags

S/. 35,00 #include <SPI.h>


#include <MFRC522.h>

Arduino #define RST_PIN 9 //Pin 9 para el reset del RC522


Nano #define SS_PIN 10 //Pin 10 para el SS (SDA) del RC522
CH340G MFRC522 mfrc522(SS_PIN, RST_PIN); //Creamos el objeto para el RC5
(micro 22
USB)
Un void setup
setup() {
pequeo Serial
Serial.begin(9600); //Iniciamos la comunicacin serial
SPI.begin(); //Iniciamos el Bus SPI
y
mfrc522.PCD_Init(); // Iniciamos el MFRC522
muy
Serial
Serial.println("Lectura del UID");
potente
}
Arduino,
listo
void loop
loop() {
para // Revisamos si hay nuevas tarjetas presentes
trabajar if ( mfrc522.PICC_IsNewCardPresent())
en {
un //Seleccionamos una tarjeta
Protoboard. if ( mfrc522.PICC_ReadCardSerial())
{
S/. 20,00 // Enviamos serialemente su UID
Serial
Serial.print("Card UID:");
for (byte i = 0; i < mfrc522.uid.size; i++) {
Mdulo Serial
Serial.print(mfrc522.uid.uidByte[i] <
Relay 0x10 ? " 0" : " ");
SSR Serial
Serial.print(mfrc522.uid.uidByte[i], H
1CH EX);
5VDC }
Serial
Serial.println();
El
// Terminamos la lectura de la tarjeta actual
mdulo
mfrc522.PICC_HaltA();
SSR te
}
permite
}
controlar
}
el
encendido/apagado
de
equipos
Como se observa es fcil de entender, pero expliquemos las
de...
funciones referentes al mdulo RC522
S/. 10,00
Instanciar el RC522
Fuente #define RST_PIN 9 //Pin 9 para el reset del RC522
para #define SS_PIN 10 //Pin 10 para el SS (SDA) del RC522
proyectos MFRC522 mfrc522(SS_PIN, RST_PIN);
3W -
12V/0.3A Es necesario utilizar la librera MFRC522.h, solo es necesario
Fuente
especificar los pines Reset y SDA(SS) del mdulo, los dems
conmutada
sin pines trabajan con los pines SPI del Arduino.
case
de
12V Iniciar el RC522
y
300mA, SPI.begin(); //Iniciamos el Bus SPI
para proyectos mfrc522.PCD_Init(); // Iniciamos el MFRC522
con...

S/. 12,00
Esta funcin inicia y configura al RC522 para su posterior
lectura, solo es necesario llamarlo una vez por lo que
Fuente generalmente se lo llama en void setup()
para
proyectos
3W - Ver si hay una tarjeta presente
5V/0.6A
Fuente
mfrc522.PICC_IsNewCardPresent()
conmutada
sin
case
de
Esta funcin nos devuelve verdadero o falso dependiendo si
5V y hay una tarjeta presente cerca al mdulo RC522.
600mA,
para proyectos
con
Seleccionar una tarjeta para la lectura
alimentacin...

S/. 12,00 mfrc522.PICC_ReadCardSerial()

Se llama a esta funcin cuando queremos comunicarnos con


Todas
Todas los
los nuevos
nuevos
productos
productos '
una tarjeta, nos devuelve un valor verdadero si logra
seleccionar una tarjeta para la lectura, de lo contrario nos
retorna un valor falso.

Obtener el tamao del cdigo de identificacin

mfrc522.uid.size

Nos retorna el tamao en Bytes del cdigo de identificacin de


la tarjeta seleccionada.

Leer el cdigo de identificacin

mfrc522.uid.uidByte

Para acceder al cdigo de identificacin es recomendable


indexar la variable por ejemplo mfrc522.uid.uidByte[0] para el
byte en la posicin inicial.
Finalizar la lectura.

mfrc522.PICC_HaltA();

Con esta funcin le indicamos que hemos terminado la lectura


de la tarjeta presente y IsNewCardPresent() devolver falso
para esta tarjeta mientras no se retire. Si despus de retirar la
tarjeta, si se ingresa nuevamente la misma tarjeta se le
considera como una nueva tarjeta.

En el sketch, el cdigo de identificacin lo enviamos por el puerto


serial, para visualizar el cdigo es necesario abrir el Monitor Serial
del IDE de Arduino.
3. Una Aplicacin Simple: Control de acceso
usando RFID

Bien, visto el ejemplo anterior, ahora apliqumoslo para un control


de acceso, que puedes aplicarse en una puerta elctrica, caja
fuerte, sistema de encendido, desactivar alarmas, etc.

Para este ejemplo estamos usando 4 Tags de los cuales solo dos
deben tener acceso al sistema. Para implementar esto partimos del
sketch anterior y solo le agregamos unas lneas ms al final del
programa para comparar los cdigos y determinar si tienen o no
acceso.

A continuacin se muestra el Sketch.

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 9 //Pin 9 para el reset del RC522


#define SS_PIN 10 //Pin 10 para el SS (SDA) del RC522
MFRC522 mfrc522(SS_PIN, RST_PIN); ///Creamos el objeto para el RC
522

void setup
setup() {
Serial
Serial.begin(9600); //Iniciamos La comunicacion serial
SPI.begin(); //Iniciamos el Bus SPI
mfrc522.PCD_Init(); // Iniciamos el MFRC522
Serial
Serial.println("Control de acceso:");
}

byte ActualUID[4]; //almacenar el cdigo del Tag ledo


byte Usuario1[4]= {0x4D, 0x5C, 0x6A, 0x45} ; //cdigo del usuario
1
byte Usuario2[4]= {0xC1, 0x2F, 0xD6, 0x0E} ; //cdigo del usuario
2
void loop
loop() {
// Revisamos si hay nuevas tarjetas presentes
if ( mfrc522.PICC_IsNewCardPresent())
{
//Seleccionamos una tarjeta
if ( mfrc522.PICC_ReadCardSerial())
{
// Enviamos serialemente su UID
Serial
Serial.print(F("Card UID:"));
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial
Serial.print(mfrc522.uid.uidByte[i] <
0x10 ? " 0" : " ");
Serial
Serial.print(mfrc522.uid.uidByte[i], H
EX);
ActualUID[i]=mfrc522.uid.uidByte[i];

}
Serial
Serial.print(" ");
//comparamos los UID para determinar si es uno
de nuestros usuarios
if(compareArray(ActualUID,Usuario1))
Serial
Serial.println("Acceso concedido...");
else if(compareArray(ActualUID,Usuario2))
Serial
Serial.println("Acceso concedido...");
else
Serial
Serial.println("Acceso denegado...");

// Terminamos la lectura de la tarjeta tarjeta


actual
mfrc522.PICC_HaltA();

//Funcin para comparar dos vectores


boolean compareArray(byte array1[],byte array2[])
{
if(array1[0] != array2[0])return(false);
if(array1[1] != array2[1])return(false);
if(array1[2] != array2[2])return(false);
if(array1[3] != array2[3])return(false);
return(true);
}

Y el resultado lo podemos observar al pasar los Tags y visualizarlo


en el monitor serial.
En lugar de enviarlo serialmente la confirmacin se puede
programar para activar una salida digital, que puede estar
conectado a una chapa elctrica, una alarma, etc. depender de la
aplicacin en particular que estn trabajando.

Es bueno aclarar que si bien cumple el objetivo, no es una forma


100% segura, cualquiera que sepa del tema podra clonar las
tarjetas. Para una mayor seguridad es necesario trabajar con los
bloques de la memoria interna del TAG, pudindose configurar una
clave para la lectura, adems se podra trabajar con un cdigo
mayor a los 4 bytes del UID, incluso se podran trabajar con varios
datos. (La lectura y escritura de bloques de memoria se ver en un
prximo tutorial)

Pueden adquirir los materiales usados en este


tutorial en nuestra tienda
Mdulo RFID RC522

You might also like