RFID модуль RC522 чтение запись
Сегодняшний рассказ будет про RFID RC522. Как всегда по традиции, собрать работающий макет на rfid считывателе rc522 можно будет за 20-30 минут, без пайки и каких-нибудь знаний в программировании.
Использовать модуль можно например для работы с эл. замком или для проверки «свой/чужой», записи на карту своих данных, но об этом разговор будет в другой статье. Эта же про сам модуль RFID RC-522.
RFID модуль RC522 чтение запись
В 1945 году Лев Сергеевич Термен изобрёл шпионское устройство (т. н. «жучок»), которое причисляют к первым предшественникам RFID-технологии.
RFID (Radio Frequency Identification) радиочастотная идентификация – технология которая основана на электромагнитном радиочастотном излучении для обмена данными. RFID метки можно использовать для чтения и записи. Данные передаются считывателю бесконтактным способом путем модулирования несущей частоты от радиосигнала считывателя.
Преимущества технологии RFID:
- бесконтактная
- возможность скрытой установки меток
- высокая скорость считывания данных
- трудно подделать(протокол Mifare®. — торговая марка, имеет криптозащиту)
rfid rc522 библиотека
Используя специальную библиотеку скачать и посмотрев примеры можно без труда собрать устройство позволяющее считать UID карты и использовать в своих разработках, например для открытия электронного замка, или идентификации держателя карты.
запись rfid rc522
Запись на карту производится чуть посложнее чем считывание. Как это сделать будет разобрано в следующей статье. На карту из комплекта можно записать до 1Кбайт в энергонезависимую память EEPROM
rfid rc522 удобно использовать с Нано
Как я и писал выше удобнее всего использовать Нано из-за её малых размеров и меньшей стоимости.
RFID метка
RFID метка – это маленькое устройство с антенной. Антенна в разы больше чипа с данными. Чтобы прочитать эти данные нужен RFID считыватель. Метку помещают в корпус, в нашем случае она находится в карте и в брелоке.
Различные виды меток.
- RFID браслет
- Карта пластиковая
- Брелок в пластмассовом корпусе
- Различные кольца, брелоки для ключей, ожерелья.
- Можно изготовить в виде значков.
Активные и Пассивные метки.
Пассивные RFID метки не имеют источника питания и поэтому нет необходимости в замене батареек.
Ток в антенне образуется электромагнитным сигналом от RFID считыватель.
Можно скрыть считыватель за какой-нибудь панелью и использовать незаметно.
В памяти каждой метки находится идентификационный номер UID и 1024 байта данных или 1 килобайт энергонезависимой памяти EEPROM. для записи различных данных. Поднеся метку к считывателю можно считать информацию. Для передачи данных метка используют энергию считывателя. Расстояние считывания до десятков метров. Зависит от применяемого считывателя, а так же от метки. Активные можно считывать и на больших расстояниях.
Наш модуль rfid rc522 позволяет считывать метки до 5-7 см.
rfid модуль rc522 13.56 mhz с SPI-интерфейсом.
В комплекте к модулю идут 2 RFID-метки – в виде карты и брелока.
Метки могут работать на разных частотах.
LF (125 — 134 кГц),
HF (13.56 МГц),
UHF (860 — 960 МГц).
Метки работающие на частотах 13,56 МГц сравнительно дешёвые, хорошо стандартизированы. Применяются в платежных системах, логистике, идентификации личности. Для частоты 13,56 МГц разработан стандарт ISO 14443 (виды A/B). На основе этого стандарта работают системы оплаты проезда общественного транспорта.
По способам работы они тоже отличаются.
- Могут работать только на чтение – на них можно записать информацию только 1 раз
- Однократно записываемые. Поставляются без информации. Возможна запись всего 1 раз.
- Многократно записываемые. Можно записывать информацию тысячи раз.
Безопасность.
По поводу RFID меток есть много дискуссий.
В магазинах сейчас продаётся много одежды со встроенными чипами на основе RFID меток. Такая метка содержит информацию о изделии. Покупая такую вещь со встроенной меткой вы даже не догадываетесь, что её можно считывать удалённо даже без вашего ведома. При хорошем считывателе до десятков метров. Например войдя в тот же магазин где вы приобрели товар, продавец может знать что вы у него покупали. Также в магазинах используются наклейки и этикетки.
Другая проблема – это кража данных «скимминг». Используя сканер для чтения или дублирования информации.
Для предотвращения этого используйте специальные чехлы…
RFID-модуль RC522
Радиочастотная идентификация (RFID) — это технология бесконтактной идентификации объектов при помощи радиочастотного канала связи. Идентификация объектов производится по уникальному идентификатору, который имеет каждая электронная метка. Считыватель излучает электромагнитные волны определенной частоты. Метки отправляют в ответ информацию – идентификационный номер, данные памяти и пр.
Метки бывают двух типов: активные и пассивные (без встроенного источника энергии, питаются от тока, индуцированного в антенне сигналом от ридера). Метки работают на разной частоте: LF (125 — 134 кГц), HF (13.56 МГц), UHF (860 — 960 МГц). Метки бывают только для чтения или на них можно заносить информацию (изменять существующие данные). В Arduino в качестве считывателя используют популярный модуль RFID-RC522. Модуль выполнен на микросхеме MFRC522 фирмы NXP, которая обеспечивает работу с метками HF (на частоте 13,56 МГц). В комплекте с модулем RFID-RC522 идут две метки, одна в виде карты, другая в виде брелока.
Купить модуль RC-522 на AliExpress
Карточки и брелоки можно купить отдельно. Также можно использовать для опытов обычные билеты московского транспорта (наземный транспорт и метро), которые также используют технологию RFID.
Технические характеристики
- Напряжение питания: 3.3V
- Потребляемый ток :13-26mA
- Рабочая частота: 13.56MHz
- Дальность считывания: до 6 см
- Интерфейс: SPI
- Скорость передачи: максимальная 10МБит/с
- Размер: 40мм х 60мм
Микросхема MFRC522 поддерживает интерфейсы SPI, UART и I2C. Выбор интерфейса осуществляется установкой логических уровней на определенных выводах микросхемы. В Arduino принято использовать SPI.
Назначение выводов интерфейса SPI:
- SDA – выбор ведомого
- SCK – сигнал синхронизации
- MOSI – передача от master к slave
- MISO – передача от slave к master
- IRQ – вывод прерывания
- GND – земля;
- RST – вывод для сброса
- Vcc –питание 3.3 В
Выводы модуля подключаются к цифровым пинам Arduino
На платах Arduino есть разъём ICSP, который можно использовать для работы с интерфейсом SPI.
Библиотека MFRC522
Установим через менеджер библиотек вариант MFRC522 (домашняя страница).
В состав библиотеки входят несколько примеров, а также компонент для Fritzing. Для первого знакомства запустите скетч DumpInfo. В комментариях указаны варианты подключения для разных плат. Стандартный вариант для Arduino Uno/Nano.
При поднесении карточки в мониторе порта увидите большую таблицу данных. Дождитесь полной загрузки данных и обратите внимание на данные в блоке 0 — там можно увидеть идентификатор.
Но у вас нет необходимости вручную считывать информацию из массива данных, идентификатор можно получить через вызов функции. В начале есть отдельная строка Card UID: 77 E7 BC 3A.
Рассмотрим упрощённый пример. Суть в следующем. Инициализируем объект класса MFRC522 и проверяем различные условия. Если к ридеру не поднесли карточку, то выходим из функции loop(), если прочитать карточку не можем, то также выходим из функции. Если оба условия всё же выполнились (есть карта и данные с неё), то выполняем уже нужный код.
Подносим карточку и брелок из комплекта (MIFARE 1 KB), а также карточки московского транспорта (MIFARE Ultralight or Ultralight C). Идентификатор карточки выводится в десятичном формате.
Вход по пропускам
Каждая карточка имеет свой идентификатор, который можно узнать после запуска скетча библиотеки DumpInfo. Запомним идентификатор и напишем свой скетч для проверки. Если идентификатор совпадает, то выводим сообщение (включаем светодиод, открываем ворота и т.д.). Если идентификатор не совпадает, то выводим сообщение о запрете. Карточку с правом доступа отдаём коту (вешаем на шею) и проверяем.
Меня программа не пустила на порог собственного дома, а кота пустили. «Умный дом» — угроза человечеству.
Запись и чтение пользовательских данных
Рассмотрим два примера, которые входят в состав библиотеки — rfid_write_personal_data и rfid_read_personal_data. Они позволяют записать, а потом считать данные с карточки.
Сначала загрузим скетч для записи данных. После прошивки подносим карточку к ридеру, в мониторе порта просят ввести фамилию, которую нужно завершить символом решётки. После успешной записи нужно ввести имя и опять с завершающим символом решётки.
Затем прошиваем плату вторым примером и снова подносим карточку. Ридер считает данные и выведет их в монитор порта.
Подключение к плате ESP32
У платы ESP32 расположение выводов отличается от Arduino Uno, поэтому схема подключения будет следующей.
Библиотека MFRC522 должна работать без проблем.
Функции библиотеки
PCD_DumpVersionToSerial() — выводит версию прошивки ридера в монитор порта
PICC_IsNewCardPresent() — проверяет наличие поднесённой метки
PICC_ReadCardSerial() — считывает данные с метки
PICC_DumpToSerial() — выводит данные метки в монитор порта
Обзор модуля RC522 RFID
В этой статье расскажу о технологии RFID и приведу пример подключения RFID-модуль RC522 к Arduino.
Технические параметры
►Основная микросхема микросхеме: RC522;
►Напряжение питания: 3,3 В;
►Потребляемый ток: 13 – 26 мA;
►Рабочая частота: 13,56 MГц;
►Поддерживаемые типы карт: Mifare1 s50, Mifare1 s70 , MIFARE Ultralight, Mifare Pro, MIFARE DESFire;
►Дальность считывания: 0
60 мм;
►Интерфейс: SPI, максимальная скорость передачи 10 МБит/с;
►Рабочая температура: от -20 до 80 °C;
►Размер модуля: 40 х 60 мм;
►Вес комплекта: 22 г.
Как работает RFID?
Полное название RFID (Radio Frequency IDentification) — радиочастотная идентификация, широко используемая во многих отраслях, для отслеживания персонала, контроля доступа, управления цепочками поставок, отслеживания библиотечных книг, системы начисления бонусов и других задач.
Система RFID состоит из двух основных компонентов: транспондера (метки) прикрепленного на объекте и устройства считывания карт (приемопередатчик).
Устройство считывания RFID-карт включает в себя радиочастотный модуль, блок управления и антенную катушку, которая генерирует высокочастотное электромагнитное поле. С другой стороны, метка обычно представляет собой пассивный элемент, состоящий только из антенны и микросхемы. Поэтому, когда метка (карта или брелок) находится близко к электромагнитному полю устройства считывания карт (приемопередатчик). В его антенне образуется индукционное напряжение, которое используется в качестве источника питания микросхемы.
Обзор модуля RC522, RFID
Модуль RFID RC522 основан на микросхеме MFRC522 от NXP. Поставляется с двумя метками, RFID-картой и брелком с объемом памяти 1 КБ.
Модуль RFID RC522 создает электромагнитное поля с частотой 13,56 МГц, которое используется для связи с RFID метками (стандартные метки ISO 14443A). Для взаимодействия с контроллерами, модуль использует 4-х контактный интерфейс SPI. Так же, модуль поддерживает протоколы связи I2C и UART.
Дополнительно, выведен контакт прерывания IRQ, которой позволяет опрашивать модуль только тога, когда приложили карту.
Назначение контактов:
► VCC — Вывод питание модуля, от 2,5 до 3,3 вольт.
► RST — Вывод сброса и отключения питания. При установки вывода в низкое состояние, модуль отключается.
► GND — Вывод заземления.
► IRQ — Вывод прерывания.
► MISO / SCL / Tx — Вывод интерфейс SPI, I2S и UART включен.
► MOSI (Master Out Slave In) — Вход SPI.
► SCK — Вывод тактовых импульсов.
► SDA / SS / Rx — Вывод интерфейс SPI, I2S и UART включен.
Напряжение питание модуля:
Рабочее напряжение модуля составляет от 2,5 до 3,3 В , но логические выводы могут работать от 5 В , поэтому мы можем напрямую подключать его к Arduino или любому 5 В логическому микроконтроллеру без использования какого-либо преобразователя логического уровня.
Подключение модуля RC522 RFID к Arduino UNO
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Считыватель RFID, RC522, 13.56MHz x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
► Провода DuPont M-F, 20 см x 1 шт.
Подключение:
В этом примере покажу как подключить модуль RC522 к Arduino UNO и считаем данные с карты и брелка.
Для начала подключим питание, вывод VCC на модуле RC522 к 3,3 В на Arduino UNO, а выводу GND — к земле. Вывод RST можно подключить к любому выводу Arduino, в примере используем вывод 5. Вывод IRQ не подключен, поскольку библиотека Arduino, которую мы собираемся использовать, не поддерживает его.
Теперь осталось подключить интерфейсный SPI. Для плат Arduino UNO и Nano, эти контакты являются цифровыми 13 (SCK), 12 (MISO), 11 (MOSI) и 10 (SS).
Установка библиотеки:
Для работы с RFID модулем RC522 нам понадобится библиотека MFRC522, которая упрощает чтение и запись в RFID матки. «Скетч» -> «Подключить библиотеку» и нажимает «Управлять библиотеками…»
Откроется новое окно «Менеджер библиотек», в окне поиска вводим «MFRC522» и устанавливаем библиотеку.
Программа:
Данный скетч просто считывает уникальный UID карты и отображает его в «Мониторинге порта«.