RFID-RC522モジュール

概要

このレッスンでは、RFIDモジュールの使用方法を学びます。RFIDはRadio Frequency Identificationの略で、その原理はリーダーとラベル間の非接触データ通信によってターゲットを識別することにあります。RFIDの応用範囲は広く、動物チップ、イモビライザー、アクセスコントロール、駐車場管理、生産チェーンの自動化、資材管理などが含まれます。

必要なコンポーネント

このプロジェクトでは、以下のコンポーネントが必要です。

全体のキットを購入すると便利です。以下がリンクです:

名称

このキットのアイテム数

リンク

Elite Explorer Kit

300+

Elite Explorer Kit

以下のリンクから個別に購入することもできます。

コンポーネント紹介

購入リンク

Arduino Uno R4 WiFi

-

ジャンパーワイヤー

BUY

MFRC522モジュール

BUY

配線図

この例では、RFIDをブレッドボードに挿入します。RFIDの3.3Vを3.3Vに、GNDをGNDに、RSTをピン2に、SDAをピン6に、SCKをピン5に、MOSIをピン4に、MISOをピン3に、IRQをピン7に接続します。

../_images/08-rfid_bb.png

回路図

../_images/08_mfrc522_schematic.png

コード

注釈

  • elite-explorer-kit-main\basic_project\08-mfrc522 のパスの下にあるファイル 08-mfrc522.ino を直接開くことができます。

  • ここでは RFID1 ライブラリが使用されています。このライブラリは elite-explorer-kit-main/library/ ディレクトリにありますが、こちら RFID1.zip からダウンロードすることもできます。インストール方法については 手動インストール を参照してください。

unoボードにコードをアップロードすると、RFIDカード(秘密の鍵)をRFIDリーダーに近づけることができます。モジュールはカード情報を読み取り、シリアルモニターに表示します。

コード解析

このモジュールの機能は rfid1.h というライブラリに含まれています。

#include <rfid1.h>

ライブラリの関数:

RFID1 rfid;

Arduinoに接続された特定のRFIDモジュールを表すrfid1クラスの新しいインスタンスを作成します。

void begin(IRQ_PIN,SCK_PIN,MOSI_PIN,MISO_PIN,SDA_PIN,RST_PIN)

ピンの設定です。

  • IRQ_PIN,SCK_PIN,MOSI_PIN,MISO_PIN: SPI通信に使用されるピン。

  • SDA_PIN: 同期データアダプター。

  • RST_PIN: リセットに使用されるピン。

void init()

RFIDを初期化します。

uchar request(uchar reqMode, uchar *TagType);

カードを検索し、カードタイプを読み取ります。この関数はRFIDの現在の読み取り状態を返し、成功した場合はMI_OKを返します。

  • reqMode: 検索方法。PICC_REQIDLは0x26コマンドビットを定義しています(アンテナエリア内のスリープモードでないカードを検索します)。

  • *TagType: カードタイプを格納するために使用され、4バイトの値が可能です(例: 0x0400)。

char * readCardType(uchar *TagType)

この関数は *tagType の4桁の16進数を特定のカードタイプにデコードし、文字列を返します。0x0400を渡した場合は「MFOne-S50」が返されます。

uchar anticoll(uchar *serNum);

衝突を防ぎ、カードのシリアル番号を読み取ります。この関数はRFIDの現在の読み取り状態を返し、成功した場合はMI_OKを返します。

  • *serNum: カードシリアル番号を格納するために使用され、4バイトのカードシリアル番号を返します。5番目のバイトは再チェックバイトです(例: 私の磁気カードIDは5AE4C955)。