La radio frequency identification est une méthode pour mémoriser et récupérer des données à distance grâce à des puces électroniques.
Ces puces électroniques contiennent un identifiant unique pour chacune d’elles.
Cette technologie d’identification peut être utilisée pour identifier :
Un système de radio-identification est composé de deux entités qui communiquent entre elles :
Pour contrôler votre carte rfid, il faut installer la librairie sur arduino ide. Pour cela vous devez d’abord télécharger la librairie : RFID.
Ensuite, vous devez la charger sur Arduino ide. Pour cela vous devez aller dans “sketch” puis “include library” et “add library” et choisir le dossier que vous venez de télécharger :
Une fois la librairie installé vous pouvez commencer à téléverser les programmes pour la carte.
Une fois la librairie installée vous pouvez commencer à téléverser les programmes pour la carte.
Voici le circuit du cablâge du rfid :
Ce schéma à été fait avec fritzing. Voici le lien de la pièce rfid si vous voulez reproduire le schéma.
Pour lire la carte quand elle est détectée par le module rfid, il vous suffit de copier le programme suivant :
#include <SPI.h>
#include <MFRC522.h>
#define Reset_PIN 9 // Pin pour configurer le reset du rfid
#define Liaison_SPI 10 // Pin pour la liaison SPI
MFRC522 mfrc522(Liaison_SPI, Reset_PIN);
MFRC522::MIFARE_Key key;
void setup() {
Serial.begin(9600); // Initialisation la connexion avec le moniteur série
while (!Serial); // Ttant que le moniteur série est ouvert on ne fait rien
SPI.begin(); // Initialisation de la liaison SPI
mfrc522.PCD_Init(); // Initialisation de la carte rfid.
Serial.println(F("Approchez votre carte du lecteur !"));
}
void loop() {
// On regarde s'il y a de nouvelles cartes
if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
delay(50);
return;
}
// La nouvelle carte est maintenant sélectionnée
Serial.print(F("Lecture de la carte UID:"));
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println();
delay(2000);
}
Voici le lien du programme : arduino rfid.
Voici ce que l’on obtient en passant la carte sur le module :
Pour changer l’identité de la carte uid, le circuit est le même que pour la lecture de la carte.
Ci-dessous, le programme pour écrire un nouveau code sur la carte :
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 // Pin pour configurer le reset du rfid
#define SS_PIN 10 // Pin pour la liaison SPI
MFRC522 mfrc522(SS_PIN, RST_PIN);
/* On créer un nouveau UID */#define NEW_UID {0xDE, 0xAD, 0xBE, 0xEF}
MFRC522::MIFARE_Key key;
void setup() {
Serial.begin(9600); // On initialise la connexion avec le moniteur série
while (!Serial); // On en fait rien tan que le moniteur série est ouvert
SPI.begin(); // Initialisation de la liaison SPI.
mfrc522.PCD_Init(); // Initialisation de la carte rfid.
Serial.println(F("Approchez votre carte du lecteur !"));
// On choisit ici les chiffres hexadécimaux du numéro UID.
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
}
void loop() {
// On regarde s'il y a des nouvelles cartes
if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
delay(50);
return;
}
// La nouvelle carte est maintenant sélectionnée.
Serial.print(F("Lecture de la carte UID:"));
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println();
// On ajoute le nouvel UID
byte newUid[] = NEW_UID;
if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) {
Serial.println(F("On écrit sur la nouvelle carte."));
}
mfrc522.PICC_HaltA();
if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
return;
}
Serial.println(F("Voici le nouveau UID"));
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
delay(2000);
}
Voici le lien du programme : code rfid uid.
Voici ce que l’on obtient en ajoutant un nouveau UID :
On va maintenant voir comment allumer une led quand la carte est détectée. Pour cela vous devez réaliser le circuit suivant :
Voici le programme qui va vous permettre de faire fonctionner votre circuit :
#include <SPI.h>
#include <MFRC522.h>
#define Reset_PIN 9 // Pin pour configurer le reset du rfid
#define Liaison_SPI 10 // Pin pour la liaison SPI
const int led_rouge = 3;
const int led_vert = 4;
MFRC522 mfrc522(Liaison_SPI, Reset_PIN);
MFRC522::MIFARE_Key key;
void setup() {
Serial.begin(9600); // On initialise la connexion avec le moniteur série
while (!Serial); // On en fait rien tan que le moniteur série est ouvert
SPI.begin(); // Initialisation de la liaison SPI.
mfrc522.PCD_Init(); // Initialisation de la carte rfid.
Serial.println(F("Approchez votre carte du lecteur !"));
pinMode(led_rouge, OUTPUT);
pinMode(led_vert, OUTPUT);
digitalWrite(led_rouge, HIGH); // On allume la led rouge tant que la carte n'est pas présenté
}
void loop() {
// On regarde s'il y a des nouvelles cartes
if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
delay(50);
return;
}
// La nouvelle carte est maintenant sélectionnée.
Serial.print(F("Lecture de la carte UID:"));
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
digitalWrite(led_rouge, LOW); // On éteint la led rouge quand la carte est reconnue
digitalWrite(led_vert, HIGH); // On éteint la led verte
}
Serial.println();
delay(2000);
}
Voici le programme que vous pouvez télécharger : code rfid led.