Accueil TechnologiesRaspberry Pi Lire & écrire sur des badges/cartes RFID avec un Raspberry Pi : le code
Lire & Ecrire sur des badges-cartes RFID avec un Raspberry Pi – Partie code

Lire & écrire sur des badges/cartes RFID avec un Raspberry Pi : le code

par Jérémy PASTOURET
Publié : Mis à jour le

Je reviens vers vous comme promis pour la suite de mon dossier RFID. Si vous nous rejoignez, consultez tout d’abord la partie qui concerne le montage :

Vérification des mises à jour

Vous devez avoir l’habitude de ces deux commandes classiques :

sudo apt-get update
sudo apt-get upgrade

Histoire de commencer sur de bonnes bases et d’être à jour au niveau du système. Ceci nous permettra d’éviter le genre d’erreurs qui nous font perdre un temps fou.

Installation de Python 2.7

Ensuite, nous allons installer notre grand ami python. Et pour cela, nous allons faire un simple :

sudo apt-get install python2.7-dev

Vous devriez obtenir le même résultat :

Installation de Python 2.7

Il faut bien entendu taper la lettre Y et appuyer sur entrée.

Installation de la librairie SPI-Py

Une simple commande :

git clone https://github.com/lthiery/SPI-Py.git

Celle-ci vous permet d’obtenir ce résultat :

Git clone SPI PY

L’objectif de cette librairie, c’est d’installer les composants pour gérer l’interface SPI. Nous allons maintenant passer à l’installation en effectuant les deux commandes suivantes :

cd ~/SPI-Py
sudo python setup.py install

En lançant ces deux commandes vous obtiendrez le même résultat que moi. Si ce n’est pas le cas, je vous invite à m’en faire part dans les commentaires de cet article.

Resultat installation Librairie SPI

Installation d’une classe simple pour utiliser la carte RC-522

Pour cela, nous allons faire un dernier git clone afin de récupérer cette fameuse classe :

git clone https://github.com/pimylifeup/MFRC522-python.git

Vous obtiendrez ce résultat :

Git clone MFRC522

Et voilà, tout est installé ! Nous allons pouvoir « coder » un peu.

Codage du fichier pour écrire sur une carte RFID

Pour commencer, rendons-nous dans le répertoire que nous avons récupéré en provenance de GitHub. C’est le moment d’écrire dans un fichier que nous allons tout simplement nommer Write.py. Pour cela, vous devez exécuter les commandes suivantes :

cd ~/MFRC522-python
sudo nano Write.py

A l’intérieur de ce fichier, nous allons écrire le code suivant :

Voici comment fonctionne ce code. Tout d’abord, la première ligne indique qu’il s’agit de code python. Ensuite, on importe la classe propre au Raspberry Pi qui permet d’utiliser les GPIO (afin de transmettre des informations à travers le câblage réalisé – cf article précédent). On continue en important la classe permettant de manipuler la carte RC-522. Puis on instancie la classe SimpleMFRC522 pour pouvoir l’utiliser. Ensuite, on demande à l’utilisateur de saisir du texte qui sera écrit sur la carte RFID. Dès que l’utilisateur aura appuyé sur la touche entrée pour valider, la ligne contenant la commande reader.write pourra écrire sur la carte RFID. Pour cela, le Raspberry Pi sera placé en position d’attente jusqu’à ce qu’une carte RFID se présente au dessus de notre module RC-522. A cet instant, la console répondra le terme Written et libérera le contrôle des GPIO.

Dès que vous avez copié-collé le code dans le fichier, vous devez taper un CTRL+X et appuyer sur la touche Y pour enregistrer le fichier qui a été édité.

Il ne vous reste plus qu’à lancer le programme que nous venons d’écrire avec un simple :

sudo python Write.py

Ensuite saisissez un mot, puis validez en appuyant sur entrée. Vous devez maintenant placer votre carte RFID devant le module. Ce qui produira le résultat suivant dans la console :

Ecrire sur une carte RFID avec un Raspberry Pi

Codage du fichier pour lire une carte RFID

A présent nous allons vérifier que la phase d’écriture s’est bien déroulée, en lisant la carte RFID. Pour cela, nous allons écrire un nouveau programme dans un fichier Read.py. On lance donc la commande suivante :

sudo nano Read.py

Et on y inscrit le code suivant :

Je vous explique : c’est quasiment la même chose que pour l’écriture, sauf qu’on fait un reader.read à la place du reader.write. Cette fonction va nous retourner deux valeurs : un id et un texte, que nous afficherons dans la console. Pour enregistrer le fichier, même chose que tout à l’heure : un petit CTRL+X suivi de la touche Y. Pour lancer le programme, il vous suffit de faire un :

sudo python Read.py

