Акции
Блог
О 3DiY
  • О компании
  • Реквизиты
  • Партнеры
  • Клиенты
  • Вакансии
Оплата
Доставка
Гос. закупки
Товары под заказ
ВК Видео
Отзывы
Услуги
  • 3D печать
    • 3D печать пластиком FDM/FFF
    • 3D печать фотополимером
Контакты
  • Как до нас добраться
    8 (800) 500-45-93
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    3DIY
    Войти
    0Сравнение
    0Избранное
    0Корзина
    3D принтеры3D сканерыПластик для 3D принтераФотополимерыКомплектующие 3DКомплектующие ЧПУЗапчасти 3D принтеров по брендам3D печать на заказ
    3DIY
    Войти
    0Сравнение
    0Избранное
    0Корзина
    3DIY
    Телефоны
    8 (800) 500-45-93отдел продаж Россия
    8 (495) 565-35-93отдел продаж Москва
    E-mail
    info@3d-diy.ru — отдел продаж

    print@3d-diy.ru — 3D печать на заказ

    support@3d-diy.ru — тех. поддержка

    buh@3d-diy.ru — Бухгалтерия
    Адрес
    Москва, Павелецкая набережная, 2с1
    Как до нас добраться, см. тут
    Режим работы
    пн - пт 09:00—18:00
    0
    0
    0
    • Кабинет
    • 0Сравнение
    • 0Избранное
    • 0Корзина
    • Бренды
    • Акции
    • Услуги
      • Услуги
      • 3D печать
        • 3D печать
        • 3D печать пластиком FDM/FFF
        • 3D печать фотополимером
    • Компания
      • Компания
      • О компании
      • Реквизиты
      • Партнеры
      • Клиенты
      • Вакансии
    • Блог
    • Информация
      • Информация
      • Гарантия на товар
      • Возврат товара
      • Положение о персональных данных
      • Политика конфиденциальности
      • Согласие на получение рекламы
      • Пользовательское соглашение
      • Согласие на обработку персональных данных
      • Использование cookie-файлов
      • Договор-оферта
    • Контакты
      • Контакты
      • Как до нас добраться
    8 (800) 500-45-93отдел продаж Россия
    • Телефоны
    • 8 (800) 500-45-93 отдел продаж Россия
    • 8 (495) 565-35-93 отдел продаж Москва
    • info@3d-diy.ru — отдел продаж

      print@3d-diy.ru — 3D печать на заказ

      support@3d-diy.ru — тех. поддержка

      buh@3d-diy.ru — Бухгалтерия
    • Москва, Павелецкая набережная, 2с1
      Как до нас добраться, см. тут
    • пн - пт 09:00—18:00
    Главная
    Блог
    Модули
    RFID-модуль RC522

    RFID-модуль RC522

    RFID-модуль RC522
    Модули 1 января 2024

    Содержание

      • Обзор
      • Технические характеристики модуля
      • Интерфейсы и назначение выводов
      • Подключение
      • Часто задаваемые вопросы FAQ

      Обзор RFID модуля RC522

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

      RFID-modul-RC522-13.56MGc.jpg

      Рисунок 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.

      RFID-modul-RC522-naznachenie-vyvodov.jpg

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

      Назначение выводов интерфейса SPI:
      • SDA – выбор ведомого;
      • SCK –сигнал синхронизации;
      • MOSI – передача от master к slave;
      • MISO – передача от slave к master;
      • RST – вывод для сброса;
      • IRQ – вывод прерывания;
      • GND – земля;
      • Vcc –питание 3.3 В.
      Сигнал сброса RST – это сигнал, поступающий от цифрового выхода контроллера. При поступлении сигнала LOW происходит перезагрузка считывателя. Также ридер установкой на RST низкого уровня  сообщает, что находится в режиме сна, для вывода модуля из режима сна необходимо подать на данный вывод сигнал HIGH.

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

      Рассмотрим подключение модуля к плате Arduino. Нам понадобятся следующие детали:
      • плата Arduino Uno
      • плата прототипирования
      • модуль RFID-RC522
      • RFID метки диапазона 13,56 МГц
      • провода
      Подключение модуля RFID-RC522 к плате Arduino по будем производить по схеме соединений на рисунке 3.

      Skhema-soedinenij-RFID-modul-RC522-plate-Arduino-1024x908.jpg

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

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

      Raspinovka-razyoma-ICSP-Arduino-interfejsa-SPI.jpg

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

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

      Листинг 1
      //  Скетч к обзору модуля RFID RC522
      
      //  Вывод UID и типа метки
      
      //  3d-diy.ru
      
      
      
      // Подключение библиотек
      
      #include <SPI.h>
      
      #include <MFRC522.h>
      
      // контакты
      
      const int reset    9
      
      const int ss    10
      
      // Создание экземпляра объекта MFRC522
      
      MFRC522 rider(reset, ss);
      
      
      
      void setup() {
      
      // запуск Serial
      
      Serial.begin(9600);
      
      // запуск SPI
      
      SPI.begin();
      
      // инициализация MFRC522
      
      rider.PCD_Init();
      
      }
      
      void loop() {
      
      // Ожидание
      
      if ( ! rider.PICC_IsNewCardPresent())
      
      return;
      
      // чтение
      
      if ( ! rider.PICC_ReadCardSerial())
      
      return;
      
      // вывод данных
      
      Serial.print("UID=");
      
      view_data(rider.uid.uidByte,rider.uid.size);
      
      Serial.println();
      
      Serial.print("type=");
      
      byte piccType = rider.PICC_GetType(rider.uid.sak);
      
      Serial.print(rider.PICC_GetTypeName(piccType));
      
      Serial.println();
      
      delay(1000);
      
      }
      
      // преобразование в HEX
      
      void view_data (byte *buf, byte size) {
      
      for (byte j = 0; j < size; j++) {
      
      Serial.print(buf [j]);
      
      Serial.print(buf [j], HEX);
      
      }
      
      }
      В качестве меток используем брелки и карты, идущие к комплекте с модулем, а также клюющиеся метки Ultrasonic C (рисунок 5).

      rfid-metki.jpg

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

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

      Vyvod-dannyh-tipe-UID-schitvyemyh-metok.jpg

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

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

      Листинг 2
      //  Скетч к обзору модуля RFID RC522
      
      //  Дамп памяти метки
      
      //  3d-diy.ru
      
      
      
      // Подключение библиотек
      
      #include <SPI.h>
      
      #include <MFRC522.h>
      
      // контакты
      
      const int reset    9
      
      const int ss    10
      
      // Создание экземпляра объекта MFRC522
      
      MFRC522 rider(reset, ss);
      
      
      
      void setup() {
      
      // запуск Serial
      
      Serial.begin(9600);
      
      // запуск SPI
      
      SPI.begin();
      
      // инициализация MFRC522
      
      rider.PCD_Init();
      
      Serial.println("Start...");
      
      }
      
      
      
      void loop() {
      
      // Ожидание
      
      if ( ! rider.PICC_IsNewCardPresent())
      
      return;
      
      // чтение
      
      if ( ! rider.PICC_ReadCardSerial())
      
      return;
      
      // Вывод данных дампа памяти метки
      
      rider.PICC_DumpToSerial(&(rider.uid));
      
      }
      
      
      
      void viewData() {
      
      // Версия по для MFRC522
      
      byte v = rider.PCD_ReadRegister(rider.VersionReg);
      
      Serial.print(F("Version Software: 0x"));
      
      Serial.print(v, HEX);
      
      }
      И смотрим содержимое памяти для разных меток (рисунок 7). Метка Ultralight C всего 64 байта.

      Vyvod-dampa-pamyati-metok.jpg

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

      И еще рассмотрим вопрос записи информации на метку. Считывание данных с метки и запись данных на метку производится поблочно. Разные метки имеют разный размер блока. Для Ultralight C размер блока 4 байта. Скетч 3 – запись данных в память метки в первые два байта 15 блока. Получаем данные по последовательному порту и записываем в метку. Затем выводим содержимое блока в последовательный порт. Листинг 3
      //  Скетч к обзору модуля RFID RC522
      
      //  Запись данных на метку Ultralight C
      
      //  3d-diy.ru
      
      
      
      // Подключение библиотек
      
      #include <SPI.h>
      
      #include <MFRC522.h>
      
      // контакты
      
      const int reset    9
      
      const int ss    10
      
      // Создание экземпляра объекта MFRC522
      
      MFRC522 rider(reset, ss);
      
      
      
      // для последовательного порта
      
      String inStr0 = "";
      
      boolean strComplete0 = false;
      
      unsigned int page_serial;
      
      unsigned int data_serial;
      
      
      
      void setup() {
      
      // запуск Serial
      
      Serial.begin(9600);
      
      // запуск SPI
      
      SPI.begin();
      
      // инициализация MFRC522
      
      rider.PCD_Init();
      
      inStr0.reserve(200);
      
      }
      
      
      
      void loop() {
      
      //
      
      if (strComplete0) {
      
      Serial.println(inStr0);
      
      if(!parse_string0())
      
      {Serial.print("ERROR1");Serial.println(inStr0);}
      
      else {
      
      page_serial=max(min(15,page_serial),7);
      
      data_serial=min(1000,data_serial);
      
      }
      
      // очистить строку
      
      inStr0 = "";
      
      strComplete0 = false;
      
      }
      
      // Ожидание метки:
      
      if (rider.PICC_IsNewCardPresent()) {
      
      // чтение карты
      
      if (rider.PICC_ReadCardSerial()) {
      
      if(data_serial>0 && page_serial>0) {
      
      byte buf[] = {0, 0, 0, 0};
      
      buf[0]=highByte(data_serial);
      
      buf[1]=lowByte(data_serial);
      
      //Запись на карту на страницы 8,9 или 10 - 4 байта
      
      Serial.println(rider.GetStatusCodeName(
      
      rider.MIFARE_Ultralight_Write(page_serial, buf, 4)));
      
      // Вывод дампа данных
      
      rider.PICC_DumpToSerial(&(rider.uid));
      
      }
      
      }
      
      }
      
      delay(2000);
      
      
      
      }
      
      // SerialEvent
      
      void serialEvent() {
      
      while (Serial.available()) {
      
      // получить очередной байт:
      
      char data = (char)Serial.read();
      
      // /n - конец передачи
      
      if (data == '#')
      
      strComplete0 = true;
      
      else
      
      // добавить в строку
      
      inStr0 += data;
      
      }
      
      }
      
      
      
      // парсинг строки последовательного порта Serial
      
      boolean parse_string0() {
      
      int s1,s2;
      
      int length1= inStr0.length();
      
      
      
      if(inStr0.charAt(0)!='*')
      
      return false;
      
      if(inStr0.charAt(length1-1)!=';')
      
      return false;
      
      //
      
      for(int i=1;i<length1;i++)
      
      {if(inStr0.charAt(i)==';')
      
      {s1=i;break;}
      
      }
      
      page_serial= inStr0.substring(1,s1).toInt();
      
      // action
      
      for(int i=s1+1;i<length1;i++)
      
      {if(inStr0.charAt(i)==';')
      
      {s2=i;break;}
      
      }
      
      data_serial= inStr0.substring(s1+1,s2).toInt();
      
      return true;
      
      }
      И смотрим запись на карту данных из последовательного порта (рисунок 8).

      Zapis-na-kartu-dannyh-posledovatelnogo-porta.jpg

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


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

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

       

      Товары из статьи

      Быстрый просмотр
      RFID-модуль RC522 (13.56 МГц)image
      490 ₽
      588 ₽
      -17%
      RFID-модуль RC522 (13.56 МГц)
      0
      0
      Нет в наличии

      Это интересно

      Драйвер шагового двигателя A4988
      Модули
      Драйвер шагового двигателя A4988
      1 января 2024
      RFID-модуль RC522
      Модули
      RFID-модуль RC522
      1 января 2024
      Реле электромеханическое 10А 5В
      Модули
      Реле электромеханическое 10А 5В
      1 января 2024
      Драйвер двигателя L9110S
      Модули
      Драйвер двигателя L9110S
      1 января 2024
      Nodemcu Lua Wi-Fi на Esp8266
      Модули
      Nodemcu Lua Wi-Fi на Esp8266
      1 января 2024
      Wi-Fi модуль ESP-01
      Модули
      Wi-Fi модуль ESP-01
      1 января 2024
      • Комментарии
      Загрузка комментариев...
      Назад к списку
      • Все публикации277
        • 3D принтеры59
        • 3D печать64
        • ЧПУ10
        • Датчики27
        • Модули38
        • 3D сканеры1
        • Arduino механика6
        • Arduino платы8
        • Дисплеи6
        • Кейсы1
        • Компоненты13
        • Мировые новости35
        • Проекты7
        • Сопутствующие2
      Связаться с нами
      8 (800) 500-45-93
      8 (800) 500-45-93отдел продаж Россия
      8 (495) 565-35-93отдел продаж Москва
      E-mail
      info@3d-diy.ru — отдел продаж

      print@3d-diy.ru — 3D печать на заказ

      support@3d-diy.ru — тех. поддержка

      buh@3d-diy.ru — Бухгалтерия
      Адрес
      Москва, Павелецкая набережная, 2с1
      Как до нас добраться, см. тут
      Режим работы
      пн - пт 09:00—18:00
      info@3d-diy.ru — отдел продаж

      print@3d-diy.ru — 3D печать на заказ

      support@3d-diy.ru — тех. поддержка

      buh@3d-diy.ru — Бухгалтерия
      Москва, Павелецкая набережная, 2с1
      Как до нас добраться, см. тут
      Магазин
      Бренды
      Акции
      Каталог
      Услуги
      Компания
      О компании
      Реквизиты
      Партнеры
      Клиенты
      Вакансии
      Информация
      Гарантия на товар
      Возврат товара
      Положение о персональных данных
      Политика конфиденциальности
      Согласие на получение рекламы
      Пользовательское соглашение
      Согласие на обработку персональных данных
      Использование cookie-файлов
      Договор-оферта
      Помощь
      Условия оплаты
      Условия доставки
      Товары под заказ
      Гос. закупки
      Как сделать заказ
      Вопрос-ответ
      2013 - 2026 © 3DiY (Тридиай) - интернет-магазин комплектующих для 3D принтеров, ЧПУ станков и робототехники
      Конфиденциальность
      Оферта
      ГлавнаяКаталог0Корзина0ИзбранныеКабинет0Сравнение
      d =
      Наш сайт использует куки. Продолжая им пользоваться, вы соглашаетесь на обработку персональных данных в соответствии с политикой конфиденциальности.
      Согласен