Click to order
Total: 
Имя
Чтобы знать, как обращаться
Email
Для информации о заказе
Телефон
Комментарий
Согласие на обработку персональных данных
Payment method
ODNFC-LAN
ODNFC-LAN-C
NFC считыватель-контроллер с сетевым интерфейсом
Ключевые возможности
Широкий список поддерживаемых меток
Чтение-запись меток следующих стандартов:

Mifare Classic 1K/4K/Mini: полная поддержка
Mifare Plus S/X (SL0/SL1): полная поддержка
Mifare Plus X (SL2): ограниченная поддержка - только чтение UID, повышение уровня безопасности до SL3
Mifare Plus S/X (SL3): полная поддержка
Mifare Ultralight: полная поддержка
Mifare Ultralight Nano: полная поддержка
Mifare Ultralight C: ограниченная поддержка - только чтение UID
Mifare Ultralight EV1 80/164: полная поддержка
NTAG 213/215/216: полная поддержка
S50/S70: полная поддержка
Работа в локальной сети
Считыватель подключается в локальную сеть с DHCP или статическими адресами. Имеет встроенный WEB-интерфейс для настройки устройства.
Может передавать данные по сетевому интерфейсу или получать команды.
Использование банковских карт в качестве метки
Использование номера карты в качестве метки. Также можно использовать электронные карты из Apple Pay и Android Pay.
Самостоятельная модификация кода
Считыватель имеет встроенный редактор кода, который позволяет сделать логику программы такой, как нужно именно вам.
Также можно заказать реализацию вашего алгоритма у нас.
Дискретный вход и выход
Считыватель имеет один выход для подключения напрямую замка, а также вход для подключения кнопки. Это позволяет уменьшить количество используемого оборудования.
Управляемая индикация
Считыватель позволяет программно управлять звуковым излучателем и RGB-светодиодом (ODNFC-LAN). Вместо одного диода можно подключить управляемую ленту длиной до 40 светодиодов и реализовывать световые эффекты.
ODNFC-LAN-C управляет классической светодиодной парой "красный-зелёный".
Использование локальной БД
Устройство может хранить данные о пользователях локально и использоваться автономно или синхронизироваться с сервером.
Исполнения
Различия между ODFNC-LAN и ODFNC-LAN-C
ODFNC-LAN

RGB-светодиод
Подключение Ethernet провода к разъёму IDC381-8-110
Габариты: 120х76х22мм
ODFNC-LAN-C

Два одноцветных светодиода (зелёный/красный)
Подключение Ethernet провода через клеммную колодку
Габариты: 115х75х20мм
У ODNFC-LAN лицевая панель покрыта тонкой защитной транспортировочной плёнкой.
Удалите её перед использованием.
Подключение
Интерфейс: Ethernet
Питание: Passive PoE 7-24В
Индикация: красный - нет линка, зелёный - есть линк.

По-умолчанию, устройство подключается к DHCP-серверу и получает от него IP-адрес. В случае, если за 30-40 секунд, получить адрес не удается, устройство переходит в режим статического адреса и назначает себе ip: 192.168.1.1
Web-интерфейс

Основной экран


На данном экране можно увидеть общую информацию об устройстве и сообщения из кода (отправленные командой eprint).


Редактор кода


Данный экран состоит из трёх элементов:

1. Файловый менеджер, который позволяет создавать/удалять файлы и папки, а также загружать файлы на устройство.

2. Редактор кода.

3. Интерактивная консоль.
Консоль нужна интерактивных экспериментов с кодом. Чтобы её активировать, необходимо нажать в ней ctrl-c. После этого, основная программа остановится и для восстановления её работы нужно будет перегрузить устройство.


Экран настроек


Данный экран позволяет изменять основные настройки устройства.

Часть из настроек сделаны для обработки пользовательской программой и устройством не обрабатываются.

Также в настройках можно закрыть паролем доступ к редактору, а также установить пароль к web-интерфейсу целиком.

Особое внимание следует уделить пунктам: "Установить пароль на web", "Установить пароль на Настройки", "Включить редактор".

