.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _ar_rfid: 6.5 - 無線周波数識別(RFID) ================================================ 無線周波数識別(RFID)は、オブジェクト(またはタグ)と照会装置(またはリーダー)との間で無線通信を使用して、そのようなオブジェクトを自動的に追跡・識別するテクノロジーを指します。タグの伝送範囲はリーダーから数メートルに限られます。リーダーとタグの間には必ずしも直線的な視界が必要ではありません。 ほとんどのタグには、少なくとも一つの集積回路(IC)とアンテナが含まれています。 このマイクロチップは情報を格納し、リーダーとの無線周波数(RF)通信を管理しています。パッシブタグには独立したエネルギー源がなく、リーダーから提供される外部の電磁信号に依存して動作します。 アクティブタグには独立したエネルギー源、例えばバッテリーが含まれています。 したがって、これらは処理能力、伝送能力、および範囲が増加する可能性があります。 * :ref:`cpn_mfrc522` **必要なコンポーネント** このプロジェクトでは、以下のコンポーネントが必要です。 全体のキットを購入するのが便利です、リンクは以下の通りです: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットに含まれるアイテム - 購入リンク * - ケプラーキット - 450以上 - |link_kepler_kit| 以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 5 20 5 20 :header-rows: 1 * - 番号 - コンポーネント紹介 - 数量 - 購入リンク * - 1 - :ref:`cpn_pico_w` - 1 - |link_picow_buy| * - 2 - Micro USBケーブル - 1 - * - 3 - :ref:`cpn_breadboard` - 1 - |link_breadboard_buy| * - 4 - :ref:`cpn_wire` - 数本 - |link_wires_buy| * - 5 - :ref:`cpn_mfrc522` - 1 - |link_rfid_buy| **回路図** |sch_rfid| **配線** |wiring_rfid| **コード** .. note:: * ここでは ``MFRC522`` ライブラリが使用されています。このライブラリは **Library Manager** からインストールできます。 .. image:: img/lib_mfrc522.png メイン機能は2つに分かれています: * ``6.5_rfid_write`` でカード(またはキー)に情報を書き込む機能。 .. raw:: html 実行後、シリアルモニタにメッセージを入力し、 ``#`` で終了します。次に、カード(またはキー)をMFRC522モジュールに近づけることで、メッセージがカードに書き込まれます。 * ``6.5_rfid_read`` でカード(またはキー)から情報を読み取る機能。 .. raw:: html 実行後、カード(またはキー)に保存されたメッセージを読み取ることができます。 **どのように動作するのか?** .. code-block:: arduino #include #define RST_PIN 9 #define SS_PIN 17 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()`` 関数が使用されています。 * `Serial.readBytesUntil `_