Подключение и использование Impinj R420 с Python (без Speedway Connect)

от автора

Impinj Speedway Connect — это ПО, которое предоставляет http API и работает на RFID считывателях Impinj Speedway. Стоимость лицензии составляет около $250 за считыватель.

Без лицензии вы можете использовать Speedway Connect в демонстрационном режиме с ограничением на 500 считываний меток до перезагрузки устройства. Для полноценного использования программного обеспечения без ограничений необходимо приобрести лицензию.

Если вы нуждаетесь в API для работы с RFID считывателем через LLRP, рассмотрите использование Python модуля, доступного на GitHub. Этот модуль позволяет подключаться и управлять RFID считывателем с помощью одной команды, предоставляя вам всю необходимую функциональность для работы с метками.

Подключение считывателя

  1. Подключение к роутеру

    Подключите считыватель к роутеру через Ethernet-кабель.

  2. Определение IP-адреса считывателя

    Войдите в веб-интерфейс роутера на компьютере, подключенном к той же сети. Найдите IP-адрес считывателя по MAC-адресу, который указан на боковой стороне устройства.

  3. Проверка подключения

    Убедитесь, что вы правильно определили IP-адрес считывателя, попробовав подключиться к нему через HTTP (НЕ HTTPS) по этому IP (по умолчанию порт 80). Вы должны увидеть веб-интерфейс устройства.

    Логин: root
    Пароль: impinj

  4. Присвоение статического IP

    Присвойте считывателю статический IP через настройки роутера, чтобы он не изменился после перезагрузки. Инструкция по присвоению постоянного IP-адреса. Перезагрузите считыватель (вытянув питание) для обновления IP-адреса.

  5. Подключение антенн

    Подключите антенны к считывателю и подготовьте RFID метки для теста.

Установка и настройка проекта

  1. Клонирование репозитория

    Склонируйте репозиторий с GitHub:

    git clone https://github.com/Ruslanch0s/rfid_reader.git
  2. Настройка хоста считывателя

    В файле main.py укажите IP-адрес вашего считывателя:

    READER_HOST = "192.168.88.249"
  3. Запуск программы

    Убедитесь, что у вас установлен 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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *