Что такое RFID? Как это работает? Взаимодействие RFID модуля RC522 с Arduino

Rfid система контроля доступа для дверного замка

Давайте создадим небольшой проект на Arduino, чтобы продемонстрировать, как простой модуль RFID считывателя RC522 можно использовать для создания RFID системы контроля доступа для дверного замка. Наша программа будет сканировать уникальный идентификатор каждой RFID метки, когда она достаточно близко, чтобы запитываться от считывателя RC522.

Так выглядит результат.

Рисунок 13 Демонстрация работы RFID системы контроля доступа для дверного замка
Рисунок 13 – Демонстрация работы RFID системы контроля доступа для дверного замка

Конечно, этот проект можно привязать к открытию дверей, включению реле, включению светодиода или к чему-то еще.

Если вы не знакомы с символьными LCD дисплеями размером 16×2, то взгляните на эту статью.

Прежде чем мы перейдем к загрузке кода и сканированию меток, давайте посмотрим на принципиальную схему проекта.

Рисунок 14 RFID система контроля доступа для дверного замка. Подключение RFID считывателя RC522 и LCD дисплея к Arduino
Рисунок 14 – RFID система контроля доступа для дверного замка. Подключение RFID считывателя RC522 и LCD дисплея к Arduino

Всё! Теперь попробуйте приведенный ниже скетч в работе.

#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>

#define RST_PIN 9
#define SS_PIN 10

byte readCard[4];
String MasterTag = "20C3935E";	// ЗАМЕНИТЕ этот ID метки на ID своей метки!!!
String tagID = "";

// Создание объектов
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //Параметры: (rs, enable, d4, d5, d6, d7) 

void setup() 
{
  // Инициализация
  SPI.begin();        // SPI шина
  mfrc522.PCD_Init(); // MFRC522
  lcd.begin(16, 2);   // LCD дисплей

  lcd.clear();
  lcd.print(" Access Control ");
  lcd.setCursor(0, 1);
  lcd.print("Scan Your Card>>");
}

void loop() 
{
  
  // Ждем, пока не будет доступна новая метка
  while (getID()) 
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    
    if (tagID == MasterTag) 
    {
      lcd.print(" Access Granted!");
      // Вы можете написать здесь любой код, например, открывание дверей,
      // включение реле, зажигание светодиода или что-то другое, что взбредет вам в голову.
    }
    else
    {
      lcd.print(" Access Denied!");
    }
    
    lcd.setCursor(0, 1);
    lcd.print(" ID : ");
    lcd.print(tagID);
      
    delay(2000);

    lcd.clear();
    lcd.print(" Access Control ");
    lcd.setCursor(0, 1);
    lcd.print("Scan Your Card>>");
  }
}

// Чтение новой метки, если она доступна
boolean getID() 
{
  // Получение готовности для чтения PICC карт
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  { // Продолжать, если к RFID считывателю поднесена новая карта
    return false;
  }
  
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  { // Когда карта поднесена, считать серийный номер и продолжить
    return false;
  }
  
  tagID = "";
  for ( uint8_t i = 0; i < 4; i  ) 
  { // Карты MIFARE, кторые мы используем, содержат 4-байтовый UID
    //readCard[i] = mfrc522.uid.uidByte[i];
    tagID.concat(String(mfrc522.uid.uidByte[i], HEX)); // Сложить эти 4 байта в одну переменную String
  }
  tagID.toUpperCase();
  mfrc522.PICC_HaltA(); // остановить чтение
  return true;
}

Программа довольно проста. Сначала мы включаем необходимые библиотеки, определяем выводы Arduino, создаем объекты LCD и MFRC522 и определяем главную метку.

#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>

#define RST_PIN 9
#define SS_PIN 10

byte readCard[4];
String MasterTag = "20C3935E";	// ЗАМЕНИТЕ этот ID метки на ID своей метки!!!
String tagID = "";

