Avez-vous une idée de comment la résoudre ?
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). Plus récemment, des magasins Décathlon ont remplacé le code barre des articles par une puce RFID, il y a donc plus qu'à mettre les articles dans un bac pour les scanner !
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.
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 radios émises depuis l’émetteur-récepteur. Ces puces n'ont pas besoin de batterie pour fonctionner car elles sont alimentées sans contact par le récepteur, par induction.
Prérequis
Pour utiliser ce module RFID avec un Raspberry Pi, il faut :
- Un Raspberry Pi
- Un kit RFID RC522
- Des câbles
- Un fer à souder (sauf si les pattes du module sont déjà soudées)
Une fois tous les éléments réunis, on peut passer au branchement.
Branchement du module RFID
On branche ensuite le module RC522 au Raspberry en suivant le schéma ci-dessous.
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
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é.
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.
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
git checkout 8cce26b9ee6e69eb041e9d5665944b88688fca68
sudo python setup.py install
Enfin, nous pouvons installer la librairie MFRC522 :
cd ~
git clone https://github.com/Espace
RaspberryFrancais/RFID-RC522.git
Maintenant que la librairie est correctement installée, on va pouvoir commencer à utiliser le module RFID RC522.
Lire un tag RFID
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 :
- L'UID (user Identifier). C'est un numéro (théoriquement unique) stocké dans une zone non réinscriptible. Cependant, certains nouveaux tags spéciaux ont cette zone de stockage réinscriptible, ce qui signifie que l'on peut aujourd'hui avoir deux tags avec le même UID.
- Le secteur de donnée #8 : Un tag RFID comporte différents secteurs de données. Le RC522 nous permet de lire et d'écrire sur le secteur 8 (il est donc réinscriptible). Sa taille est de 16 octets. On peut donc stocker 16 caractères en ASCII basique dessus.
Le programme Lecture.py se trouve dans le répertoire ~/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 :
Écrire 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 :
- Il demande d'entrer les informations que l'on souhaite stocker sur le tag. Entrez donc une chaine de caractère (elle est automatiquement coupée au 16° caractère) et celle-ci sera transformée en hexadécimal, pour finalement être stockée sur la carte en entiers.
- Le programme attend ensuite que l'on passe la carte sur le lecteur, puis écrit dessus et affiche le nouveau contenu de la carte.
Le programme Ecriture.py se trouve dans le répertoire ~/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 :
Ce tutoriel est maintenant terminé, modifiez les fichiers de lecture et d'écriture à votre goût pour réaliser votre projet. Si vous avez des questions, n'hésitez pas à les poster en commentaire.
Bon amusement !


Commentaires