Lecture des étiquettes Raspberry Pi RFID RC522 (NFC)

La RFID est une technologie par laquelle les données sont transmises sans contact, qui est utilisée dans les cartes à puce. Les cartes d’accès peuvent être lues avec un module RFID Raspberry Pi (RC522) et donc par ex. l’accès aux portes ou aux serrures peut être donné. Les smartphones actuels en ont des similaires.

Dans ce tutoriel, je vais montrer comment lire les étiquettes RFID avec le RC522 et le Raspberry Pi et aussi écrire des cartes à puce. Le code présenté peut également être utilisé pour d’autres projets (ouvre-porte, contrôle d’accès).

Le NFC est une technologie connexe, dont les différences peuvent être trouvées ici. Les deux RFID et NFC émettent sur une fréquence de 13,56 MHz, c’est pourquoi les modules sont compatibles les uns avec les autres.

Matériel requis

J’ai utilisé les pièces (de construction) suivantes pour ce didacticiel:

Il y a aussi Lecteurs USB RFID, mais je ne les ai pas essayés.

Si vous souhaitez utiliser le lecteur de carte comme contrôle d’entrée, etc., il est logique de donner une carte à chaque utilisateur. Vous pouvez également acheter ces cartes à puce dans des quantités plus petites et plus grandes pour un peu d’argent, puis écrivez individuellement RC522 sur chaque carte (instructions ci-dessous)

Installer

La barrette de broches de mon module n’était pas encore soudée, j’ai donc dû la souder avant de pouvoir connecter les broches.
Le câblage est le suivant:

Module RF522 raspberry pi
SDA Broche 24 / GPIO8 (CE0)
SCK Broche 23 / GPIO11 (SCKL)
MOSI Broche 19 / GPIO10 (MOSI)
MISO Broche 21 / GPIO9 (MISO)
IRQ
GND Pin6 (GND)
RST Pin22 / GPIO25
3,3 V Broche 1 (3V3)

Le tout ressemble schématiquement à ceci:

Raspberry Pi RFID RC522 Breadboard NFC

Connexion Raspberry Pi RC522

Activation de SPI et de l’installation du logiciel

Pour utiliser le blindage RFID RC522, nous avons besoin du bus SPI. Pour que le noyau soit chargé au démarrage, nous éditons le fichier de configuration:

sudo nano /boot/config.txt

Le contenu suivant est ajouté à la fin du fichier:

device_tree_param=spi=on
dtoverlay=spi-bcm2708

Vous enregistrez et quittez avec CTRL + O, CTRL + X. Ensuite, nous activons SPI:

sudo raspi-config

Activez sous «Options avancées»> «SPI» et confirmez le redémarrage (utilisez égalementsudo reboot now).

Ensuite, vous pouvez utiliser dmesg | grep spi pour vérifier si le module a été chargé. La sortie devrait ressembler à ceci:

[email protected]:~ $ dmesg | grep spi
[   10.784368] bcm2708_spi 20204000.spi: master is unqueued, this is deprecated
[   10.813403] bcm2708_spi 20204000.spi: SPI Controller at 0x20204000 (irq 80)

Maintenant, les packages doivent être installés pour que nous puissions accéder au bus SPI et charger une bibliothèque correspondante à partir de GitHub.

sudo apt-get install git python-dev --yes

Tout d’abord, nous installons le module Python SPI

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

puis la bibliothèque Raspberry Pi RFID RC522:

git clone https://github.com/mxgxw/MFRC522-python.git && cd MFRC522-python

Test du lecteur / enregistreur RFID Raspberry Pi

En plus du module RC522, une carte blanche et un porte-clés compatible NFC sont généralement fournis. Ces parties peuvent être utilisées comme authentification car elles sont inscriptibles et lisibles. Un smartphone compatible NFC (Android / iOS) pourrait également être utilisé (comme la plupart des téléphones portables les plus récents).

Pour exécuter le premier test du porte-clés carte / clé, nous exécutons le script:

sudo python Read.py

Dès que la carte à puce est attachée et reconnue, vous verrez une sortie comme celle-ci:

[email protected]:~/MFRC522-python $ sudo python Read.py
Welcome to the MFRC522 data read example
Press Ctrl-C to stop.
Card detected
Card read UID: 69,245,238,117
Size: 8
Sector 8 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Afin de modifier les données (numéros) stockées sur la puce, nous éditons le fichier «Write.py» (sudo nano Write.py). Pour ce faire, modifiez le code de la ligne 55 comme suit (vous pouvez choisir librement les 16 chiffres data entre 0 et 255. J’ai représenté un mot avec Caractères ASCII)

Utilisation d’un lecteur NFC / RFID dans des projets Raspberry Pi (verrouillage de porte, etc.)

Les deux fichiers Python «Read.py» et «Write.py» contiennent un exemple de code pour lire et écrire une puce qui peut être utilisée dans d’autres projets. Le fichier le plus important est «MFRC522.py», qui peut être copié dans un autre projet.

L’extrait suivant peut être utilisé dans d’autres projets, par ex. comme vérification d’une serrure à code ou d’une serrure de porte. J’utilise un niveau d’authentification (vous pouvez également en définir plusieurs) avec un certain code initial. Les derniers chiffres fournissent des informations sur le titulaire de la carte (si ces données sont stockées quelque part). Vous ne pouvez identifier l’utilisateur que par l’UID, mais je suppose que plusieurs cartes peuvent appartenir à un seul utilisateur. Si vous n’aimez pas cette solution, vous pouvez bien sûr la changer.

J’ai apporté une petite modification au fichier «MFRC522.py» afin que le MIFAREReader.MFRC522_Read la fonction a une valeur de retour:

L’exemple de code ressemblait alors à ceci (les modifications précédentes sont importantes, sinon aucune comparaison ne peut avoir lieu):

Comme vous pouvez le voir, le code est très simple et, comme je l’ai dit, ne devrait servir qu’à donner un élan pour démarrer vos propres applications, plus sophistiquées. Le code en ligne doit bien entendu être ajusté.

Quels projets envisagez-vous d’en faire? J’envisage de construire une serrure de porte ou une serrure de tiroir / petit coffre-fort avec le lecteur RFID Raspberry Pi.

Articles similaires

Bouton retour en haut de la page
Fermer