M5Stack で NFC を読んでみることを試みてみた。
M5Stack で使うにあたって調べたりで、いろいろあったのでメモ。
目次
RFID モジュール RC522 を購入した。
品名の翻訳がなんかおかしいけれど、これを購入した。
同じものなのに値段は上から下まであるので、買うときは注意したほうがいいそうだ。
使い方を調べると、Arduino uno と Raspberry Pi での使い方は出てくるが、
M5Stack につないだ記事は見つけられず、ピン配置から調べ始めた。
以下のページを参考にさせていただきました。
2018-05-04 ESP32(ESP-WROOM-32)に RFID リーダーを繋ぐ
Arduino で複数の NFC タグを区別する
https://bokunimo.net/arduino/rfid.html
非接触 IC タグで遊ぼう!Arduino で RFID リーダ RC522 を使う方法
配線
ここに画像
M5stack 側
RC522 側
結線前の RC522
各結線の対応は以下のようになった
M5Stack | RC522 |
---|---|
3V3 | 3V3 |
G | GND |
RST | RST |
- | IRQ |
SDA | SDA |
MO | MOSI |
MI | MISO |
SCK | SCK |
ライブラリ追加
ArduinoIDE の[スケッチ]->[ライブラリをインクルード]->[ライブラリを管理]で、
「mfrc522」と検索してインストールする。(画像はインストール済み)
コード
ArduinoIDE の[ファイル]->[スケッチ例]->[互換性なし]->[MFRC522]->[DumpInfo]をベースに書き換えた。
主なやったことは、
- M5Stack のライブラリインクルード
- シリアル通信の速度を 115200 に変更
- RST_PIN と SS_PIN の割り当て番号変更
配線で、見てもらった接続を行ったけど、
コードでピン番号を割り当てをし直す必要があって、
サンプルコードでの RST_PIN と SS_PIN が何番ピンなのか調べた。
調べた時の参考は、m5stack/M5-Schematic
ここに、RESET は 6 って書いてある。
だけど、6 にした時全くうまくいかなくて、さまよう。
屋根裏実験室 M5Stack を使ってみるにたどり着いて、ようやく 33 でよいらしいことが分かった。
SS は IIS_SCLK の略だなと気が付いて 21 だとすぐわかった。
数打ちゃ当たるようなことをしているので非常に反省が多いのだが、
言い調べ方は無いだろうか?
書き換えたスケッチは以下の通り、
1 |
|
これを書き込んで、
Ctrl+Shift+m でコンソールを開くと
次のような画面が出る。
参考ページに倣い UID は隠しておきます
別のカードを試すと別の UID が読める。
いい感じ。
今回、M5Stack で RFID を読んでみた。
M5stack で RFID を使うなら、M5Stack 最新ミニ RFID ユニット RC522 モジュールセンサー、Arduino SPI ライターリーダー用 IC カード、Grove ポート I2C インターフェース ESP32 用
でも良かったのでは?と思われそうだけど、
他のデバイスでも使うことを考えたいので、今回のものを選んでみた。
これを使用して音を出すとかコマンド送信するとかアプリケーションにしてみようかと思う。
ではでは。
-後日談-
今回の組み合わせだと、M5Stack の TFT が真っ白になって操作できない致命的な問題が出ることが後でわかった。
どうやら、TFT を使用しているピンと今回使用したピンが同じらしい?
m5stack をずっと裏側にしてピン配置だけ見ていたので最後の最後まで気が付かなかった。
後に、M5Stack 最新ミニ RFID ユニット RC522 モジュールセンサーを買ったのでした。