Files
2019-04-16 17:47:14 +08:00

4.4 KiB

RFID {docsify-ignore-all}


📝概要      :octocat:サンプルコード      🔌回路図       🛒購入リンク

概要

RFIDMFRC522(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)GPIO22GPIO215VGND
RFID UnitSCLSDA5VGND