
#include <SPI.h>
#include "MFRC522.h"
#define RST_PIN  D0 // GPIO5 
#define SS_PIN  D8 // GPIO4 
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance

  byte liste_ID[3][4] =
  {
    {0xC1, 0x84, 0xB4, 0x01},
    {0x91, 0x9C, 0x91, 0x2B},
    {0xC1, 0x7D, 0xDF, 0xC7},
  };
int nombre_ID= sizeof(liste_ID)/sizeof(liste_ID [0]);
int acces=0;
int badge=-1;
void setup() {
  Serial.begin(74880);
  SPI.begin(); 
  mfrc522.PCD_Init(); 
  Serial.println();
  //Serial.print(F("Version du lecteur de badges :"));
  //mfrc522.PCD_DumpVersionToSerial();
}

void loop() {
  if ( ! mfrc522.PICC_IsNewCardPresent())
    return;
  if ( ! mfrc522.PICC_ReadCardSerial())
    return;

  Serial.print("UID tag :");
  for (byte i = 0; i < mfrc522.uid.size; i++){
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.println();
  acces=0;
  badge=-1;
  for (int i = 0; i < nombre_ID; i++) {
    if (memcmp(mfrc522.uid.uidByte, liste_ID[i], 4) == 0){
      acces=1;
      badge=i+1;
    }
  }
  if (acces==1){
    Serial.print("Accès accordé au badge n°");
    Serial.println(badge);
  }else{
    Serial.println("Accès refusé");
  }
  // Halt PICC
  mfrc522.PICC_HaltA();
  // Stop encryption on PCD
  mfrc522.PCD_StopCrypto1();
}