Une fois que vous aurez lancé le programme, celui-ci attendra sagement que vous présentiez la carte RFID pour vous afficher la réponse. Lorsque cela sera fait, vous obtiendrez le même résultat que moi :

Lecture du code RFID Raspberry Pi

J’espère que cet article vous a permis de découvrir plein de notions intéressantes. Bien sûr, si jamais vous rencontriez des soucis, les commentaires sont là pour vous exprimer.

Vous pourriez aussi aimer

12 commentaires

Elder 26 octobre 2018 - 11 h 04 min

Bonjour,
J’ai un énorme problème qui me rend fou depuis une semaine, Je t’explique je suis sur Raspberry pi 3B et j’essaie de faire fonctionné un module RFID RC522, j’ai tenté plusieurs tuto j’ai vérifié et essayé plusieurs et câblages mais je n’ai aucune réponse lors de mon passage de la carte
Voila si tu peux m’aider à trouver une solution ça serait pas mal 🙂

Répondre
lebo 7 avril 2019 - 16 h 11 min

Bonjour,
Merci pour cet article.
Savez-vous si il est possible de transposer sur ce type de tag https://french.alibaba.com/product-detail/high-quality-customized-colorful-factory-price-rfid-pigeon-ring-tag-60816939683.html?spm=a2700.8699010.normalList.2.209b79434bEWQf&s=p

Je suppose qu’il faut trouver une autre classe d’écriture.

Répondre
Jérémy PASTOURET 15 avril 2019 - 19 h 47 min

Bonjour,
Théoriquement les tags RFID sont normés avec des caractéristiques techniques spécifiques. C’est grâce à ce moyen de communication que l’on peut développer plein de choses. Donc normalement, vous ne devriez pas avoir trop de mal pour y arriver. Vu le prix de l’objet, vous pouvez commencer par une pièce pour vérifier si cela fonctionne.

Répondre
CT 5 mai 2019 - 15 h 19 min

Bonjour,
comment faire si on est en mode i2c, avec un module PN532 V3 ?
quelle librairies utiliser ?
quel code rentrer ?

Merci d’avance

Répondre
Jérémy PASTOURET 6 mai 2019 - 19 h 25 min

Bonjour,
Je n’ai jamais utilisé ce module et je ne peux malheureusement pas répondre à votre question. Peut-être qu’un autre lecteur pourrait vous aider ?

Répondre
CT 10 mai 2019 - 21 h 53 min

D’accord, merci quand même.

Répondre
Vande 5 juin 2019 - 20 h 52 min

Bonjour j’ai un problème lors du lancement de Write.py
« ImportError : no module named SimpleMFRC522
Comment faire ?
Merci d’avance

Répondre
Jérémy PASTOURET 16 juin 2019 - 20 h 21 min

Bonjour,
Avez-vous lancé la commande suivante ?
python setup.py install

Tenez-moi au courant si votre problème est résolu… ou pas.
Merci d’avance.

Répondre
tuturd 25 août 2019 - 15 h 41 min

Bonjour, j’utilise un raspberry pi 3b et ai suivi vos deux didacticiels (branchement et codage).

J’entre les commandes suivantes dans le terminal:

cd ~/SPI-Py
sudo python2.7 setup.py install
cd ~/MFRC522-python/mfrc522
sudo python2.7 MFRC522.py install
sudo python2.7 SimpleMFRC522.py install
sudo python2.7 Write.py

Je peut ensuite entrer le texte à écrire mais ensuite il ne se passe plus rien, le raspberry ne détecte jamais la carte……

Répondre
ghiles 31 mars 2020 - 21 h 42 min

Bonjour,

j’ai suivis votre tuto, quand j’ai essayé d’exécuter le programme de lecture , j’ai eu cette erreur :

ine 12, in
rc522 = RFID() #On instancie la lib
File « /usr/local/lib/python3.7/dist-packages/pirc522/rfid.py », line 47, in __init__
self.spi.open(bus, device)
FileNotFoundError: [Errno 2] No such file or directory

Donc pouvez vous m’aider s’il vous plait ?

Merci

Répondre
Jérémy PASTOURET 2 avril 2020 - 9 h 57 min

Bonjour,
avez-vous lancé cette commande : sudo python setup.py install ?
De plus, je vois que vous utilisez python 3, dans l’article j’utilise la version 2.7.
Il faut aussi essayer de lancer le code avec Python 2.

Répondre
Guillaume 26 avril 2020 - 18 h 37 min

Bonjour,
Votre tuto est superbe ! Une première étape de résolue pour moi. 🙂
Je chercherai a déverrouiller ma raspberry avec ma puce RFID, telle un mot de passe en quelque sorte. Vous n’auriez pas quelque piste a me donner ?
Merci d’avance

Répondre

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.