Le module RFID RC522 est l'un des appareils les plus polyvalents et les plus populaires pour les projets électroniques et les systèmes de contrôle d'accès. Associé à une carte Arduino, il permet de lire et d'écrire des informations sur des cartes RFID et des porte-clés en utilisant la communication sans fil. Ce type de technologie est très utile dans les projets d'automatisation, de sécurité et de surveillance, comme l'ouverture automatique des portes ou l'utilisation de systèmes d'identification personnalisés.
Dans cet article, nous explorerons en détail le fonctionnement du module RC522, comment le connecter à un microcontrôleur tel qu'Arduino, et quelques exemples pratiques qui vous permettront d'en tirer le meilleur parti. Si vous débutez dans des projets RFID, cet article vous sera d'une grande aide pour comprendre les principes et comment réaliser une mise en œuvre simple et efficace.
Qu'est-ce que la RFID ?
La RFID (Radio Frequency Identification) est une technologie qui permet lire des étiquettes ou des tags sans fil, sans avoir besoin de contact physique. Ces étiquettes sont disponibles dans plusieurs formats tels que cartes, porte-clés et même autocollants. Selon le type de RFID, elles sont utilisées dans une grande variété d'applications : du contrôle d'accès aux bâtiments à la gestion des stocks.
Le lecteur RFID agit comme un émetteur-récepteur de signaux radiofréquences. Lorsqu'une étiquette RFID se trouve à proximité du lecteur, celle-ci répond en envoyant les informations stockées dans sa mémoire. Lorsque vous travaillez avec un module comme le RC522, vous pouvez utiliser ces informations pour effectuer différentes actions dans votre projet, comme autoriser l'accès à une porte ou enregistrer l'entrée de personnes.
Le module RC522
Module RC522 C'est l'un des lecteurs RFID les plus populaires en raison de sa simplicité et de sa polyvalence. Cela fonctionne dans le Fréquence 13.56 MHz et permet lire et écrire des informations dans des balises compatibles avec cette norme.
Le RC522 communique avec le microcontrôleur via le protocole SPI, ce qui signifie qu'il est compatible non seulement avec Arduino, mais également avec d'autres systèmes tels que PIC et Raspberry Pi. De plus, il possède un plage de lecture environ 5 à 7 cm, ce qui est largement suffisant pour la plupart des projets de contrôle d'accès.
Connexion du module RFID RC522 avec Arduino
L'un des grands avantages du RC522 est la facilité avec laquelle il est connecté à un Arduino. La première chose que nous devons faire est de nous assurer que toutes les broches du module sont correctement connectées aux broches correspondantes de l'Arduino. Voici un tableau avec les connexions :
Module RC522 | Arduino Uno/Frère aîné | Mega Arduino |
---|---|---|
SDA (SS) | 10 | 53 |
SCK | 13 | 52 |
MOSI | 11 | 51 |
MISO | 12 | 50 |
IRQ | Pas connecté | Pas connecté |
GND | GND | GND |
RST | 9 | 9 |
3.3V | 3.3V | 3.3V |
N'oubliez pas que le module RC522 fonctionne avec une tension de 3.3V, nous vous recommandons donc d'utiliser un convertisseur de niveau de tension si vous envisagez d'utiliser le système de manière prolongée, bien que lors de tests rapides, il puisse fonctionner correctement connecté directement à l'Arduino.
Programmation du RC522 avec Arduino
Pour que le RC522 fonctionne correctement avec Arduino, nous devons télécharger et installer le Librairie RFID. L'un des plus utilisés est celui développé par Miguel Balboa, que vous pouvez trouver dans le gestionnaire de bibliothèque Arduino IDE.
Une fois la bibliothèque installée, voici un exemple de code simple pour lire l'UID (Unique Identifier) d'une carte RFID :
#inclure #inclure #définir RST_PIN 522 #définir SS_PIN 9 MFRC10 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(522); SPI.begin(); mfrc9600.PCD_Init(); Serial.println("Lire l'UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("UID de la carte :"); pour (octet i = 522; i < mfrc0.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 522x0 ? " 10" : " "); Serial.print(mfrc0.uid.uidByte[i], HEX); } Serial.println(); mfrc522.PICC_HaltA(); }} }
Ce code lit l'UID de toute carte que vous apportez au lecteur et l'imprime sur le moniteur série.
Utilisation du RC522 dans un système de contrôle d'accès
L'une des applications les plus utiles du module RFID RC522 est contrôle d'accès. Vous pouvez utiliser des cartes RFID ou des porte-clés pour accorder l'autorisation d'entrée à une personne ou pour activer/désactiver des systèmes tels que des alarmes ou des serrures électriques.
Ci-dessous nous vous montrons un exemple de code modifiant le programme précédent pour autoriser l'accès uniquement aux cartes préautorisées :
octet User1[4] = {0x4B, 0x6D, 0xC8, 0x3A} ; octet User2[4] = {0xF2, 0x8A, 0x9D, 0x17} ; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, User1, 4) || compareArray(mfrc522.uid.uidByte, User2, 4)) { Serial.println("Accès autorisé"); } else { Serial.println("L'accès est refusé"); } mfrc522.PICC_HaltA(); }}
Dans ce code, si une carte est détectée avec un UID qui correspond à l'un de ceux stockés, l'accès est autorisé par l'impression d'un message. Dans le cas contraire, l'accès est refusé. Vous pouvez remplacer ces messages en imprimant un code qui active une sortie numérique pour ouvrir une porte, entre autres fonctionnalités.