Как работает модуль RFID RC522

В проектах Arduino в качестве считывателя часто используют RFID RC522 модуль. Плата RC522 использует технологию RFID — радиочастотную идентификацию объектов. Считыватель излучает электромагнитные волны заданной частоты, а в ответ получает метки в виде ID-номера, данных из памяти, по которым осуществляется их распознание.

Описание модуля

Модули, обменивающиеся информацией с метками RFID, называются ридерами (считывателями), и делятся на активные и пассивные. Последние питаются от индуцированного в антенне ридера сигнала.

Модуль RFID RC522 обеспечивает все преимущества этой технологии:

  • дистанционное бесконтактное взаимодействие;

  • подачу скрытых меток;

  • быстрый обмен данными;

  • работу в агрессивной среде;

  • высокую сложность подделки.

Модуль выполнен на микросхеме MFRC522 фирмы NXP, которая обеспечивает работу с метками HF (на частоте 13,56 МГц). В комплекте с модулем RFID RC522 идут две метки: одна в виде карты, другая в виде брелока.

Две метки с модулем
Две метки с модулем в комплекте.

Технические характеристики

Основные характеристики RFID-модуля чтения и записи RFID-меток компании NXP:

  • питание +3.3 В;

  • средний ток потребления 13-26 мА;

  • рабочая частота 13.56 МГц;

  • расстояние считывания до 60 мм;

  • интерфейс SPI;

  • максимальная скорость передачи 10 Мб/с;

  • размер модуля 40×60 мм;

  • микросхема MFRC522.

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

Перед подключением RC522 к Arduino UNO желательно загрузить и установить библиотеку RFID Library для микросхемы MFRC522, работающей с метками в диапазоне HF по протоколу MIFARE. Плата Ардуино UNO использует цифровую логику с уровнем 3.3 В.

Через интерфейс SPI, используемый модулем RC522, передаются 4 цифровых сигнала:

  • MOSI (Master Out Slave In) — передает данные от ведущего (Out) устройства к ведомому (In);

  • MISO (Master In Slave Out) — передает данные от ведомого (Out) устройства ведущему (In);

  • SCLK (Serial Clock) — передает последовательный тактовый сигнал ведомым устройствам;

  • CS (Chip Select) — выбор микросхемы;

  • SS (Slave Select) — выбор ведомого.

Процесс подключения
Процесс подключения модуля.

В таблице приведено соответствие разъемов Ардуино и RC522/

Чип/контакт

Arduino Uno

RC522

Земля

GND

GND

Питание Ардуино 3,3 В

VCC

VCC

Перезагрузка

9

RST

Выбор

10

SDA(SS)

Команды

11

MOSI

Обратные данные

12

MISO

Тактовая частота

13

SCK

С RFID RC522 идут в комплекте две метки — на пластиковой карточки и в виде брелока. Также они могут докупаться отдельно. При удачном подключении на модуле загорится светодиод, указывающий на подачу питания к RFID. Можно запускать тестовый скетч из установленной библиотеки. Приближение метки к ридеру приведет к считыванию ее данных.

Автоматический замок с помощью модуля

Например, на базе RC522 делается электронный замок, управляющий модулем реле.

Принцип функционирования замка прост:

  • RFID читает номер (UID) метки с карты или брелока;

  • в скетч передается массив серийных номеров, имеющих разрешенный доступ;

  • номера меток, не попавшие в массив, игнорируются;

  • если номер метки совпал со значением из массива, то срабатывает реле;

  • через 5 сек замок уходит в режим ожидания.

При чтении идентификатора (UID) результат операции отображается на OLED-экране. При совпадении номеров на дисплее высвечивается «Unlocked» (разблокировано). При несовпадении идентификаторов на дисплее ничего не отображается. Пример кода скетча располагается тут rcl-radio.ru/?p=50041.

Надпись разблокировано
Надпись "Unlocked" высветится, если номера совпадут.

Настройка отпечатка пальца