// Создание объектов
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //Параметры: (rs, enable, d4, d5, d6, d7) 

В функции setup() мы инициализируем интерфейс SPI, объект MFRC522 и LCD дисплей. После этого мы печатаем на LCD дисплее приветственное сообщение.

void setup() 
{
  // Инициализация
  SPI.begin();        // SPI шина
  mfrc522.PCD_Init(); // MFRC522
  lcd.begin(16, 2);   // LCD дисплей

  lcd.clear();
  lcd.print(" Access Control ");
  lcd.setCursor(0, 1);
  lcd.print("Scan Your Card>>");
}

В функции loop() мы ждем, пока не будет отсканирована новая метка. Как только это будет сделано, мы сравним неизвестную метку с мастер-меткой, определенной в функции setup(). Всё! Если ID метки совпадает с ID мастера, доступ предоставляется, в противном случае в доступе будет отказано.

void loop() 
{
  
  // Ждем, пока не будет доступна новая метка
  while (getID()) 
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    
    if (tagID == MasterTag) 
    {
      lcd.print(" Access Granted!");
      // Вы можете написать здесь любой код, например, открывание дверей,
      // включение реле, зажигание светодиода или что-то другое, что взбредет вам в голову.
    }
    else
    {
      lcd.print(" Access Denied!");
    }
    
    lcd.setCursor(0, 1);
    lcd.print(" ID : ");
    lcd.print(tagID);
      
    delay(2000);

    lcd.clear();
    lcd.print(" Access Control ");
    lcd.setCursor(0, 1);
    lcd.print("Scan Your Card>>");
  }
}

Ключевым моментом в проекте является пользовательская функция getID(). Как только она просканирует новую карту, внутри цикла for она преобразует 4 байта UID в строки и объединяет их для создания одной строки.

boolean getID() 
{
  // Получение готовности для чтения PICC карт
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  { // Продолжать, если к RFID считывателю поднесена новая карта
    return false;
  }
  
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  { // Когда карта поднесена, считать серийный номер и продолжить
    return false;
  }
  
  tagID = "";
  for ( uint8_t i = 0; i < 4; i  ) 
  { // Карты MIFARE, кторые мы используем, содержат 4-байтовый UID
    //readCard[i] = mfrc522.uid.uidByte[i];
    tagID.concat(String(mfrc522.uid.uidByte[i], HEX)); // Сложить эти 4 байта в одну переменную String
  }
  tagID.toUpperCase();
  mfrc522.PICC_HaltA(); // остановить чтение
  return true;
}

Оригинал статьи:

Часто задаваемые вопросы (f.a.q.) | технологии rfid идентификации

Вопрос №1.

В описаниях RFID-меток, представленных на Вашем сайте, указана дистанция считывания, например, “до 10 метров”. При каких условиях производились измерения и с какими RFID-считывателями? Как понять, будет ли такая метка работать на такой же дистанции у нас на производстве?

Ответ:

  • Каждая RFID-метка, представленная на сайте www.isbc-rfid.ru должна иметь техническое описание (на странице описания продукта, ссылка находится в левом нижнем углу), в котором сказано, при каких условиях производилось тестирование либо указываются настройки считывателя, а иногда и модель считывателя, с помощью которого производились измерения. Если технического описания на метку на сайте не представлено, либо вы не можете его по каким-то причинам скачать, пожалуйста, обратитесь к нашим техническим специалистам поддержки rfid@isbc.ru.
  • Указанная дистанция считывания, может отличаться от фактической. При корректном монтаже оборудования и соблюдении рекомендаций документа “Mounting Instruction” (Инструкции по монтажу оборудования), указанная дальность не должна сильно отличаться от фактической. Часто бывает, что фактическая дальность бывает даже больше, если это критично для вашего бизнес-процесса, нужно снизить мощность излучателя.

