Невозможно сканировать метки RFID с использованием libnfc, PN532 и RPi3

Я недавно купил этот считыватель NFC/RFID PN532 модуль V3

Я хочу использовать его с моим raspberry pi 3. Я установил и настроил библиотеку libnfc. PN532 связан с I2C. Я хорошо включил его на моем RPi.

Моя проблема в том, что я не могу ничего сканировать. Действительно, когда я запускаю функцию nfc-poll в консоли я получаю это:

nfc-poll uses libnfc 1.7.1
NFC reader: pn532_i2c:/dev/i2c-1 opened
NFC device will poll during 30000 ms (20 pollings of 300 ms for 5 modulations)
nfc_initiator_poll_target: Success

Во время опроса я передал рядом с PN532 много разных тегов, даже те, которые пришли с ним. Но никогда не бывает никакого обнаружения. Тем не менее, кажется, что RPi правильно связывается с PN532, как показано во второй строке.


Команда i2cdetect -y 1 хорошо возвращается:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- 24 -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

PN532 подключен следующим образом:

  • GND -> GPIO 6
  • VCC -> GPIO 4
  • SDA -> GPIO 3
  • SCL -> GPIO 5

Я проверил проводку (у меня хорошо горит желтый светодиод, и если я удаляю SDA или соединение SCL, я получаю сообщение об ошибке, пытаясь nfc-poll что указывает на то, что соединения в порядке)


Я проверил положение двух переключателей на PN532 для включения связи I2C.


Мой файл конфигурации libnfc (/etc/nfc/libnfc.conf) является следующим:

# Allow device auto-detection (default: true)
# Note: if this auto-detection is disabled, user has to set manually a device
# configuration using file or environment variable
allow_autoscan = true

# Allow intrusive auto-detection (dehttp://www.jamesrobertson.eu/pages/2014/mar/30/rfid-module.htmlfault: false)
# Warning: intrusive auto-detection can seriously disturb other devices
# This option is not recommended, user should prefer to add manually his device.
allow_intrusive_scan = false

# Set log level (default: error)
# Valid log levels are (in order of verbosity): 0 (none), 1 (error), 2 (info), 3 (debug)
# Note: if you compiled with --enable-debug option, the default log level is "debug"
log_level = 1

# Manually set default device (no default)
# To set a default device, you must set both name and connstring for your device
# Note: if autoscan is enabled, default device will be the first device available in device list.
device.name = "Itead_PN532_SPI"
device.connstring = "pn532_i2c:/dev/i2c-1"

Я попытался установить параметр allow_intrusive_scan в true, но это ничего не меняет.


Есть ли у вас какие-либо идеи? Заранее большое спасибо.

1 ответ

«Raspberry Pi не обеспечивает достаточного тока для питания PN532 chip. Если вы попытаетесь запустить PN532от вашего Raspberry Piон будет сбрасываться случайным образом и может не реагировать на команды. Вместо этого вам понадобится another power source (3.3v) to power the PN532."

Я нашел эту статью, она может быть полезной. https://pypi.org/project/pn532pi/

Другие вопросы по тегам