Met behulp van de PN532 met de Raspberry Pi

Using the PN532 with the Raspberry Pi

De PN532 is een veelzijdige NFC -module (Near Field Communication) die kan worden gebruikt voor het lezen en schrijven van NFC -tags, evenals voor het implementeren van RFID -systemen. Met behulp van de PN532 met een Raspberry PI kunt u NFC -mogelijkheden integreren in uw projecten voor applicaties zoals toegangscontrole, contactloze betalingen en IoT -apparaten. Deze gids leidt u door het opzetten en gebruiken van de PN532 met een Raspberry Pi.


Wat u nodig hebt

  1. Raspberry Pi (Elk model met GPIO -ondersteuning, bijvoorbeeld PI 3, PI 4)
  2. PN532 NFC -module
  3. Breadboard en jumper draden
  4. Een computer met SSH -toegang tot de Raspberry Pi of een aangesloten toetsenbord en monitor
  5. Python geïnstalleerd op de Raspberry Pi

Stap 1: De PN532 bedraden naar de Raspberry Pi

De PN532 -module ondersteunt meerdere communicatieprotocollen, waaronder I2C, SPI en UART. Deze gids gebruikt de I2C -interface voor eenvoud.

Verbindingen (I2C -modus)

PN532 PIN Raspberry Pi Pin
VCC 3.3V (pin 1)
GND Grond (pin 6)
SDA SDA (Pin 3, GPIO2)
SCL SCL (Pin 5, GPIO3)
Sel0 GND
SEL1 VCC

Opmerking: De SEL0- en SEL1 -pinnen bepalen de communicatiemodus. SEL0 verbinden met GND en SEL1 met VCC selecteert de I2C -modus.


Stap 2: Schakel de I2C -interface in op de Raspberry Pi

  1. Open de Raspberry Pi -configuratie -tool:
    sudo raspi-config
    
  2. Navigeren naar Interface -opties> I2C en schakel het in.
  3. Start de Raspberry Pi opnieuw op:
    sudo reboot
    

Stap 3: Installeer de vereiste tools en bibliotheken

  1. Update uw Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. Installeer de I2C -tools:
    sudo apt install -y i2c-tools
    
  3. Installeer Python -bibliotheken voor I2C -communicatie en PN532 -functionaliteit:
    pip install adafruit-circuitpython-pn532
    

Stap 4: Controleer de verbinding

  1. Gebruik i2cdetect Om te verifiëren wordt de PN532 op de I2C -bus gedetecteerd:
    sudo i2cdetect -y 1
    
  2. U zou de PN532 op adres moeten zien 0x24 of 0x48. Zo niet:
    • Controleer uw bedrading.
    • Zorg ervoor dat de PN532 wordt aangedreven.

Stap 5: NFC -tags lezen met Python

Het volgende Python -script laat zien hoe NFC -tags te lezen met behulp van de PN532.

Python Code Voorbeeld

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()}")

Stap 6: Toepassingen van de PN532

  1. Toegangscontrole: Maak een NFC-gebaseerd deurslotsysteem.
  2. Contactloze betalingen: Simuleer betalingssystemen met NFC -kaarten.
  3. IoT -projecten: Gebruik NFC -tags om automatiseringsgebeurtenissen te activeren.
  4. Gegevensregistratie: Schrijf gegevens naar NFC -tags voor inventaris- of volgdoeleinden.

Problemen oplossen

  1. Apparaat niet gedetecteerd:

    • Controleer SDA- en SCL -verbindingen.
    • Zorg ervoor dat de I2C -interface is ingeschakeld op de Raspberry Pi.
    • Controleer de SEL0- en SEL1 -pin -configuratie voor de I2C -modus.
  2. Lees fouten:

    • Zorg ervoor dat de NFC -tag zich binnen het bereik van de PN532 bevindt.
    • Controleer op interferentie van metaalobjecten of andere elektronische apparaten.
  3. I2C -fouten:

    • Zorg ervoor dat er geen tegenstrijdige apparaten op de I2C -bus staan.

Conclusie

De PN532 NFC -module is een veelzijdig hulpmiddel voor het toevoegen van NFC- en RFID -mogelijkheden aan uw Raspberry PI -projecten. Door deze handleiding te volgen, kunt u de PN532 instellen en gebruiken voor applicaties zoals toegangscontrole, IoT -automatisering en contactloze gegevensuitwisseling. Experiment with reading and writing NFC tags to explore the full potential of this powerful module!

Laat een reactie achter

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.