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

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

RFID/NFC-считыватель позволяет читать карту, метку или брелок без проводного контакта.

В iDryer-подобных устройствах это может пригодиться для идентификации катушки, выбора профиля материала, сервисного доступа или экспериментов с учётом расходников.

Главная ошибка: купить "RFID module" и считать, что любая карта будет читаться с любого расстояния и от любого контроллера. На практике нужно проверить частоту, тип метки, интерфейс, питание, уровни логики и место установки антенны.

Популярные модули

Часто встречаются:

  • RC522 / MFRC522;
  • PN532;
  • готовые USB/UART RFID-считыватели;
  • NFC-модули с I2C, SPI или UART.

Для простых проектов вокруг 3D-принтера чаще всего смотрят на 13.56 MHz модули и метки: карты, брелоки, NTAG/MIFARE-совместимые метки.

Что проверить до подключения

Перед подключением найди:

  • частоту модуля;
  • тип поддерживаемых карт и меток;
  • интерфейс: SPI, I2C или UART;
  • напряжение питания;
  • уровни логики;
  • распиновку конкретной платы;
  • есть ли выбор интерфейса перемычками или пайкой;
  • дальность чтения;
  • требования к антенне и месту установки.

Если модуль рассчитан на 3.3V, его нельзя просто подключать к 5V логике без проверки. Некоторые платы имеют стабилизатор питания, но не имеют согласования уровней на сигнальных линиях.

RC522: типовое SPI-подключение

Дешёвые RC522-модули обычно работают от 3.3V и чаще всего подключаются по SPI.

Типичные линии:

  • VCC - питание 3.3V;
  • GND - земля;
  • SCK - тактовый сигнал SPI;
  • MOSI - данные от контроллера к модулю;
  • MISO - данные от модуля к контроллеру;
  • SDA, SS или CS - выбор устройства SPI;
  • RST - reset;
  • IRQ - interrupt, часто не используется в простых проектах.

Модуль RFID RC522 (MFRC522) для чтения карт 13.56 МГц

Источник: Wikimedia Commons, Giacomo Alessandroni, CC BY-SA 4.0

Названия пинов могут отличаться. Например, на RC522 пин SDA часто означает SS/CS для SPI, а не линию SDA интерфейса I2C. Это частая причина путаницы.

PN532: SPI, I2C или UART

PN532 более гибкий модуль. В зависимости от платы он может работать по:

  • SPI;
  • I2C;
  • UART.

Но это не значит, что можно просто подключить любые пины. На многих PN532-платах интерфейс выбирается перемычками, DIP-переключателями или пайкой.

Перед подключением проверь:

  • какой интерфейс выбран физически на плате;
  • какие пины соответствуют выбранному интерфейсу;
  • нужны ли подтягивающие резисторы для I2C;
  • нужна ли подтяжка или reset-пин;
  • совместимы ли уровни логики с контроллером.

Если документация к плате говорит "3.3V logic", не подключай её напрямую к 5V GPIO.

Общая земля

Как и для других модулей, нужна общая земля.

Если RFID-модуль питается от одного источника, а контроллер от другого, их GND должны быть соединены.

Без общей земли SPI/I2C/UART может не работать или работать нестабильно.

Метка должна подходить к считывателю

RFID/NFC - это не один универсальный стандарт.

Модуль может физически видеть только те метки, которые поддерживает его микросхема и библиотека.

Проверь:

  • частоту метки;
  • тип карты или брелока;
  • поддерживает ли модуль MIFARE, NTAG, ISO14443A или другой нужный тип;
  • нужно ли только читать UID или ещё читать/писать данные;
  • поддерживает ли выбранная библиотека нужную операцию.

Для простого выбора профиля материала часто достаточно читать UID метки и хранить привязку UID -> материал в прошивке или на хосте.

Дальность чтения

Дальность у маленьких RFID/NFC-модулей обычно небольшая.

На результат влияют:

  • размер антенны;
  • тип метки;
  • ориентация метки;
  • расстояние;
  • пластик корпуса;
  • металл рядом;
  • помехи;
  • питание модуля.

Металл рядом с антенной может резко ухудшить чтение. Если считыватель ставится в корпус сушилки, камеры или держателя катушки, проверяй дальность уже в реальной сборке, а не только на столе.

Где ставить считыватель

Для катушки филамента RFID/NFC-считыватель лучше ставить там, где пользователь будет осознанно подносить метку.

Не стоит строить логику так, будто метка всегда прочитается автоматически.

Практичные варианты:

  • зона "поднести метку сюда" на корпусе;
  • место рядом с держателем катушки;
  • сервисная зона для карты доступа;
  • отдельная панель с короткой дальностью чтения.

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

Первый запуск

Перед интеграцией в устройство:

  1. Подключи модуль на столе.
  2. Запусти пример библиотеки для выбранного модуля.
  3. Проверь, что карта или метка читается стабильно.
  4. Запиши UID нескольких меток.
  5. Проверь, что неподдерживаемые карты не ломают логику.
  6. Установи модуль в корпус и повтори проверку.

На первом этапе не нужно сразу писать сложную систему профилей. Сначала важно добиться стабильного чтения UID.

Пример логики устройства

Для профиля материала простая логика может быть такой:

  1. Пользователь подносит метку.
  2. Устройство читает UID.
  3. UID ищется в таблице.
  4. Если UID известен, выбирается профиль материала.
  5. Если UID неизвестен, устройство просит выбрать профиль вручную.

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

Что проверить после сборки

Проверь:

  • модуль питается правильным напряжением;
  • уровни логики совместимы с контроллером;
  • выбран правильный интерфейс;
  • MOSI, MISO, SCK, CS не перепутаны для SPI;
  • SDA, SCL не перепутаны для I2C;
  • TX и RX правильно перекрещены для UART;
  • есть общая земля;
  • reset/IRQ подключены так, как требует библиотека;
  • метки нужного типа читаются;
  • дальность чтения нормальная в корпусе;
  • металл и провода не закрывают антенну;
  • устройство нормально работает, если метка не считалась.

Типовые ошибки

  • подключают 3.3V RC522 к 5V питанию или 5V логике;
  • путают SDA на RC522 с I2C SDA;
  • забывают CS/SS на SPI;
  • перепутали MOSI и MISO;
  • выбрали на PN532 один интерфейс перемычками, а подключили другой;
  • используют карту неподдерживаемого типа;
  • ставят антенну вплотную к металлу;
  • проверяют чтение на столе, но не проверяют в корпусе;
  • делают RFID единственным способом выбора профиля;
  • хранят важную логику только в UID без проверки ошибок чтения.

Главное

  • RFID/NFC-модуль нужно выбирать под конкретные метки и интерфейс.
  • RC522 обычно требует 3.3V и SPI.
  • PN532 может работать по SPI, I2C или UART, но интерфейс нужно выбрать на самой плате.
  • Общая земля обязательна.
  • Металл около антенны может сильно ухудшить чтение.
  • Для профилей материала часто достаточно UID метки, но нужен ручной резервный выбор.
  • Проверять нужно в реальном корпусе, а не только на столе.

Материалы по теме