Arduino rfid модуль mfrc522: делаем простой сканер

Использование RFID модуля MFRC522 и Ардуино

Сделаем на основе RFID-считывателя MFRC522 и микроконтроллера Arduino простой в использовании ключ или ключ-сканер брелка.

Если у вас есть модуль RFID MFRC522, светодиоды, резисторы, провода, arduino uno, макетная плата и 9-вольтная батарея (по желанию), тогда вы сможете сделать этот интересный проект.

Комплектующие

Как мы уже перечислили выше, для создания этого проекта вам понадобятся:

  • модуль RFID MFRC522,
  • светодиоды,
  • резисторы,
  • провода,
  • arduino uno,
  • макетная плата,
  • 9-вольтная батарея (опция).

Модуль RFID MFRC522 можно купить в большинстве интернет-магазинов, кроме того его можно найти в таких магазинах, как Амазон или АлиЭкспресс. Остальные детали довольно простые и, скорее всего, они у вас есть, но даже если нет, их легко купить или взять со старых проектов или плат

И, конечно, нам понадобится Arduino IDE – среда разработки для плат и микроконтроллеров Ардуино.

Подключаем RFID MFRC522 к Arduino

Подключите RFID к ардуино, соединения всех контактов ниже:

RFID → Arduino
VCC → 3.3В
RST → D9
GND → GND
MISO → D12
MOSI → D11
SCK → D13
NSS (или SDA) → D10

Подключаем светодиоды к Arduino

Подключите красный светодиод к контакту 8, а зеленый – к контакту 7 с резистором 1 МОм перед ним. Затем заземлите светодиоды.

Подключаем аккумуляторную батарею 9В

Подключите аккумуляторную батарею 9В сначала к держателю батареи, а затем соедините плюс и VIN на ардуине и GND (замлю) батареи к GND на ардуине.

Код проекта

Вы можете скачать библиотеку (zip-файл) и взять код для Ардуино ниже. После загрузки кода красный светодиод должен быть включен. Если вы поднесете 13,56 Mhz ID-карту к сканеру, зеленый светодиод должен будет включиться.

Подключение RF >

RFID метки стали неотъемлемой частью нашей жизни, без них немыслимы современные системы автоматизации и умные устройства. Ардуино предоставляет нам отличные возможности использовать современные технологии даже в начальных проектах. В этой статье мы расскажем, что такое RFID, сделаем обзор стандартов , типов карточек, узнаем как подключать популярные RFID-считыватели RC522 и RDM3600 к Arduino.

Что такое RFID

RFID (радиочастотная идентификация) – это метод обеспечения передачи, записи и хранения данных при помощи радиосигналов. Каждая RFID-система включает в себя считыватель/ридер и RFID-метку, в которой хранятся данные. Метки состоят из двух частей – интегральной схемы и антенны. Интегральная схема позволяет хранить и обрабатывать данные, антенна – принимать и передавать информацию.

Все RFID-системы можно разделить по дальности действия:

  • Ближней идентификации – расстояние не более 20 см;
  • Средней идентификации – расстояние от 20 см до 5 м;
  • Дальней идентификации – максимум 300 м.

С точки зрения частот можно выделить:

  • Системы, работающие в низкочастотном диапазоне (125 кГц, 134 кГц);
  • Работающие в среднечастотном диапазоне (13,56 МГц);
  • Работающие в высокочастотном диапазоне (800 МГц – 2, 4 ГГц).

Наиболее популярным диапазоном является среднечастотным – он широко используется в транспортных приложениях и других проектах, где требуется перезаписывание карт. Основными стандартами являются ISO 14443, ISO 15693 и EPC. На основе стандарта ISO 14443 изготавливаются смарт-карты. ISO 15693 используется для перезаписывания меток. EPC – аналог штрихкодов, имеет более простую и понятную структуру.

ВЧ диапазон начали использовать недавно, в основном его применяют для складских приложений. Для этого диапазона используются стандарты ISO 18000 и EPC. Стандарты ISO 18000 вызывают наибольший интерес, они используются в приложениях с метками с увеличенной дальностью. Для ISO 18000 также можно выделить несколько стандартов, различающихся по частоте:

  • ISO 18000-1 (определение тех параметров, которые необходимо стандартизировать);
  • ISO 18000-2 (для параметров с бесконтактным интерфейсом связи менее 135 кГц);
  • ISO 18000-3 (для бесконтактного интерфейса на частоте 13,56 МГц);
  • ISO 18000-4 (для частоты 2, 45 ГГц);
  • ISO 18000-6 (для частоты 860-930МГц);
  • ISO 18000-7 (для частоты 433 МГц).

Преимущества RFID

  • Не требуется прямая видимость;
  • Практически 100% идентификация сигнала;
  • Возможность применения в агрессивной среде;
  • Долгий срок службы;
  • RFID-метку трудно подделать;
  • Возможность хранения и передачи большого объема информации.

Области применения RFID идентификации

RFID-технология часто используется в розничной торговле, библиотеках и архивах, логистике, системах контроля и управления доступом (СКУД), инициализации людей, удостоверении подлинности товаров.

Для идентификации персонала самым популярным форматом являются пластиковые бесконтактные карты и бесконтактные брелки. С их помощью можно регистрировать вход/выход объектов на территории через точки прохода – ворота, КПП. Основной задачей СКУД является управление доступом – например, ограничение в доступе на какую-либо территорию, идентификация лиц, которые могут попадать на территорию. Также могут решаться и дополнительные задачи – контроль рабочего времени для персонала, ведение базы посетителей, работа с системами безопасности, расчет заработной платы.

RFID-брелки используются и для подъездных домофонов. Для открытия дверей чаще всего используются брелки Proximity, то есть брелки ближнего действия, работающие на расстоянии 10-15 см. Proximity также делятся на несколько форматов – наиболее популярные на сегодняшний день EM-Marin, HID для бесконтактных ключей и MIFARE, к которым относятся бесконтактные смарт карты.

Краткое описание Arduino модулей

Модуль Arduino RFID RC522

Модуль RFID RC522 выполнен на основе схемы MFRC522, которая обеспечивает беспроводную коммуникацию на частоте 13,56 МГц. Подключать микросхему можно по интерфейсу SPI, I2c и UART. Стандарт протокола NFC Reader ISO 14443.

Технические характеристики модуля RFID RC522:

  • Напряжение питания 3,3 В;
  • Максимальный потребляемый ток 30 мА;
  • Частотная полоса 13,55-13,57 МГц;
  • Расстояние считывания до 25 мм;
  • Рабочая температура от -20С до 80 С.

Распиновка модуля изображена на рисунке. Контакт SDA (SS, CS, NSS) отвечает за выбор ведомого устройства. Выход SCK является тактовым сигналом SPI. MOSI – отвечает за передачу данных от мастера к ведомому, MISO – от ведомого к мастеру. IRQ – выполняет прерывание. RST – выполняет прерывание.

RDM6300 – бесконтактный считыватель, который используется для дистанционного считывания номера RFID брелка и передачи номера через UART на микроконтроллер, управляющий замком в системах доступа. Устройство обладает несколькими преимуществами – невысокая цена и простота в установке. Чаще всего используется в системах контроля доступа в дома, гаражи, офисы, квартиры и другие здания с электромеханическим замком. Считыватель используется для чтения карт EM4100/TK4100. RDM6300 может монтироваться в стену или в корпус. В качестве микроконтроллера обычно применяется Ардуино.

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

  • Максимальный потребляемый ток 50 мА;
  • Напряжение питания 5 В;
  • Рабочая частота 125 кГц;
  • Рабочие температуры от -10С до 70 С.

Распиновка изображена на рисунке.

Пин TX отвечает за передачу данных, RX – за прием. 3 выход не используется.

Для P2 выходы ANT1 и ANT2 используются для подключения антенны.

Подключение RC522 к Ардуино

Для подключения понадобятся плата Ардуино, считыватель RC522, компьютер, провода и беспроводная RFID метка.

Подключается модуль RC522 к ардуино по следующей схеме:

