Невозможно сканировать метки 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/