
ODNFC-RS485 Modbus на MicroPython — руководство
ODNFC-RS485 на MicroPython: совместимые карты, конфигуратор ODRFIDConfigM, карта регистров, AT-команды через Modbus RTU и обновление прошивки.
ODNFC-RS485 с прошивкой MicroPython — считыватель-контроллер с интерфейсом RS485 и протоколом Modbus RTU. Он передаёт данные карты в ПЛК или СКУД, а пользовательская программа на MicroPython обрабатывает вход, выход и индикацию.
Основные характеристики
- Интерфейс подключения: RS485, Modbus RTU.
- Поддерживаемые карты: MIFARE Classic 1K/4K/Mini, MIFARE Plus S/X (SL0/SL1/SL3), MIFARE Ultralight, Ultralight Nano, Ultralight EV1 80/164, NTAG 213/215/216, S50/S70 — полная поддержка; MIFARE Plus X (SL2), Ultralight C, DESFire — только чтение UID.
- EMV-совместимые банковские карты: чтение PAN как идентификатора, без платёжных операций. Идентификатор мобильного кошелька может меняться; до внедрения проверьте конкретный телефон и сценарий.
- Передача UID и/или заранее заданного блока данных.
- Настраиваемый формат выдаваемых данных.
- Светодиодная и звуковая индикация взаимодействия с картой.
- Один дискретный вход.
- Управляемый дискретный выход.
Настройки порта по умолчанию: 115200 8N1.
Конфигуратор ODRFIDConfigM
Для настройки устройства и формата выводимых данных используется кроссплатформенная программа-конфигуратор.
Конфигуратор задаёт адрес устройства, настройки порта, индикацию, режим работы, ключ шифрования и строку форматирования вывода. Можно прочитать и записать настройки, перевести устройство в режим загрузчика для обновления прошивки. Есть тестовая консоль для проверки работы.


Строка форматирования задаёт состав результата и позволяет переставлять, добавлять или исключать байты до передачи данных из считывателя.
Карта данных и AT-команды
Устройство предоставляет готовую область данных последней карты и отдельный обмен AT-командами через регистры Modbus.
Некоторые программы обозначают регистры хранения как
40001,40002и далее, хотя в запросе Modbus передаётся относительный адрес с нуля. В этой инструкции указаны относительные адреса:0соответствует40001.
Готовые данные карты. Последняя поднесённая карта отображается в регистрах, начиная с адреса 130.

AT-команды через Modbus. Команда и ответ передаются через буферы в регистрах. Порядок чтения ответа:
- Прочитать входной регистр (Input Register)
0и проверить, есть ли ответ. - Если данные есть, прочитать их из регистров хранения (Holding Registers),
начиная с
0. - После чтения очистить входной буфер записью любого значения в регистр
126(0x7E). Если не стирать, данные будут копиться в буфере, пока не наберётся 252 байта; дальше лишние данные отбрасываются.
Обновление прошивки
Переведите устройство в режим обновления: запишите
1в регистр хранения (Holding Register)128— либо40129, если программа использует такую нумерацию, — или отправьте AT-командуAT+X.Убедитесь, что устройство в режиме обновления (индикатор плавно мигает красным).
Подключитесь к Wi-Fi-сети устройства
OD-eRFID-DFU.Откройте в браузере адрес
10.10.0.1.Если страница не открывается с телефона, временно отключите мобильные данные: операционная система может пытаться отправить запрос не в локальную Wi-Fi-сеть устройства.
Нажмите поле Click to select a firmware image file… («Выбрать файл прошивки») или кнопку Select («Выбрать»).
Выберите файл прошивки
*.efw.Нажмите Upload («Загрузить») и дождитесь надписи Uploaded. Устройство подаст двойной звуковой сигнал.
Нажмите Launch («Запустить») в левой колонке. Устройство перезагрузится, а соединение с его Wi-Fi-сетью разорвётся.
Исполнения
Исполнения различаются корпусом, индикацией и диапазоном питания:
- ODNFC-RS485 — RGB-светодиод, возможность подключения адресной RGB-ленты, питание 7–24 В.
- ODNFC-RS485-C — классические зелёный-красный светодиоды, питание 5–12 В.
Дополнительные материалы
- Кнопка, замок, реле, второй считыватель и адресная RGB-лента
- Скачать ODRFIDConfigM.
- PDF с картой регистров и протоколом AT/Modbus. Перед интеграцией сверьте указанную в PDF ревизию с версией прошивки устройства.
- Строка форматирования — выбор UID или области памяти и преобразование результата.
- Программирование ODNFC на MicroPython.
- Карточка ODNFC-RS485 на MicroPython.
- Если карта регистров конкретной прошивки отличается от PDF, уточните ревизию в технической поддержке.
История обновлений 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 теперь распространяется отдельно.