С Arduino и модулем RFID MFRC522 можно собрать собственную систему контроля доступа.
| Вывод RFID | Arduino Uno |
|---|---|
| SDA | Digital 10 |
| SCK | Digital 13 |
| MOSI | Digital 11 |
| MISO | Digital 12 |
| IRQ | Не подключать |
| GND | GND |
| RST | Digital 9 |
| 3.3V | 3.3V |
Внимание: модуль питается от 3,3 В, а не от 5 В.
Чтение RFID-карты
Соберите схему и подключите Arduino к компьютеру. Установите библиотеку MFRC522, затем в Arduino IDE откройте File → Examples → MFRC522 → DumpInfo и загрузите пример.
Откройте монитор последовательного порта и поднесите карту к считывателю. В строке Card UID появится физический адрес карты. Скопируйте его и замените в программе пример «BD 31 15 2B» своим UID.
Память карты объёмом 1024 байта разделена на 16 секторов; каждый сектор защищён двумя ключами, A и B. После настройки разрешённая карта получит доступ, а другая карта будет отклонена.
#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);
}
}
Скачать библиотеку ↓