やったこと
RFIDが使ってみたくてモジュールを買ってみました。ESP32と合わせて2000円以下でできるのでオススメです。
使った機材
・ESP32 DevkitC
・RFID-RC522 以下RC522

事前準備
RC522は事前に半田付けが必要になります。ピン間隔が近いので気を付けながら行いましょう。
下記が例になります。私は下手くそですが、一応これでも動きました。
接続
ピンの接続についてです。
今回はESP32を使用しています。ピン配置を確認して適切に行ってください。
ESP32については下記の通りです。
RC522 | ESP32 |
---|---|
RST | IO26 |
MISO | IO19 |
MOSI | IO23 |
SCK | IO18 |
SS | IO5 |
参考
ESP-WROOM32とRC522でRFIDお遊びしてみた
コード
必要なライブラリは「MFRC522」ですのでインストールしましょう。
そのあと、ファイル>スケッチ例>MFRC522>DumpInfo を選択。
デフォルトではピン番号がArduino用になっていますので、ESP32用に変えましょう。
例:DumpInfo
# include <SPI.h>
# include <MFRC522.h>
# define RST_PIN 26
# define SS_PIN 5
# define MISO_PIN 19
# define MOSI_PIN 23
# define SCK_PIN 18
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
void setup() {
Serial.begin(115200); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(SCK_PIN, MISO_PIN, MOSI_PIN);
mfrc522.PCD_Init(); // Init MFRC522
delay(4); // Optional delay. Some board do need more time after init to be ready, see Readme
Serial.println("Hello!!");
mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details
Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}
void loop() {
// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
// Dump debug info about the card; PICC_HaltA() is automatically called
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
結果
付属のカードをかざすと下記のような出力を得ることができます。

ArduinoIDEがダークモードが気になる方は私の過去記事より導入してみてください。
ArduinoIDEダークモード for Mac
エラーになってしまったとき
下記のようなエラーができときはこちら
Firmware Version: 0x0 = (unknown)
WARNING: Communication failure, is the MFRC522 properly connected?
終わりに
RFIDって難しそうですが、半田さえ付けてさえしまえば簡単でした。これからRFIDでいろいろ遊んでみたいと思います。