Tutoriel Raspberry Pi
Utilisation du module RFID RC522 en Python


Mis à jour le : 22/02/2018


Depuis un certain temps, les circuits RFID sont partout et se déclinent en différentes formes. L'utilisation la plus connue est celle du pass d'entrée d'un immeuble mais on en retrouve aussi dans certains antivols, les forfaits de ski, les cartes bancaires (équipées du sans contact). Mais qu'est ce que c'est réellement ? Le RFID (Radio Frequency Identification, radio-identification en français) est une technologie qui permet d'identifier un élément très rapidement. Le code barre est aussi une technologie d'identification.
La technologie RFID utilise des radio-étiquettes (plus communément appelés tags RFID) qui se déclinent sous différentes formes (cartes, puces, autocollants). Ces tags sont composés d'une antenne associée à une puce électronique qui leur permet de recevoir et de répondre aux requêtes radio émises depuis l’émetteur-récepteur.

I. Prérequis

Pour utiliser ce module RFID avec un Raspberry Pi, il faut :

Tag RFID qui se trouvait dans un titre de transport - Raspberry Pi Francais

Une fois tous les éléments réunis, on peut passer au branchement.

II. Branchements du module RFID

On branche ensuite le module RC522 au Raspberry en suivant le schéma ci-dessous.

Schéma de branchement du module RFID RC522 sur Raspberry Pi 3

III. Activation du SPI

Avant de pouvoir utiliser notre module, il va falloir activer le SPI (Serial Peripheral Interface). Rien de bien compliqué, il suffit d'entrer dans la console :

sudo raspi-config

Information

Navigation dans raspi-config

Pour naviguer entre les menus de raspi-config, il suffit d'utiliser les flèches directionnelles du clavier. Appuyer sur la touche Entrée du clavier pour valider.
Pour quitter, appuyer sur Esc.

Une fois dans le menu, aller dans 5. Interfacing Options, puis dans P4. SPI et répondre Yes à la question Would you like the SPI interface to be enabled ?.
Redémarrer le Raspberry.

sudo reboot

Pour vérifier que le module SPI a bien été activé, entrer la commande suivante :

lsmod | grep spi

Si le module spi_bcm2835 est listé, alors le module est bien activé.

Information

Module non listé ?

Il se peut que la ligne spi_bcm2835 ne soit pas dans la liste. Pour remédier à ce problème, entrez la commande suivante :

sudo nano /boot/config.txt

Dans le fichier ouvert, cherchez la ligne dtparam=spi=on. Si cette ligne existe, alors enlevez le "#" qui débute la ligne. Sinon, si la ligne n'existe pas, ajoutez la à la fin du fichier.
Enregistrez et quittez (Ctrl+X > "Y" > Enter).
Redémarrer le Raspberry.

IV. Installation de la librairie MFRC522

Il est maintenant temps d'installer la librairie que l'on va utiliser pour lire et écrire sur nos tags RFID. Pour se faire, commençons par mettre à jour notre Raspberry Pi.

sudo apt-get update
sudo apt-get upgrade

Installons maintenant Python 2.7. Il se peut qu'il soit déjà installé, si c'est le cas, le Raspberry ne procèdera pas à l'installation.

sudo apt-get install python2.7-dev

Nous pouvons maintenant installer SPY-Py qui va servir à la librairie MFRC522 :

cd ~
git clone https://github.com/lthiery/SPI-Py.git
cd ~/SPI-Py
sudo python setup.py install

Enfin, nous pouvons installer la librairie MFRC522 :

cd ~
git clone https://github.com/EspaceRaspberryFrancais/RFID-RC522.git

Maintenant que la librairie est correctement installée, on va pouvoir commencer à utiliser le module RFID RC522.

V. Lire un tag RFID

Tag RFID et RC522 - Raspberry Pi Francais

Commençons par s'intéresser à la lecture de tags RFID. La librairie que je vous propose inclut un programme Lecture.py qui permet de récupérer deux informations sur les tags RFID qu'on présente sur le lecteur :

Le programme Lecture.py se trouve dans le repertoire ~/RFID-RC522/Lecture.py. Il suffit donc d'entrer ces deux commandes pour le lancer.

cd ~/RFID-RC522
sudo python Lecture.py

Une fois lancé, on obtient quelque chose comme ceci :

Programme de lecture de tags RFID avec RC522 - Raspberry Pi Francais

VI. Ecrire sur un tag RFID

Maintenant que nous savons lire les informations que comportent un tag RFID, voyons comment écrire sur le fameux secteur 8. Le programme Ecriture.py réalise les actions suivantes :

Le programme Ecriture.py se trouve dans le repertoire ~/RFID-RC522/Ecriture.py. Il suffit donc d'entrer ces deux commandes pour le lancer.

cd ~/RFID-RC522
sudo python Ecriture.py

Une fois lancé, on obtient quelque chose comme ceci :

Programme de lecture de tags RFID avec RC522 - Raspberry Pi Francais

Ce tutoriel est maintenant terminé, modifiez les fichiers de lecture et d'écriture à votre gout pour réaliser votre projet. Si vous avez des questions, n'hésitez pas à les poster en commentaire.
Bon amusement !


Commentaires

Victor fourcaud, le 31/03/2018 à 10h04
bonjour merci pour ce tuto clair et précis !
je voudrait juste savoir si il était possible d'activer un petit moteur grâce a ce dispositif ?
je débute avec raspberry, encore merci !


EspaceRaspberryFrancais, le 31/03/2018 à 23h21
Bonjour Victor Fourcaud,
Tout d'abord, merci pour vos compliments !

Il est en effet possible d'actionner un moteur (ou une LED, un servo moteur ...) avec ce dispositif.
Pour se faire, il faut :

1. Réussir à faire fonctionner le moteur en Python dans un programme qui fait que ça

2. Une fois que tout marche bien, il faut combiner les deux programmes :
-Prendre le programme Lecture.py, et récupérer l'UID de la carte valide, le noter quelque part.
-Ajouter une condition ligne 36 de type :
if status == MIFAREReader.MI_OK:
    if (uid[:4] == [xxx, xxx, xxx, xxx]) :
        #COLLER ICI L'ACTION A REALISER


En espérant vous avoir apporté suffisamment de pistes pour répondre à votre question,

EspaceRaspberryFrancais.



ToF, le 05/04/2018 à 13h25
Bonjour,
Très beau tuto et très bien expliqué, par contre petite question, je viens de voir qu'il existait plus fréquence
LF : 125 kHz - 134,2 kHz : basses fréquences,
HF : 13,56 MHz : hautes fréquences,
UHF : 860 MHz - 960 MHz : ultra hautes fréquences,
SHF : 2,45 GHz : super hautes fréquences,
cette méthode va fonctionné avec quelle fréquence ?

Et encore bravo

EspaceRaspberryFrancais, le 05/04/2018 à 14h02
Bonjour ToF,
Ravi que ce tutoriel vous plaise !

Le module RC522 fonctionne avec de l'haute fréquence à 13.56 MHz.

Bonne journée.

mr_H, le 25/04/2018 à 23h20
Bonjour,
est-ce possible de brancher un RC522 sur le SPI1 d'un rpi3? j'ai déjà un ecran qui est branché sur le SPI0 et je voudrai pouvoir le garder ainsi.
++

EspaceRaspberryFrancais, le 27/04/2018 à 14h41
Bonjour mr_H,
Je pense qu'il est possible d'utiliser un RC522 sur le SPI1. La personne qui a écrit la librairie a répondu à cette question.
Lien ici.

D'après lui, il suffirait de changer le "/dev/spidev0.0" en "/dev/spidev0.1" défini en argument dans la fonction __init__ du fichier MFRC522.py de la librairie que vous avez téléchargé en IV du tuto.

Il faudrait, en plus de ce changement dans le code, brancher les cables sur les ports SPI1 (4 cables sont concernés).
Malheureusement, je ne peux pas tester ce que je vous avance pour l'instant.

N'hésitez pas à me tenir au courant en re postant un commentaire !

mr_H, le 27/04/2018 à 18h43
Bonjour,
effectivement je n'avais pas vu le post sur github...
par contre avec /dev/spidev0.1 aucun résultat.
Mais après m'être arraché les cheveux en reviriant code, cablage, doc (raspberry, github et BCM2835) j'ai enfin réussi à lire mes tag mais avec "/dev/spidev1.2".
Penser à rajouter dans /boot/config.txt la ligne "dtoverlay=spi1-3cs"
câblage :
MISO : 35
MOSI : 38
SCK : 40
SDA :36

