ใช้ PN532 กับ Raspberry Pi

Using the PN532 with the Raspberry Pi

PN532 เป็นโมดูล NFC ที่หลากหลาย (ใกล้กับการสื่อสารภาคสนาม) ที่สามารถใช้สำหรับการอ่านและการเขียนแท็ก NFC รวมถึงการใช้ระบบ RFID การใช้ PN532 กับ Raspberry Pi ช่วยให้คุณสามารถรวมความสามารถของ NFC เข้ากับโครงการของคุณสำหรับแอปพลิเคชันเช่นการควบคุมการเข้าถึงการชำระเงินแบบไม่สัมผัสและอุปกรณ์ IoT คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้ PN532 กับ Raspberry Pi


สิ่งที่คุณต้องการ

  1. Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
  2. โมดูล PN532 NFC
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. คอมพิวเตอร์ที่มีการเข้าถึง SSH ไปยัง Raspberry Pi หรือแป้นพิมพ์และจอภาพที่เชื่อมต่อ
  5. 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

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:
    sudo raspi-config
    
  2. นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน
  3. รีบูตราสเบอร์รี่ pi:
    sudo reboot
    

ขั้นตอนที่ 3: ติดตั้งเครื่องมือและไลบรารีที่จำเป็น

  1. อัปเดต Raspberry Pi ของคุณ:
    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้งเครื่องมือ I2C:
    sudo apt install -y i2c-tools
    
  3. ติดตั้งไลบรารี Python สำหรับการสื่อสาร I2C และฟังก์ชั่น PN532:
    pip install adafruit-circuitpython-pn532
    

ขั้นตอนที่ 4: ตรวจสอบการเชื่อมต่อ

  1. ใช้ i2cdetect ในการตรวจสอบ PN532 ถูกตรวจพบบนรถบัส I2C:
    sudo i2cdetect -y 1
    
  2. คุณควรเห็นที่อยู่ 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

  1. การควบคุมการเข้าถึง: สร้างระบบล็อคประตูที่ใช้ NFC
  2. การชำระเงินแบบไม่สัมผัส: จำลองระบบการชำระเงินด้วยบัตร NFC
  3. โครงการ IoT: ใช้แท็ก NFC เพื่อทริกเกอร์กิจกรรมอัตโนมัติ
  4. การบันทึกข้อมูล: เขียนข้อมูลไปยังแท็ก NFC สำหรับสินค้าคงคลังหรือการติดตาม

การแก้ไขปัญหา

  1. ไม่พบอุปกรณ์:

    • ตรวจสอบการเชื่อมต่อ SDA และ SCL
    • ตรวจสอบให้แน่ใจว่าอินเทอร์เฟซ I2C เปิดใช้งานบน Raspberry Pi
    • ตรวจสอบการกำหนดค่า PIN SEL0 และ SEL1 สำหรับโหมด I2C
  2. อ่านข้อผิดพลาด:

    • ตรวจสอบให้แน่ใจว่าแท็ก NFC อยู่ในช่วงของ PN532
    • ตรวจสอบการรบกวนจากวัตถุโลหะหรืออุปกรณ์อิเล็กทรอนิกส์อื่น ๆ
  3. ข้อผิดพลาด I2C:

    • ตรวจสอบให้แน่ใจว่าไม่มีอุปกรณ์ที่ขัดแย้งกันบนรถบัส I2C

บทสรุป

โมดูล PN532 NFC เป็นเครื่องมืออเนกประสงค์สำหรับการเพิ่มความสามารถของ NFC และ RFID ให้กับโครงการ Raspberry Pi ของคุณ โดยทำตามคำแนะนำนี้คุณสามารถตั้งค่าและใช้ PN532 สำหรับแอปพลิเคชันเช่นการควบคุมการเข้าถึงระบบอัตโนมัติ IoT และการแลกเปลี่ยนข้อมูลแบบไม่ติดต่อ ทดลองกับการอ่านและการเขียนแท็ก NFC เพื่อสำรวจศักยภาพเต็มรูปแบบของโมดูลที่ทรงพลังนี้!

แสดงความคิดเห็น

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.