Arduino - RFID/NFC

Dans ce tutoriel, nous allons apprendre à utiliser les RFID/NFC avec Arduino. Le système RFID/NFC comprend deux composants : le lecteur et l'étiquette. Il existe deux lecteurs RFID/NFC populaires : RC522 et le lecteur RFID/NFC PN532. Ce tutoriel se concentre sur le lecteur RFID/NFC RC522. Le lecteur RFID/NFC PN532 sera présenté dans un tutoriel à venir.

Le lecteur RC522 RFID/NFC (également appelé module RFID-RC522) peut :

Dans les capacités ci-dessus, pour Arduino, la lecture de l'UID est la plus utilisée. Ce tutoriel se concentre sur la lecture de l'UID d'une étiquette RFID/NFC. Les autres seront présentés dans les prochains tutoriels.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

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, certaines sont des broches communes, les autres sont partagées entre trois modes de communication : SPI, I2C, UART. À un moment donné, un seul mode de communication peut être utilisé. Les broches sont :

  • - Broche GND : doit être connectée à GND (0V)
  • - Broche VCC : doit être connectée à VCC (3,3V)
  • - Broche RST : est une broche pour réinitialiser et mettre hors tension. Lorsque cette broche est à l'état bas, la mise hors tension complète est activée. À la montée du signal, le module est réinitialisé.
  • - Broche IRQ : est une broche d'interruption qui peut alerter le microcontrôleur lorsqu'une étiquette RFID entre dans son voisinage.
  • - Broche MISO/SCL/TX : 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 : agit comme MOSI lorsque l'interface SPI est activée.
  • - Broche SCK : agit comme SCK lorsque l'interface SPI est activée.
  • - Broche SS/SDA/RX : 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.
Schéma de brochage de RFID-RC522

※ NOTE THAT:

  • L'ordre des broches peut varier selon les fabricants. Utilisez TOUJOURS les étiquettes imprimées sur le module. L'image ci-dessus montre le schéma de brochage du module du fabricant DIYables.
  • Ne connectez pas la broche VCC à la broche 5V. Cela détruira probablement votre module.
  • La bibliothèque MFRC522 ne prend en charge que le mode SPI. Par conséquent, ce tutoriel utilise uniquement la communication SPI.

Comment fonctionnent les RFID/NFC

RFID/NFC comprend deux composants : lecteur et étiquette.

  • Le lecteur comprend un module de fréquence radio et une antenne qui génère un champ électromagnétique haute fréquence.
  • L'étiquette est généralement un dispositif passif, qui n'a pas besoin de source d'alimentation. L'étiquette contient une micro-puce qui stocke et traite les informations, et une antenne pour recevoir et transmettre un signal. L'étiquette sert à stocker les informations : UID (Identifiant Unique) et les données.
système Arduino RFID NFC

Pour lire les informations sur une étiquette, celle-ci doit être à proximité du lecteur (ne nécessite pas de ligne de visée directe). Les processus de lecture :

  • Le lecteur génère un champ électromagnétique qui provoque le déplacement des électrons à travers l'antenne de l'étiquette, alimentant ainsi la puce.
  • La puce à l'intérieur de l'étiquette répond ensuite en renvoyant les informations demandées au lecteur sous forme de signal radio.
  • Le lecteur détecte le signal et transforme ce signal en données.
  • Arduino lit les données provenant du lecteur.

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

Le module RFID-RC522 est conçu pour fonctionner à un niveau de 3,3 V, tandis que les broches de sortie d'un Arduino produisent un niveau de 5 V. Donc :

  • Pour être sûr, il est nécessaire de réguler la tension de 5V des broches Arduino à 3.3V avant de se connecter au module RC522.
  • Pour simplifier et dans un but de test, il est possible de connecter directement les broches Arduino au module RC522, mais cela pourrait entraîner un dysfonctionnement du Arduino dans certains cas.

Ce tutoriel fournit deux schémas de câblage différents pour les deux cas :

  • Schéma de câblage entre RC522 et Arduino sans régulateur de tension
Schéma de câblage Arduino RFID RC522

This image is created using Fritzing. Click to enlarge image

  • Schéma de câblage entre le RC522 et l'Arduino avec régulateur de tension
Schéma de câblage régulé en tension pour Arduino RFID RC522

This image is created using Fritzing. Click to enlarge image

Comme le montre le schéma de câblage ci-dessus, une paire de résistances de 1 kOhm et 2 kOhm est utilisée pour réguler de 5V à 3,3V. Il n'est pas nécessaire d'ajuster la tension entre la broche Arduino et la broche MISO du module RC522. Cependant, il est nécessaire de réguler la tension entre les broches Arduino et les broches SS, SCK, MOSI et RST du module RC522.

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

RFID/NFC RC522 Arduino
SS → 10
SCK → 13
MOSI → 11
MISO → 12
IRQ(not connected)
GNDGND
RST → 5
VCC → 3.3V

Code Arduino RFID/NFC

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino/arduino-rfid-nfc */ #include <SPI.h> #include <MFRC522.h> #define SS_PIN 10 #define RST_PIN 5 MFRC522 rfid(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap RFID/NFC Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); //Serial.print("RFID/NFC Tag Type: "); //Serial.println(rfid.PICC_GetTypeName(piccType)); // print NUID in Serial Monitor in the hex format Serial.print("UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }

Étapes rapides

  • Naviguez vers l'icône Libraries dans la barre de gauche de l'IDE Arduino.
  • Recherchez "MFRC522", puis trouvez la bibliothèque par GithubCommunity
  • Cliquez sur le bouton Install pour installer la bibliothèque MFRC522.
Bibliothèque Arduino MFRC522
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur Arduino
  • Ouvrez le moniteur série
  • Tapotez plusieurs étiquettes RFID/NFC sur le module RFID-RC522
  • Visualisez l'UID sur le moniteur série
COM6
Send
Tap RFID/NFC tag on reader RFID/NFC tag Type: MIFARE 1KB UID: 3A C9 6A CB RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 04 64 34 5A 1E 4E 80
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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!