ArduinoでPN532 RFID/NFCリーダーを使用する方法

How to Use the PN532 RFID/NFC Reader with Arduino

PN532は、複数の通信モードと標準をサポートする汎用性の高いRFID/NFCリーダーモジュールであり、認証、非接触型支払い、IoTプロジェクトに最適です。このチュートリアルでは、RFID/NFCタグを読み取るために、PN532モジュールとArduinoをインターフェースすることをガイドします。

あなたが必要とするもの

  1. PN532 RFID/NFCモジュール
  2. Arduino委員会(例:UNO、MEGA、NANO)
  3. ブレッドボード
  4. ジャンパーワイヤ
  5. rfid/nfcタグ(例:mifareカード)
  6. Arduino IDEがインストールされたコンピューター

ステップ1:PN532モジュールの理解

PN532モジュールは、3つの通信モードをサポートしています。

  1. I2C (多くのモジュールのデフォルト):SDAラインとSCLラインを使用します。
  2. spi:MOSI、MISO、およびSCKラインを使用します。
  3. uart(シリアル):TXおよびRXピンを使用します。

このチュートリアルでは、を使用します I2Cモード、セットアップが簡単で広くサポートされているためです。

I2CモードのPN532ピンアウト

ピン 関数
VCC 電源(3.3V/5V)
GND 地面
SDA I2Cデータライン
SCL I2Cクロックライン

ステップ2:PN532をArduinoに配線します

PN532モジュールをI2CモードでArduino UNOに接続する方法は次のとおりです。

PN532ピン Arduino Pin
VCC 5V
GND GND
SDA A4
SCL A5

注記: モジュールにモード選択ジャンパーがある場合は、I2Cモードに設定します。

ステップ3:必要なライブラリをインストールします

PN532モジュールとの相互作用を簡素化するには、次のライブラリをインストールします。

  1. Adafruit PN532ライブラリ
  2. Adafruit Busio Library (PN532ライブラリの依存関係)

インストールする手順:

  1. Arduino IDEを開きます。
  2. 行きます スケッチ > ライブラリを含めます > ライブラリを管理します.
  3. 「Adafruit PN532」を検索し、クリックします インストール.
  4. 「Adafruit Busio」を検索してクリックします インストール.

ステップ4:コードをアップロードします

RFID/NFCタグからデータを読むためのスケッチの例は次のとおりです。

#include <Wire.h>
#include <Adafruit_PN532.h>

#define SDA_PIN A4
#define SCL_PIN A5

Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);

void setup() {
  Serial.begin(9600);
  Serial.println("PN532 RFID/NFC Reader Test");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (!versiondata) {
    Serial.println("Didn't find PN532 module. Check connections.");
    while (1);
  }

  Serial.println("Found PN532 module.");
  nfc.SAMConfig(); // Configure the module in normal mode
  Serial.println("Waiting for an NFC card...");
}

void loop() {
  uint8_t success;
  uint8_t uid[] = { 0 }; // Buffer to store UID
  uint8_t uidLength;     // Length of the UID

  // Check if an NFC card is present
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);

  if (success) {
    Serial.println("Found an NFC card!");
    Serial.print("UID Length: ");
    Serial.print(uidLength, DEC);
    Serial.println(" bytes");
    Serial.print("UID Value: ");
    for (uint8_t i = 0; i < uidLength; i++) {
      Serial.print(" 0x");
      Serial.print(uid[i], HEX);
    }
    Serial.println("");
    delay(1000); // Wait 1 second
  }
}

ステップ5:セットアップをテストします

  1. USBを介してArduinoをコンピューターに接続します。
  2. Arduino IDEを開き、正しいものを選択します ボード そして ポート の下 ツール メニュー。
  3. クリックしてコードをArduinoにアップロードします アップロード.
  4. シリアルモニターを開きます(ツール > シリアルモニター)そして、ボーレートをに設定します 9600.
  5. PN532モジュールの近くにRFID/NFCタグを配置します。シリアルモニターには、タグのUID(一意の識別子)を表示する必要があります。

トラブルシューティング

  • 検出されていないモジュール: 配線を再確認し、モードジャンパーがI2Cに設定されていることを確認します。
  • タグは検出されません: タグが互換性があることを確認します(この例では、Mifareカードなど)。
  • 不安定な測定値: 短いジャンパーワイヤを使用して、モジュールに安定した電力を確保します。

PN532モジュールのアプリケーション

  1. アクセス制御システム
  2. 非接触型支払いシステム
  3. スマートインベントリ管理
  4. 安全な認証を必要とするIoTデバイス

結論

PN532 RFID/NFCモジュールにArduinoをインターフェースし、RFID/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.