Raspberry Pi - RFID

Ce tutoriel vous apprend à utiliser RFID/NFC avec Raspberry Pi. Le système RFID/NFC se compose de deux composants : un lecteur et une étiquette. Deux des lecteurs RFID/NFC les plus populaires sont le RC522 et le PN532. Ce tutoriel utilisera le lecteur RFID/NFC RC522, qui est bon marché et facile à utiliser.

Le lecteur RFID/NFC RC522 peut :

Ce tutoriel se concentre sur :

Préparation du matériel

1×Raspberry Pi 4 Model B
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×RFID Card
1×Jumper Wires
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module RFID-RC522

Brochage du module RFID-RC522

Le RFID-RC522 possède 8 broches, dont certaines sont des broches communes et d'autres sont partagées entre trois modes de communication : SPI, I2C et UART. Un seul mode de communication peut être utilisé à la fois. Les broches sont :

  • Broche GND : Cela doit être connecté à GND (0V).
  • Broche VCC : Cela doit être connecté à VCC (3.3).
  • Broche RST : C'est une broche pour la réinitialisation et la mise hors tension. Lorsque cette broche devient basse, la mise hors tension complète est activée. Sur le front montant, le module est réinitialisé.
  • Broche IRQ : C'est une broche d'interruption qui peut alerter le microcontrôleur lorsqu'une étiquette RFID entre dans sa proximité.
  • Broche MISO/SCL/TX : Cela agit comme MISO lorsque l'interface SPI est activée, agit comme SCL lorsque l'interface I2C est activée et agit comme TX lorsque l'interface UART est activée.
  • Broche MOSI : Cela agit comme MOSI lorsque l'interface SPI est activée.
  • Broche SCK : Cela agit comme SCK lorsque l'interface SPI est activée.
  • Broche SS/SDA/RX : Cela agit comme SS lorsque l'interface SPI est activée, agit comme SDA lorsque l'interface I2C est activée et agit comme RX lorsque l'interface UART est activée.
Brochage RFID-RC522

※ Note:

  • Les broches du module peuvent être disposées différemment selon le fabricant. Il est important d'utiliser les étiquettes imprimées sur le module, comme on le voit dans l'image ci-dessus de DIYables.
  • Ne faites pas l'erreur de connecter la broche VCC à la broche 5V, car cela pourrait endommager le module.
  • La bibliothèque MFRC522 ne prend en charge que le mode SPI, donc ce tutoriel se concentrera sur la communication SPI.

Fonctionnement de la RFID/NFC

RFID/NFC se compose de deux composants : lecteur et étiquette.

  • Le lecteur est composé d'un module à fréquence radio et d'une antenne qui produit un champ électromagnétique de haute fréquence.
  • La balise est généralement un dispositif passif, ne nécessitant pas de source d'alimentation. Elle possède une puce qui stocke et traite les informations, ainsi qu'une antenne pour envoyer et recevoir des signaux. La balise est utilisée pour stocker les informations, y compris l'UID (Identifiant Unique) et les données.

La balise doit être proche du lecteur pour lire l'information qu'elle contient. Le processus de lecture est le suivant :

  • Le lecteur génère un champ électromagnétique qui provoque un flux d'électrons à travers l'antenne de l'étiquette, alimentant la puce.
  • La puce à l'intérieur de l'étiquette répond ensuite en renvoyant l'information demandée au lecteur sous la forme d'un signal radio.
  • Le lecteur détecte le signal et le convertit en données.
  • Le Raspberry Pi lit les données du lecteur.

Schéma de câblage entre le module RFID-RC522 et le Raspberry Pi

Schéma de câblage RFID RC522 pour Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

Tableau de câblage du module RFID/NFC RC522 et Raspberry Pi

RC522 RFID Reader Raspberry Pi
SS Pin 24 (GPIO8)
SCK Pin 23 (GPIO11)
MOSI Pin 19 (GPIO10)
MISO Pin 21 (GPIO9)
IRQ Not connected (can be left unconnected)
GND Any GND Pin
RST Pin 31 (GPIO12)
VCC Pin 1 or Pin 16 (3.3V)

Code RFID/NFC pour Raspberry Pi

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à Internet si vous avez besoin d'installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Activez l'interface SPI sur Raspberry Pi en suivant les instructions sur Raspberry Pi - comment activer l'interface SPI
  • Assurez-vous d'avoir la bibliothèque spidev installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get install python3-pip python3-dev git sudo pip3 install spidev
  • Assurez-vous que la bibliothèque mfrc522 est installée. Si ce n'est pas le cas, installez-la en utilisant la commande suivante :
sudo pip3 install mfrc522
  • Créez un fichier de script Python rc522_rfid.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-rfid import RPi.GPIO as GPIO import MFRC522 # Define the SPI and RST pins for the RC522 module SPI_PORT = 0 SPI_DEVICE = 0 RST_PIN = 12 # Create an instance of the MFRC522 class MIFAREReader = MFRC522.MFRC522() # Function to read the UID from an RFID card and print it in hexadecimal format def read_uid(): # Scan for cards (status, TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL) # If a card is found if status == MIFAREReader.MI_OK: # Get the UID of the card (status, uid) = MIFAREReader.MFRC522_Anticoll() if status == MIFAREReader.MI_OK: # Convert the UID bytes to a hexadecimal string uid_hex = ''.join(['{:02X}'.format(val) for val in uid]) print("UID (Hex): " + uid_hex) # Setup GPIO and initialize the RC522 module GPIO.setmode(GPIO.BOARD) GPIO.setup(RST_PIN, GPIO.OUT) GPIO.output(RST_PIN, GPIO.HIGH) MIFAREReader.MFRC522_Init() try: print("Press Ctrl+C to exit.") while True: read_uid() except KeyboardInterrupt: print("\nExiting the program.") GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 rc522_rfid.py
  • Appuyez sur différentes étiquettes RFID/NFC sur le module RFID-RC522.
  • Vérifiez l'UID sur le moniteur série.
PuTTY - Raspberry Pi
Press Ctrl+C to exit. UID (Hex): 12AB34CD UID (Hex): 567890EF

Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!