# RFID {docsify-ignore-all}


***
:memo:**[概要](#概要)** :octocat:**[サンプルコード](#サンプルコード)** :electric_plug:**[回路図](#回路図)** 🛒**[購入リンク](https://www.aliexpress.com/store/product/M5Stack-Newest-Mini-RFID-Unit-RC522-Module-Sensor-for-Arduino-SPI-Writer-Reader-IC-Card-with/3226069_32963407976.html)**
## 概要
**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](http://flow.m5stack.com), [Arduino](http://www.arduino.cc)をサポート
- LEGO 互換ホール
## パッケージ内容
- 1x RFID ユニット
- 1x Grove ケーブル
## アプリケーション
- スマートホームアクセス管理システム
- 車両管理
- インテリジェント交通
- スマート本棚
## 関連リンク
- **[公式ビデオ](https://www.youtube.com/channel/UCozgFVglWYQXbvTmGyS739w)**
- **[フォーラム](http://forum.m5stack.com/)**
- **データシート**
- [MFRC522](https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf)
## サンプルコード
### 1. Arduino IDE
*完全なソースコードは[こちら](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/RFID/Arduino)。*
RFID.inoを実行すると、 ICやスマートフォンのNFCをユニットの周りで4回ほど往復させると、M5Coreの画面にカードやスマホのNFCのUIDが表示されます。
```arduino
/*
RFID.ino
*/
#include
#include "MFRC522_I2C.h"
#include
// 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
*完全なソースコードは[こちら](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/RFID/UIFlow)。*
[UIFlow](flow.m5stack.com) を利用してプログラムを書き込んだら、カードをRFIDユニットに近づけると、スクリーンに「True」の文字、そしてカードのUIDが表示されます。
## 回路図
### ピンマップ
| M5Core(GROVE A) | GPIO22 | GPIO21 | 5V | GND |
| RFID Unit | SCL | SDA | 5V | GND |