Dans ce tutoriel, nous apprendrons comment utiliser le module RFID RC522 avec Arduino pour commander l’allumage d’une LED.

Tout d’abord, le module RFID est un lecteur de carte. Il permet de contrôler un système, c’est-à-dire activé le système lorsque la bonne carte est présente dans le rayon de fonction du lecteur ou non.

PLAN

  1. Présentation du module RFID RC522
  2. Matériels
  3. Câblage
  4. Code source
  1. Présentation du module RFID RC522

Le module RFID est composé de trois éléments dont un lecteur de carte RFID RC522 et de deux badges de formes différentes. L’un a la forme d’une carte et l’autre d’une porte clé.

a.Fonctionnement:

Lorsque le lecteur est mis tension externe, l’oscillateur génère un signal. Grâce à l’amplificateur, ce signal est amplifié et envoyé au modulateur qui va à son tour propager le signal à une distance. L’antenne transforme ce signal en un signal électromagnétique, l’envoie dans l’air dans l’attente de détecter un signal en retour.

Lorsqu’un badge est présent dans les rayons du signal électromagnétique, la bobine à l’intérieur du badge convertit le signal électromagnétique en un signal électrique pour alimenter la micro puce à l’intérieur du badge.  La micro puce sous tension va à son tour envoyer les IDs stockés en elle grâce à une antenne sous forme de signal électrique à la bobine. Ce signal est en suit capté par l’antenne du lecteur, amplifier et envoyé au démodulateur. Le démodulateur reçoit un signal modulé à haute fréquence et le transforme en basse fréquence pour l’envoyer au décodeur. Le signal sera décodé à ce niveau et envoyé à un microcontrôleur.

b.Caractéristiques

  • Tension d’alimentation 3,3V
  • Portée de lecture : environ 3cm
  • Courant 13 à 26mA
  • Fréquence 13,56 MHz

2. Matériels

  • Carte Arduino UNO
  • Module RFID RC522
  • Une LED
  • Une résistance de 220 ohm
  • Jumper wires
  • Un Breadbord

3- Câblage

Schéma de câblage dans Fritzing

Module RFID RC522 Carte Arduino
SDA D10
RST D9
SCK D13
MISO D12
MOSI D11
GND GND
3,3V 3,3V

NB: La LED est branchée sur la broche digital 2 de la carte Arduino

4. Code source

Contrairement aux autres tutoriels, ici notre programmation se fera en deux étapes. La première étape consiste à récupérer les IDs des badges et à les stockers dans un tableau. L’autre étape consistera à contrôler l’accès.

Etape 1:

Récupération des IDs.

#include <SPI.h> // SPI
#include <MFRC522.h> // RFID
#define SDA 10
#define RST 9
MFRC522 Module_RFID(SDA, RST);
int Tabl_ID[4]; // Tableau contentent l’ID de la carte
void setup()
{
Serial.begin(9600); // vitesse de transmission des données Arduino vers PC
Serial.print(“BONJOUR”);
Serial.println(” “);
SPI.begin(); // Initialisation de SPI
Module_RFID.PCD_Init();// Initialisation de la carte RFID RC522
}
void loop()
{
// Initialisé la boucle si aucun badge n’est présent
if (!Module_RFID.PICC_IsNewCardPresent())
return;
// Vérifier la présence d’un nouveau badge
if (!Module_RFID.PICC_ReadCardSerial())
return;
//Appelle de la fonction Enregis_Affiche_ID
Enregis_Affiche_ID();
//Appelle de la fonction Renitialisation
Renitialisation();
}
void Enregis_Affiche_ID()
{
for (int i = 0; i < 4; i++) // Enregistrement de l’ID du badge
{
Tabl_ID[i] = Module_RFID.uid.uidByte[i];
}
Serial.println(” L’ID du badge est:”); // Affichage de l’ID
for (int i = 0; i < 4; i++)
{
Serial.print(Tabl_ID[i], DEC);
Serial.print(” “);
}
Serial.println();
}
void Renitialisation()
{
Module_RFID.PICC_HaltA();
Module_RFID.PCD_StopCrypto1();
}

Etape 2:

Contrôle d’accès

//Contrôler l’accès avec le module RFID RC522
#include <SPI.h> // SPI
#include <MFRC522.h> // RFID
#define SDA 10
#define RST 9
MFRC522 Module_RFID(SDA, RST);
int Tabl_ID_Carte[4]={57, 38, 178, 140}; // ID de la carte récupéré à l’étape 1
int Tabl_ID_Cle[4]={26, 23, 127, 21}; // ID de la clé récupéré à l’étape 1
int Porte=2;
int Acces_ID[4];
void setup()
{
Serial.begin(9600); // Vitesse de transmission des données Arduino vers PC
SPI.begin(); // Initialisation de SPI
Module_RFID.PCD_Init();// Initialisation de la carte RFID RC522
}
void loop()
{
// Initialisé la boucle si aucun badge n’est présent
if ( !Module_RFID.PICC_IsNewCardPresent())
return;
// Vérifier la présence d’un nouveau badge
if (!Module_RFID.PICC_ReadCardSerial())
return;
Enregis_ID();
Renitialisation();
Controle();
}
void Enregis_ID()
{
// Enregistrement de l’ID de la carte d’accès
for (int i = 0; i < 4; i++)
{
Acces_ID[i] = Module_RFID.uid.uidByte[i];
}
}
void Renitialisation()
{
// Renitialisation RFID
Module_RFID.PICC_HaltA(); // Halt PICC
Module_RFID.PCD_StopCrypto1(); // Stop encryption on PCD
}
// comparaison du code avec le code d’acces
void Controle()
{
if (Tabl_ID_Carte[0] == Acces_ID[0] && Tabl_ID_Carte[1] == Acces_ID[1] && Tabl_ID_Carte[2] == Acces_ID[2] && Tabl_ID_Carte[3] == Acces_ID[3])
{
Serial.print(“ACCES AVEC LA CARTE”);
digitalWrite(Porte, HIGH);
delay(1000);
digitalWrite(Porte, LOW);
}
if (Tabl_ID_Cle[0] == Acces_ID[0] && Tabl_ID_Cle[1] == Acces_ID[1] && Tabl_ID_Cle[2] == Acces_ID[2] && Tabl_ID_Cle[3] == Acces_ID[3])
{
Serial.print(“ACCES AVEC BADGE”);
digitalWrite(Porte, HIGH);
delay(1000);
digitalWrite(Porte, LOW);
}
}

Nous sommes à la fin de notre tutoriel

Les détails ne sont pas renseignés

0.00 average based on 0 ratings

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Course Features

  • Duration : 10 week
  • Max Students : 1000
  • Enrolled : 0
  • Re-take Course : 0
  • Assessments : Self
Price :
Gratuit

Rating

Average Rating: 0.00

Star
0%
Star
0%
Star
0%
Star
0%
Star
0%

Leave a Comment