Qu'est-ce que le RFID-RC522 ?
Le module RFID-RC522 est un lecteur de cartes RFID fonctionnant sur la fréquence 13.56 MHz. Il permet de lire et écrire des données sur des cartes et badges RFID compatibles. Ce module est très populaire pour les projets Arduino et Raspberry Pi.
Matériel nécessaire
Composants principaux
🖥️ Raspberry Pi 3 Model B / B+ 💾 Carte microSD (≥ 16 Go, classe 10) 📡 Module RFID-RC522 🔌 Câbles de connexion (jumpers)
Matériel optionnel
- Alimentation 5V/3A pour le Raspberry Pi
- Boîtier pour le Raspberry Pi
- Câble HDMI pour l'affichage
- Carte ou badge RFID compatible 13.56 MHz
Installation du système d'exploitation
Option 1 : via Raspberry Pi Imager (recommandé)
-
Téléchargez Raspberry Pi Imager depuis : 👉 https://www.raspberrypi.com/software/
-
Sélectionnez Raspberry Pi OS comme système d'exploitation
-
Choisissez votre carte microSD comme destination
-
Cliquez sur ÉCRIRE pour installer le système
Démarrage du Raspberry Pi
- Insérez la carte microSD dans le Raspberry Pi
- Branchez l'alimentation
- Le Raspberry Pi démarre automatiquement sur Raspberry Pi OS
Configuration SSH avec Termius
Activation SSH via Raspberry Pi Imager
Lors de l'installation avec Raspberry Pi Imager, vous pouvez activer SSH directement dans les options :
- Cliquez sur l'icône d'engrenage dans Raspberry Pi Imager
- Cochez "Enable SSH"
- Définissez un nom d'utilisateur et un mot de passe
- Procédez à l'installation
Connexion depuis Termius
- Ouvrez Termius
- Créez une nouvelle connexion
- Entrez l'adresse IP de votre Raspberry Pi
- Utilisez les identifiants définis lors de l'installation
Mise à jour du système
sudo apt update && sudo apt upgrade -y
Connexion du module RFID-RC522
Schéma de connexion
Broche module | Fonction | GPIO Pi 3 (BCM) | Pin physique | Notes |
---|---|---|---|---|
3.3V | Alimentation 3.3V | 3.3V | Pin 1 | ⚠️ Ne jamais utiliser 5V |
GND | Masse | GND | Pin 6 | Masse commune |
RST | Reset module | GPIO25 | Pin 22 | Ligne Reset pour initialiser le module |
IRQ | Interruption | GPIO24 | Pin 18 | Optionnelle, peut être laissée non connectée |
MISO | SPI Master In Slave Out | GPIO9 | Pin 21 | Données du module vers le Pi |
MOSI | SPI Master Out Slave In | GPIO10 | Pin 19 | Données du Pi vers le module |
SCK | SPI Clock | GPIO11 | Pin 23 | Horloge SPI |
SDA/NSS | SPI Chip Select | GPIO8 | Pin 24 | Activation du module (CS) |
⚠️ Notes importantes
- Alimentation 3.3V obligatoire : Ne jamais brancher sur 5V, le module est conçu pour 3.3V
- SPI doit être activé :
sudo raspi-config
→ Interface Options → SPI → Enable - La broche IRQ est optionnelle et seulement utile pour gérer des interruptions
- RST peut être utilisée pour réinitialiser le module via le code Python
- Les broches SPI sont fixes sur le Pi 3 : MOSI = GPIO10, MISO = GPIO9, SCK = GPIO11, CS = GPIO8
Configuration du Raspberry Pi
1. Activer SPI
sudo raspi-config
Naviguez vers :
- Interface Options → SPI → Enable
Redémarrez le Pi si demandé.
2. Installer Python et pip
sudo apt install python3-pip python3-dev -y
3. Installer la bibliothèque RC522
Méthode 1 : Installation avec pip (recommandée)
pip3 install pi-rc522
Méthode 2 : Si erreur "externally managed"
Si vous obtenez l'erreur "externally managed environment", utilisez l'une de ces solutions :
Solution A : Installation utilisateur
pip3 install --user pi-rc522
Solution B : Utiliser venv (environnement virtuel)
python3 -m venv rfid_env
source rfid_env/bin/activate
pip install pi-rc522
Solution C : Installation système (si nécessaire)
sudo apt install python3-pi-rc522
Option alternative : MFRC522-python depuis GitHub pour plus de fonctionnalités.
Test du module avec Python
Script de test
Créez un fichier test_rc522.py
:
from pirc522 import RFID
import time
# Création de l'objet RFID sans IRQ (polling)
rdr = RFID(pin_irq=None)
print("Approchez une carte RFID...")
try:
while True:
# Vérifie s'il y a une carte
error, tag_type = rdr.request()
if not error:
error, uid = rdr.anticoll()
if not error:
print("UID détecté :", uid)
break # Arrêt après la première détection
time.sleep(0.3)
except KeyboardInterrupt:
print("
Arrêt du test.")
finally:
rdr.cleanup()
Exécution du test
python3 test_rc522.py
Résultat attendu
Lorsque vous approchez une carte ou un badge RFID, le script affiche :
Tag détecté
UID de la carte : [XX, XX, XX, XX]
Dépannage
Problèmes courants
1. Aucune détection de carte
- ✅ Vérifiez l'alimentation : RC522 = 3.3V, pas 5V
- ✅ Vérifiez les connexions SPI : MOSI, MISO, SCK, SDA/NSS, RST
- ✅ Vérifiez que SPI est activé dans
raspi-config
- ✅ Vérifiez que la bibliothèque Python est installée correctement
- ✅ Utilisez une carte ou badge RFID compatible 13.56 MHz
1.1. Erreur "externally managed environment"
Si vous obtenez cette erreur lors de l'installation de pi-rc522 :
# Solution recommandée : installation utilisateur
pip3 install --user pi-rc522
# Ou utiliser un environnement virtuel
python3 -m venv rfid_env
source rfid_env/bin/activate
pip install pi-rc522
2. Module non reconnu
lsmod | grep spi
3. Vérification des broches
gpio readall
Commandes de diagnostic
# Vérifier que SPI est activé
lsmod | grep spi
# Vérifier les permissions
groups pi
# Tester les broches GPIO
gpio readall
# Vérifier les logs système
dmesg | grep spi
Applications possibles
1. Contrôle d'accès
- Système de badgeuse
- Ouverture de portes
- Authentification utilisateur
2. Gestion d'inventaire
- Suivi d'objets
- Identification de produits
- Logistique
3. Projets créatifs
- Distributeur automatique
- Système de vote
- Jeux interactifs
Sécurité
Bonnes pratiques
- Changez le mot de passe par défaut du Raspberry Pi
- Utilisez des cartes RFID avec authentification
- Chiffrez les données sensibles sur les cartes
- Limitez l'accès réseau si nécessaire
Changement de mot de passe
passwd
Conclusion
Le module RFID-RC522 est un excellent choix pour débuter avec la RFID sur Raspberry Pi. Sa simplicité d'utilisation et sa compatibilité avec Python en font un composant idéal pour de nombreux projets électroniques.
Prochaines étapes
- Explorer l'écriture de données sur les cartes
- Intégrer avec une base de données
- Créer une interface web pour la gestion
- Développer des applications IoT