hoy, Nuestro Blog es la segunda Parte con el Tema de "Leer y Escribir con la RFID Kit" en la Serie de tres partes, a nuestro RFID Kit:
Al Final de estos 3 Días vas a saber:
- Lo nuestro RFID Kit se puede y como lo estás configurando
Como tú, con nuestro RFID Kit de leer y escribir puede
, Como con nuestro RFID Kit es posible realizar una Computerzugangsberechtigung a la instalación de
RFID de Lectura y Escritura de
Las Operaciones básicas en el Uso de un Módulo RFID son la Lectura de Datos de un Transpondedor RFID y la Escritura de estos.
En este Post vamos a ambos, paso a Paso, como realizar y explicar.
Los Fundamentos de la Tecnología RFID, la Conexión del Módulo y la Instalación de los aquí utilizados Library explica el contenido anterior Post en el Blog de RFID Introducción.
Tanto para la Lectura como para la Escritura de un Transpondedor RFID necesita. En el caso de que tenemos disponibles RFID Kit con dos suministra un Chip y Tarjeta de acceso. Qué estás jugando para la Programación, no importa.
Antes de la Instalación en Función de la Lectura de Bocetos, importamos las Bibliotecas requeridas y definir algunos de los Pins conectados, es decir, que puede ser elegida libremente).
#include <SPI.h>
#include <MFRC522.h>
const uint8_t RST_PIN = 9; // reset pin
const uint8_t SS_PIN = 10; // serial data pin
, a Continuación, ponemos una MFRC522 Objeto. Este representa en el Programa el dispositivo RFID Módulo.
MFRC522 mfrc522(SS_PIN, RST_PIN); // create MFRC522 instancia
En la Función de Configuración de la Conexión serie a PC construido, el Módulo RFID se inicializa y el SPI (Serial Peripheral Interface) de Conexión.
void setup() {
Serial.begin(9600); // inicio serial connection
SPI.begin(); // inicio SPI bus
mfrc522.PCD_Init(); // init módulos RFID
}
Card ID Leer
Código: Simsso/Arduino-Examples/RFID/ReadUID
La Operación es más sencilla la Lectura de los identificadores únicos de internet (UID) del Transpondedor RFID. Para que el Módulo RFID en absoluto después de Transpondedores busca y cuyo UID lee, en la Función Loop las Llamadas
mfrc522.PICC_IsNewCardPresent();
mfrc522.PICC_ReadCardSerial();
hacerse. Sólo entonces puede el UID se utilizan. En el caso de la UID, se trata de una Matriz de Bytes, en el caso de la Identificación de un Transpondedor ayuda. La Matriz tiene una Longitud de 4, por lo que un total de más de cuatro mil Millones de diferentes UIDs de existir. En el Serial Monitor puede ser el IDENTIFICADOR del último detectados Transpondedor con las siguientes Líneas de código en Hexadecimal Formato de salida.
for (int i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i], HEX);
Serial.print(" ");
}
El Resultado se ve, por Ejemplo, así: 14 86 6E 7B
Memoria Leer
Código: Simsso/Arduino-Examples/RFID/ReadStorage
La Memoria de nuestros Transpondedor se compone de 16 Sectores, cada uno con 4 Bloques. Cada uno de estos Bloques contiene 16 Bytes de Memoria. El espacio total es de 16·4·16 = 1024 Bytes (1 kb). Un Sector de la línea de código
mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector);
simplemente formato gastar, donde la Variable sector , el Índice del Sector, es decir, Números enteros de 0 a 15 puede aceptar. La Clave previamente se genera (véase el ejemplo de Código en el Enlace). En SerialMonitor mostrada) Salida prevé, por Ejemplo, así:
0 3 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF [ 0 0 1 ]
2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ]
1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ]
0 B5 A3 2B 1B 26 08 04 00 62 63 64 65 66 67 68 69 [ 0 0 0 ]
El Contenido de cada Bloque con la siguiente línea de código se leen.
mfrc522.MIFARE_Read(blockAddress, buffer, &size);
El Bloque de Dirección es un Número de 0 a 63. El Buffer es una Matriz de 16+2 Bytes de Capacidad de almacenamiento, en una Línea de la anterior, en la que se almacena. El último Parámetro size es un Puntero a una Variable que es igual al Tamaño del pasado buffer Matriz.
Datos de Escribir
Código: Simsso/Arduino-Examples/RFID/WriteFloat
La Escritura de Datos en el Transpondedor es la Lectura es muy similar. La llamada a la función
mfrc522.MIFARE_Write(blockAddress, dataBlock, 16);
escribe el Byte Array dataBlock, la Longitud 16, en el Bloque con el Número blockAddress. Un número determinado sector viene aquí, por lo tanto, no antes, porque la Dirección de Bloque, esto implica. La Dirección de Bloque, es decir, continuamente se incrementa, se encuentra entre 0 y 63. Antes de Escribir debe ser análoga a la de Leer autenticar, son otras seis Líneas de Código, en el Código de Ejemplo puede ver.
En este Apartado, por último, se muestra cómo -- algo praxisnäher -- un Float Variable puede almacenar. Tanto Float, Double-Variables existen al Arduino de 4 Bytes (Referencia https://www.arduino.cc/en/Reference/Double). En el Código se Float Variable con un Valor de inicialización. A continuación, un Byte Pointer que se ha creado en la Dirección del Valor (por Ejemplo, de un Sensor de muestra. Los cuatro Bytes de la Variable Float en una Matriz de Bytes de la Longitud 16 (Tamaño de un Bloque) copia. Este se hace con la Función anterior, en el quinto Bloque del Transponderspeichers escrito.
float temperature = 15.09 f;
byte *tempBytes = (byte *)&temperature;
byte dataBlock[16] = { 0 }; // initialize bloque buffer with zero
for (uint8_t i = 0; i < sizeof(float); i++) {
dataBlock[i] = tempBytes[i]; // copy bytes from float variable into buffer
}
estado = (MFRC522::Código de estado) mfrc522.MIFARE_Write(5, dataBlock, 16);
Con el mencionado ReadStorage Sketch ahora puede leerse que los primeros cuatro Bytes en el Bloque 5 se han establecido. Estos Valores se corresponden en modo de 32 bits IEEE 754 de Formato con el Valor 15,09.
5 A4 70 71 41 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ]
En nuestro contenido siguiente Post en el Blog vamos a explicar cómo con nuestro RFID Kit de una Computerzugangsberechtigung se puede construir.Puedes encontrar el Tutorial para ello, a partir de mañana en nuestro Blog enaz-delivery.deasí que el mejor día para comer o al día emocionante Tutoriales y grandes Proyectos!
Tu
Equipo de AZ-Delivery
1 comentario
Solderdot
Servus!
Welche Ereignisse kann das modul über die IRQ-Leitung mitteilen und wie kann ich dieses Signal nutzen? Gibt es eine Möglichkeit, dass das RC522-Modul einen IRQ auslöst, wenn ein Tag aufgelegt wurde, so dass das rechenhzeitintensive Pollen entfallen kann?
Prinzipiell nutze ich das Modul auf einem Raspberry Pi unter Python. Eine allgemeine Beschreibung sollte ich ohne weiteres dort umsetzen können.