Note
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
- エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
- 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
- 特別割引:最新製品の独占割引をお楽しみください。
- 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう!
このレッスンでは、RFIDモジュールの使用方法を学びます。RFIDはRadio Frequency Identificationの略で、その原理はリーダーとラベル間の非接触データ通信によってターゲットを識別することにあります。RFIDの応用範囲は広く、動物チップ、イモビライザー、アクセスコントロール、駐車場管理、生産チェーンの自動化、資材管理などが含まれます。
このプロジェクトでは、以下のコンポーネントが必要です。
全体のキットを購入すると便利です。以下がリンクです:
名称 | このキットのアイテム数 | リンク |
---|---|---|
Elite Explorer Kit | 300+ | |link_Elite_Explorer_kit| |
以下のリンクから個別に購入することもできます。
コンポーネント紹介 | 購入リンク |
---|---|
:ref:`uno_r4_wifi` | - |
:ref:`cpn_wires` | |link_wires_buy| |
:ref:`cpn_mfrc522` | |link_mfrc522_rfid_buy| |
この例では、RFIDをブレッドボードに挿入します。RFIDの3.3Vを3.3Vに、GNDをGNDに、RSTをピン2に、SDAをピン6に、SCKをピン5に、MOSIをピン4に、MISOをピン3に、IRQをピン7に接続します。
Note
elite-explorer-kit-main\basic_project\08-mfrc522
のパスの下にあるファイル08-mfrc522.ino
を直接開くことができます。- ここでは
RFID1
ライブラリが使用されています。このライブラリはelite-explorer-kit-main/library/
ディレクトリにありますが、こちら :download:`RFID1.zip </_static/RFID1.zip>` からダウンロードすることもできます。インストール方法については :ref:`manual_install_lib` を参照してください。
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)。