RFID と NFC¶
RFID は無線周波数識別です。NFC は非常に短い範囲のための関連技術で、しばしば周波数 13.56 MHz です。
シンプルな DIY デバイスでは、ワイヤード接触なしでカード、キーチェーン、ステッカー、またはタグを読み込む方法です。例えば、ユーザーはフィラメント スプール タグを持ってきて、デバイスはマテリアル プロファイルを選択します。
主な間違いは、「RFID」がユニバーサル互換性を意味することを考えることです。実際には、周波数マッチ、タグタイプ、リーダー マイクロチップ、ライブラリ、インターフェース、電力、アンテナ配置を整列させる必要があります。
どこで使用されているか¶
iDryer のようなプロジェクトでは、RFID/NFC は以下に使用できます:
- フィラメント スプールを識別;
- マテリアル プロファイルを選択;
- 設定をタグにリンク;
- サービス アクセス;
- ユーザー アクションの確認;
- 消耗品追跡;
- コンテナ、スプール、カセット上のタグでの実験。
マテリアル プロファイル選択の場合、多くの場合、タグの UID を読み込み、UID -> material テーブルを保存するだけで十分です。ただし、このアプローチはマニュアル フォールバックを持つ必要があります: タグが読み込まれない場合、ユーザーは手動でプロファイルを選択できます。
シンプルな用語での RFID と NFC¶
RFID は広い用語です。異なる周波数、標準、範囲、タグタイプを含みます。
NFC は通常、RFID エコシステムの一部と互換性のある 13.56 MHz での近距離無線通信を意味します。NFC は銀行カード、電話、NTAG ステッカー、MIFARE カードから知られていますが、これはいずれかの NFC リーダーがいずれかのカードとデータを読み込むことを意味しません。
小さな DIY デバイスの場合、13.56 MHz モジュールが最も一般的です:
- RC522 / MFRC522;
- PN532;
- 既製の USB/UART RFID/NFC リーダー;
- SPI、I2C、または UART を備えた NFC モジュール。
125 kHz アクセス カードや UHF RFID などの他の RFID システムがあります。これらは 13.56 MHz NFC モジュールと互換性がありません。
RC522¶
RC522 は、カードとタグ用の安価で一般的な 13.56 MHz モジュールです。Arduino と ESP32 でよく使用されます。
長所:
- 安価;
- 多くの例;
- シンプルな UID 読み込みに適しています;
- 通常 SPI 経由で接続されます。
短所:
- 多くの場合、
3.3V電力とロジックでのみ機能; - 安価なモジュール品質は異なります;
- 読み込み範囲は小さい;
- カードタイプ サポートは限定的;
- ボード上のピン
SDAはしばしば I2CSDAではなくSS/CSSPI を意味します。
RC522 は、短い範囲で MIFARE のようなカードまたはキーチェーンから UID を読み込む必要がある場合に機能します。より広い NFC タスクの場合、PN532 は通常より便利です。
PN532¶
PN532 は、より柔軟な NFC/RFID コントローラーです。多くの PN532 モジュールは以下を通じて機能できます:
- SPI;
- I2C;
- UART。
ただし、選択されたインターフェースは通常、ボード上で物理的に設定される必要があります: ジャンパー、DIP スイッチ、またははんだ付け。SPI モードに設定されている場合、モジュールを I2C 経由で接続することはできません。
PN532 は次が必要な場合に選択されることが多い:
- より多くのインターフェース オプション;
- より良い NFC シナリオ サポート;
- 異なるタグタイプで動作;
- Python/CircuitPython/Raspberry Pi シナリオ;
- より良く文書化されたモジュール。
しかし、PN532 は魔法のユニバーサル リーダーでもありません。特定のカード タイプ、ライブラリ、動作モード をチェックする必要があります。
周波数とタグタイプ¶
タグはリーダーと一致する必要があります。
タグを購入する前に、確認してください:
- 周波数:
13.56 MHz、125 kHz、またはその他; - タイプ: MIFARE Classic、NTAG213/215/216、ISO14443A、またはその他;
- UID を読み込む必要があるか;
- カスタム データを読み書きする必要があるか;
- 選択されたライブラリが必要な操作をサポートしているか;
- スプールまたはケースにタグを物理的に配置できるか。
タスクがマテリアル プロファイルを選択することである場合、通常、UID を読み込み、プロファイルを別に保存するだけで、シンプルです。タグ内にデータを書き込むとプロジェクトが複雑になります: データ形式、互換性、書き込み保護、書き込みエラーについて考える必要があります。
UID - 不当な安全¶
カードまたはタグの UID は識別子として使用するのに便利です。しかし、UID は信頼できる保護ではありません。
スプール プロファイルの場合、これは正常です: UID が既知の場合、プロファイルを選択します。エラーはクリティカルではありません。ユーザーは手で材料をチェックできます。
危険な関数、サービス モード、またはヒーター のロック解除へのアクセスの場合、UID のみは弱いです。いくつかの UID はコピーまたは偽造できます、いくつかのカードは既知のセキュリティ制限があります。
実用的なルール:
- UID は利便性と消耗品識別に適しています;
- UID は危険なモードの唯一の保護であるべきではありません;
- ヒーターと電力部分については、常に別の安全チェックが必要です。
電力とロジックレベル¶
多くの RFID/NFC モジュールは 3.3V ロジック用に定格されています。これは RC522 と PN532 ブレークアウト モジュールで特に重要です。
確認:
- モジュール電源電圧;
- SPI/I2C/UART のロジックレベル;
- ボードに レギュレーターがあるかどうか;
- 信号ラインにレベル マッチングがあるか;
- I2C プルアップ抵抗が必要かどうか;
- 制御器と共通接地が必要かどうか。
モジュール ボード上の 5V ピンの存在は、信号ラインが 5V を許容することを常に意味するわけではありません。いくつかのモジュールはレギュレーター経由で 5V から電力化できますが、ロジックは 3.3V のままです。
接続インターフェース¶
RFID/NFC モジュールは SPI、I2C、または UART 経由で接続できます。
SPI:
- 高速で一般的;
SCK、MOSI、MISO、CSが必要;- RC522 では、ピン
SDAは実際にはCSを意味; MOSIとMISOを混合しないことが重要。
I2C:
SDAとSCLを使用;- 他のデバイスとバスを共有できます;
- 正しいプルアップ抵抗が必要;
- アドレスと選択されたモジュール モードをチェックすることが重要。
UART:
TXとRXを使用;- 1 つのデバイスの
TXは別のデバイスのRXに行く; - 既製のリーダーで便利;
- マッチング速度とプロトコルが必要です。
詳細な RC522 SPI 接続は、実用的なセクション: RFID リーダーの接続 にあります。
アンテナとケース¶
RFID/NFC はアンテナを通じて動作します。小さなモジュールでは、通常、ボード上に直接印刷されています。
読み込みは次に影響を受けます:
- アンテナ サイズ;
- タグ方向;
- 距離;
- ケース プラスチック;
- 近くの金属;
- 近くのワイヤーと電力ライン;
- モジュール電力;
- タグタイプ;
- ユーザーがカードを持ってくる場所。
アンテナ付近の金属は読み込みを大きく悪化させることができます。リーダーがプリンターの金属フレーム、ネジ、画面、電源、またはアルミニウム パネルの近くに取り付けられている場合、範囲はより悪くなることができます。
ケースの場合、「タグを持ってきてここに」という明確なゾーンを作る方が良いです。プラスチック、空気、シャフト、ホルダー、その他の部分を通じて、スプール上のタグが常に自動読み込みされることを期待しないでください。
デバイス ロジック¶
RFID は利便性を改善す、制御を壊さないであるべきです。
スプール用の通常のロジック:
- ユーザーがタグを持ってきます。
- デバイスは UID を読み込みます。
- UID はプロファイル テーブルで検索されます。
- UID が見つかった場合、マテリアル プロファイルが提案されます。
- ユーザーはプロファイルを確認または変更できます。
- UID が見つからないか読み込まれていない場合、マニュアル選択が利用可能です。
悪いロジック:
- デバイスはタグなしで起動することはできません;
- 不明なタグはランダム プロファイルを選択;
- 読み込みエラーは黙ってオールド プロファイルを保つ;
- プロファイルはユーザーの確認なく変更;
- UID はサービス モード用の唯一の保護です。
ヒーターの場合、プロファイル選択が温度制限、センサー、緊急保護をバイパスしないことが特に重要です。
購入前にチェックすること¶
購入する前に、確認してください:
- モジュール周波数;
- サポートされるタグタイプ;
- インターフェース: SPI、I2C、UART、USB;
- 電源電圧;
- ロジックレベル;
- レベル マッチングの利用可能性;
- 文書とピンアウトの利用可能性;
- ボードでインターフェースがどのように選択されるか;
- コントローラー用のライブラリがあるか;
- アンテナ サイズ;
- タグ タイプとサイズ;
- 実際のケースで予想される範囲;
- マニュアル フォールバック選択が可能かどうか。
最初のプロジェクトの場合、スキーマなしで最も安いのではなく、良い文書とサンプルを持つモジュールを選択してください。
典型的なエラー¶
13.56 MHzリーダー用に125 kHzカードを購入;3.3VRC522 を5V電力またはロジックに接続;- RC522 の I2C
SDAピンSDAを取り; MOSIとMISOを混同;- SPI で
CS/SSを忘れました; - PN532 でジャンパーで 1 つのインターフェース を設定しましたが、異なるものに接続;
- 必要な場所に I2C プルアップを配置しませんでした;
- アンテナをメタルの近くに置きました;
- ベンチでの読み込みをテストしましたが、ケースでテストしませんでした;
- RFID をプロファイルを選択する唯一の方法にしました;
- UID を信頼できるアクセス保護として使用;
- 「タグが読み込まれなかった」状況を処理しませんでした。
重要なポイント¶
RFID/NFC はスプール識別、マテリアル プロファイル選択、シンプルなサービス入力に役立ちます。しかし、それは任意のカード用のユニバーサル リーダーではなく、それ自体では信頼できるセキュリティ システムではありません。
最初に周波数とタグ タイプを選択し、次にモジュール、インターフェース、電力、アンテナ位置を選択します。次に実際のケースで読み込みをテストし、確実にマニュアル フォールバック選択を保つします。
参考資料¶
- Adafruit: PN532 RFID/NFC Breakout Wiring - PN532 接続、SPI/I2C/UART 選択、
3.3Vロジックに関する警告。 - Adafruit: PN532 RFID/NFC guide, single page - 完全な PN532 ガイド、CircuitPython/Python、インターフェース、SEL ジャンパー セットアップ。
- Adafruit PN532 product page - PN532 モジュールの説明、サポートされるインターフェース、NFC/RFID 機能。
- NXP: MFRC522 Standard performance MIFARE and NTAG frontend - MFRC522/RC522 マイクロチップ ページと
13.56 MHzMIFARE/NTAG シナリオの目的。 - DigiKey: MFRC522 Datasheet by NXP - MFRC522 の技術的説明:
13.56 MHzリーダー/ライター、ISO/IEC 14443 A/MIFARE/NTAG サポート、通信インターフェース。