Модуль RC522 работает на частоте 13,56 МГц и читает только карты стандарта Mifare, поэтому дубликатор домофонных ключей формата EM-Marin (125 кГц) на нём собрать невозможно — это первое, что нужно проверить перед покупкой компонентов. Определить тип своего ключа можно по маркировке на корпусе брелока или с помощью смартфона с NFC: если телефон видит метку, она, скорее всего, работает на 13,56 МГц и совместима с RC522.

В этой статье разберём, как собрать устройство для чтения и копирования RFID-меток на базе Arduino Uno/Nano и модуля MFRC522, какие заготовки подходят для записи, какие ограничения есть у этого решения и в каких случаях копирование вообще допустимо. Материал носит образовательный характер и предназначен для работы с собственными ключами и экспериментов в рамках изучения электроники.

Правовая сторона и область применения

Прежде чем собирать дубликатор, определите, чей ключ вы собираетесь копировать. Изготовление дубликата собственного ключа от своего домофона, офиса или системы доступа, где вы являетесь легальным пользователем, — обычная практика. Копирование чужих ключей, обход систем контроля доступа третьих лиц и изготовление дубликатов без согласия владельца могут повлечь юридическую ответственность.

⚠️ Внимание: клонирование ключей доступа к чужим объектам (подъездам, офисам, парковкам) без согласия владельца системы может рассматриваться как неправомерный доступ. Используйте устройство только с собственными метками или с письменного разрешения владельца системы контроля доступа.

Для обучения и экспериментов достаточно собственной карты и пары чистых заготовок. Этого хватит, чтобы изучить протокол, скетч и принципы работы RFID без каких-либо рисков.

Что умеет RC522 и какие ключи он читает

Модуль MFRC522 — это недорогой считыватель на 13,56 МГц, поддерживающий карты семейства Mifare Classic, Mifare Ultralight и совместимые. Он умеет читать UID (уникальный идентификатор) метки и работать с секторами памяти карт Mifare Classic при знании ключей доступа к секторам.

Ключи домофонов форматов EM-Marin, HID и подобных работают на 125 кГц — RC522 их физически не видит. Для таких меток нужен другой модуль, например считыватель на базе EM4095 или готовый модуль RDM6300, и заготовки типа T5577. Не смешивайте два семейства в одном проекте без понимания разницы частот.

  • 🔑 Mifare Classic 1K/4K — читаются и частично копируются на RC522;
  • 💳 Mifare Ultralight — чтение UID и памяти;
  • 🚫 EM-Marin 125 кГц — не поддерживаются, нужен другой считыватель;
  • 📱 NFC-метки NTAG — читаются, подходят для экспериментов.
📊 Какой тип RFID-метки вы планируете копировать?
Mifare Classic (домофон/офис)
NTAG / NFC-метки
125 кГц (EM-Marin)
Ещё не определил тип

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

Список деталей для базовой версии дубликатора невелик, всё легко найти в магазинах радиодеталей. Потребуется плата Arduino Uno или Nano, модуль RC522 с антенной на плате, соединительные провода и записываемые заготовки.

КомпонентНазначениеПримечание
Arduino Uno / NanoУправляющий контроллерПодойдёт любой клон на ATmega328P
Модуль MFRC522Считыватель 13,56 МГцПитание строго 3,3 В
Заготовки Mifare-совместимыеНосители для записи копииДля копии UID нужны карты с перезаписываемым нулевым блоком
Провода dupontСоединение по SPI7 линий
Светодиод + резисторИндикация режимаОпционально

Отдельно отметим заготовки. Обычная карта Mifare Classic имеет неизменяемый UID в нулевом блоке, поэтому полную копию «один в один» можно сделать только на специальные карты с перезаписываемым нулевым сектором (их часто называют magic cards или «китайские карты с изменяемым UID»). Без такой заготовки вы сможете скопировать только данные секторов, но не идентификатор.

Схема подключения RC522 к Arduino

Модуль подключается по интерфейсу SPI. Распиновка ниже соответствует стандартному подключению к Arduino Uno/Nano; для других плат сверяйтесь с распиновкой SPI конкретной платы.

RC522    →  Arduino Uno/Nano

SDA (SS) → D10

SCK → D13

MOSI → D11

MISO → D12

IRQ → не подключаем

GND → GND

RST → D9

3.3V → 3.3V

⚠️ Внимание: модуль RC522 питается от 3,3 В. Подача 5 В на питание может вывести микросхему из строя. Логические линии SPI у большинства модулей толерантны к 5 В, но при нестабильной работе имеет смысл использовать преобразователь уровней.

После сборки проверьте качество контактов: нестабильное чтение карты чаще всего объясняется плохим соединением линий SCK или MISO, а не ошибками в коде. Если модуль не определяется, в первую очередь прозвоните шлейф и проверьте, что питание именно 3,3 В.

☑️ Проверка перед первым запуском

Выполнено: 0 / 5

Скетч: чтение UID и запись копии

Для работы с модулем используется библиотека MFRC522 (доступна через менеджер библиотек Arduino IDE по запросу MFRC522). В комплекте с библиотекой идут примеры, среди которых DumpInfo — он выводит в монитор порта UID карты и содержимое секторов. Этого достаточно, чтобы убедиться, что схема собрана верно.

Логика простейшего дубликатора строится в два этапа. Сначала устройство читает исходную карту и сохраняет UID в переменную (или EEPROM). Затем по нажатию кнопки или при поднесении новой метки записывает сохранённый идентификатор на заготовку с перезаписываемым нулевым блоком. Фрагмент чтения UID выглядит так:

#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);

SPI.begin();

mfrc522.PCD_Init();

}

void loop() {

if (!mfrc522.PICC_IsNewCardPresent()) return;

if (!mfrc522.PICC_ReadCardSerial()) return;

for (byte i = 0; i < mfrc522.uid.size; i++) {

Serial.print(mfrc522.uid.uidByte[i], HEX);

Serial.print(" ");

}

Serial.println();

mfrc522.PICC_HaltA();

}

Запись нулевого блока на magic card выполняется специальными командами активации (так называемая «китайская последовательность» разблокировки), которые поддерживают не все заготовки. Готовые примеры такой записи есть в репозиториях сообщества, но их корректность зависит от конкретной партии карт — проверяйте поведение на одной заготовке, прежде чем делать выводы.

💡

Начните с примера DumpInfo из библиотеки MFRC522: он покажет UID и структуру памяти карты без единой строки собственного кода. Так вы сразу отделите аппаратные проблемы от программных.

Почему копия может не сработать

Даже успешно записанная заготовка не гарантирует, что домофон или считыватель примет дубликат. Причин несколько, и большинство связано не с вашей сборкой, а с устройством системы контроля доступа.

  • 🧲 Система проверяет не только UID, но и данные защищённых секторов — без ключей доступа к секторам полная копия невозможна;
  • 🔐 Карта использует криптозащиту (например, Mifare Plus или DESFire) — такие метки на RC522 не клонируются;
  • 📡 Исходный ключ работает на 125 кГц — вы копируете не тот носитель;
  • 🧾 Заготовка не поддерживает перезапись нулевого блока — UID остался заводским.

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

💡

RC522 клонирует только метки 13,56 МГц семейства Mifare, а полная копия возможна лишь на заготовки с перезаписываемым UID. Карты с криптозащитой и ключи 125 кГц этим устройством не дублируются.

Улучшения и развитие проекта

Базовую схему легко расширить. Добавление кнопки и светодиода превращает устройство в автономный дубликатор: одно нажатие — чтение, второе — запись. Подключение дисплея OLED SSD1306 по I2C позволит видеть UID без компьютера, а запись нескольких ключей в EEPROM даст возможность хранить библиотеку меток.

Идея для продвинутой версии

На базе ESP32 можно собрать дубликатор с веб-интерфейсом: плата поднимает точку доступа Wi-Fi, а список считанных UID и кнопки «читать/записать» отображаются в браузере телефона. Учтите, что распиновка SPI у ESP32 отличается от Arduino Uno — схему подключения RC522 нужно адаптировать.

Если ваша цель — работа с ключами 125 кГц, логичным следующим шагом станет второй проект на модуле RDM6300 и заготовках T5577, которые можно перезаписывать под разные форматы. Оба устройства дополняют друг друга и вместе закрывают большинство бытовых сценариев с собственными ключами.

Часто задаваемые вопросы

Можно ли скопировать домофонный ключ-таблетку (Touch Memory) на RC522?

Нет. Ключи Dallas iButton (Touch Memory) — это вообще не RFID-технология, а контактный интерфейс 1-Wire. Для их дублирования используются другие устройства и заготовки.

Почему RC522 не видит мою карту?

Возможные причины: карта работает на 125 кГц, неисправна линия SPI, питание подано на 5 В вместо 3,3 В или карта относится к стандарту, который модуль не поддерживает. Проверьте карту смартфоном с NFC — если телефон её не видит, RC522 тем более не увидит.

Что такое «magic card» и где её взять?

Это карта Mifare-совместимого формата с перезаписываемым нулевым блоком, что позволяет менять UID. Продаётся в магазинах радиодеталей и на маркетплейсах под названиями вроде «UID changeable card» или «magic card gen1/gen2».

Спалит ли 5 В модуль RC522?

Подача 5 В на питание модуля создаёт риск выхода его из строя, поскольку микросхема рассчитана на 3,3 В. Подключайте питание строго к выводу 3.3V платы Arduino.

Законно ли делать дубликат своего ключа от домофона?

Изготовление копии собственного ключа для личного использования, как правило, не запрещено, однако условия могут зависеть от договора с управляющей компанией и локальных правил. Копирование чужих ключей без согласия владельца недопустимо.