Вопрос №2.В описании RFID-считывателя, представленного на Вашем сайте, указана дистанция считывания, например, “до 10 метров”. При каких условиях производились измерения и с какими RFID-метками? Как понять, будет ли такой считыватель работать на такой же дистанции у нас на производстве?
Ответ:

  • Каждый RFID-считыватель, представленный на сайте www.isbc-rfid.ru должен иметь техническое описание (на странице описания продукта, ссылка находится в левом нижнем углу), в котором сказано, с какими настройками считывателя производилось тестирование, иногда указывается конкретная модель RFID-метки, с помощью которой производились измерения. Если технического описания на считыватель не представлено, либо вы не можете его по каким-то причинам скачать, пожалуйста, обратитесь к нашим техническим специалистам поддержки rfid@isbc.ru.
  • Указанная дистанция считывания, может отличаться от фактической. При корректном монтаже оборудования и соблюдении рекомендаций документа “Mounting Instruction” (Инструкции по монтажу оборудования), указанная дальность не должна сильно отличаться от фактической. Часто бывает, что фактическая дальность бывает даже больше, если это критично для вашего бизнес-процесса, нужно снизить мощность излучателя.

Вопрос №3.

Каким образом мы можем получить программное обеспечение (в последующем обновления) для приобретенных у вас RFID-считывателей?

Читайте ещё про NFC:  Как пользоваться Huawei Share

  • Путем проведения серии экспериментов нужно понять, на каком расстоянии и при какой ориентации RFID-метки она находится в поле действия антенны. После чего нужно немного адаптировать Ваш бизнес-процесс таким образом, чтобы метки, которые не должны быть прочтены или запрограммированы были поодаль от антенны RFID-считывателя.
  • Если дальность считывания не критична можно снизить мощность излучателя RFID-считывателя. Затем после серии экспериментов выбрать оптимальную мощность.
  • Для считывателей Feig. Если вы знаете идентификатор RFID-метки (например, для UHF – это будет EPC-номер) то функциями RFID-считывателя нужно провести операцию инвентаризации, после чего EPC-номера всех меток (в случае UHF), оказавшихся в поле действия антенны будут переданы в ПО. Далее надо вызвать операцию Select с указанием конкретного номера метки. После чего вы можете быть уверенным, что работаете с нужной меткой.

Вопрос №5. RFID-считыватель и антенна, должны быть значительно удалены друг от друга. Какая максимальная длина кабеля?
Ответ: Мы рекомендуем рассчитывать длину кабеля исходя из требований по чувствительности оборудования, кроме того, исходя из опыта создания систем и внедрения рекомендуем производить рассчет длины кабельных линий таким образом, чтобы падение уровня сигнала было менее чем в 2 раза. Ниже перечислены рекомендации по рассчету для HF и UHF:

  • Для UHF. Падение уровня UHF сигнала на кабельной продукции, предлагаемой ISBC-RFID составляет до 0.5 дБ на 1 метр кабеля (для ). Таким образом сигнал угаснет в 2 раза на расстоянии около 12 метров.
  • Для HF. Падение уровня HF сигнала на кабельной продукции, предлагаемой ISBC-RFID составляет не более 0.1 дБ на 1 метр кабеля. Таким образом сигнал угаснет в 2 раза на расстоянии более 60 метров.

Вопрос №6.

Известно, что в России есть некоторые ограничения использование радиочастотных устройств в том числе RFID. Каковы они и где можно о них узнать более подробно?

