Panier d’achat

Aucun produit dans le panier.

kit RFID Module RC522 + Lecteur RFID

35.00 د.م.


Le module RC522 est une interface qui permet l’identification sans contact à partir d’un badge ou une clé RFID. Il est basé sur le circuit intégré Philips RC522, il communique avec Arduino via l’interface SPI.

32 en stock

Quantité Discount (%) Prix
1 - 29 35.00 د.م.
30+ 22.86 % 27.00 د.م.
UGS : CM049 Catégories : , Étiquettes : , , , , , ,

Tutorial : Utilisation d’un module RFID avec Arduino


Le module RFID RC522 est un lecteur de carte à puce qui, permet entre autre, d’activer un mécanisme lorsque la bonne carte est présenté au lecteur. Nous allons utiliser ici le module RC522 qui est le plus courant.


Matériel

  • Ordinateur
  • Carte Arduino
  • Câble USB pour connecter la carte Arduino au PC
  • 1x module RFID RC522

Schéma

Le module RFID RC522 utilise la protocole SPI pour communiquer avec Arduino. La communication SPI utilise des boches spécifiques des microcontrôleurs Arduino.

Le brochage se fait comme suit (à gauche côté RC522, à droite côté Arduino UNO):

  • Vcc <-> 3V3 (ou 5V selon la version du module)
  • RST (Reset) <-> 9
  • GND (Masse) <-> GND
  • MISO (Master Input Slave Output) <-> 12
  • MOSI (Master Output Slave Input) <-> 11
  • SCK (Serial Clock) <-> 13
  • SS/SDA (Slave select) <-> 10
arduino-rfid-rc522_cablage

Schema montage Module RFID avec Arduino

Attention: Selon la version du module, la tension d’alimentation peut être différentes (3.3V ou 5V). Vérifiez bien la tension d’alimentation de votre module.


Code pour lire une carte RFID

Pour utiliser le module RFID RC522 nous utilisons la librairie SPI.h qui va nous permettre d’établir la communication entre la carte Arduino et le module; et la librairie MFRC522.h qui va nous permettre de dialoguer avec le module.

/* 

* Réaliser par Micro-Electroniques Générales au Maroc 
* Visite notre site megma.ma 

*/ #include <SPI.h> #include <MFRC522.h> // INPUT #define SS_PIN 10 #define RST_PIN 9 MFRC522 rfid(SS_PIN, RST_PIN); // Init array that will store new NUID byte nuidPICC[4]; void setup() { Serial.begin(9600); SPI.begin(); // Init SPI bus rfid.PCD_Init(); // Init MFRC522 Serial.println(F("Scan RFID NUID...")); } void loop() {      readRFID();      delay(200); } // void readRFID() {  // Look for new card  if ( ! rfid.PICC_IsNewCardPresent())  return;    // Verify if the NUID has been readed  if (  !rfid.PICC_ReadCardSerial())  return;    if (rfid.uid.uidByte[0] != nuidPICC[0] ||    rfid.uid.uidByte[1] != nuidPICC[1] ||    rfid.uid.uidByte[2] != nuidPICC[2] ||    rfid.uid.uidByte[3] != nuidPICC[3] ) {    Serial.println(F("A new card has been detected."));    // Store NUID into nuidPICC array    for (byte i = 0; i < 4; i++) {      nuidPICC[i] = rfid.uid.uidByte[i];    }       Serial.print(F("RFID tag in dec: "));    printDec(rfid.uid.uidByte, rfid.uid.size);    Serial.println();  }     // Halt PICC  rfid.PICC_HaltA();  // Stop encryption on PCD  rfid.PCD_StopCrypto1(); } /**  * Helper routine to dump a byte array as dec values to Serial.  */ void printDec(byte *buffer, byte bufferSize) {  for (byte i = 0; i < bufferSize; i++) {    Serial.print(buffer[i] < 0x10 ? " 0" : " ");    Serial.print(buffer[i], DEC);  } }

