Sensori con Arduino

Lettore RFID

Modulo lettore RFID per le tessere magnetiche - Sensori con Arduino

Descrizione

In questo video impareremo ad usare il modulo lettore RFID per tessere e badge di prossimità. Vedremo come realizzare il circuito e il relativo sketch per leggere lo user id delle tessere di prossimità avvicinate al lettore.
Impareremo, inoltre, come realizzare un semplice esempio di controllo degli accessi basato sulla tecnologia RFID in grado di consentire l'accesso soltanto alle persone in possesso delle tessere di prossimità autorizzate.

Scarica le risorse

Progetto: RFID

Schema

Componenti

Codice

#include <MFRC522.h> MFRC522 rfid(109); void setup(){  Serial.begin(115200);  SPI.begin();  rfid.PCD_Init();} void loop(){  if(rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()){    String uid = getUID();    Serial.println("RFID ID: " + uid);  }  delay(10);} String getUID(){  String uid = "";  for(int i = 0; i < rfid.uid.size; i++){    uid += rfid.uid.uidByte[i] < 0x10 ? "0" : "";    uid += String(rfid.uid.uidByte[i], HEX);  }  rfid.PICC_HaltA();  return uid;}
scarica il file

Progetto: Controllo degli accessi

Schema

Componenti

Codice

#include <MFRC522.h>#define GREEN_LED_PIN 2#define RED_LED_PIN 3 MFRC522 rfid(109); String users[] = {"37ade145"};int usersSize = sizeof(users)/sizeof(String); void setup(){  SPI.begin();  rfid.PCD_Init();  pinMode(GREEN_LED_PIN, OUTPUT);  pinMode(RED_LED_PIN, OUTPUT);} void loop(){  if(rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()){    String uid = getUID();    if(checkUID(uid)){      blinkLed(GREEN_LED_PIN, 20001);    }else{      blinkLed(RED_LED_PIN, 4002);    }  }  delay(10);} String getUID(){  String uid = "";  for(int i = 0; i < rfid.uid.size; i++){    uid += rfid.uid.uidByte[i] < 0x10 ? "0" : "";    uid += String(rfid.uid.uidByte[i], HEX);  }  rfid.PICC_HaltA();  return uid;} bool checkUID(String uid){  for(int i = 0; i < usersSize; i++){    if(users[i] == uid){      return true;    }  }  return false;} void blinkLed(int led, int duration, int repeat){  for(int i = 0; i < repeat; i++){    digitalWrite(led, HIGH);    delay(duration/2);    digitalWrite(led, LOW);    delay(duration/2);  }}
scarica il file

Arduino Software Hero

Vuoi imparare a programmare Arduino, ma non sai da dove cominciare?

Iscriviti al corso online

Libri consigliati


Tutorial consigliati

E-commerce di elettronica

Sul nostro negozio online trovi tutti i componenti usati nei tutorial.
Inoltre hai un'ampia scelta di prodotti tra:

  • Arduino
  • Raspberry Pi
  • Sensori
  • Robotica
  • Componenti elettronici
  • Accessori

Compra online, ricevi comodamente a casa

Visita il negozio