RFID контроллер-считыватель, который может в одиночку осуществить работу одного пропускного пункта
ODRFID-LAN
RFID контроллер-считыватель с web-интерфейсом для небольшого КПП
Считыватель ODRFID-LAN хорошо подходит для организации небольших контрольно-пропускных систем, которые работают автономно.
Для использования не требуется никакого специального программного или аппаратного обеспечения: охраннику достаточно иметь ПК, планшет или телефон с доступом в ту же сеть, что и RFID.

Считыватель может читать uid одной из поддерживаемых карт, заданный блок или его область, согласно строке форматирования.
Когда к считывателю прикладывается карта, на web-странице считывателя отображается карточка пользователя: фото, срок действия карты, фамилия, имя, дата рождения.

Если пользователь есть в базе, то охранник видит карточку клиента и,
при включенном автоматическом пропуске, RFID подаёт сигнал на открытые замка, либо охранник разрешает проход в ручном режиме (нажимает на кнопку, открывает дверь и т.п.).
Если приложить карту, пользователя которой нет в базе, у охранника отображается предупреждающее сообщение.
Все данные хранятся в самом считывателе.
Данные о пользователях заносятся в виде cvs таблицы с полями:
uid, срок действия, имя, фамилия, дата рождения, доп. информация, имя файла фото.
Все поля, кроме uid опциональны.

Данные о пользователях заносятся командой "Данные CVS" -> "Импорт"
Фотографии пользователей заносятся командой "Изображения" -> "Импорт"
Считыватель предлагает большое количество настроек:
  • С помощью специальной строки форматирования можно указать считывателю, что требуется считать из карты.
  • Можно задать тип и содержание ключа шифрования для карт, поддерживающих этот режим.
  • Изменить сетевые настройки
  • Указать сервер точного времени
Раздел "Администрирование" позволяет установить пароль на вход в раздел настроек и отключить редактор кода, а также на установить пароль на вход в web-интерфейс.
Код со второй вкладки реализует следующий алгоритм: устройство ожидает поднесения карты (используется 5 секундный фильтр от повторного срабатывания), при успешном чтении производит поиск во встроенной базе данных. Если в БД есть запись - то считыватель пропускает, если записи нет - то нет.

Данный код необходимо ввести в web-редакторе устройства. Нажать "Записать", перенести в постоянную память устройства кнопкой "Во Flash" и перезагрузить.

from time import time
from uasyncio import sleep_ms, sleep
from machine import WDT
from rfid_utils import RFID, Buzzer, GLED, RLED, CardFilter, OUT, IN
from webserver import eprint, erfid
from config import settings, udb

async def granted(buz): 
    GLED.on()    
    await buz.beep()
    GLED.off()
    OUT.off()
    await sleep(5)
    OUT.on()

async def run():
    await eprint("User code started")
    rfid = RFID()
    buz = Buzzer()
    GLED.off()
    RLED.off()
    OUT.on()
    c_filter = CardFilter(5)
    wdt_enabled = settings.get('wdt')
    str_format = settings.get('format')
    if wdt_enabled:
        wdt = WDT(timeout=10000)
    while 1:
        if wdt_enabled:
            wdt.feed()
        await sleep_ms(200)
        c_filter.clean(time())
        if IN.value() == 0:
            await granted(buz)
        uid = rfid.read(str_format)
        if uid and uid not in c_filter:
            c_filter.append(uid)
            await erfid(uid)
            value = udb.get(uid)
            if value is not None:
                await eprint(uid + ' granted')
                await granted(buz) 
            else:
                RLED.on()
                await eprint(uid + ' denied')
                await buz.beep(500)
                RLED.off()
Основные узлы
Подключение замка
Можно подключить замок (или другую нагрузку) непосредственно к считывателю, минимизировав работы по монтажу.
Технические характеристики:
1. Чтение и запись меток:
Mifare Classic 1K: полная поддержка
Mifare Classic 4K: полная поддержка
Mifare Plus S/X (SL0): полная поддержка
Mifare Classic Plus S/X 2K (SL1): полная поддержка
Mifare Classic Mini: полная поддержка
Mifare Plus X 2K/4K (SL2): ограниченная поддержка - только UID,
повышение уровня безопасности до SL3
Mifare Plus S/X 4K (SL1): полная поддержка
Mifare Plus S/X 4K (SL1): ограниченная поддерхка - только UID
Mifare Plus S/X (SL3): полная поддержка
Mifare Ultralight: полная поддержка
Mifare Ultralight Nano: полная поддержка
Mifare Ultralight C: ограниченная поддержка - только UID
Mifare Ultralight EV1 80/164: полная поддержка
Mifare DESFire: ограниченная поддержка - только UID
NTAG 213: полная поддержка
NTAG 215: полная поддержка
NTAG 216: полная поддержка

2. Дальность считывания меток: до 6 см.
3. Габаритные размеры: 95х62х20 мм.
4. Проводные интерфейсы: Ethernet, USB(сервисный).
5. Индикация: светодиоды (красный и зелёный), звуковой излучатель.
6. Один входной канал (3В, подтянут к "1").
7. Один выходной канал (1А max), напряжение соответствует напряжению питания.
8. Ёмкость встроенного накопителя: 8 МБ.
9. Четыре крепёжных отверстия М3.
10. Питание Passive PoE 12-20V.
Дополнительные ресуры
  1. Общая инструкция в PDF,
  2. Техподдержка,
  3. Руководство по языку MicroPython,
  4. Инструкции "Как написать свою программу".