Проект требует инсталляции библиотек:

  • LiquidCrystal_I2C_V112 — для дисплеев LCD1602;

  • Adafruit_Fingerprint — для получения отпечатка пальца;

  • SoftwareSerial и Wire — из стандартного набора Ардуино IDE.

Сканер Fingerprint выполняет следующие функции:

  1. Регистрирует отпечатки, для чего пользователь дважды прикладывает палец к оптическому датчику. На базе двух изображений создается шаблон, хранимый в создаваемой базе отпечатков.

  2. Сравнивает их. Палец прикладывается к датчику, генерируется его шаблон, копируется и сравнивается с хранимым в базе набором.

  3. Удаляет шаблон отпечатка из библиотеки.

При выполнении кода функции setup скетч решает 3 задачи:

  • настраивает режимы терминалов ввода и вывода;

  • инициализирует данные и выводит их значения на экран;

  • проверяет работу сенсора по снятию отпечатков.

В основном цикле программы (функция loop) решаются задачи:

  • опрос кнопок функцией Func_buttons_control();

  • функция Func_display_show() отображает на LCD-экране информацию;

  • процедура Func_sensor_communication() обменивается информацией с датчиком отпечатков пальцев;

  • управление отдельными частями модуля: зуммером, силовым ключом, светодиодами.

Установка флага FLG_state_WORK в единицу указывает на состояние устройства ENABLE. Через 5 секунд после установки производится копирование во флажок FLG_mode_ACCESS первоначальных значений.

Биометрический сканер
Сканер отпечатков пальцев.

Схема и скетчи

Существует большое разнообразие схем работы с модулем отпечатков пальцев. Они используют как стандартные скетчи библиотеки Adafruit Fingerprint, так и отличные от них, модифицированные, содержащие подробные комментарии и примеры, записанные в каталог examples. Все скетчи осуществляют вывод в терминал последовательного порта, а их содержимое размещено в файле examples/show_fingerprint_templates.ino по адресу wiki.iarduino.ru/page/skaner-otpechatkov-palcev/.

Настройка замка

Для отладки и компиляции кода проекта понадобится библиотека MFRC522. Ее можно найти под именем MFRC522, спустившись по меню Sketch > Include Libraries > Manage libraries, после чего установить ее. Для настройки замка также нужны библиотеки Adafruit SSD1306 и Adafruit GFX, необходимая для отображения информации. Перед установкой SSD1306 в нее требуется внести небольшие изменения.

Для этого следует найти заголовочный файл Adafruit_SSD1306.h в каталогах Arduino > Libraries и Adafruit SSD1306. Строку 70 в нем нужно «закрыть» комментарием, а 69 «открыть». Манипуляции вызваны установкой разрешения дисплея в 128×64 пикселей.

Другие возможные проекты

По данным IDTechEx, к началу 2020 г. оборот рынка RFID-меток составит $953 млн, или 15 млрд в количественном выражении, а к 2024 г. показатели возрастут до $1,974 млрд и 41,2 млрд, не считая продаж RAIN-микросхем.

Логотип компании
Логотип компании IDTechEx.

Основными сферами их применения станут:

  • розничная торговля одеждой;

  • маркировка багажа в аэропортах;

  • отслеживание перемещения активов.

Будет расти число проектов с применением технологии RFID-маркировки в способах и отраслях:

  • управления доступом к объекту;

  • мониторинга состояния и перемещения пациентов в медицинских учреждениях;

  • предупреждения краж в выставочных и торговых залах;

  • складской и транспортной логистики;

  • быстрой инвентаризации товара;

  • организации автоматической выдачи книг в библиотеках и архивах;

  • маркировки животных;

  • промышленности;

  • идентификации паспорта;

  • дистанционного управления устройствами.

Технологии на основе RFID-меток могут быть применены в любых проектах, где требуется контролировать информацию о расположении объекта, его маркированных качествах и свойствах.

Ссылка на основную публикацию