【電子工作】M5Stack RFID Unit2 + ESP32 + Attinyでパソコンの画面をロック・解除する

ESP32! 電子工作って楽しいよね。

今回はESP32とM5Stack RFID unit2、ATtiny85を使って
カードをかざすとPCロックを解除して、カードを離すとPCロックをするモジュールを作ったのでやり方を書き溜め。

RFID-RC522の記事はそこそこあるんだけど、電波法的に怖い。

電子工作ってすごい楽しんだけど、あまりネット上に情報がないんだよね。苦戦したことが多かったので残しておきたい。

Rustを使って電子工作がしたかったんだけど、Arduino IDEが便利すぎて開発速度が違いすぎたのでRustは断念。

Arduino IDEは必要なのでダウンロードする。

IDEが役に立った人はちょっとでもいいのでArduino に寄付してあげてね。電子工作するうえで本当に便利なので。

さて、実際にモジュールを繋いだ時の完成図はこんな感じ。

とりあえず動くところがみたかったので見た目は気にしないでくれ。

ちなみに、カードホルダーは3Dプリンターでつくったよ。

ESP32とRFID UnitはI2C通信で、ESP32とAttiny85の通信もI2Cを使ってるよ。

実際にやっていることはすごいことしていなくて、MFRC522_I2C のライブラリを呼び出しているだけなんだよね。あとはピンを繋ぐだけでできます(笑)

広告

使ったもの

ATTinyユニットである必要はないんだけどね。

ESP32 DEVKIT V1 

3年ぐらい前に沢山買ったったやつ。

ATTINY85 Micro USB

今回キーボード入力用に使うマイコン

M5Stack用WS1850S搭載 RFID 2ユニット

RFIDを読み取るためのユニット

電波法的に安心できるのがこれくらいなので、みんなこれ使うんじゃない?

NFCカード

RFIDユニットで読み取るためのカード

ケーブル類

ケーブル類は複数必要。はんだ付けはめんどくさいのでワイヤーでつなぐだけでとりあえず動作できるので今回はそうしました。

ロック解除の流れ

  1. RFIDユニットに設定したカードをかざす
  2. ESP32がRFIDユニットの値を受け取って、ATTinyユニットにopen命令を送る
  3. ATTinyがopen命令を受け取ったら、パスワードを入力してEnterキーを押す

画面ロックの流れ

  1. RFIDユニットからカードを離す
  2. ESP32がカードが離れたことを検知して、ATTinyユニットにclose命令を送る
  3. ATtinyがclose命令を受け取ったら、Winコマンド+lを入力する

ESP32側

ESP32側はやることが2つある。

  • RFID Unitから値を受け取る
  • Attinyに値を送る

なのでポイントはWireを2つ使用すること。

今回はWire1.begin(32, 25); の部分がAttiny用にWireを割り当てているところです。

ESP32は2つのI2C通信ができるが便利。

ATtiny側

ATTiny側は、ESP32から文字列を受け取って、その内容によってキーボード入力を行う。

自宅のPCで使う用なのでパスワードはハードコードしてるよ。

ATTinyについては参考になるサイトがあったので、TinyWireSのライブラリは読んでない(笑)

質問があったら気軽にしてね。

わかる範囲なら答えるよー。