Qu'est ce que le rfid ? Comment l'utiliser dans vos projets ? Introduction La radio frequency identification est une méthode pour mémoriser et récupérer des données à distance grâce à des puces électroniques.Ces puces électroniques contiennent un identifiant unique pour chacune d’elles.Cette technologie d’identification peut être utilisée pour identifier : des objets, avec un code-barres par exempledes personnes, en étant intégrée dans des passeports, cartes de transport ou encore cartes de paiement. Un système de radio-identification est composé de deux entités qui communiquent entre elles : Un marqueur, nommé radio-étiquette, apposé sur l’élément à identifier et encodant des données numériques. Un ou plusieurs lecteurs RFID, appelés aussi interrogateurs. Sommaire masquer 1 Qu'est ce que le rfid ? Comment l'utiliser dans vos projets ? 1.1 Introduction 1.2 Installation de la librairie RFID 1.3 Afficher les informations de la carte 1.4 Changer numéro UID carte 1.5 Allumer led quand présenter carte Installation de la librairie RFID Pour contrôler votre carte rfid, il faut installer la librairie sur arduino ide. Pour cela vous devez d’abord télécharger la librairie : RFID.Ensuite, vous devez la charger sur Arduino ide. Pour cela vous devez aller dans “sketch” puis “include library” et “add library” et choisir le dossier que vous venez de télécharger : Une fois la librairie installé vous pouvez commencer à téléverser les programmes pour la carte. Afficher les informations de la carte Une fois la librairie installée vous pouvez commencer à téléverser les programmes pour la carte.Voici le circuit du cablâge du rfid : Ce schéma à été fait avec fritzing. Voici le lien de la pièce rfid si vous voulez reproduire le schéma.Pour lire la carte quand elle est détectée par le module rfid, il vous suffit de copier le programme suivant : #include <SPI.h> #include <MFRC522.h> #define Reset_PIN 9 // Pin pour configurer le reset du rfid #define Liaison_SPI 10 // Pin pour la liaison SPI MFRC522 mfrc522(Liaison_SPI, Reset_PIN); MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); // Initialisation la connexion avec le moniteur série while (!Serial); // Ttant que le moniteur série est ouvert on ne fait rien SPI.begin(); // Initialisation de la liaison SPI mfrc522.PCD_Init(); // Initialisation de la carte rfid. Serial.println(F("Approchez votre carte du lecteur !")); } void loop() { // On regarde s'il y a de nouvelles cartes if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { delay(50); return; } // La nouvelle carte est maintenant sélectionnée Serial.print(F("Lecture de la carte UID:")); 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(); delay(2000); } Voici le lien du programme : arduino rfid.Voici ce que l’on obtient en passant la carte sur le module : Changer numéro UID carte Pour changer l’identité de la carte uid, le circuit est le même que pour la lecture de la carte.Ci-dessous, le programme pour écrire un nouveau code sur la carte : #include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 // Pin pour configurer le reset du rfid #define SS_PIN 10 // Pin pour la liaison SPI MFRC522 mfrc522(SS_PIN, RST_PIN); /* On créer un nouveau UID */ #define NEW_UID {0xDE, 0xAD, 0xBE, 0xEF} MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); // On initialise la connexion avec le moniteur série while (!Serial); // On en fait rien tan que le moniteur série est ouvert SPI.begin(); // Initialisation de la liaison SPI. mfrc522.PCD_Init(); // Initialisation de la carte rfid. Serial.println(F("Approchez votre carte du lecteur !")); // On choisit ici les chiffres hexadécimaux du numéro UID. for (byte i = 0; i < 6; i++) { key.keyByte[i] = 0xFF; } } void loop() { // On regarde s'il y a des nouvelles cartes if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { delay(50); return; } // La nouvelle carte est maintenant sélectionnée. Serial.print(F("Lecture de la carte UID:")); 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(); // On ajoute le nouvel UID byte newUid[] = NEW_UID; if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) { Serial.println(F("On écrit sur la nouvelle carte.")); } mfrc522.PICC_HaltA(); if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { return; } Serial.println(F("Voici le nouveau UID")); mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); delay(2000); } Voici le lien du programme : code rfid uid.Voici ce que l’on obtient en ajoutant un nouveau UID : Allumer led quand présenter carte On va maintenant voir comment allumer une led quand la carte est détectée. Pour cela vous devez réaliser le circuit suivant : Voici le programme qui va vous permettre de faire fonctionner votre circuit : #include <SPI.h> #include <MFRC522.h> #define Reset_PIN 9 // Pin pour configurer le reset du rfid #define Liaison_SPI 10 // Pin pour la liaison SPI const int led_rouge = 3; const int led_vert = 4; MFRC522 mfrc522(Liaison_SPI, Reset_PIN); MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); // On initialise la connexion avec le moniteur série while (!Serial); // On en fait rien tan que le moniteur série est ouvert SPI.begin(); // Initialisation de la liaison SPI. mfrc522.PCD_Init(); // Initialisation de la carte rfid. Serial.println(F("Approchez votre carte du lecteur !")); pinMode(led_rouge, OUTPUT); pinMode(led_vert, OUTPUT); digitalWrite(led_rouge, HIGH); // On allume la led rouge tant que la carte n'est pas présenté } void loop() { // On regarde s'il y a des nouvelles cartes if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { delay(50); return; } // La nouvelle carte est maintenant sélectionnée. Serial.print(F("Lecture de la carte UID:")); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); digitalWrite(led_rouge, LOW); // On éteint la led rouge quand la carte est reconnue digitalWrite(led_vert, HIGH); // On éteint la led verte } Serial.println(); delay(2000); } Voici le programme que vous pouvez télécharger : code rfid led.