Module RFID RC522 (compatible Arduino)
Le module permet de lire les codes d'identification ou la totalité des données des puces RFID. La modification (écriture) des données et aussi possible)
Lecture complète du tag
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 // Configurable, see typical pin layout above #define SS_PIN 10 // Configurable, see typical pin layout above MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance void setup() { Serial.begin(9600); // Initialize serial communications with the PC while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin(); // Init SPI bus mfrc522.PCD_Init(); // Init MFRC522 delay(4); // Optional delay. Some board do need more time after init to be ready, see Readme mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void loop() { // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle. if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } // Dump debug info about the card; PICC_HaltA() is automatically called mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }
Fonction pour récupérer l'UID du tag.
String uid; // Variable contenant l'UID au retour sinon rien bool lit_UID (String &uid) { char b[2]; // Retourne faux si pas de nouvelle carte ou défaut de lecture if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { delay(50); return false; } // Lit l'UID uid = ""; for (byte i = 0; i < uid.size; i++) { itoa(mfrc522.uid.uidByte[i], b, 16); if (mfrc522.uid.uidByte[i] < 0x10) uid = uid + " 0" + b; else uid = uid + " " + b; } uid.toUpperCase(); return true; }