RFID RC522 чтение и запись

Зачем нужен RFID RC522

RFID RC522 — один из самых популярных модулей для Arduino, позволяющий реализовать бесконтактную идентификацию, систему доступа и учёт пользователей. Этот модуль прост в подключении и работает на частоте 13.56 МГц. За полчаса вы можете собрать рабочий проект без пайки — идеально для новичков и практических экспериментов с радиочастотными технологиями.

RFID модуль RC522 чтение запись

Скачать datasheet RFID RC522 (PDF)

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

  • Arduino Uno или Nano (Nano компактнее)
  • Модуль RFID RC522
  • RFID-метки — карта и брелок
  • Провода джамперы
  • Макетная плата (опционально)

Как работает RFID RC522

RFID (Radio Frequency Identification) — это технология радиочастотной идентификации, при которой данные передаются между считывателем и меткой с помощью электромагнитного поля. RC522 работает на частоте 13.56 МГц и поддерживает стандарт Mifare® ISO 14443A. Он считывает и записывает данные на метки с энергонезависимой памятью EEPROM (до 1 КБ).

RFID метка RC522

Преимущества RC522

  • Бесконтактное считывание на расстоянии до 5–7 см
  • Высокая скорость обмена данными
  • Криптозащита (Mifare Classic)
  • Совместимость с множеством Arduino-библиотек

Типы RFID-меток

RFID-метки бывают разных форматов и частот. RC522 работает с метками диапазона HF (13.56 МГц). Они используются в системах контроля доступа, транспорте и оплате.

  • Формы: карты, брелоки, браслеты, наклейки
  • Типы: пассивные (без батареи) и активные (с питанием)
  • Дальность считывания: до 7 см (для RC522)

Подключение RFID RC522 к Arduino

RC522 использует интерфейс SPI. Подключите модуль к Arduino Nano следующим образом:

  • VCC → 3.3V
  • GND → GND
  • SDA → D10
  • SCK → D13
  • MOSI → D11
  • MISO → D12
  • RST → D9

Подключение RFID карт. Простой пример

Для работы установите библиотеку MFRC522 через меню Arduino IDE: Скетч → Подключить библиотеку → Добавить ZIP-библиотеку.

Пример кода: считывание UID метки

Простой скетч для вывода уникального идентификатора (UID) RFID-метки в Serial Monitor:

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 9
#define SS_PIN 10

MFRC522 rfid(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  Serial.println("Поднесите RFID-метку...");
}

void loop() {
  // Проверка наличия новой карты и чтение её UID
  if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
    String uid = "";
    for (byte i = 0; i < rfid.uid.size; i++) {
      if (rfid.uid.uidByte[i] < 0x10) uid += "0"; // Добавляем ведущий 0
      uid += String(rfid.uid.uidByte[i], HEX);
    }
    uid.toUpperCase(); // Для удобства выводим в верхнем регистре
    Serial.print("UID метки: ");
    Serial.println(uid);

    rfid.PICC_HaltA();  // Остановить работу с картой
  }
}
Делает следующее:
считывает UID RFID-метки MFRC522.
формирует строку в HEX с ведущими нулями.
выводит UID в верхнем регистре в Serial.
останавливает карту после чтения.

Как это работает

  • SPI.begin() — инициализирует SPI-интерфейс.
  • rfid.PCD_Init() — активирует модуль RC522.
  • PICC_IsNewCardPresent() — проверяет наличие метки.
  • rfid.uid — получает UID (уникальный код).

После загрузки скетча откройте Serial Monitor, поднесите карту или брелок и наблюдайте вывод UID. Это базовая основа для системы доступа.

Запись данных на метку

Модуль RC522 позволяет не только считывать, но и записывать данные. Метка имеет до 1 КБ памяти, разделённой на секторы и блоки. Запись выполняется с аутентификацией по ключу и подробно рассматривается в следующей статье.

Безопасность RFID

Метки Mifare защищены криптографически, но уязвимы для скимминга — считывания данных посторонними устройствами. Для повышения безопасности используйте экранирующие чехлы или реализуйте программную проверку UID.

5 идей проектов с RFID RC522

  • Электронный замок: доступ только по зарегистрированной карте.
  • Учёт посещаемости: автоматическая регистрация сотрудников или студентов.
  • Умный дом: включение устройств по RFID-метке.
  • Система авторизации: подтверждение личности при запуске Arduino-проекта.
  • Логистика и склад: маркировка и отслеживание товаров.

FAQ — Часто задаваемые вопросы о RFID RC522

Для чего нужен модуль RFID RC522?

RFID RC522 используется для бесконтактной идентификации, систем контроля доступа, учёта пользователей и проектов умного дома. Он считывает UID меток на частоте 13.56 МГц и может записывать данные на карты и брелоки.

Какие типы меток поддерживает RC522?

Модуль работает с HF-метками 13.56 МГц стандарта Mifare® ISO 14443A. Это могут быть карты, брелоки, браслеты и наклейки, как пассивные (без батареи), так и активные (с питанием).

На каком расстоянии работает считыватель?

Бесконтактное считывание обычно работает на расстоянии до 5–7 см. Расстояние зависит от типа метки и условий окружающей среды.

Можно ли использовать RC522 с другими платами, кроме Arduino?

Да, RC522 совместим с ESP32, ESP8266, Raspberry Pi и другими платами, поддерживающими интерфейс SPI. В коде нужно использовать соответствующую библиотеку для выбранной платформы.

Как записывать данные на метку?

Запись выполняется с аутентификацией по ключу. Метка разделена на блоки и сектора. Для записи используйте функции библиотеки MFRC522: авторизация сектора → запись блока → проверка. Важно соблюдать последовательность и проверять UID метки.

Насколько безопасны метки Mifare?

Mifare Classic поддерживает базовую криптозащиту. Однако метки могут быть уязвимы для скимминга. Для повышения безопасности используйте экранирующие чехлы или программную проверку UID, а также ограничьте запись на метках.

Можно ли подключать несколько RC522 к одной Arduino?

Да, но для каждого считывателя нужен отдельный пин SS (SDA). Остальные линии SPI (SCK, MOSI, MISO) можно использовать общие. В коде создаются отдельные объекты MFRC522 для каждого модуля.

Какие проекты можно реализовать с RFID RC522?

Примеры проектов: электронный замок, учёт посещаемости, умный дом, системы авторизации, отслеживание товаров на складе. RC522 идеально подходит для учебных и практических экспериментов с RFID.

Заключение: простая идентификация с RFID RC522

RFID RC522 — это доступный, надёжный и мощный модуль для Arduino, который позволяет создавать проекты с бесконтактной идентификацией, безопасным доступом и автоматизацией. Он подойдёт как для учебных экспериментов, так и для практических систем. Начните свой первый RFID-проект уже сегодня.

📁 Скачать примеры