Module RFID RC522 – Arduino

Ce page est obsolète… Se rendre ici pour la mise à jour : https://mataucarre.fr/index.php/2022/03/03/arduino-et-module-rfid-rc522-gerer-plusieurs-cartes/

Le Module RFID-RC522 est module RFID utilisé pour lecture/écriture sans contact d’un tag. Le lecteur utilise une communication SPI.

RFID est l’abréviation de Radio Frequency IDentification. Les modules RFID utilisent des champs électromagnétiques pour transférer des données entre la carte et le lecteur. Différents tags sont attachés à des objets (carte, porte clé…) et lorsque nous plaçons cet objet en face du lecteur, le lecteur lit ces balises.

Un avantage du RFID est qu’il n’a pas besoin d’être dans une ligne de mire pour être détecté.

Les Tags possèdent une antenne associée à une puce électronique qui leur permet de recevoir et de répondre aux requêtes radio émises depuis l’émetteur-récepteur.
Ils contiennent un identifiant individuel (standard Epc-96 sur 96 bits). Leur fonctionnement est passif (sans source d’énergie, donc c’est autonome et inusable).

RFID – RC522 Arduino Leonardo
VCC 3,3V
RST/Reset ICSP 5
GND ICSP 6
IRQ /
MISO ICSP 1
MOSI ICSP 4
SCK ICSP 3
SDA Interface 10

Il faut télécharger les librairies suivantes et les installer dans le dossier librairies de votre dossier Arduino : Librairies RFID et SPI

Vous trouverez ensuite deux codes :
– Le premier permet de récupérer le numéro d’un TAG RFID
– Le second permet de vérifier si le TAG est correct (un numéro de TAG est en mémoire dans le programme).

#include <SPI.h>
#include <RFID.h>

RFID RFID(10,9); //RFID(SPI PIN, RST PIN)

int UID[5];

void setup()
{
Serial.begin(9600);
SPI.begin();
RFID.init();

}

void loop()
{
if (RFID.isCard()) { //Si une carte est présente près du lecteur
if (RFID.readCardSerial()) { // Si cette carte possède un numéro de série
Serial.print("L'UID est: ");
for(int i=0;i<=4;i++)
{
UID[i]=RFID.serNum[i];
Serial.print(UID[i],DEC);
Serial.print(".");
}
Serial.println("");
}
RFID.halt();
}
delay(100);
}
Lecture d'un TAG RFID
#include <SPI.h>
#include <RFID.h>

RFID RFID(10,9);

int UID[5]={};
int IDCarte[5]={1,100,52,75,209}; // UID du badge ou de la carte acceptée sous forme de tableau (Array).
bool statut = 1;

void setup()
{
Serial.begin(9600);
SPI.begin();
RFID.init();

}

void loop()
{


for(int i=0;i<=4;i++)
{
UID[i]=RFID.serNum[i];

}

if (UID[0] == IDCarte[0] // Si l'UID 0 est égale à 1
&& UID[1] == IDCarte[1] // Et si l'UID 1 est égale à 100
&& UID[2] == IDCarte[2] // Et si l'UID 1 est égale à 52
&& UID[3] == IDCarte[3] // Et si l'UID 1 est égale à 75
&& UID[4] == IDCarte[4]) // Et si l'UID 1 est égale à 209
{
Serial.print("Bonne carte");}

else
{
Serial.print("Mauvaise carte");

}

RFID.halt();
delay(100);

}
Comparer un numéro de carte, avec un autre en mémoire

Un commentaire

Rejoignez la conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.