"Установить пароль на web" - закрывает web паролем (метод basic auth).
"Установить пароль на Настройки" - задаёт пароль для входа на страницу настроек.
Пароль доступен только для записи, т.е. при открытии страницы настроек, пароль из устройства не считывается и браузер может заполнить это поле данными из кэша или заполнить самостоятельно. Поэтому внимательно следите за состояние данных полей.

"Включить редактор" - данный раздел отключает редактор кода из показа в веб-странице, а также закрывает вебсокет для удалённой отладки.

Экран "об устройстве"


Экран для получения информации об устройстве, обновления web-интерфейса и перехода в web-загрузчик.

Технические характеристики
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 (SL3): полная поддержка
Mifare Ultralight: полная поддержка
Mifare Ultralight Nano: полная поддержка
Mifare Ultralight C: ограниченная поддержка - только чтение UID
Mifare Ultralight EV1 80/164: полная поддержка
Mifare DESFire: ограниченная поддержка - только чтение UID
NTAG 213/215/216: полная поддержка
S50/S70: полная поддержка

2. Дальность считывания меток: до 6 см.
3. Габаритные размеры: 120х76х22мм ODNFC-LAN, 115х75х20мм ODNFC-LAN-C.
4. Проводные интерфейсы: Ethernet.
5. Индикация: RGB светодиод, звуковой излучатель.
6. Один входной канал (3В, подтянут к "1").
7. Один выходной канал (1А max), напряжение соответствует напряжению питания.
8. Четыре крепёжных отверстия М3.
9. Питание Passive PoE 7-24V.
Строка форматирования позволяет задать произвольный формат вывода данных с карты, произвести некоторые манипуляции (изменить порядок байт, добавить или вырезать данные и т.п.) ещё в считывателе и выдать уже преобразованный результат.
Подробнее о строке форматирования...
Код, который идет в устройстве
Базовый код, чтобы понять, как работает устройство. Обратитесь к нам, если вам будет нужна помощь в реализации ваших решений.
Данная код выполняет следующий функционал:
1. При запуске устройство подает короткий звуковой сигнал.
2. Считывает из настроек параметры "включение сторожевого таймера", "задание формат-строки", "необходимость отправления данных карты по UDP".
3. Далее, в основном цикле программа опрашивает RFID-считыватель (с использованием двухсекундного фильтра), и в случае успешного считывания, отправляет UDP-посылку и подает 5-секундный сигнал на выход.
from time import time
from uasyncio import sleep_ms, sleep
from machine import WDT
from rfid_utils import RFID, BUZZ, GLED, CardFilter, OUT
from webserver import eprint
from config import settings
from uasyncio import AsyncUDP

async def door(): 
    OUT.off()
    await sleep(5)
    OUT.on()

async def run():
    await eprint("User code started")
    rfid = RFID()
    GLED.off()
    OUT.on()
    c_filter = CardFilter(2)
    wdt_enabled = settings['sys-i-wdt']
    str_format = settings['rfid-format']
    udp_en = (settings['rfid-protocol'] == 'UDP')
    if wdt_enabled:
        wdt = WDT(timeout=10000)
    await BUZZ.beep(100)
    while 1:
        if wdt_enabled:
            wdt.feed()
        await sleep_ms(100)
        c_filter.clean(time())
        uid = rfid.read(str_format)
        if uid and uid not in c_filter:
            c_filter.append(uid)
            GLED.on()    
            await BUZZ.beep()
            GLED.off()
            if (udp_en):
                await AsyncUDP.udp_send(uid, (settings['rfid-dest'], settings['rfid-i-dport']) )
            await door()
Пример работы с консолью
Пример работы с TCP
Упрощённый пример передачи данных
TCP-серверу
Данный код выполняет следующий функционал:
1. При запуске устройство подключается к TCP-серверу.
2. Каждую секунду передаёт TCP-серверу сообщение 'hello' и сопровождает это звуковым сигналом.
from time import time
from uasyncio import sleep, TCPClient
from rfid_utils import BUZZ
from webserver import eprint
from config import settings

