プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

ESP32CAMを試してみた

ESP32CAMを試してみた

動かせるまでに少し手間がかかったのでメモとして上手くいった方法を残しておきます。
ソースコード的にはESP32-Dev-kit等の動作実績があるものや、Cameraのネット上のコードが動きました。
ただしPlatformIOでは上手く書き込みが出来ませんでした。
(接続設定がわからない。)

Arduino IDE設定

例によって?ESP32は3rd party製品が多数あり、必ずしもこの設定で動くとは限らないのですが、私の環境では以下で動きました。

Arduino IDE Ver.1.8.13

項目名 設定値
ボード ESP32 Wrover Module
Upload Speed 921600
Flash Frequency 80MHz
Flash Mode QIO
Partition Scheme Huge App(3MB No OTA)
Core Debug Level なし

書き込み方法

ESP32CAMには標準的にはUSBコネクタが付いていませんのでSerial-USB変換が必要になります。
何度か試したところ以下の接続で動きました。
3.3V-3.3Vでも書き込み可能といわれていますが、私の環境では数回に1回しか書き込み(接続)できず、5Vにすると少し安定しました。
接続した状態でESP32側の3.3Vの電圧を見ると3.0Vほどしか出ておらず、電圧降下が起きて不安定になっていたので、これが原因ではないかと推測しています。

USB Serial ESP32CAM
5V 5V
GND GND
RX TX(UOT)
TX RX(UOR)

このほかに、ESP32CAMのIO0をGNDに落とす必要があります。

ESP32CAMは他の方のトライでも書き込みが上手くいかないことが多く、私が試した中では
・一度USBを抜き差ししてやる
・Connecting.... のときにResetボタンを長押ししてみる(離した後少しおいて接続されるので何回もやらない)
で上手くいく確率が上がる気がするが、本当かどうかはわからない。

購入した当時のものはみつからなかったですが、以下のようなFTDIのチップが載ったもので5V設定にして書き込み・通信ができました。

激安だった↓も買ってあったので試してみましたがこちらでも動きました。
こちらの場合はVCCと3.3Vをショートさせます。


起動方法

書き込み時のIO0とGNDの接続を解除し、リセットボタンを押します。

カメラのソースコード

ESP32-CAMというカメラ付きESP32マイコンモジュールで、カメラで撮影した画像をSDカードに保存してみた | kako blog
こちらのものをベースに、写真をSDカードに保存しますが、上書きされないように変更しました。
元のコードではリセットボタンを押して再起動させ、起動時にtest.jpgという名前で保存し、繰り返し実行すると上書きされます。
これに対してファイル名をランダムに設定することで上書きされない、というものです。

- File file = SD_MMC.open("/test.jpg", FILE_WRITE);

+ int r = random(10000);
+ String FileName = "/" + String(r) + ".jpg";
+ File file = SD_MMC.open(FileName, FILE_WRITE);

一応カラーのようですがカメラの画質はガラケーレベルです。

まとめ

ESP32CAMを試してみました。
接続が不安定なのが一番厄介です。
カメラの画質も低いので活用方法もイマイチ思いつかないですね。
カメラの画質がもう少し高ければ(シャッタースピード等も含めて)タイムラプス動画とか作ってみると面白いかと思ったのですが…。