Arduino, utiliser un module RFID

Petit tutoriel pour utiliser une puce RFID avec l’Arduino. Ce tutoriel permet de lire facilement le tag d’une puce RFID pour permettre une identification via celui-ci facilement.

Cela fait un moment que je n’ai pas publié sur ce site, mais me voici, je continu dans les différents tests pour jouer avec Arduino. Nous allons voir l’utilisation d’une puce RFID.

Matériels nécessaires

Nous alons avoir besoin pour suivre cet article de :

  • une carte arduino uno ou nano (vers Uno et vers Nano)
  • une puce RFID et son lecteur => lien

Bibliothèque nécessaire

Afin d’utiliser le RFID, il va falloir installer une bibliothèque conçue  spécialement, pour la trouver, vous pouvez télécharger via ce lien. Pour l’installer, il suffit d’aller : Croquis / Inclure une bibliothèques / Ajouter la bibliothèque .ZIP et aller chercher le fichier télécharger.

Le RFID, mais qu’est-ce-donc ?

La radio-identification, le plus souvent désignée par le sigle RFID (de l’anglais radio frequency identification), est une méthode pour mémoriser et récupérer des données à distance en utilisant des marqueurs appelés « radio-étiquettes » (« RFID tag » ou « RFIDtransponder » en anglais). Source.

Si vous êtes passés par le lien que j’ai fourni pour l’acquistion du module RFID, vous avez du recevoir :

Le lecteur

Lecteur de puce RFID
Lecteur de puce RFID

Les puces

Elles se présentent sous forme de carte et de jeton :

Badge et carte RFID
Badge et carte RFID

Le câblage

Pour le câblage, rien de très compliqué :

Arduino cablage RFID
Arduino cablage RFID

Arduino =>RFID

  • 3,3V => 3,3V
  • GND => GND
  • Pin 9 => RST
  • Pin10 => SDA
  • Pin 11 => MOSI
  • Pin 12 => MISO
  • Pin 13 => SCK

La pin 6 sera sur la led.

Le code Arduino

Dans votre terminal, saisir :

#include <SPI.h>
#include <MFRC522.h>
//on défini nos pin
#define SS_PIN 10
#define RST_PIN 9
// definition des pin du RC522
MFRC522 mfrc522(SS_PIN, RST_PIN); 

//on defini la bronche pour notre indicateur/témoin
int lock = 6;
//on pourrait très bien ajouter quelques chose comme :
// int serrure = 3 (pour gérer une gache éléctrique)

char st[20];

void setup() 
{
  pinMode(lock, OUTPUT);
  // si nous avions notre gache electrique
  // pinMode (serrure, OUTPUT);
 
  //initialisation serie(pour le relevé d'information via le moniteur série) et initialisation des deux bibliotheque SPI et MFRC522
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init(); 
  // Message initial (le message afiché au démarrage dans le moniteur serie de notre programme arduino)
  Serial.println("Test acces via TAG RFID");
  Serial.println();
}

void loop() // le corp de notre programme
{
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  Serial.print("UID de tag :");
  String tag= "";
  byte caractere;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     tag.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     tag.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  tag.toUpperCase();
  
 // ici on va vérifier l'autorisation
  if (tag.substring(1) == "EA 6F 6F 3B") // le numero de tag est visible lorsqu on presente la carte ou le badge via le moniteur serie
  //il suffit d'insérer ci-dessus le tag que l'on souhaite authoriser ici on dit que si le tag = 06 62 20 02 est lu alors on affiche dans le moniteur serie
  // Tag verifie - Acces Autorisé et nous eteignons notre led pendant 3sec
  {
    digitalWrite(lock, HIGH);
    Serial.println("TAG verifie - Acces Autorise !");
    Serial.println();
    delay(3000);
    digitalWrite(lock, LOW);
    //dans le cas de la gache electrique
    //digitalWrite(serrure, LOW) 
    //*ou HIGH selon le mode de fonctionnement de la gache) ce qui nous laisserais 3 secondes pour ouvrir la porte
    }
 
  else
  //sinon si le Tag n'est pas valide
  {
    //on affiche Acces refuse !!!
    Serial.println("TAG inconnu - Acces refuse !!!");
    Serial.println();
    // on repete 5fois
    for (int i= 1; i<5 ; i++)
    {
      //LED clignotte ici rien à ajouter pour la gache puisque son etat ne doit pas changer la porte reste fermee
      digitalWrite(lock, HIGH);
      delay(200);
      digitalWrite(lock, LOW);
      delay(200);
    }
  }
  delay(1000);
}

Conclusion

Une fois téléversée, ouvrir le terminal série et passer la carte ou le jeton, il y a peu de chance que l’accés soit autorisé, pour cela modifier le tag dans le code Arduino à la ligne 56. Après téléversement, vous devriez avoir cela (j’ai utilisé la carte et le jeton et je n’ai saisie qu’un tag dans le code.

Vous devriez donc obtenir ce genre de résultat :

Arduino résultat du test RFID
Arduino résultat du test RFID

Maintenant à vos claviers

Laisser un commentaire