async def run():
    await eprint("User code started")
    client = TCPClient(settings['rfid-dest'], settings['rfid-i-dport'])
    client.connect()
    
    while 1:
        await BUZZ.beep()
        await client.send('hello')
        await sleep(1)
Пример работы с UDP
Упрощённый пример передачи данных
UDP-серверу
Данный код выполняет следующий функционал:
1. При запуске устройство подключается к UDP-серверу.
2. Каждую секунду передаёт UDP-серверу сообщение 'hello' и сопровождает это звуковым сигналом.
from time import time
from uasyncio import sleep, AsyncUDP
from rfid_utils import BUZZ
from webserver import eprint

async def run():
    await eprint("User code started")
    while 1:
        await BUZZ.beep()
        await AsyncUDP.udp_send('hello', ('192.168.0.51', 7000))
        await sleep(1)
Пример отправки HTTP команды
Пример отправки http-запроса
Пример реализации функции отправки post-запроса. Таймаут на ожидание нужен, т.к. результат отправки будет доступен не сразу.
async def try_send_post(url, data):
    n = 0
    try:
        response = crequests.request(url, crequests.POST, data=dumps(data), headers={'Content-Type': 'application/json'})
        while not response:
            await uasyncio.sleep_ms(20)
            n += 1
            if n == 100:
                raise
        return response.text()
    except Exception as e:
        return None
Пример получения HTTP команды
Пример обработки http-запроса
Данный callback позволяет обработать http post запрос от другого устройства на адрес считывателя вида http://ip/command
Данный запрос синхронный, поэтому должен быть максимально коротким.
def http_command(data):
    print(data)
    if 'led' in data:
        if data['led'] == 'on':
            GLED.on()
        elif data['led'] =='off':
            GLED.off()
        else:
            return {'status': 'invalid'}
        return {'status': 'ok'}
    else:
        return {'status': 'unsupported'}
Восстановление устройства
Порядок действий, если вы "закирпичили" устройство и не можете получить к нему доступ.
Если были записаны "неправильные" настройки.

1. Выключить устройство.
2. Замкнуть контакты HARD RESET на панели устройства.
3. Подождать пока замигает красный светодиод
4. Открыть веб-страницу загрузчика. Устройство попытается получить DHCP адрес от роутера. Если это не удастся в течение 30-40 секунд, устройство назначит себе статический адрес 10.10.0.1
5. Нажать "Настройки".
6. Нажать "К заводским настройкам"
7. Нажать "Запустить".
Если доступ потерян в результате неправильного usercode.py

1. Выключить устройство.
2. Замкнуть контакты HARD RESET на панели устройства.
3. Подождать пока замигает красный светодиод
4. Открыть веб-страницу загрузчика. Устройство попытается получить DHCP адрес от роутера. Если это не удастся в течение 30-40 секунд, устройство назначит себе статический адрес 10.10.0.1
5. Нажать "Дополнительно".
6. Выбрать назначение "Пользовательские данные", директория - ".",
файл - "usercode.py". В usercode.py должен быть ваш корректный код (может быть пустой файл).
7. Нажать "Загрузить".
8. Нажать "Запустить".
Обновление устройства
Порядок действий, чтобы загрузить efw обновление
1. Открыть вкладку "об устройстве" (в веб-браузере)
2. Нажать "Bootloader"
3. Подождать пока замигает красный светодиод
4. Открыть веб-страницу загрузчика. Устройство попытается получить DHCP адрес от роутера. Если это не удастся в течение 30-40 секунд, устройство назначит себе статический адрес 10.10.0.1
5. Нажать "Выбрать" - выбрать файл "*.efw"
6. Нажать "Загрузить" - дождаться окончания загрузки (прогресс-бар внизу)
7. Нажать "Запустить"
8. Дождаться загрузки прошивки, убедиться, что на странице "об устройстве" версия прошивки соответствует желаемой.

Дополнительные ресуры
  1. Общая инструкция в PDF,
  2. Техподдержка,
  3. Инструкции "Как написать свою программу".
  4. Документация по языку,
  5. Документация на специальные для ODNFC библиотеки.