Перейти к содержанию

Ардуино RFID модуль RC522, как подключить

Ардуино RFID модуль RC522, как подключить

RFID Arduino (Radio Frequency IDentification) — это бесконтактная идентификация транспондера (метки) с помощью радиочастотного канала связи. Система широко используется во многих отраслях: для контроля доступа по пропускам, отслеживания товаров в логистических цепочках поставок, создания систем вознаграждения и т.д. Рассмотрим, как подключить считыватель меток RFID-RC522 к плате Ардуино.

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • модуль RC522 и ключ RFID
  • светодиоды и резисторы
  • макетная плата
  • коннекторы
  • скачать библиотеку MFRC522.h и SPI.h

Дополнительные материалы на эту тему:

  1. Как подключить сенсорную кнопку к Ардуино
  2. Подключение WiFi модуля ESP-12E к Ардуино
  3. Подключение WiFi модуля ESP-01 к Ардуино

Система RFID для плат Arduino состоит из двух элементов: метки в виде пластиковой карты или брелка и считывателя меток. Идентификация меток основана на уникальном идентификаторе UID (стандарт Epc-96 на 96 бит), который есть у каждой rfid-метки. Модуль RC522 Arduino излучает электромагнитные волны, а RFID метки отправляют обратно свой идентификационный номер (UID) и сохраненные данные из памяти чипа.

RFID модуль RC522 распиновка, характеристики

RFID модуль RC522 распиновка, характеристики

Характеристики RFID RC522 Arduino (datasheet)

  • Источник питания: 3,3 В
  • Частота: 13,56 МГц
  • Оптимальное расстояние: 10 мм
  • Интерфейс: SPI
  • Протокол: Mifare
  • Размеры: 61 мм x 40 мм

Метки RFID могут быть активными или пассивными (пассивные метки работают без источника питания, поэтому они автономны и не изнашиваются) и работать на различных частотах: НЧ (125-134 кГц), ВЧ (13,56 МГц), УВЧ (860-960 МГц). Модули, которые считывают и записывают информацию на метки, называются считывателями. Модули RC522 на базе чипа MFRC522 используют электромагнитные поля для передачи данных на карту.

Как подключить RFID модуль RC522 к Arduino

Как подключить RFID модуль RC522 к Arduino

MFRC522 Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VCC 3,3V 3,3V 3,3V
MOSI 11 11 51
MISO 12 12 50
SCK 13 13 52
SDA 10 10 10
RST 9 9 9

Модуль подключается к Ардуино через интерфейс SPI. Помните, что шина SPI на платах Arduino Uno (Nano) и Mega 2560 находится на разных портах. Вам необходимо скачать библиотеки SPI, MFRC522 и распаковать архив с файлами в директории libraries в папке Arduino. После подключения модуля RC522, загрузите следующий пример программы, чтобы получить тип метки и UID (уникальный идентификатор брелка или карты).

Скетч для считывания RFID метки на Ардуино


#include "SPI.h"
#include "MFRC522.h"

#define RST_PIN  9 // пин RES
#define SS_PIN  10 // пин SS

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  delay(4);
  mfrc522.PCD_DumpVersionToSerial();
  Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}

void loop() {
  // сброс цикла, если на rc модуле нет карты
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
     return;
  }

  if ( ! mfrc522.PICC_ReadCardSerial()) {
     return;
  }

  // вывод на монитор порта идентификатора ключа
  mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}

Контроль доступа с помощью Arduino RFID-RC522

Контроль доступа с помощью Arduino RFID RC522

Рассмотрим пример, который можно использовать для создания системы доступа (например, открывание двери). Программа сканирует уникальный идентификатор метки, если UID карты совпадает со значением, определенным в программе (cardID), доступ будет предоставлен (загорится зеленый светодиод). Если к кардридеру RC522 поднести неизвестную метку, доступ будет запрещен (загорится красный светодиод).

Скетч для контроль доступа с помощью RFID-RC522

#include "SPI.h"
#include "MFRC522.h"

#define RST_PIN 9 // пин RES
#define SS_PIN  10 // пин SS

byte readCard[4];
String cardID = "20C3935E"; // замените на UID своей карты
String tagID = "";

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
}

void loop() {
  while (getID()) {
    if (tagID == cardID) {
      Serial.println("Access Granted!");
      digitalWrite(5, LOW);
      digitalWrite(6, HIGH);
    }
    else {
      Serial.println("Access Denied!");
    }
    Serial.print("ID: ");
    Serial.println(tagID);
    delay(2000);
    digitalWrite(6, LOW);
  }
}

boolean getID() {
  if (! mfrc522.PICC_IsNewCardPresent()) {
    return false;
  }

  if (! mfrc522.PICC_ReadCardSerial()) {
    return false;
  }

  tagID = "";
  
  for (uint8_t i = 0; i < 4; i++) {
    tagID.concat(String(mfrc522.uid.uidByte[i], HEX));
  }

  tagID.toUpperCase();
  mfrc522.PICC_HaltA();
  return true;
}

Заключение. Модуль rc522 Arduino предназначен для генерации электромагнитного поля, которое используется для связи с метками (ключами) RFID. Считыватель может взаимодействовать с микроконтроллером Arduino с максимальной скоростью передачи данных 10 Мбит в секунду через интерфейс SPI или протокол связи I2C (порты sda scl), через который можно одновременно подключить до 127 ведомых устройств.

Комментарии 2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