RFID RC522 чтение и запись
Зачем нужен RFID RC522
RFID RC522 — один из самых популярных модулей для Arduino, позволяющий реализовать бесконтактную идентификацию, систему доступа и учёт пользователей. Этот модуль прост в подключении и работает на частоте 13.56 МГц. За полчаса вы можете собрать рабочий проект без пайки — идеально для новичков и практических экспериментов с радиочастотными технологиями.
Скачать 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 КБ).
Преимущества 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
Для работы установите библиотеку 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-проект уже сегодня.