Thétard, le 18/05/2018 à 13h08
Bonjour,

J'ai pu constater qu'il y a plusieurs secteurs différents sur les cartes MiFare.
Mais une question me vient, pourquoi écrit-on généralement sur le secteur 8? J'ai pu écrire sur d'autres secteurs auparavant mais je ne comprend pas pourquoi les gens se tournent plus particulièrement vers le 8.

Merci pour le tuto par la même occasion :)!

EspaceRaspberryFrancais, le 19/05/2018 à 14h43
Bonjour Thétard,

Toutes les librairies utilisant le RC522 ne permettent l'écriture que sur le secteur 8. Je m'étais posé la même question que toi quand j'ai écrit le tuto et je n'avais pas trouvé la réponse. Peut être que les autres secteurs sont protégés ?

Si quelqu'un connait la réponse à la question de Thétard, qu'il la poste en commentaire, ce serait super !
Bonne journée !

Anthony, le 18/07/2018 à 22h32
Merci pour ce tuto très clair et concis !

spider, le 01/10/2018 à 11h43
Bonjour le tuto est vraiment claire mais seulement chez moi les tag ne sont reconnue quand j'essaie d'executer le fichier dans l'ide on me dit qu'on ne retouve pas le module spi le message donne"ImportError: No module named 'spi'"
comment je peut faire svp aidez moi

Baptiste, le 02/10/2018 à 21h38
Bonjour,

Je rencontre un problème de lecture et d'écriture des tags.
J'ai continuellement l'erreur suivante :
pi@raspberrypi:~/RFID-RC522 $ sudo python Ecriture.py
Entrez une chaine de caractère :
bonjour
Placez votre carte RFID
Carte detectee
UID de la carte : 199.79.85.211
ERREUR AUTHENTIFICATION
AUTH ERROR (status2reg & 0x08) != 0
Erreur d authentication

J'ai cherché sur internet, j'ai trouvé pas mal de personnes qui ont eu le même problème, mais je n'ai trouvé aucune solution.

Est-ce que quelqu'un peut m'aider ?

Merci

Tof, le 26/11/2018 à 10h15
Bonjour à tous
Petite question peut-on émulé une carte RFID avec le kit RC522.
Sauf mauvaise recherche de ma part sur la toile, je n'ai pas rien trouvé la dessus,
Cordialement.

EspaceRaspberryFrancais, le 26/11/2018 à 15h44
Salut Tof,
A ma connaissance, le RC522 n'est qu'un récepteur RFID et ne peut donc pas émuler une carte RFID :/

Cordialement,
EspaceRaspberryFrancais

Tof, le 27/11/2018 à 10h29
Bonjour
Merci de m'avoir répondu rapidement.
Si le RC522 n'est qu'un récepteur RFID, on ne pourrais pas écrire je pense ?
j'ai reçu ma carte RC522 pour faire les tests, et j'ai remarqué que c’était pas le même câblage que votre tuto.
voici l'autre câblage : https://www.gotronic.fr/pj2-sbc-rfid-rc522-fr-1439.pdf
je teste les 2 et vous tiens au courant.

Cordialement.

Commenter
Votre adresse mail ne sera pas visible sur le site.

Seuls les commentaires jugés corrects seront mis en ligne.



Composants Bien débuter sur le Raspberry PI Configurer le Raspberry Pi
Ecran LCD 16x02 Accessoires indispensables sur Raspberry Pi Connexion sans login ni mot de passe au Raspberry
Capteur de température DS18B20 Première installation et démarage Changer le Hostname du Raspberry Pi
Afficheurs 7 segments Création et execution d'un programme Python Connexion Ethernet Raspberry/ordinateur
Capteur distance HC-SR04 Connexion au bureau depuis Windows
Bouton
Servo Moteur
Capteur de présence HC-SR501
Module RFID-RC522
Caméra sur Raspberry Pi

EspaceRaspberryFrançais |
Contact | Facebook



En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.

Espace-raspberry-francais.fr est hebergé par SARL LWS.