PN532 เป็นโมดูล NFC ที่หลากหลาย (ใกล้กับการสื่อสารภาคสนาม) ที่สามารถใช้สำหรับการอ่านและการเขียนแท็ก NFC รวมถึงการใช้ระบบ RFID การใช้ PN532 กับ Raspberry Pi ช่วยให้คุณสามารถรวมความสามารถของ NFC เข้ากับโครงการของคุณสำหรับแอปพลิเคชันเช่นการควบคุมการเข้าถึงการชำระเงินแบบไม่สัมผัสและอุปกรณ์ IoT คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้ PN532 กับ Raspberry Pi
สิ่งที่คุณต้องการ
- Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
- โมดูล PN532 NFC
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่มีการเข้าถึง SSH ไปยัง Raspberry Pi หรือแป้นพิมพ์และจอภาพที่เชื่อมต่อ
- Python ติดตั้งบน Raspberry Pi
ขั้นตอนที่ 1: เดินสาย PN532 ไปยังราสเบอร์รี่ pi
โมดูล PN532 รองรับโปรโตคอลการสื่อสารที่หลากหลายรวมถึง I2C, SPI และ UART คู่มือนี้ใช้อินเตอร์เฟส I2C เพื่อความเรียบง่าย
การเชื่อมต่อ (โหมด I2C)
PN532 PIN | Raspberry Pi Pin |
---|---|
VCC | 3.3V (พิน 1) |
gnd | พื้นดิน (พิน 6) |
SDA | SDA (พิน 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
- นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน
- รีบูตราสเบอร์รี่ 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
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
- ตรวจสอบการกำหนดค่า PIN SEL0 และ SEL1 สำหรับโหมด I2C
-
อ่านข้อผิดพลาด:
- ตรวจสอบให้แน่ใจว่าแท็ก NFC อยู่ในช่วงของ PN532
- ตรวจสอบการรบกวนจากวัตถุโลหะหรืออุปกรณ์อิเล็กทรอนิกส์อื่น ๆ
-
ข้อผิดพลาด I2C:
- ตรวจสอบให้แน่ใจว่าไม่มีอุปกรณ์ที่ขัดแย้งกันบนรถบัส I2C
บทสรุป
โมดูล PN532 NFC เป็นเครื่องมืออเนกประสงค์สำหรับการเพิ่มความสามารถของ NFC และ RFID ให้กับโครงการ Raspberry Pi ของคุณ โดยทำตามคำแนะนำนี้คุณสามารถตั้งค่าและใช้ PN532 สำหรับแอปพลิเคชันเช่นการควบคุมการเข้าถึงระบบอัตโนมัติ IoT และการแลกเปลี่ยนข้อมูลแบบไม่ติดต่อ ทดลองกับการอ่านและการเขียนแท็ก NFC เพื่อสำรวจศักยภาพเต็มรูปแบบของโมดูลที่ทรงพลังนี้!