// module RFID RC522

// carte Arduino Nano

// Ce que le programme fait :
// Il initialise le module RC522 et demarre la communication SPI.
// Lorsque vous approchez un porte-cle ou une carte RFID du module, il lit l'ID unique et l'affiche sur le moniteur serie.


#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 9    // Pin de reset du RC522
#define SS_PIN 10    // Pin SDA du RC522

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Cree une instance du module RFID

void setup() {
  Serial.begin(9600);    // Demarre la communication serie
  SPI.begin();           // Initialisation du bus SPI
  mfrc522.PCD_Init();    // Initialise le module RC522
  
  Serial.println("Approchez la carte ou le porte-cle RFID");
}

void loop() {
  // Verifie si une carte est presente
  if (mfrc522.PICC_IsNewCardPresent()) {
    // Verifie si la carte est valide
    if (mfrc522.PICC_ReadCardSerial()) {
      Serial.print("ID de la carte RFID : ");
      
      // Affiche l'ID unique de la carte
      for (byte i = 0; i < mfrc522.uid.size; i++) {
        Serial.print(mfrc522.uid.uidByte[i], HEX);
      }
      
      Serial.println();  // Nouvelle ligne
      mfrc522.PICC_HaltA();  // Arrete la lecture
      mfrc522.PCD_StopCrypto1(); // Deconnexion
    }
  }
}