RFID контроллер-считыватель
с сетевым интерфейсом
Автономный считыватель, который можно перепрограммировать под различные RFID задачи
Задача: сделать систему, в которой независимый считыватель пропускает по карте только тогда, когда она действительна
Представим, что клиенту активируют карту на неделю, но в комплексе есть считыватели, которые никуда не подключены.
В типовом режиме - приходится эти считыватели программировать вручную для предоставления доступа этим картам.
Наша задача - этот процесс автоматизировать.
Для решения этой задачи мы используем принцип сертификатов со: при активации доступа карты на неё записывается срок действия карты и каждый считывать может проверить дату, записанную на карте и принять решение относительно действия с данной картой: если "сертификат" ещё действителен, про пропуск разрешён.
Для записи сертификатов мы будем использовать записываемые карты MIFARE Classic и считыватель ODRFID в режиме CDC (виртуального последовательного порта).
Для удобства мы написали небольшую программу на Python3 с графическим интерфейсом на Tkinter.
Программа высчитывает количество времени (в секундах) действия карты относительно текущего времени на ПК и записывает эти данные в первый блок карты. К данным карты добавляется 4-байтная контрольная сумма, которая представляет собой простую сумму предыдущих байт + 18. В реальном проекте также, следует включить шифрование карты.
Автономный считыватель имеет свои встроенные часы реального времени (RTC), которые должны иметь актуальное время.
При поднесении карты, считыватель проверяет время действия карты, и обрабатывает её согласно полученным данным.