Ответ: Действительно, в каждой стране есть свои ограничения на использование радиочастотных устройств. Каждая страна, тот или иной регион выделяет частотные диапазоны и частотные каналы, разрешенные для использования, а также назначает максимальное значение для эффективной излучаемой мощности. В Российской Федерации на все работающие радиочастотные устройства действует одно правило – они требуют прохождения процедуры “назначения радиочастот в установленном порядке” если не попадают под исключения. Другими словами – требуется лицензирование точек. Как правило это письменное обращение владельца в местное представительство Роскомнадзора (письмо, заявка через госуслуги и т.д.). В РФ действуют два основополагающих документа: “Решение ГКРЧ  7-20-03-001от 2007 года О выделении полос радиочастот” и последующие обновления и дополнения, а также Постановление правительства РФ  №539от 2004 года О порядке регистрации радиоэлектронных средств и высокочастотных устройств” и приложение, где описаны изъятия, то есть перечисляются устройства и частоты, которые регистрировать уже не нужно в связи с их массовым распространением, в основном в быту.

Читайте ещё про NFC:  Samsung с модулем nfc

Устройства RFID относятся к устройствам радиочастотным, а именно классу “устройств малого радиуса действия”. В РФ для них действуют два основных нормативных документа, которые разъясняют правила использования устройств радиочастотной идентификации. Точка, где действует RFID требует лицензирования то есть письменного заявления о том, что на конкретном объекте используется оборудование. RFID лицензируется, если применяемое устройство не перечисляется в изъятиях и не попадает под другие исключения (некоторые исключения, такие как изъятия, вступают в силу на долгосрочной основе, а другие назначаются на некоторый промежуток времени, в качестве примера приведем специальные условия на применение оборудования RFID на время проведения Кубка конфедерации 2021 года и назначение особых условий на время проведения Чемпионата мира по футболу FIFA 2021). По состоянию на 2021/2021 года рекомендуем руководствоваться информацией, приведенной в Решении ГКРЧ, а именно в Приложении №10 к решению ГКРЧ, тут приводится вся необходимая информация о частотах и мощности RFID, разрешенных к применению, а также указано на каких частотах и мощностях требуется регистрация объекта в ГКРЧ, в Роскомнадзоре.

Вопрос №1. Мы хотим приобрести настольный RFID-считыватель. Какой нам следует выбрать? Устройство должно уметь записывать информации на RFID-метку (то есть программировать метку).
Ответ: Все настольные считыватели, представленные ISBC-RFID обладают функциями записи и чтения.

Вопрос №2. Ознакомились с описанием на приборы компании Feig Electronic. Встретили описание нескольких режимов работы: Host mode, Scan mode, Notification mode, Buffered mode. Что означают эти режимы?
Ответ: 

  • Host mode – устройство работает под управлением компьютера. Например, выполняет процедуру инвентаризации RFID-меток только по команде с компьютера. То есть, лишь по команде опрашивает все метки, которые находятся в поле действия антенны.
  • Scan mode – это режим, аналогичный тому, что мы ежедневно наблюдаем при сканировании карточки Системы контроля доступа, приходя на работу или при сканировании карточки в метро – считыватель постоянно находится в режиме сканирования и как только наша карточка (или метка) оказывается в поле действия антенны, считыватель пересылает RFID-номер обнаруженной метки на контроллер или компьютер по интерфейсу USB, RS232, RS485 (в зависимости от наличия шины в устройстве). Этот режим часто применяется для подключения именно к СКУД применяя для этого интерфейс Wiegand (если таковой предусмотрен в конкретной модели).
  • Notification mode – устройство работает под управлением компьютера. Режим доступен только для приборов с интерфейсом Ethernet является аналогом Scan mode. При попадании новой метки в поле действия антенны считывателя на ПК поступает событие об обнаружении RFID-метки и данные о метке.
  • Buffered mode – устройство работает под управлением компьютера. Режим доступен при работе с любым интерфейсом: USB, RS232, RS485 или Ethernet. Отличается от Notificetion mode тем, что ПК периодически опрашивает буфер считывателя на наличие меток.