Application

Une application classique du module RFID est l’ouverture d’un mécanisme lorsque le bon badge est présenté sur le lecteur.

Pour cela , nous utilisons un module RFID et un servomoteur qui servira de serrure pilotée. Le servomoteur peut être remplacé par un solénoïde, relais ou un autre moteur selon le mécanisme que vous souhaitez utiliser.

arduino-rfid-rc522-servo_montage

Schema montage Module RFID avec Arduino et moteur Servo

Pour le programme, nous allons réutiliser le code de lecture de carte RFID et nous allons comparer la valeur lue à celle que nous souhaitons utiliser pour l’ouverture du système. Si la valeur est correcte, nous activons le servomoteur et allumons la LED embarquée.

/* 

* Réaliser par Micro-Electroniques Générales au Maroc 
* Visite notre site megma.ma 

*/ #include <SPI.h> #include <MFRC522.h> #include <Servo.h> /**************************PARAMETERS******************************/ const int ipadd[4] = {103, 97, 67, 25}; //ip address à modifier selon la carte int servoOpen = 180; int servoClose = 0; int delayBeforeClosing = 1000; /******************************************************************/ // INPUT #define SS_PIN 10 #define RST_PIN 9 // OUTPUT const int servoPin = 6; const int ledPin = 13; Servo servo; MFRC522 rfid(SS_PIN, RST_PIN); bool approved = 0, oldApproved = 0; // Init array that will store new NUID byte nuidPICC[4]; void setup() {  Serial.begin(9600);  SPI.begin(); // Init SPI bus  rfid.PCD_Init(); // Init MFRC522  pinMode(ledPin, OUTPUT);  servo.write(servoClose);  servo.attach(servoPin);  Serial.println(F("Scan RFID NUID...")); } void loop() {  readRFID();  if (nuidPICC[0] == ipadd[0]      && nuidPICC[1] == ipadd[1]      && nuidPICC[2] == ipadd[2]      && nuidPICC[3] == ipadd[3]) {    approved = true;    if (approved != oldApproved) {      Serial.println(F("Card approved!"));      digitalWrite(ledPin, HIGH);      servo.write(servoOpen);      delay(delayBeforeClosing);    }    nuidPICC[0] = 0;    nuidPICC[1] = 0;    nuidPICC[2] = 0;    nuidPICC[3] = 0;  } else {    approved = false;    if (approved != oldApproved) {      Serial.println(F("Card incorrect!"));      digitalWrite(ledPin, LOW);      servo.write(servoClose);    }  }  oldApproved = approved; } // void readRFID() {  // Look for new 1 cards  if ( ! rfid.PICC_IsNewCardPresent())    return;  // Verify if the NUID has been readed  if (  !rfid.PICC_ReadCardSerial())    return;  if (rfid.uid.uidByte[0] != nuidPICC[0] ||      rfid.uid.uidByte[1] != nuidPICC[1] ||      rfid.uid.uidByte[2] != nuidPICC[2] ||      rfid.uid.uidByte[3] != nuidPICC[3] ) {    Serial.println(F("A new card has been detected."));    // Store NUID into nuidPICC array    for (byte i = 0; i < 4; i++) {      nuidPICC[i] = rfid.uid.uidByte[i];    }    Serial.print(F("RFID tag in dec: "));    printDec(rfid.uid.uidByte, rfid.uid.size);    Serial.println();  }  // Halt PICC  rfid.PICC_HaltA();  // Stop encryption on PCD  rfid.PCD_StopCrypto1(); } /**    Helper routine to dump a byte array as dec values to Serial. */ void printDec(byte *buffer, byte bufferSize) {  for (byte i = 0; i < bufferSize; i++) {    Serial.print(buffer[i] < 0x10 ? " 0" : " ");    Serial.print(buffer[i], DEC);  } }

Sources


Plus d’information visite notre page Facebook.



			

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “kit RFID Module RC522 + Lecteur RFID”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Tous les résultats de recherche
×