Cum ar fi să-ți creezi propriul interfon? Cu platforma Arduino și un modul RFID ar fi posibil!
| Pin RFID modul | Conectat la Arduino Uno |
| SDA | Digital 10 |
| SCK | Digital 13 |
| MOSI | Digital 11 |
| MISO | Digital 12 |
| IRQ | Neconectat |
| GND | GND |
| RST | Digital 9 |
| 3.3V | 3.3V |
Atentie: Alimentarea se face la 3.3V (NU la 5V)
Citirea datelor de pe RFID
După ce am conectat circuitul după schema de mai jos și conectat Arduino la PC, trebuie să afli ce adresă are cardul tău RFID, după adaugarea librării RFID în softul Arduino IDE deschide File > Examples > MFRC522 > DumpInfo și rulează codul.
Deschide monitorul serial și vei vedea un mesaj ca acesta:

Apropie cardul RFID la cititor și așteaptă până vei vedea ceva asemănător:

De aici afli adresa fizică al cardului (Card UID)
Aveți 1024 bytes de stocare a datelor împărțite în 16 sectoare și fiecare sector este protejat de două chei diferite, A și B.
Copiază adresa fizică (Card UID) mai tărziu vei avea nevoie de ea. În programul de mai jos schimbă ”BD 31 15 2B” cu adresa ta.
Aproprie cardul tău la cititor, vei primi un mesaj asemănător

Dacă apropii un alt card, accesul va fi interzis

#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup()
{
Serial.begin(9600); // Initializare comunicare seriala
SPI.begin(); // Initializare SPI bus
mfrc522.PCD_Init(); // Initializare MFRC522
Serial.println("Apropie cardul la cititor...");
Serial.println();
}
void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "BD 31 15 2B") //schimba cu valoarea ta
{
Serial.println("Acces permis");
Serial.println();
delay(3000);
}
else {
Serial.println("Acces interzis");
delay(3000);
}
}
Descarcă biblioteca ↓