Напряжение питания обеспечивается от 2,5 до 3,3 В. Выход RST подключается к D9 пину на ардуино, SDA – к D10, MOSI – D11, MISO – D12, SCK – D13. В данном случае рассмотрены платы Arduino Nano v3 и Arduino Uno. После того как все будет подключено, на RC522 загорится индикатор.

Плата Ардуино оснащена дополнительным разъемом ICSP, который используется для работы по интерфейсу SPI. Распиновка для него изображена на рисунке, выводы с модуля RC522 можно подключить к этому разъему.

Для работы с модулем нужно установить библиотеку RFID Library for MFRC522. После установки нужно загрузить тестовый скетч для считывания номера карты cardRead, включить мониторинг последовательного порта. Затем метку нужно поднести к ридеру, произойдет инициализация метки и на мониторе появится следующее:

В данном примере произведено считывание трех различных меток.

Можно выбрать другой пример – DumpInfo, который также считает данные с карты. В результате на экране появятся тип карты и информация, которая состоит из 16 сектором памяти по 4 блока.

RFID-модуль RC522

  • Рисунок 1. RFID модуль RC522

    Преимущества технологии RFID:

    • бесконтактная
    • возможность скрытой установки меток
    • высокая скорость считывания данных
    • возможность установки во вредных средах
    • невозможность подделки

    Существует большое разнообразие RFID-меток. Метки бывают активные и пассивные (без встроенного источника энергии, питаются от тока, индуцированного в антенне сигналом от ридера). Метки работают на разной частоте: LF (125 – 134 кГц), HF (13.56 МГц), UHF (860 – 960 МГц). Приборы, которые читают информацию с меток и записывают в них данные, называются ридерами (считывателями). В проектах Arduino в качестве считывателя очень часто используют модуль RFID-RC522 (рисунок 1). Модуль выполнен на микросхеме MFRC522 фирмы NXP, которая обеспечивает работу с метками HF (на частоте 13,56 МГц). В комплекте с модулем RFID-RC522 идут две метки, одна в виде карты, другая в виде брелока.

    Технические характеристики RFID-модуля RC522

    • Напряжение питания: 3.3V;
    • Потребляемый ток :13-26mA;
    • Рабочая частота: 13.56MHz;
    • Дальность считывания: 0 – 60 мм;
    • Интерфейс: SPI;
    • Скорость передачи: максимальная 10МБит/с;
    • Размер: 40мм х 60мм;

    Интерфейсы и назначение выводов

    Микросхема MFRC522 поддерживает интерфейсы SPI, UART и I2C (см. рисунок 2). Выбор интерфейса осуществляется установкой логических уровней на определенных выводах микросхемы. На данном модуле выбран интерфейс SPI.

    Рисунок 2. RFID модуль RC522 – назначение выводов

    Назначение выводов интерфейса SPI:

    • SDA – выбор ведомого;
    • SCK –сигнал синхронизации;
    • MOSI – передача от master к slave;
    • MISO – передача от slave к master;
    • RST – вывод для сброса;
    • IRQ – вывод прерывания;
    • GND – земля;
    • Vcc –питание 3.3 В.

    Сигнал сброса RST – это сигнал, поступающий от цифрового выхода контроллера. При поступлении сигнала LOW происходит перезагрузка считывателя. Также ридер установкой на RST низкого уровня сообщает, что находится в режиме сна, для вывода модуля из режима сна необходимо подать на данный вывод сигнал HIGH.

    Подключение модуля к плате Arduino

    Рисунок 3. Схема соединений для подключения RFID модуль RC522 к плате Arduino

    На платах Arduino есть разъём ICSP. Он используется для работы по интерфейсу SPI. Назначение контактов разъёма ICSP представлено на рисунке 4. Поэтому можно для соединений использовать контакты разъёма ICSP.

    Рисунок 4. Распиновка разъёма ICSP Arduino для интерфейса SPI

    Для программирования модуля будем использовать arduino-библиотеку MFRC522, которую можно скачать на github (https://github.com/miguelbalboa/rfid). Загружаем на плату Arduino скетч из листинга 1 для получения типа метки и ее UID (уникального идентификатора).

    Листинг 1 В качестве меток используем брелки и карты, идущие к комплекте с модулем, а также клюющиеся метки Ultrasonic C (рисунок 5).

    Рисунок 5. RFID-метки для модуля RFID RC522

    После загрузки скетча открываем монитор последовательного порта и видим вывод данных о типе и UID подносимой к считывателю метки (рисунок 6).

    Рисунок 6. Вывод данных о типе и UID считываемых с меток

    Любопытно посмотреть содержимое памяти метки (дамп памяти). Загрузим на плату Arduino скетч из листинга 2 для чтения и вывода в последовательный порт дампа памяти метки метки.

    Листинг 2 И смотрим содержимое памяти для разных меток (рисунок 7). Метка Ultralight C всего 64 байта.

    Рисунок 7. Вывод дампа памяти меток

    И еще рассмотрим вопрос записи информации на метку. Считывание данных с метки и запись данных на метку производится поблочно. Разные метки имеют разный размер блока. Для Ultralight C размер блока 4 байта. Скетч 3 – запись данных в память метки в первые два байта 15 блока. Получаем данные по последовательному порту и записываем в метку. Затем выводим содержимое блока в последовательный порт. Листинг 3 И смотрим запись на карту данных из последовательного порта (рисунок 8).

    Рисунок 8. Вывод дампа памяти меток

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

    1. Что делать, если модуль не читает метку?
    • Проверьте правильность подключения модуля;
    • Метка не поддерживается данным ридером.

    Урок 6. Arduino считываем метки (RF >Уроки и проекты /

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

    Для начала необходимо установить библиотеку RFID Library for MFRC522.

    Контакты на модуле RFID-модуль RC522 необходимо подключить к Ардуине. Для подключения удобно использовать провода папа-мама.

    Описание контактов у RFID-модуля RC522:

    • VCC — Питание. Необходимо 3.3V;
    • RST — Reset. Линия сброса. Ни в коем случае не подключать к пину RESET на CraftDuino! Данный пин цепляется на цифровой порт с PWM;
    • GND — Ground. Земля
    • MISO — Master Input Slave Output — данные от ведомого к ведущему, SPI;
    • MOSI — Master Output Slave Input — данные от ведущего к ведомому, SPI;
    • SCK — Serial Clock — тактовый сигнал, SPI;
    • NSS — Slave Select — выбор ведомого, SPI;
    • IRQ — линия прерываний;
    MFRC522 Arduino Uno Arduino Mega Arduino Nano v3 Arduino Leonardo/Micro Arduino Pro Micro
    RST 9 5 D9 RESET/ICSP-5 RST
    SDA(SS) 10 53 D10 10 10
    MOSI 11 (ICSP-4) 51 D11 ICSP-4 16
    MISO 12 (ICSP-1 ) 50 D12 ICSP-1 14
    SCK 13 (ICSP-3) 52 D13 ICSP-3 15
    3.3V 3.3V 3.3V Стабилизатор 3,3В Стабилизатор 3,3В Стабилизатор 3,3В
    GND GND GND GND GND GND

    В комплекте с модулем RFID-RC522 идут две метки, одна в виде пластиковой карточки, а вторая в виде брелка. При необходимости их можно докупить отдельно.

    После того как все будет подключено на модуле будет гореть индикатор, это говорит о том что питание поступает на RF >. Пришло время запустить пробный скетч который находится в библиотеке которую мы установили.

    Необходимо проверить правильность заданных констант:

    Теперь загружаем скетч в ардуину и включаем Мониторинг последовательного порта.

    Подносим метку к ридеру и модуль считает все данные с данной метки, например уникальный идентификатор метки UID.

    Видео работы RFID-RC522:

    Источники:

    http://arduinomaster.ru/datchiki-arduino/podklyuchenie-rfid-k-arduino/

    http://3d-diy.ru/wiki/arduino-moduli/rfid-modul-rc522/

    http://lesson.iarduino.ru/page/urok-6-arduino-schityvaem-metki-rfid-modul-rc522

    http://www.zizibot.ru/articles/programming/selfbalance-robot-arduino-nano-mpu6050/

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