L'objectif principal est d'utiliser un ESP32 pour lire l’UID (Identifiant Unique) d’une carte RFID à l’aide du module RFID-RC522, puis d’afficher cet identifiant sur un écran LCD I2C.
La carte lit l’UID de chaque carte RFID ou tag et l'affiche sur l’écran LCD I2C pour confirmation.
Avec ce tutoriel, vous pouvez créer un système RFID autonome et interactif, parfait pour des applications de sécurité et d'automatisation.
Le RFID-RC522 est un lecteur RFID fonctionnant à 13.56 MHz, utilisé pour lire et écrire des données sur des cartes ou tags RFID compatibles. Il communique principalement via SPI, mais supporte aussi I2C et UART.
Fonctionnement du module RFID-RC522
1- Envoi d’un signal : L’ESP32 envoie une requête via SPI pour activer le module.
2- Détection d’une carte : Le module détecte une carte RFID lorsqu’elle est à proximité (~5 cm).
3- Lecture de l’UID : Le module récupère l’identifiant unique (UID) de la carte et l’envoie à l’ESP32.
4- Affichage des données : L’ESP32 peut ensuite afficher l’UID sur un écran LCD I2C ou l’envoyer à un serveur.
Un badge RFID est un porte-clés contenant une puce RFID et une antenne, permettant d’être identifié à distance par un lecteur RFID comme le RFID-RC522. Il fonctionne grâce à la radiofréquence et ne nécessite pas de contact physique avec le lecteur.
Fonctionnement d'un badge RFID
1- Lorsqu’un badge RFID est approché d’un lecteur RFID-RC522, un champ électromagnétique est généré.
2- La puce du badge s’active grâce à ce champ et envoie son UID (Identifiant Unique) au lecteur.
3- L’ESP32 analyse l’UID et effectue une action : affichage sur un écran LCD I2C, ouverture d’une porte, enregistrement de présence, etc.
Une carte RFID est une carte en plastique équipée d’une puce électronique et d’une antenne intégrée, permettant une communication sans contact avec un lecteur RFID comme le RFID-RC522. Elle est utilisée pour l'identification, l'accès sécurisé et le stockage de données.
Fonctionnement d'une carte RFID
1- Lorsqu’une carte RFID est approchée d’un lecteur RFID-RC522, celui-ci génère un champ électromagnétique.
2- La puce de la carte s’active et envoie son UID au lecteur.
3- L’ESP32 lit et analyse l’UID, puis effectue une action comme l'affichage sur un écran LCD I2C
Connexion du module RFID-RC522 à la carte ESP32
RFID-RC522 Pin | ESP32 Pi |
VCC | 3V3 |
RST | GPIO 2 |
GND | GND |
MISO | GPIO 19 |
MOSI | GPIO 23 |
SCK | GPIO 18 |
SDA (SS) | GPIO 5 |
Connexion de l'afficheur I2C LCD à la carte ESP32
LCD I2C Pin | ESP32 pin |
VCC | 5 volt |
GND | GND |
SDA | GPIO 21 |
SCL | GPIO 22 |
Le programme Micropython suivant permet de lire l’UID d’une carte RFID et de l’afficher sur l’écran LCD.
MFRC522 → pour gérer le module RFID-RC522
i2c_lcd et lcd_api → pour afficher les informations sur l’écran LCD 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 |
from time import sleep_ms from machine import Pin, SPI, SoftI2C,ADC from mfrc522 import MFRC522 from lcd_api import LcdApi from i2c_lcd import I2cLcd # Define the SPI pins sck = Pin(18, Pin.OUT) mosi = Pin(23, Pin.OUT) miso = Pin(19, Pin.OUT) sda = Pin(5, Pin.OUT) I2C_ADDR = 0x27 totalRows = 4 totalColumns = 20 # Create SPI object and initialize MFRC522 RFID reader spi = SPI(baudrate=100000, polarity=0, phase=0, sck=sck, mosi=mosi, miso=miso) # Initialize I2C LCD (address 0x27, 20x4 LCD) i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000) #initializing the I2C method for ESP32 lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns) def do_read(): while True: rdr = MFRC522(spi, sda) uid = "" <span class="hljs-comment"># Check if an RFID card is present</span> (stat, tag_type) = rdr.request(rdr.REQIDL) if stat == rdr.OK: (stat, raw_uid) = rdr.anticoll() if stat == rdr.OK: # Get the card serial number (UID) uid = ("0x%02x%02x%02x%02x" % (raw_uid[0], raw_uid[1], raw_uid[2], raw_uid[3])) print(uid) lcd.clear() lcd.move_to(1,1) lcd.putstr("Card ID") lcd.move_to(1,2) # Display UID on LCD lcd.putstr(uid) sleep_ms(5000) lcd.clear() lcd.move_to(1,1) lcd.putstr('Scan your card') else: dui="" lcd.clear() lcd.move_to(1,1) lcd.putstr('Scan your card') do_read() |
Explication du programme
1- Initialisation des composants
Le SPI est configuré pour communiquer avec le RFID-RC522.
Le bus I2C est utilisé pour connecter l’écran LCD I2C.
2- Lecture de la carte RFID
Le programme détecte une carte RFID et récupère son UID (Unique Identifier).
L’UID est converti en une chaîne de caractères.
3- Affichage sur l’écran LCD
L’UID est affiché sur la première ligne de l’écran LCD.
Un délai est ajouté pour éviter la détection multiple de la même carte.
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