The PN532 เป็นโมดูล NFC (Near Field Communication) ที่หลากหลาย สามารถใช้สำหรับการอ่านและเขียนแท็ก NFC รวมถึงการใช้งานระบบ RFID การใช้ PN532 กับ Raspberry Pi ช่วยให้คุณผนวกความสามารถ NFC เข้ากับโปรเจกต์ของคุณสำหรับแอปพลิเคชันอย่างการควบคุมการเข้าออก การชำระเงินแบบไม่สัมผัส และอุปกรณ์ IoT คำแนะนำนี้จะพาคุณตั้งค่าและใช้งาน PN532 กับ Raspberry Pi
สิ่งที่คุณจะต้องมี
- Raspberry Pi (ทุกรุ่นที่รองรับ GPIO เช่น Pi 3, Pi 4)
- PN532 NFC Module
- แผงทดลอง (Breadboard) และสาย Jumper
- คอมพิวเตอร์ที่เข้าถึง Raspberry Pi ผ่าน SSH หรือคีย์บอร์ดและจอภาพที่เชื่อมต่อ
- Python ติดตั้งบน Raspberry Pi
ขั้นตอนที่ 1: การต่อสาย PN532 เข้ากับ Raspberry Pi
โมดูล PN532 module รองรับโปรโตคอลการสื่อสารหลายแบบ ได้แก่ I2C, SPI และ UART คำแนะนำนี้จะใช้อินเทอร์เฟซ I2C เพื่อความง่าย
การเชื่อมต่อ (โหมด I2C)
| PN532 Pin | Raspberry Pi Pin |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Ground (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
| SEL0 | GND |
| SEL1 | VCC |
หมายเหตุ: ขา SEL0 และ SEL1 จะกำหนดโหมดการสื่อสาร การต่อ SEL0 เข้ากับ GND และ SEL1 เข้ากับ VCC จะเลือกโหมด I2C
ขั้นตอนที่ 2: เปิดใช้งานอินเทอร์เฟซ I2C บน Raspberry Pi
- เปิดเครื่องมือการกำหนดค่าของ Raspberry Pi:
sudo raspi-config - ไปที่ Interface Options > I2C และเปิดใช้งาน
- รีบูต Raspberry Pi:
sudo reboot
ขั้นตอนที่ 3: ติดตั้งเครื่องมือและไลบรารีที่จำเป็น
- อัปเดต Raspberry Pi ของคุณ:
sudo apt update && sudo apt upgrade -y - ติดตั้งเครื่องมือ I2C:
sudo apt install -y i2c-tools - ติดตั้งไลบรารี Python สำหรับการสื่อสาร I2C และฟังก์ชันของ PN532:
pip install adafruit-circuitpython-pn532
ขั้นตอนที่ 4: ตรวจสอบการเชื่อมต่อ
- ใช้
i2cdetectเพื่อตรวจสอบว่า PN532 ถูกตรวจพบบนบัส I2C หรือไม่:sudo i2cdetect -y 1 - คุณควรเห็น PN532 ที่ที่อยู่
0x24หรือ0x48หากไม่เห็น: - ตรวจสอบการต่อสายของคุณ.
- ตรวจสอบให้แน่ใจว่า PN532 ได้รับพลังงาน
ขั้นตอนที่ 5: การอ่านแท็ก NFC ด้วย Python
สคริปต์ Python ต่อไปนี้แสดงตัวอย่างการอ่านแท็ก NFC โดยใช้ PN532.
Python Code Example
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()}")
ขั้นตอนที่ 6: การใช้งานของ PN532
- การควบคุมการเข้าออก: สร้างระบบล็อกประตูแบบใช้ NFC
- การชำระเงินแบบไม่สัมผัส: จำลองระบบการชำระเงินด้วยบัตร NFC
- โปรเจกต์ IoT: ใช้แท็ก NFC เพื่อเริ่มเหตุการณ์อัตโนมัติ
- บันทึกข้อมูล: เขียนข้อมูลลงแท็ก NFC สำหรับการนับสต็อกหรือการติดตาม
การแก้ไขปัญหา
-
อุปกรณ์ไม่ถูกตรวจพบ:
- ตรวจสอบการเชื่อมต่อ SDA และ SCL
- ตรวจสอบว่าอินเทอร์เฟซ I2C ถูกเปิดใช้งานบน Raspberry Pi
- ตรวจสอบการกำหนดค่า SEL0 และ SEL1 สำหรับโหมด I2C
-
ข้อผิดพลาดในการอ่าน:
- ตรวจสอบให้แน่ใจว่าแท็ก NFC อยู่ในระยะของ PN532.
- ตรวจสอบการรบกวนจากวัตถุโลหะหรืออุปกรณ์อิเล็กทรอนิกส์อื่น ๆ
-
ข้อผิดพลาด I2C:
- ตรวจสอบว่าไม่มีอุปกรณ์ที่ขัดแย้งกันบนบัส I2C
บทสรุป
โมดูล PN532 NFC module เป็นเครื่องมือที่หลากหลายสำหรับเพิ่มความสามารถ NFC และ RFID ให้กับโปรเจกต์ Raspberry Pi ของคุณ โดยทำตามคำแนะนำนี้ คุณสามารถตั้งค่าและใช้ PN532 สำหรับแอปพลิเคชันอย่างการควบคุมการเข้าออก อัตโนมัติของ IoT และการแลกเปลี่ยนข้อมูลแบบไม่สัมผัส ทดลองอ่านและเขียนแท็ก NFC เพื่อสำรวจศักยภาพเต็มรูปแบบของโมดูลทรงพลังนี้!





