Ce tutoriel a pour but d’expliquer comment lire l’identificateur unique (UID) d’une carte RFID à l’aide d’une carte Arduino, d’un module RFID-RC522 et d’un afficheur LCD I2C.
L’objectif est de configurer l’Arduino pour qu’il communique avec le module RFID-RC522 via le protocole SPI, détecte une carte RFID à proximité et affiche son UID sur l’écran LCD I2C.
Ce projet peut être utilisé dans des applications telles que :
Le contrôle d’accès (exemple : ouverture d’une porte avec une carte autorisée).
L’identification d’objets (exemple : suivi de produits avec des étiquettes RFID).
La gestion de présence (exemple : enregistrement des entrées et sorties).
À la fin de ce tutoriel, vous serez capable de :
- Connecter le module RFID-RC522 et l’écran LCD I2C à une carte Arduino.
- Lire l’UID d’une carte RFID.
- Afficher cet UID sur un écran LCD I2C.
- Comprendre les protocoles SPI et I2C utilisés pour la communication des composants.
Le module RFID-RC522 est un module basé sur la puce MFRC522, conçu pour lire et écrire des cartes RFID (Radio-Frequency Identification) fonctionnant à 13,56 MHz. Il est largement utilisé pour des applications telles que le contrôle d’accès, la gestion d’inventaire, et l’identification d’objets.
Fonctionnement du module RFID-RC522
1. L’Arduino envoie une requête au module RFID via SPI.
2. Le module RFID-RC522 émet un signal électromagnétique pour détecter une carte RFID à proximité.
3. Si une carte est détectée, le module récupère son UID et l’envoie à l’Arduino.
3. L’UID est affiché sur le moniteur série et/ou un afficheur LCD I2C.
Un badge RFID est un dispositif équipé d’une puce électronique et d’une antenne intégrée, permettant la communication sans fil avec un lecteur RFID, comme le module RFID-RC522. Il est couramment utilisé pour le contrôle d’accès, l’identification et le suivi d’objets.
Comment fonctionne un badge RFID ?
1. Le badge contient une puce qui stocke des informations (notamment un identificateur unique UID).
2. Lorsqu’il est approché du lecteur RFID, ce dernier émet un signal électromagnétique.
3. Le badge capte cette énergie (il est passif, donc sans batterie) et envoie son UID au lecteur.
4. L’UID est récupéré par le système et peut être enregistré, comparé ou utilisé pour déclencher une action (ouvrir une porte, identifier un utilisateur, etc.).
Une carte blanche RFID est une carte en plastique équipée d’une puce RFID et d’une antenne intégrée. Elle fonctionne de la même manière qu’un badge RFID, mais sous un format carte de crédit.
Fonctionnement avec un lecteur RFID-RC522
1- La carte est approchée du lecteur RFID.
2- Le module RFID-RC522 envoie un signal électromagnétique.
3- La carte capte ce signal et renvoie son UID au lecteur.
4- L’UID est lu par un microcontrôleur (ex: Arduino, ESP8266) et peut être affiché sur un écran LCD ou envoyé à un serveur.
Voici un programme Arduino pour lire l'UID d'une carte RFID avec un module RFID-RC522 et l'afficher sur un afficheur LCD I2C.
Avant de compiler, installez les bibliothèques suivantes dans l’IDE Arduino : MFRC522 (pour le module RFID) et LiquidCrystal_I2C (pour l’écran LCD I2C)
Installation : Allez dans Sketch > Inclure une bibliothèque > Gérer les bibliothèques et recherchez MFRC522 et LiquidCrystal_I2C.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <SPI.h> #include <MFRC522.h> // Définition des broches #define SS_PIN 10 #define RST_PIN 9 // Initialisation du module RFID et du LCD I2C (adresse 0x27) MFRC522 rfid(SS_PIN, RST_PIN); LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { Serial.begin(9600); // Moniteur Série SPI.begin(); // Initialisation du SPI rfid.PCD_Init(); // Initialisation du RFID lcd.begin(16, 2); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Approchez carte..."); } void loop() { // Vérifie si une carte est détectée if (!rfid.PICC_IsNewCardPresent()) { return; } // Lit l'UID de la carte if (!rfid.PICC_ReadCardSerial()) { return; } Serial.print("UID: "); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Carte detectee:"); // Lecture et affichage de l'UID String uidStr = ""; for (byte i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i], HEX); Serial.print(" "); uidStr += String(rfid.uid.uidByte[i], HEX) + "-"; } uidStr.remove(uidStr.length() - 1); // Supprime le dernier "-" Serial.println(); lcd.setCursor(0, 1); lcd.print(uidStr); // Affichage UID de la carte FRID sur LCD delay(5000); // Pause avant de détecter une nouvelle carte lcd.clear(); lcd.setCursor(0, 0); lcd.print("Approchez carte..."); rfid.PICC_HaltA(); // Met fin à la communication avec la carte } |
Explication du code
- Initialisation du SPI, du module RFID et du LCD I2C.
- Détection d'une carte RFID via le module RC522.
- Lecture de l'UID et affichage sur le moniteur série et le LCD I2C.
- Attente d'une nouvelle carte après un court délai.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info