Impinj Speedway Connect — это ПО, которое предоставляет http API и работает на RFID считывателях Impinj Speedway. Стоимость лицензии составляет около $250 за считыватель.
Без лицензии вы можете использовать Speedway Connect в демонстрационном режиме с ограничением на 500 считываний меток до перезагрузки устройства. Для полноценного использования программного обеспечения без ограничений необходимо приобрести лицензию.
Если вы нуждаетесь в API для работы с RFID считывателем через LLRP, рассмотрите использование Python модуля, доступного на GitHub. Этот модуль позволяет подключаться и управлять RFID считывателем с помощью одной команды, предоставляя вам всю необходимую функциональность для работы с метками.
Подключение считывателя
-
Подключение к роутеру
Подключите считыватель к роутеру через Ethernet-кабель. -
Определение IP-адреса считывателя
Войдите в веб-интерфейс роутера на компьютере, подключенном к той же сети. Найдите IP-адрес считывателя по MAC-адресу, который указан на боковой стороне устройства. -
Проверка подключения
Убедитесь, что вы правильно определили IP-адрес считывателя, попробовав подключиться к нему через HTTP (НЕ HTTPS) по этому IP (по умолчанию порт 80). Вы должны увидеть веб-интерфейс устройства.Логин:
root
Пароль:impinj
-
Присвоение статического IP
Присвойте считывателю статический IP через настройки роутера, чтобы он не изменился после перезагрузки. Инструкция по присвоению постоянного IP-адреса. Перезагрузите считыватель (вытянув питание) для обновления IP-адреса. -
Подключение антенн
Подключите антенны к считывателю и подготовьте RFID метки для теста.
Установка и настройка проекта
-
Клонирование репозитория
Склонируйте репозиторий с GitHub:git clone https://github.com/Ruslanch0s/rfid_reader.git
-
Настройка хоста считывателя
В файлеmain.py
укажите IP-адрес вашего считывателя:READER_HOST = "192.168.88.249"
-
Запуск программы
Убедитесь, что у вас установлен Python 3.9 или старше. Запустите программу:python main.py

Обработка меток
Функция callback
используется для обработки меток, прочитанных считывателем. Вы можете изменить эту функцию под свои нужды. Пример:
def callback(_reader, tags): """ Callback функция для обработки меток, прочитанных считывателем. Параметры: _reader (LLRPReaderClient): Объект считывателя, вызвавший callback. tags (list): Список прочитанных меток. """ logger.info(f'TAGS:{tags}')
В своем проекте я использовал RabbitMQ для передачи данных, что позволяло избежать задержек в работе с базой данных (PostgreSQL) в периоды большого наплыва меток.
Настройка конфигурации считывателя
Файл конфигурации reader_config.py
в папке core
содержит настройки для считывателя. Пример конфигурации:
reader_cfg_dict = { 'duration': 1, # для бесконечного считывания меток !!! 'tx_power_dbm': 31.5, # Мощность передачи dBm 'frequencies': { 'HopTableId': 1, 'Channelist': [866.9], # Частотный диапазон в МГц 'Automatic': False }, 'mode_identifier': 1004, # Режим работы считывателя 'session': 2, # Сессия 'impinj_search_mode': 2, # Установка режима Single Target (по документации вашего устройства) 'tag_population': 1, # Предполагаемое количество меток в зоне считывания 'antennas': [0], # Какие антенны использовать (0 - все антенны) # какие данные о метках будут включены в отчеты: 'tag_content_selector': { 'EnableROSpecID': False, 'EnableSpecIndex': False, 'EnableInventoryParameterSpecID': False, 'EnableAntennaID': True, # Включение идентификатора антенны 'EnableChannelIndex': False, 'EnablePeakRSSI': False, 'EnableFirstSeenTimestamp': False, 'EnableLastSeenTimestamp': False, 'EnableTagSeenCount': False, 'EnableAccessSpecID': False } }
Заключение
Данный код может спокойно заменить Impinj Speedway Connect, что позволит сэкономить, особенно на небольших проектах.
Источники
Помощь с подключением
Если у вас возникнут вопросы или трудности с подключением или настройкой считывателя, я готов с удовольствием вам помочь.
-
Telegram:
@Ruslanch0s
-
Email:
cool.ziganshin2015@gmail.com
ссылка на оригинал статьи https://habr.com/ru/articles/829844/
Добавить комментарий