Рис. 1. Примеры устройств RFID
Идентификация объектов производится по уникальному цифровому коду, который считывается из памяти электронной метки, прикрепляемой к объекту идентификации. Считыватель содержит в своем составе передатчик и антенну, посредством которых излучается электромагнитное поле определенной частоты. Попавшие в зону действия считывающего поля радиочастотные метки «отвечают» собственным сигналом, содержащим информацию (идентификационный номер товара, пользовательские данные и т. д.). Сигнал улавливается антенной считывателя, информация расшифровывается и передается в компьютер для обработки.
Подавляющее большинство современных систем контроля доступа (СКД) использует в качестве средств доступа идентификаторы, работающие на частоте 125 кГц. Это проксимити-карты доступа (только чтение), самыми распространенными являются карты EM-Marin, а также HID, Indala. Карты этого стандарта являются удобным средством открывания дверей и турникетов. Но не более. Эти карты не обладают никакой защищенностью, легко копируются и подделываются и, соответственно, ничего не дают для защиты объекта от несанкционированного проникновения.
Настоящую защиту от копирования и подделки обеспечивают такие идентификаторы, в чипах которых реализована криптографическая защита. Это бесконтактные смарт-карты, работающие на частоте 13,56 МГц, наиболее распространенными из них являются карты Mifare®. В картах этих стандартов криптозащита организована на высоком уровне, и подделка таких карт практически невозможна.
Подключим устройство для чтения радиомаркеров RFID к плате Arduino Uno (рис. 2) и проверим его работоспособность с помощью простого скетча, читающего данные с радиомаркера и посылающих их в монитор порта.
Рис. 2. Схема подключения ридера RFID
Напишем скетч считывания с карты и вывода в последовательный порт Arduino UID (уникальный идентификационный номер) RFID-метки (карты или брелока). При написании скетча будем использовать библиотеку RFID [3]. Содержимое скетча показано на рисунке 3.
Рис. 3. Листинг для считывания кодов метки RFID
Данный скетч выполняет следующие действия:
1. Инициализирует ридер;
2. Если обнаруживает RFID-метку, то выводит ее номер в десятичной и шестнадцатеричной системах исчисления;
3. Ожидает следующей метки. Если предыдущая метка не убрана от модуля и продолжает считываться, то выводит в com-порт точку.
Загрузим в плату Arduino скетч и откроем монитор последовательного порта. Поднесем метку (карту или брелок) к считывателю и увидим вывод в последовательный порт данных метки UID и их тип.
В окне монитора порта отображается 14 чисел. Это уникальный числовой идентификатор радиомаркера RFID, который можно использовать в программах для идентификации радиомаркера.
Применим систему RFID на практике. Выведем в монитор порта текст «Access accept» (доступ разрешен), если получен соответствующий идентификатор радиомаркера и «Access denies», если код радиомаркера не совпадает с установленным.
Для начала подключим библиотеки, функции и установим начальные настройки в программе (см. рисунок 4).
Рис. 4. Подключение библиотек и установка начальных настроек программы
Для удобства отдельно опишем функции, которые выводят сообщения «Access accept» с включением синего светодиода и «Access denied» с включением желтого светодиода (см. рисунок 5).
Рис. 5. Описание функций, выводящих сообщения о разрешении или запрещении доступа
Программа, которая считывает карту и сравнивает ее номер с разрешенным представлена на рисунке 6.
Программа реализует следующую логику работы:
1. Создает массив с номером известной карты в качестве разрешенного.
2. Считывает серийный номер карты и записывает его в отдельный массив.
3. Производит поэлементное сравнение разрешенного номера со считанным.
4. В зависимости от результата, выполняет разные действия. Если доступ разрешен, то выводится сообщение «Access accept» и загорается синий светодиод, если доступ отклонен, то выводится сообщение «Access denied» и загорается синий светодиод.
Рис. 6. Программа считывания и сравнения кода карты
Если поднести радиомаркет RFID к антенне ридера, устройство чтения перешлет числовой идентификатор через последовательный порт. Скетч принимает все 14 чисел и помешает их в массив reading_card[]. Затем прочитанный идентификатор сравнивается с известным идентификатором master[].
Радимаркеры широко используются при организации контроля доступа, для автоматизированного открытия дверей и др.
Таким образом, на примере технологии радио- передачи информации рассмотрены принципы подключения и программирования устройств беспроводной связи на базе Arduino. В процессе работы над проектом по созданию беспроводной связи Arduino можно выделить несколько обязательных шагов: это подключение необходимых библиотек, проверка связи, получение необходимых кодов доступа и вывод информации.
Список литературыАмперка. [Электронный ресурс]. URL: http://amperka.ru/ (дата обращения 15.12.2017).
Аппаратная платформа Arduino [Электронный ресурс]. URL: http://arduino.ru/Hardware (дата обращения 24.11.17).
Библиотека RFID для Arduino [Электронный ресурс]. URL: https://github.com/miguelbalboa/rfid (дата обращения 15.12.2017).
Блум Д. Изучаем ARDUINO: инструменты и методы технического волшебства. СПб.: БХВ-Петербург, 2015. 336 с.
Бокселл Дж. Изучаем Arduino. 65 проектов своими руками. Спб.: Питер, 2017. 400 с.