なんとなく、自分専用の機械を作りたいと思っていました。
物理的に動くもの、センサーでデータを拾うもの、そういうものです。

それでESP32のスターターキットを買いました。

ESP32はArduinoの延長線上にあるようなマイコンで、Wi-FiとBluetoothを内蔵しているのが特徴です。
GPIOピンが何本もあって、センサーやモーターを繋いで動かせます。小さい基板なのに、そのままネットワークに繋がる。

AIに聞きながら進めてみたら、思っていたよりずっと手が動きました。

ホールセンサーとFirebase

ESP32 WROVERとホールセンサーモジュール

まず試したのがリードセンサーです。磁石を近づけるとスイッチがONになる部品で、ドアの開閉を検知するのに使えます。
ドアが開いたタイミングを記録して、Firebaseにアップロードする、というところまでやってみました。

Wi-Fiが内蔵されているのが便利で、クラウドとの連携もさほど難しくありません。

ステッピングモーターを回す

ULN2003ドライバーと28BYJ-48ステッピングモーター

ステッピングモーターはずっと触ってみたかった部品です。
ブラシレスモーターに比べて、なんとなく敷居が高い印象があって後回しにしていました。

スターターキットに28BYJ-48とULN2003ドライバーモジュールが入っていたので、いい機会でした。
カラフルなフラットケーブルで繋ぐと、正確な角度で回転します。
こんなに素直に動くとは思っていませんでした。

カメラモジュールでストリーミング

OV3660カメラモジュール搭載のESP32を配線中

スターターキットにはOV3660カメラモジュールも付属していました。
ジャンパー線を一本ずつ繋いでいく作業は少し緊張します。

ブラウザを開いたら、カメラ映像がそのまま出てきました。
ESP32がHTTPサーバとして動いていて、Wi-Fi経由でストリーミングしているわけです。
こんなに簡単にできるとは思っていませんでした。

超音波センサーで測った距離をLCDに表示

HC-SR04超音波センサーと16x2 LCDに「Dist: 112.8 cm」と表示

この日のハイライトです。HC-SR04超音波センサーで距離を測定して、16×2 LCDディスプレイにリアルタイム表示するプログラムをAIに作ってもらいました。
「13番ピンをLCDのこの端子に繋いで」という配線手順書も一緒に出てきて、その通りに組んだだけです。

「Dist: 112.8 cm」と青く光る画面に数字が出たときは、素直にうれしかったです。

調べ物の仕方が変わった

以前は電子工作をするとき、ピン配置を調べ、ライブラリの使い方を調べ、エラーを一つずつ潰して、という作業に時間がかかっていました。
やりたいことに対して、調べ物の時間が長すぎる感じがずっとありました。

今は「こうしたい」と伝えれば、プログラムも配線手順も一度に出てきます。
作る時間と調べる時間の比率が、明らかに変わりました。なかなか楽しいです。

ESP32はまだいろんな機能を試せそうなので、もう少し続けてみるつもりです。