Перейти к содержанию

Документация ODNFC — программируемые NFC/RFID считыватели

Руководства по подключению, программированию и интеграции ODNFC-LAN и ODNFC-RS485.

ODNFC — программируемые NFC/RFID считыватели-контроллеры. Прикладной алгоритм выполняется в самом устройстве на Lua или MicroPython: считыватель получает UID и, при наличии нужных ключей, данные защищённых блоков, управляет входом и выходом и обменивается данными по доступным интерфейсам. Набор Ethernet, Wi-Fi, RS485 и Bluetooth зависит от исполнения.

Здесь собраны основные технические материалы: руководства по устройствам, введение в программирование, описание протоколов и примеры кода.

С чего начать

Ваша ситуацияПервый материал
Только выбираете исполнениеОбзор и выбор ODNFC
Купили ODNFC-LAN на LuaПервый запуск и веб-интерфейс Lua
Купили ODNFC-LAN на MicroPythonПервый запуск и редактор MicroPython
Хотите изменить подсветку или мелодииСветовые эффекты и звуки ODNFC
Подключаете кнопку, геркон, замок, реле или RGB-лентуЭлектрические схемы входов и выходов
Подключаете считыватель к ПЛК по RS485Настройка Modbus RTU и карта регистров
Подключаете считыватель к контроллеру СКУД по OSDPНастройка адреса, обмена и Secure Channel
Нужно изменить формат номера картыНастройка строки форматирования
Нужно сопоставить UID, надпись на карте и WiegandФорматы номера карты и преобразование UID
Нужно читать или записывать ссылки и текст на NFC-меткахФормат NDEF и проверка совместимости метки
Нужен телефон вместо пропускаОграничения UID и мобильных кошельков
Нужно защититься от копии UIDКлючи, счётчики и собственная антиклон-логика
Нужно отправить событие на серверПрограммирование на Lua или MicroPython

Если вы внедряете ODNFC впервые, сначала добейтесь стабильного чтения карты и ручного управления выходом. Сетевую интеграцию, локальную базу и сложную логику добавляйте по одному — так проще отделить ошибку подключения от ошибки кода.

Руководства по устройствам

Программирование

Справочники и примеры

Выбор языка программирования

Lua — основная ветка прошивок ODNFC с наиболее полным набором функций. MicroPython предназначен для ODNFC, уже выпущенных с этой прошивкой. Для нового проекта выбирайте Lua.

Не нашли ответа? Задайте вопрос инженеру.

История обновлений ODNFC на Lua

Если установлена версия ниже 1.7.0, сначала обновите её до 1.7.0, а затем до более новой версии. Перед обновлением отключите сторожевой таймер и сотрите пользовательскую программу.

1.8.2
  • Улучшена работа устройства и исправлены ошибки.
  • Для устройств, работающих с метками 125 кГц, добавлено обнаружение типовых клонов EM-Marine.
1.8.1

Улучшения:

  • Новый веб-интерфейс.
  • Улучшена работа RFID-модулей MFRC и EM-Marine.
  • Улучшена работа Modbus.
  • Оптимизирована работа устройства.
1.7.0

Улучшения:

  • улучшена работа MFRC и EM-Marine;
  • в раздел «Редактор» добавлен простой файловый менеджер;
  • улучшена работа сетевых модулей;
  • оптимизирована работа устройства.

Исправлена ошибка в HTTP-заголовке Content-Length, из-за которой интерфейс не работал в некоторых операционных системах.

1.6.2
  • Улучшена работа MFRC и EM-Marine.
  • Улучшена библиотека Modbus.
  • Оптимизирована работа устройства.
  • В ODNFC-LAN-LUA добавлена регистрация обработчика успешного чтения.
1.6.1
  • Добавлена запись в зашифрованные карты MIFARE Classic.
  • Упрощена инициализация RFID: используются значения по умолчанию для каждой платы, поэтому изменён вызов основного класса и больше не требуются многие Lua-обёртки из rfid.lua.
  • Добавлена функция mfrc522.scan() — упрощённая версия базового класса для типовых операций.
  • Исправлены библиотеки EM-Marine и HID.
  • Оптимизирована библиотека Modbus.
  • Исправлена работа TCP-сервера.
1.6.0

Улучшения:

  • обновлён редактор кода: устранена проблема с переводами строк в новых версиях Firefox;
  • в веб-сервер добавлена поддержка HTTPS и WebSocket;
  • добавлены новые классы для работы с RFID-метками;
  • добавлена работа с NDEF и счётчиками Ultralight;
  • добавлены встроенные библиотеки cbor, cobs, mlib, Heatshrink и microtar;
  • расширены библиотеки osc, net, cutils, utils, cpu и emmarine;
  • LuaSocket больше не входит в прошивку;
  • добавлена загрузка сжатых Heatshrink-библиотек Lua;
  • добавлен WebSocket REPL для отладки через веб-IDE или расширение VS Code;
  • улучшена консоль: Unicode, автодополнение и история;
  • расширена поддержка Modbus;
  • Paho MQTT заменён собственной реализацией uMqtt;
  • ускорена работа устройства и веб-интерфейса;
  • выполнены другие небольшие исправления и оптимизации.

