Paso 4: Lectura y reconocimiento de tarjetas RFID
Para hacer cualquier cosa con los datos de la tarjeta, tenemos que crear algunas funciones para recuperar el número de tarjeta cuando es leer y colocar en una matriz para comparar contra los datos de la tarjeta (por ejemplo, una lista de tarjetas aceptadas) así que sus sistemas saben que aceptar y que negar. Utilizando estas funciones, continuación, puede realizar su propio sistema de acceso, dispositivos de registro de tiempo y así sucesivamente.Vamos a mostrar un ejemplo de esto. Comprobará si una tarjeta ante el lector está en una lista "aceptada", y si tan ligero un LED verde, encenderá un LED rojo. Utilizar el hardware desde el esbozo anterior, pero agrega un típico LED verde y rojo con resistencia de 560 ohm a digitales pines 13 y 12 respectivamente. Luego subo el siguiente bosquejo:
//-------------------------------------------------------------------------------------------------------------
#include < SoftwareSerial.h >
SoftwareSerial RFID(2, 3); RX y TX
data1 int = 0;
int ok = -1;
sí int = 13;
int no = 12;
Use primer bosquejo en http://wp.me/p3LK05-3Gk para obtener sus números de etiqueta
tag1 int [14] = {2,52,48,48,48,56,54,66,49,52,70,51,56,3};
etiqueta2 int [14] = {2,52,48,48,48,56,54,67,54,54,66,54,66,3};
int newtag [14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0}; utilizado para las comparaciones de lectura
void setup()
{
RFID.begin(9600); Inicio serie para lector RFID
Serial.Begin(9600); Inicio serie a PC
pinMode (sí, salida); para LED de estado
pinMode (no, salida);
}
Boolean comparetag (int aa [14], int bb[14])
{
ff boolean = false;
int fg = 0;
para (int cc = 0; cc < 14; cc ++)
{
Si (aa [cc] == bb[cc])
{
FG ++;
}
}
Si (fg == 14)
{
FF = true;
}
volver a ff;
}
void checkmytags() / / compara cada etiqueta contra la etiqueta de sólo lectura
{
OK = 0; Esta variable ayuda a la toma de decisiones,
Si es 1 que tenemos un partido, cero es una lectura pero no encuentro,
-1 no es ningún intento de leer
Si (comparetag (newtag, tag1) == true)
{
OK ++;
}
Si (comparetag (newtag, etiqueta2) == true)
{
OK ++;
}
}
void readTags()
{
OK = -1;
Si (RFID.available() > 0)
{
leer los números de etiqueta
Delay(100); necesario para permitir que los datos que vienen en el búfer serial.
para (int z = 0; z < 14; z ++) / / leer el resto de la etiqueta
{
data1 = RFID.read();
newtag [z] = data1;
}
RFID.flush(); paradas múltiples lecturas
¿coincidir las etiquetas?
checkmytags();
}
ahora hacer algo basado en tipo de etiqueta
Si (ok > 0) / / si hemos tenido un partido
{
Serial.println("accepted");
digitalWrite(yes, HIGH);
Delay(1000);
digitalWrite (sí, baja);
OK = -1;
}
else if (ok == 0) / / si no tenemos un partido
{
Serial.println("Rejected");
digitalWrite(no, HIGH);
Delay(1000);
digitalWrite (no baja);
OK = -1;
}
}
void loop()
{
readTags();
}
// ------------------------------------------------------------------------------------
En el bosquejo tenemos algunas funciones de la lectura y la comparación de etiquetas RFID. Observe que los números de etiqueta permitidos figuran en la parte superior del dibujo, siempre puede añadir su propio y más, mientras usted agrega a la lista en la función checkmytags() que determina si se permite la tarjeta ser leída o ser negado.
La función readTags() se encarga de la lectura real de las etiquetas/tarjetas, colocando el número de etiqueta de lectura actualmente en una matriz que se les utiliza en la función de comparación checkmytags(). Luego los LEDs se iluminan dependiendo del estado de la etiqueta en el lector. Se puede ver una demostración rápida de este ejemplo en este video corto.
Conclusión
Después de trabajar a través de este capítulo usted debería tener ahora una buena base de conocimientos sobre el uso de los lectores RFID baratos y cómo llamar a funciones cuando una tarjeta se lee correctamente. Por ejemplo, utilizar algún hardware adicional (como un N-MOSFET) para controlar una cerradura, zumbador, etc.. Ahora depende de su uso como una forma de entrada con diversos sistemas de acceso, rastrear el movimiento de personas o cosas y mucho más.
Y si usted gozó el tutorial, o quiere introducir a alguien en el interesante mundo de Arduino – revisa mi libro (ahora en una tercera impresión!) "Taller de Arduino" de ninguna prensa del almidón.