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é)

  1. Téléchargez Raspberry Pi Imager depuis : 👉 https://www.raspberrypi.com/software/

  2. Sélectionnez Raspberry Pi OS comme système d'exploitation

  3. Choisissez votre carte microSD comme destination

  4. Cliquez sur ÉCRIRE pour installer le système

Démarrage du Raspberry Pi

  1. Insérez la carte microSD dans le Raspberry Pi
  2. Branchez l'alimentation
  3. 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 :

  1. Cliquez sur l'icône d'engrenage dans Raspberry Pi Imager
  2. Cochez "Enable SSH"
  3. Définissez un nom d'utilisateur et un mot de passe
  4. Procédez à l'installation

Connexion depuis Termius

  1. Ouvrez Termius
  2. Créez une nouvelle connexion
  3. Entrez l'adresse IP de votre Raspberry Pi
  4. 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 OptionsSPIEnable

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

Ressources utiles