PN532 to wszechstronny moduł NFC (komunikacja w pobliżu pola), który można użyć do czytania i pisania tagów NFC, a także do wdrażania systemów RFID. Korzystanie z PN532 z Raspberry Pi umożliwia integrację funkcji NFC z projektami dla aplikacji, takich jak kontrola dostępu, płatności bez kontaktu i urządzenia IoT. Ten przewodnik poprowadzi Cię przez konfigurowanie i korzystanie z PN532 z Raspberry Pi.
Czego będziesz potrzebować
- Raspberry Pi (Każdy model z obsługą GPIO, np. PI 3, PI 4)
- Moduł PN532 NFC
- Druty chleba i skoczków
- Komputer z dostępem do SSH do Raspberry Pi lub podłączonej klawiatury i monitorowania
- Python zainstalowany na Raspberry Pi
Krok 1: Okablowanie PN532 do Raspberry Pi
Moduł PN532 obsługuje wiele protokołów komunikacyjnych, w tym I2C, SPI i UART. W tym przewodniku wykorzystuje interfejs I2C dla uproszczenia.
Połączenia (tryb I2C)
PN532 PIN | Pin Raspberry Pi |
---|---|
VCC | 3,3 V (pin 1) |
GND | Uziemienie (pin 6) |
SDA | SDA (pin 3, GPIO2) |
Scl | SCL (pin 5, GPIO3) |
SEL0 | GND |
SEL1 | VCC |
Notatka: Piny SEL0 i SEL1 określają tryb komunikacji. Podłączanie SEL0 z GND i SEL1 do VCC wybiera tryb I2C.
Krok 2: Włącz interfejs I2C na Raspberry Pi
- Otwórz narzędzie konfiguracyjne Raspberry Pi:
sudo raspi-config
- Przejść do Opcje interfejsu> i2c i włącz to.
- Uruchom ponownie Raspberry Pi:
sudo reboot
Krok 3: Zainstaluj wymagane narzędzia i biblioteki
- Zaktualizuj swoje Raspberry Pi:
sudo apt update && sudo apt upgrade -y
- Zainstaluj narzędzia I2C:
sudo apt install -y i2c-tools
- Zainstaluj biblioteki Python do komunikacji I2C i funkcjonalności PN532:
pip install adafruit-circuitpython-pn532
Krok 4: Sprawdź połączenie
- Używać
i2cdetect
Aby sprawdzić, czy PN532 jest wykrywane w autobusie I2C:sudo i2cdetect -y 1
- Powinieneś zobaczyć PN532 pod adresem
0x24
Lub0x48
. W przeciwnym razie:- Sprawdź okablowanie.
- Upewnij się, że PN532 jest zasilany.
Krok 5: Czytanie tagów NFC z Pythonem
Poniższy skrypt Python pokazuje, jak czytać znaczniki NFC za pomocą PN532.
Przykład kodu Pythona
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()}")
Krok 6: Zastosowania PN532
- Kontrola dostępu: Utwórz system zamków drzwi oparty na NFC.
- Płatności bez kontaktu: Symuluj systemy płatności kartami NFC.
- Projekty IoT: Użyj tagów NFC, aby wyzwolić zdarzenia automatyzacji.
- Rejestrowanie danych: Zapisz dane do tagów NFC do celów zapasów lub śledzenia.
Rozwiązywanie problemów
-
Urządzenie nie wykryte:
- Sprawdź połączenia SDA i SCL.
- Upewnij się, że interfejs I2C jest włączony na Raspberry Pi.
- Sprawdź konfigurację PIN SEL0 i SEL1 dla trybu I2C.
-
Przeczytaj błędy:
- Upewnij się, że znacznik NFC znajduje się w zakresie PN532.
- Sprawdź zakłócenia z metalowych obiektów lub innych urządzeń elektronicznych.
-
Błędy I2C:
- Upewnij się, że w autobusie I2C nie ma sprzecznych urządzeń.
Wniosek
Moduł NFC PN532 to wszechstronne narzędzie do dodawania możliwości NFC i RFID do projektów Raspberry Pi. Postępując zgodnie z tym przewodnikiem, możesz skonfigurować i użyć PN532 dla aplikacji takich jak kontrola dostępu, automatyzacja IoT i Bezpośrednie wymianę danych. Eksperymentuj z czytaniem i pisaniem tagów NFC, aby zbadać pełny potencjał tego potężnego modułu!