6.5 - 無線周波数識別(RFID)¶
無線周波数識別(RFID)は、オブジェクト(またはタグ)と照会装置(またはリーダー)との間で無線通信を使用して、そのようなオブジェクトを自動的に追跡・識別するテクノロジーを指します。タグの伝送範囲はリーダーから数メートルに限られます。リーダーとタグの間には必ずしも直線的な視界が必要ではありません。
ほとんどのタグには、少なくとも一つの集積回路(IC)とアンテナが含まれています。 このマイクロチップは情報を格納し、リーダーとの無線周波数(RF)通信を管理しています。パッシブタグには独立したエネルギー源がなく、リーダーから提供される外部の電磁信号に依存して動作します。 アクティブタグには独立したエネルギー源、例えばバッテリーが含まれています。 したがって、これらは処理能力、伝送能力、および範囲が増加する可能性があります。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
全体のキットを購入するのが便利です、リンクは以下の通りです:
名前 |
このキットに含まれるアイテム |
購入リンク |
---|---|---|
ケプラーキット |
450以上 |
以下のリンクから個別に購入することもできます。
番号 |
コンポーネント紹介 |
数量 |
購入リンク |
---|---|---|---|
1 |
1 |
||
2 |
Micro USBケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
1 |
回路図
配線
コード
注釈
ファイル
6.5_rfid_write.ino
は、パスkepler-kit-main/arduino/6.5_rfid_write
で開くことができます。または、このコードを Arduino IDE にコピーしてください。
アップロード ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択してください。
ここではライブラリ「MFRC522」が使用されています。Arduino IDEに追加する方法については、 ライブラリを追加 を参照してください。
メインの関数は二つに分かれています:
6.5_rfid_write.ino
:カード(またはキー)に情報を書き込むために使用されます。6.5_rfid_read.ino
:カード(またはキー)内の情報を読み取るために使用されます。
注釈
ファイル
6.5_rfid_write.ino
は、パスkepler-kit-main/arduino/6.5_rfid_write
で開くことができます。または、このコードを Arduino IDE にコピーしてください。
アップロード ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択してください。
実行後、シリアルモニターでメッセージを入力して、 #
で終了した後、MFRC522モジュールに近づけることでカード(またはキー)にメッセージを書き込むことができます。
注釈
ファイル
6.5_rfid_read.ino
は、パスkepler-kit-main/arduino/6.5_rfid_read
で開くことができます。または、このコードを Arduino IDE にコピーしてください。
アップロード ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択してください。
実行後、カード(またはキー)に保存されているメッセージを読み取ることができます。
どのように動作するのか?
#include <MFRC522.h>
#define RST_PIN 0
#define SS_PIN 5
MFRC522 mfrc522(SS_PIN, RST_PIN);
まず、 MFRC522()
クラスをインスタンス化します。
使いやすさのために、 MFRC522
ライブラリは以下の関数でさらにカプセル化されています。
void simple_mfrc522_init()
: SPI通信を開始し、mfrc522モジュールを初期化します。void simple_mfrc522_get_card()
: カード(またはキー)が検出されるまでプログラムを一時停止し、カードのUIDとPICCタイプを表示します。void simple_mfrc522_write(String text)
: カード(またはキー)に文字列を書き込みます。void simple_mfrc522_write(byte* buffer)
: 通常はシリアルポートから来る情報をカード(またはキー)に書き込みます。void simple_mfrc522_write(byte section, String text)
: 特定のセクターに文字列を書き込みます。section
が0の場合、セクター1-2に書き込みます;section
が1の場合、セクター3-4に書き込みます。void simple_mfrc522_write(byte section, byte* buffer)
: 通常はシリアルポートから来る情報を特定のセクターに書き込みます。section
が0の場合、セクター1-2に書き込みます;section
が1の場合、セクター3-4に書き込みます。String simple_mfrc522_read()
: カード(またはキー)内の情報を読み取り、文字列を返します。String simple_mfrc522_read(byte section)
: 特定のセクター内の情報を読み取り、文字列を返します。section
が0の場合、セクター1-2を読み取ります;section
が1の場合、セクター3-4を読み取ります。
6.5_rfid_write.ino
の例では、一般的なシリアル入力方法として Serial.readBytesUntil()
関数が使用されています。