mirror of
https://github.com/m5stack/m5-docs.git
synced 2026-05-20 10:23:01 -07:00
4.4 KiB
4.4 KiB
RFID {docsify-ignore-all}
📝概要 :octocat:サンプルコード 🔌回路図 🛒購入リンク
概要
RFID は MFRC522(13.56MHzの非接触通信用リーダライタIC)を内蔵したユニットです。このユニットは、非接触カードリーダ機能を備え、複数のカード情報を識別して記録することができます。入退室管理システム、パンチングシステム、倉庫商品管理および車両アクセス管理などのアプリケーションを実現することが可能です。
M5CoreのGROVE Aインターフェースに接続して利用することができます。I2Cアドレスは0x28です。
特徴
- I2Cデータレート: Fast mode: 最大400kbps; High-speed mode: 最大3400kbps
- RC522トランシーババッファ:64バイト
- サポートするプロトコル: ISO14443A, MIFARE, NTAG
- 動作温度: -20℃~85℃
- データ保存期間: > 10年
- 読み書き距離: < 8 cm
- GROVE インターフェース, UiFlow, Arduinoをサポート
- LEGO 互換ホール
パッケージ内容
- 1x RFID ユニット
- 1x Grove ケーブル
アプリケーション
- スマートホームアクセス管理システム
- 車両管理
- インテリジェント交通
- スマート本棚
関連リンク
サンプルコード
1. Arduino IDE
完全なソースコードはこちら。
RFID.inoを実行すると、 ICやスマートフォンのNFCをユニットの周りで4回ほど往復させると、M5Coreの画面にカードやスマホのNFCのUIDが表示されます。
/*
RFID.ino
*/
#include <Wire.h>
#include "MFRC522_I2C.h"
#include <M5Stack.h>
// 0x28 is i2c address on SDA. Check your address with i2cscanner if not match.
MFRC522 mfrc522(0x28); // MFRC522 インスタンス宣言
// 初期化
M5.begin(); Serial.begin(115200); Wire.begin();
/* MFRC522を初期化 */
mfrc522.PCD_Init();
/* Show details of PCD - MFRC522 Card Reader details */
ShowReaderDetails();
// 利用可能なカードのUIDを取得
mfrc522.PICC_IsNewCardPresent();// scan for a new card
mfrc522.PICC_ReadCardSerial();// read data
// a new card is selected. The UID and SAK is saved at mfrc522.uid structor.
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
}
// その他の関数
void ShowReaderDetails() {
/* MFRC522のソフトウェアバージョンを取得 */
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
if (v == 0x91) Serial.print(F(" = v1.0"));
else if (v == 0x92) Serial.print(F(" = v2.0"));
else Serial.print(F(" (unknown)"));
}
2. UIFlow
完全なソースコードはこちら。
UIFlow を利用してプログラムを書き込んだら、カードをRFIDユニットに近づけると、スクリーンに「True」の文字、そしてカードのUIDが表示されます。
回路図
ピンマップ
| M5Core(GROVE A) | GPIO22 | GPIO21 | 5V | GND |
| RFID Unit | SCL | SDA | 5V | GND |