Вопрос №3. С помощью какого программного обеспечения можно настроить RFID-считыватель FEIG?
Ответ:

  • Для считывателей OBID i-scan HF / UHF Вам понадобится программное обеспечение ISO Start 201X. В данном программном обеспечении представлена древовидная структура всевозможных настроек считывателя, в данном ПО производится “тонкая настройка” всех доступных параметров, кроме того, можно проверить все функции, в том числе, считывание данных с RFID-меток и запись.
  • Для считывателей OBID classic-pro HF Вам понадобится программное обеспечение CPR Start 201X. В данном программном обеспечении представлена древовидная структура всевозможных настроек считывателя, в данном ПО производится “тонкая настройка” всех доступных параметров, кроме того, можно проверить все функции, в том числе, считывание данных с RFID-транспондера и запись.
  • Также, RFID-считыватель можно настраивать программно, подключившись к нему из Вашей программы с помощью набора разработчика “SDK Feig”.

Вопрос №4.

Под какими Операционными системами и на каких языках можно разрабатывать ПО

для интеграции оборудования FEIG в информационную систему предприятия?
Ответ: Вариантов несколько – применение SDK Feig, применение протокола LLRP. Ниже по тексту данные вопросы раскрываются более подробно.

Программное обеспечение Вы можете написать с применением SDK Feig Electronic в комплектность которого входит набор программных библиотек API, примеры с исходными кодами и исполняемыми файлами, документация. ПО может быть написано с “нуля” на основе исходных кодов примеров FEIG, но также, применяя библиотеки можно добавить функциональность работы с RFID считывателем в уже существующее ПО. SDK имеет несколько модификаций, доступен для следующих операционных систем:

  • Windows, язык программирования С ID ISC.SDK.Win (DLLs, C Class Library, Samples)
  • Windows, язык программирования C# ID ISC.SDK.NET (DLLs, .NET Class Library, Samples)
  • Linux, язык программирования С ID ISC.SDK.Linux (SOs, C Class Library, Samples)
  • Android, язык программирования С ID ISC.SDK.Android (SOs, C Class Library)
  • MacOS, язык программирования С ID ISC.SDK.MacOSX (DYLIBs, C Class Library)
  • Java — ID ISC.SDK.Java (DLLs/SOs, Java Class Library, Samples)
  • Windows CE, язык программирования C и C# ID ISC.SDK.WinCE (DLLs , C and . NET Class Libraries)
  • Микролинукс, встроенный в контроллер FEIG в считывателях ID ISC.LR2500-A and LRU3x00 — ID ISC.SDK.ACC-LR-FMB08 (SOs, C Class Library, Samples)
Читайте ещё про NFC:  Принципы контейнерных перевозок

SDK Feig для для интеграции RFID оборудования с информационными системами. Набор библиотек, примеров, документации. MacOS, Win, WinCE, Linux, Android

Для работы некоторых считывателей FEIG Electronic в составе ИС предприятия можно пользоваться программной оболочкой с протоколом LLRP (Low level reader protocol). На текущий момент LLRP оболочка доступна для считывателей LRU3000/3500/1002, MRU102. LLRP – стандартный протокол обмена данными с ридером, утвержденный международной организацией EPCGlobal Inc.

Вопрос №5

. Один из RFID-считывателей FEIG LRU1002/3000/3500 будет использоваться для контроля времени прохождения “кругов” на мото- вело- гонках. Каким образом настроить считыватель для получения наилучшего результата при замере времени? В поле действия антенны метки появляются практически одновременно, но время определяется с большой ошибкой – до 1 секунды.

Ответ: Для настройки любого из меречисленных RFID-считывателей Вам потребуется программное обеспечение ISO Start 201X. Рассмотрим алгоритм тонкой настройки для режима Buffered mode.

  • Нужно задать минимальную периодичность ответа RFID-метки, то есть метка должны сообщать о своем присутствии как можно чаще. Перейдите в пункт Configuration -> Complete configuration -> Operating mode -> BufferedReadMode -> Filter -> TransponderValidTime. В этом пункте нужно задать значение 00000 х 100 ms.
  • Нужно задать минимальное время паузы в ответе метки, так называемое “Время присутствия”. Данную настройку следует задавать если планируется опрашивать метку как можно чаще, пока она находится в поле действия антенны.  Перейдите в пункт Configuration -> Complete configuration -> Transponder -> PersistanceReset -> Antenna (num) ->PersistanceResetTime. В этом пункте нужно задать значение 00000 х 5 ms.