Исправлены ошибки, из-за которых после мягкой перезагрузки Wi-Fi запускался через раз, а RFID-модуль мог не инициализироваться.

1.5.0

Улучшения:

  • новый интерфейс и редактор кода;
  • добавлена библиотека tinycobs;
  • добавлены функции net.tcp.*;
  • добавлены функции eprint, hprint и wprint для вывода в окно «Инфо»;
  • трассировка ошибки загрузки теперь показывается в окне «Инфо»;
  • расширены возможности Telnet, SSH отключён;
  • в режиме восстановления Wi-Fi работает без пароля;
  • добавлена поддержка BLE-маяков на устройствах с BLE;
  • NTP запускается с задержкой 15 секунд, чтобы сеть успела установиться.

Исправлены режим статического Ethernet-адреса и установка яркости NeoPixel.

1.4.0
  • Улучшен встроенный веб-сервер.
  • Выполнены небольшие изменения для повышения стабильности.
  • Исправлена утечка памяти при HTTP-запросах из Windows.

Известная проблема этой версии: режим статического Ethernet-адреса в настройках не работает. Для обхода проблемы в начало пользовательской программы добавляли:

net.en.setup(
  net.packip(Settings.get("net_ip")),
  net.packip(Settings.get("net_mask")),
  net.packip(Settings.get("net_gw")),
  net.packip(Settings.get("net_dns"))
)
net.en.start()
1.3.2
  • В os.df() добавлен дополнительный параметр.
  • Выполнены небольшие изменения для повышения стабильности.
  • Исправлена утечка памяти при запросе метрики в интерфейсе.

Известная проблема этой версии: HTTP-запросы из Windows приводят к утечке памяти. После изменения настроек рекомендовалось закрыть браузер, перезагрузить устройство и не выполнять периодические HTTP-запросы.

1.3.1
  • Серийный номер синхронизирован с DataMatrix на корпусе модуля, если он есть.
1.3
  • Библиотека Telegram.lua добавлена в прошивку.
  • Библиотека LuaSocket теперь распространяется отдельно.
ODNFC-LAN на Lua — руководство

ODNFC-LAN на Lua — руководство

Сетевой считыватель-контроллер ODNFC-LAN с Lua: подключение, настройка, редактор кода и управление файлами через веб-интерфейс.

ODNFC-LAN на MicroPython — руководство

ODNFC-LAN на MicroPython — руководство

Сетевой считыватель-контроллер ODNFC-LAN с прошивкой MicroPython: настройка, подключение, веб-интерфейс и примеры кода.

ODNFC-RS485 Modbus — руководство

ODNFC-RS485 Modbus — руководство

Считыватель-контроллер ODNFC-RS485 с протоколом Modbus RTU: карта регистров, подключение и примеры.

ODNFC-RS485 OSDP — быстрый старт для интегратора

ODNFC-RS485 OSDP — быстрый старт для интегратора

Быстрый запуск ODNFC-RS485 в роли OSDP Peripheral Device: линия RS485, тест с ПК и настройка защищённого канала.

ODNFC-RS485 Modbus на MicroPython — руководство

ODNFC-RS485 Modbus на MicroPython — руководство

RS485-исполнение ODNFC с прошивкой MicroPython: режимы Modbus, конфигуратор и обновление прошивки.

Программирование ODNFC на Lua

Быстрый старт с mfrc522.scan, веб-IDE и примеры кода на Lua.

Программирование ODNFC на MicroPython

Правила разработки на MicroPython, доступ к настройкам и разбор примера программы для ODNFC.

Консоль ODNFC (Lua)

Консоль ODNFC (Lua)

Консоль Lua: подключение, файловая система, встроенный редактор и загрузка библиотек.

Строка форматирования RFID-вывода

Как задать произвольный формат данных, считываемых с карты: коды, режимы вывода и примеры.

Пример: Modbus TCP на ODNFC

Сервер Modbus TCP на Lua и MicroPython и Python-клиент для проверки регистров.

Пример: Bluetooth-маяки на ODNFC

Приём iBeacon и Eddystone на ODNFC: пример на Lua и ограничения безопасности.

Пример: логи и отчёты с ODNFC

rsyslog, файловый логгер, Telegram и почта — способы отправлять отчёты о работе устройства.