PN532 è un modulo versatile NFC (Near Field Communication) che può essere utilizzato per la lettura e la scrittura di tag NFC, nonché per l'implementazione di sistemi RFID. L'uso della PN532 con un Raspberry Pi consente di integrare le funzionalità NFC nei progetti per applicazioni come controllo di accesso, pagamenti senza contatto e dispositivi IoT. Questa guida ti guida per impostare e utilizzare la PN532 con un Raspberry Pi.
Cosa avrai bisogno
- Raspberry Pi (Qualsiasi modello con supporto GPIO, ad esempio PI 3, PI 4)
- Modulo NFC PN532
- Breadboard e fili jumper
- Un computer con accesso SSH a Raspberry Pi o una tastiera e un monitoraggio collegati
- Python installato su Raspberry Pi
Passaggio 1: Cablaggio della PN532 a Raspberry Pi
The PN532 module supports multiple communication protocols, including I2C, SPI, and UART. This guide uses the I2C interface for simplicity.
Connessioni (modalità I2C)
PIN PN532 | Pin di lampone |
---|---|
VCC | 3.3V (pin 1) |
GND | Terra (pin 6) |
SDA | SDA (PIN 3, GPIO2) |
SCL | SCL (PIN 5, GPIO3) |
Sel0 | GND |
Sel1 | VCC |
Nota: I pin SEL0 e SEL1 determinano la modalità di comunicazione. Collegamento di SEL0 a GND e SEL1 a VCC Seleziona la modalità I2C.
Passaggio 2: abilita l'interfaccia I2C su Raspberry Pi
- Apri lo strumento di configurazione Raspberry Pi:
sudo raspi-config
- Navigare a Opzioni di interfaccia> i2c e abilitarlo.
- Riavvia il Raspberry Pi:
sudo reboot
Passaggio 3: installare strumenti e librerie richieste
- Aggiorna il tuo Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Installa gli strumenti I2C:
sudo apt install -y i2c-tools
- Installa le librerie Python per la comunicazione I2C e la funzionalità PN532:
pip install adafruit-circuitpython-pn532
Passaggio 4: verificare la connessione
- Utilizzo
i2cdetect
Per verificare che il PN532 sia rilevato sul bus I2C:sudo i2cdetect -y 1
- Dovresti vedere il PN532 all'indirizzo
0x24
O0x48
. Se non:- Controlla il tuo cablaggio.
- Assicurarsi che il PN532 sia alimentato.
Passaggio 5: leggere i tag NFC con Python
Il seguente script Python dimostra come leggere i tag NFC usando PN532.
Esempio di codice Python
import board
import busio
from adafruit_pn532.i2c import PN532_I2C
# I2C connection setup
i2c = busio.I2C(board.SCL, board.SDA)
pn532 = PN532_I2C(i2c, debug=False)
# Configure PN532 to read NFC tags
pn532.SAM_configuration()
print("Waiting for an NFC tag...")
while True:
uid = pn532.read_passive_target(timeout=0.5)
if uid is not None:
print(f"Found NFC tag with UID: {uid.hex()}")
Passaggio 6: applicazioni della PN532
- Controllo degli accessi: Crea un sistema di blocco della porta basato su NFC.
- Pagamenti senza contatto: Simula sistemi di pagamento con schede NFC.
- Progetti IoT: Utilizzare i tag NFC per attivare eventi di automazione.
- Registrazione dei dati: Scrivi i dati ai tag NFC per scopi di inventario o di tracciamento.
Risoluzione dei problemi
-
Dispositivo non rilevato:
- Verificare le connessioni SDA e SCL.
- Assicurarsi che l'interfaccia I2C sia abilitata su Raspberry Pi.
- Controllare la configurazione del pin SEL0 e SEL1 per la modalità I2C.
-
Leggi gli errori:
- Assicurarsi che il tag NFC sia nel raggio di PN532.
- Verificare l'interferenza da oggetti metallici o altri dispositivi elettronici.
-
Errori i2c:
- Assicurati che non ci siano dispositivi contrastanti sul bus I2C.
Conclusione
Il modulo NFC PN532 è uno strumento versatile per l'aggiunta di funzionalità NFC e RFID ai progetti Raspberry Pi. Seguendo questa guida, è possibile impostare e utilizzare PN532 per applicazioni come controllo di accesso, automazione IoT e scambio di dati senza contatto. Sperimenta la lettura e la scrittura di tag NFC per esplorare il pieno potenziale di questo potente modulo!