Вопрос №6.

Какими операционными системами семейства Windows поддерживаются RFID считыватели FEIG Electronics линейки OBID i-scan с интерфейсом USB?

Ответ: В настоящее время реализована поддержка следующих ОС:

  • Windows Server 2003®,
  • Windows Server 2008®,
  • Windows Server 2008® R2,
  • Windows XP® SP2,
  • Vista®,
  • Windows 7®,
  • Windows 8®.

Полный перечень устройств с интерфейсом USB с поддержкой операционной системы Windows 8:

  • ID ISC.MR100/101-USB
  • ID ISC.PR100/101-USB
  • ID ISC.PRH100/101-USB
  • ID ISC.MR102-USB
  • ID ISC.SPAD102-USB
  • ID ISC.PRH102-USB
  • ID ISC.LR/LRM1002-E
  • ID ISC.LR2500-A/-B
  • ID ISC.MU02.02
  • ID ISC.MRU102-USB
  • ID ISC.MRU200-USB
  • ID ISC.MRU200i-USB
  • ID ISC.PRHD102-USB
  • ID ISC.LRU3000 / ID ISC.LRU3500
  • ID ISC.LRU1002

Вопрос №7

. Компания приобрела комплект RFID оборудования FEIG, состоящий из UHF считывателя ID ISC.LRU и 4 антенн ID ISC.ANT600/270. Каким образом оптимально было бы разместить антенны в «складских воротах» для успешного сканирования отгружаемого со склада товара . Форма упаковки – картонные коробки на деревянной паллете. В каждой коробке от 10 до 50 RFID меток, лежащих «как попало», всего коробок около 10 штук на паллете.

Ответ: антенны можно разместить непосредственно в проходе по обе стороны. В Вашем случае на каждой стороне рекомендуем размещать по две RFID антенны одна над другой – это важно для увеличения вероятности успешного сканирования всех меток, попавших в зону действия антенн, поскольку RFID метки находятся не упорядоченно, а хаотично. Схема размещения представлена на рисунке снизу. Антенны можно крепить на специализированную рамку или непосредственно на стену. Для перекрытия всей зоны сканирования антенны можно доворачивать относительно друг-друга по вертикали или горизонтали.

  • X составляет от 30 до 40 см;
  • Y порядка 200 см;
  • Y1 = Y / 4;
  • Y2 = Y / 2;
  • Ширина в данном случае может быть от 1 метра.


Вопрос №8.

Наша компания применяет учетную систему 1С:Предприятие. Можно ли подключить RFID-считыватели FEIG к нашей системе учета 1С:Предприятие?


Ответ: специалисты компании ISBC и 1С провели плотную работу по интеграции RFID-считывателей в систему 1С: Предприятие. В редакции №2 «1С:Библиотека подключаемого оборудования» добавлена поддержка RFID-считывателей, поставляемых компанией ISBC. В частности, реализована поддержка немецкого RFID-оборудования компании FEIG Electronic (ФАЙГ Электроник) продуктовой линейки OBID i-scan (IDENTIFICATION).
Более подробно о 1С: Предприятие читайте в специализированном разделе, который посвящен RFID и 1С: Предприятие.
Вопрос №9.

Какие частоты по умочанию настраиваются на приборах FEIG Electornic UHF диапазона при выборе региона Russia?

Ответ: При выборе региона Russia используется частотный диапазон 866-868 МГц, с каналами 866.3 МГц, 866.9 МГц и 867.5 МГц. Условия по настройке мощности ERP смотрите в решении ГКРЧ о радиочастотах 07-20-03-001, приложение №10.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector