Создание системы ограничения доступа в программе FLProg с применением RFID-RC522

e3e66e0d26f446ff8af8352e4440e8da.png

Добрый день. Я — разработчик программы FLProg, и сегодня я расскажу Вам как с помощью программы FLProg создать устройство контроля доступа с применением сканера бесконтактных меток RFID RC522. Поскольку данный пост — обучающий, то рассматриваться будет не законченное изделие, а только тестовый макет.
Рассмотрим данный сканер бесконтактных меток RFID RC522.

02fdf68192494dd1ace02610f66848e8.PNG

Сканер бесконтактных меток RFID-RC522 без меток позволяет обнаружить и считать идентификаторы бесконтактных карт, меток, пропусков стандарта 13,56 МГц на расстоянии до 10 см. Благодаря данному сканеру можно сделать ряд интересных проектов: пропускные системы, электронные замки, складской учету и много другое.

Технические характеристики сканера.
Параметр Значение
Потребляемый ток в активном состоянии 13–26mA/DC 3.3V
Потребляемый ток в состоянии ожидания 10–13mA/DC 3.3V
Ток в режиме сна <80uA
Рабочая частота 13.56MHz
Поддержвиаемые типы карт MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire
Размер 40mm х 60mm
Температура, при которой работает модуль -20 до +80 С
Относительная влажность воздуха от 5% до 95%

Базовый принцип действия довольно прост для понимания. В карточке и в считывателе есть антенны, при этом сигнал считывающего устройства (суть электромагнитное поле) одновременно служит источником питания для карточки. Т.е. и в части энергетики, и в части передачи данных это очень похоже на ставшие сверхпопулярными беспроводные зарядки.

Сами же карточки, в зависимости от модификации, могут нести в себе от нескольких десятков байт до нескольких килобайт данных (в том числе — уникальный серийный номер). Также, в зависимости от модификации, карточка может быть укомплектована криптографической защитой информации.

В Китае подобные сканеры стоят от 200 рублей в комплекте с картой и брелком. Это очень привлекательно. Но всё-таки при заказе данного сканера советую брать, как говорится «с запасом». В моём случае из трёх имеющихся у меня сканеров, купленных в разное время у разных продавцов, нормально заработал только один. Второй видел карту, только поднесённую точно на определённое расстояние. Ближе или дальше — он её терял. Ну и третий вообще не видел поднесённых карт, хотя на запросы и тестирование по SPI отвечал нормально.

В программе FLProg реализовано два вида функциональных блоков для работы со сканером.

Блоки непосредственно связанные со сканером

  • «Наличие новой карты»
  • «Информация о карте»
  • «Чтения бока данных на карту»
  • «Запись блока данных на карту»


Блоки, связанные со сканером косвенно и предназначенные для работы с хранилищем UUID карт.

В программе реализовано хранилище UUID карт, представляющее собой набор ячеек каждая из которых хранит непосредственно UUID карты, и статус ячейки. Три статуса зарезервировано программой.

0×00 — ячейка свободна
0×01 — в ячейке хранится UUID, но она заблокирована.
0×02 — в ячейке хранится UUID и она активна

Остальные коды статуса (3… 255) пользователь может использовать по своему усмотрению.

Хранилище может располагаться в оперативной памяти контроллера (при снятии питания или перезагрузке оно очистится), или в EEPROM. Хранилищ может быть несколько, и они могут быть разных типов. При расположении хранилища в EEPROM размеры его ограниченны. Для Arduino Uno –это максимум 85 ячеек (во всех хранилищах EEPROM в сумме), для Arduino Mega — 341 ячейка.

Блоки для работы с хранилищем

  • «Сохранить UUID карты в хранилище»
  • «Прочитать UUID карты из хранилища»
  • «Статус ячейки в хранилище»
  • «Записать статус ячейки в хранилище»
  • «Блокировка/разблокировка ячейки»
  • «Поиск UUID в хранилище»
  • «Свободные ячейки хранилища»
  • «Очистка ячейки в хранилище»
  • «Очистка всего хранилища»

Разберём ТЗ для задуманного устройства.
В устройстве будут два хранилища расположенных EEPROM. В первом хранятся так называемые Master Card. С помощью них можно записывать обычные карты во второе хранилище. Для записи Master Card существует «Секретная кнопка». Так же есть дисплей для отображения необходимой информации, и обычная управляющая кнопка.

Схема устройства.
ba05bf18b93748b08ac2ba5214f238ad.PNG
Видео урок с описанием результата разработки

Проект созданный на уроке в программе FLProg .

Карты и брелки используемые вместе со сканером имеют «на борту» 1 кБ памяти которые можно использовать в собственных целях. Давайте расширим ТЗ и будем записывать, какую либо информацию. Для этого соберём еще одно устройство.

0384f4c06a9b469ca4ccd7f24c62064b.PNG

Так же доработаем проект созданный в предыдущем видео уроке.

Проект устройства записи в программе FLProg.

Доработанный проект из первого видео урока.

До свидания, надеюсь Вам было интересно.

© Geektimes