↩️ На главную

Как сделать считыватель и записыватель RFID-карт на Arduino

22.12.2025 | Статья из категории: Простотак

как склонировать rfid метку с помощью arduino

Если у вас есть RFID-метки от ворот, подъезда или пропуска — и вы хотите сделать резервную копию или не хотите платить по 2000 рублей за метку, вам понадобится простой самодельный считыватель-записыватель на базе Arduino. В этой статье — что купить, как собрать и какой код загрузить.

Что купить

  1. Плата Arduino — подойдёт любая с UART и SPI: Uno, Nano, Mega. Самый популярный выбор — Arduino Nano (дешёвый, компактный).
  2. Модуль RFID RC522 — именно он умеет и читать, и записывать MIFARE Classic 1K карты (самый распространённый тип).
  3. Перезаписываемые RFID-метки — обычные карты не подходят для полного копирования, потому что нельзя изменить UID. Нужны так называемые «магические» метки с перезаписываемым UID (ищите по запросам: «Magic UID», «CUID», «клонируемые MIFARE», «Gen2»). Продаются в виде брелков, круглых дисков или карт — часто тоже разноцветные.
  4. Провода-перемычки (папа-папа) — для подключения RC522 к Arduino.

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

Модуль RC522 работает по SPI. Подключайте так:

  • RC522 SDA → Arduino D10
  • RC522 SCK → Arduino D13
  • RC522 MOSI → Arduino D11
  • RC522 MISO → Arduino D12
  • RC522 RST → Arduino D9
  • RC522 3.3V → Arduino 3.3V (не 5V!)
  • RC522 GND → Arduino GND
Важно: питание — только 3.3 В! Подключение к 5 В может повредить модуль.

Установка библиотеки

В Arduino IDE:

  1. Зайдите в «Скетч» → «Подключить библиотеку» → «Управление библиотеками».
  2. Найдите MFRC522 от miguelbalboa.
  3. Установите её.

Код: считывание данных (DumpInfo)

Сначала проверьте, какая у вас карта и можно ли её прочитать:

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

#define RST_PIN 9
#define SS_PIN 10

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println("Приложите карту...");
}

void loop() {
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
    mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
    delay(2000);
  }
}

Загрузите этот скетч, откройте монитор порта (9600 бод). Приложите метку — вы увидите её UID и содержимое секторов. Если везде «Authentication failed» — ключ изменён, и копировать без него не получится.

Код: запись данных на другую метку

Если карта читается полностью — можно делать копию. Для этого:

  1. Считайте все данные с оригинала (сохраните вручную или запишите на бумагу).
  2. Используйте скетч rfid_write_personal_data (он есть в примерах библиотеки MFRC522).
  3. Или воспользуйтесь готовым скетчем для клонирования — например, WritePersonalData — он позволяет записать свои данные в определённый блок.

⚠️ Важно: запись в системные блоки (например, блок 0 с UID) возможна только на магических метках и требует особых команд. Обычный RC522 не может перезаписать UID на стандартных картах.

Можно ли сделать полную копию?

  • Если ваша оригинальная метка — MIFARE Classic 1K с стандартными ключами — и вы купили магическую метку с перезаписываемым UID — то да, копия будет работать.
  • Если система проверяет только UID (как многие домофоны и ворота) — без правильного UID копия не сработает.
  • Если ключи изменены или используется более защищённая карта (например, MIFARE DESFire) — RC522 не справится.

Заключение

Сделать простой RFID-считыватель и записыватель на Arduino — легко и недорого. Главное — понимать тип вашей карты и использовать правильные заготовки для копирования. Это отличное решение для резервного брелка от ворот или подъезда.

Удачи в проектах!




Категории:

Категории

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0
о блоге | карта блога

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA