ESP32-CAM を使ってみる

以前使用したESP32のカメラ付き製品です。
私のものは大陸調達品 (¥522-) です。
国内通販でも販売されています。

ESP32-CAM
ESP32-CAM

私の製品と同製品ではありませんが参考まで。
aitendo
 ESPカメラモジュール [ESP32-CAM-K]
  https://www.aitendo.com/product/19515
  ¥1,250-
 ※写真では技適対応品のようですが、
  Wi-Fi対応のESP-WROOM-32(U)モジュールと、
  ヘッダーピンは本体へのはんだ付けが必要なようです。

日本国内で、Wi-FiやBluetooth等を利用する製品は、
技適マーク(無線基準認証制度)を取得している必要があります。
ですが、私の製品には、技適マークの表示がありませんので、
取得済み製品であるか確認出来ません。

そのため、
”技適未取得機器を用いた実験等の特例制度”を利用して、
技適未取得機器を用いた実験等の特例制度の開設届出済です。

もし、これらの技適未取得機器を利用される場合は、
”技適未取得機器を用いた実験等の特例制度”
を利用されると良いと思います。
ただし、使用期間は、180日間の限定許可となります。

技適未取得機器を用いた実験等の特例制度
 https://exp-sp.denpa.soumu.go.jp/public/
技適未取得機器を用いた実験等の特例制度(詳細)
 https://exp-sp.denpa.soumu.go.jp/public/help/startNotice_detail.html

届出には、

技適未取得機器申請
 ・無線の種類
 ・製造番号(無い場合は自分で採番可能です)
 ・製造会社名
 ・製品名(FCC等の認証番号があれば可能です)
 ・設置(使用)場所
 ・使用目的

の記載が必要になりますので、
使用する無線の種類、製造会社名、製品名、FCC等の他国での承認番号、
が分かるものを購入されることをお勧めします。
※分からない項目は、販売店に問い合わせをすれば教えて頂けると思います。
 私も、何度か大陸の販売店等に問い合わせていますが、丁寧に教えて頂けます。
 (ただし、大陸への問合せの場合は、日本語では無理かと思います。
  私の場合、翻訳ソフトで英語か中国語に翻訳したものでですが大丈夫のようです)

この届出制度は、
最初に本人登録が必要で、Webか郵送で行う必要があります。
マイナンバーカードとカードリーダーがあれば、Web上で可能です。
この本人確認が完了すれば、届出はWeb上でいつでも行うことができます。

では、早速使ってみます。
今回は、ESP32ライブラリ群に付属しているスケッチ例の、
 ”CameraWebServer”
を実行してみます。

事前に、”Arduino IDE ESP32 (ESP-32) の開発準備”ページ
 https://shinog.jp/computer/arduino/arduino-ide-esp32-esp-32-%e3%81%ae%e9%96%8b%e7%99%ba%e6%ba%96%e5%82%99/
”ESP32用のプログラム開発をArduino IDEで行うなための設定”
を完了している必要がありますので、
環境設定がまだの場合は、この設定を先に行います。

また、他の方法として環境設定から行うこともできます。
 1.メニュー「ファイル」→「環境設定 Ctrl+カンマ」を選択します。

環境設定画面の選択
環境設定画面の選択

 2.開いた環境設定画面の
  追加ボードマネージャ欄に、
   "https://dl.espressif.com/dl/package_esp32_index.json"
  と入力し、「OK」ボタンをクリックします。

追加ボードマネージャ欄への設定
追加ボードマネージャ欄への設定

 3.メニュー「ツール」→「ボード:xxx」→「ボードマネージャ」を選択します。
  開いたボードマネージャ画面の検索欄に、
   "ESP32"
  と入力します。
  一覧に、"esp32"が表示されますので、
  最新バージョンを選択し、「インストール」をクリックします。
  私の場合、バージョンは 1.0.6 でした。

バージョン選択とインストール
バージョン選択とインストール

 4.インストールの完了を確認し、「閉じる」をクリックします。

インストール完了確認
インストール完了確認

これで、ESP32ボードの環境設定は完了です。

では、ESP32-CAMをPCと接続します。

ESP32-CAMには、PCとの接続用のUSB端子がありません。
そのため、PCと接続してスケッチを転送するために、
USB-TTLコンバータ (USBシリアル変換)モジュールが必要になります。
VCC(5V)、GND、RXD、TXD があれば、どんな製品でもよいと思います。
新しく購入するのであれば、
VCCは(5V、3.3V)や DTR、CTS などに対応しているものがよいと思います。

USBシリアル変換モジュール
USBシリアル変換モジュール

参考:
aitendo
 ・USB-TTLコンバータ [U2TL340-6P]
   https://www.aitendo.com/product/11632
   ¥399-
 ・USBシリアル変換 [U2TL340C4PA]
   https://www.aitendo.com/product/18880
   ¥390-
など、いろいろ販売されています。

ESP32-CAM と USB-TTLコンバータ の接続です。
回路は図の通りです。
   この回路図の作図には fritzing を利用させて頂いております。
   https://fritzing.org/home/

回路図
回路図
USB-TTLコンバータ モジュール側ESP32-CAM 側
5V5V (3.3V端子を接続時は不要)
GNDGND
RXDU0TXD (GPIO1)
TXDU0RXD (GPIO3)
3.3V3.3V(5V端子を接続時は不要)
GPIO0 (CSI_MCLK) - GND を短絡する
(書き込み時のみで、実行時は解除する)
接続端子

※5V、3.3Vの電源は、供給可能な電源のどちらかのみを接続します。
※ESP32-CAMモジュール本体のGPIO0 - GNDを短絡しますが、
 この短絡処理は、スケッチの書き込み時のみに必要です。
 そのため実行時には、この短絡を解除します。

本体のGPIO0 - GNDの短絡解除
本体のGPIO0 - GNDの短絡解除

1.PCのデバイスマネージャーの画面で、COMポート番号を
 確認しておきます。

 ・ESP32-CAM と USB-TTLコンバータ の接続したものを、
  PCに接続します。

ESP32-CAM と USB-TTLコンバータ の接続
ESP32-CAM と USB-TTLコンバータ の接続

 ・Windowsのスタートメニューを右クリックし、
  デバイスマネージャー(M)を選択します。
 ・表示された、デバイスマネージャーの画面の、
  ポート(COM と LPT)欄を確認します。
  ※私の場合は、COM4と表示されています。

デバイスマネージャー画面での確認
デバイスマネージャー画面での確認

2.Arduino IDEの設定を行います。

 ・ボード設定
  メニュー「ツール」 → 「ボード」 → 「ESP32 Arduino」
   → 「ESP32 Wrover Module」

ボード設定
ボード設定

 ・Partition Scheme設定
  メニュー「ツール」 → 「Partition Scheme」
   → 「Huge App (3MB No OTA/1MB SPIFFS)」

Partition Scheme設定
Partition Scheme設定

 ・シリアルポート設定
  メニュー「ツール」 → 「シリアルポート」
  1.のデバイスマネージャーの画面で確認した、
  シリアルポート番号を選択します。
  ※私の場合は、”COM4”です。

シリアルポート設定
シリアルポート設定

3.スケッチ例から、
 ”CameraWebServer”スケッチを選択します。
 ・メニュー「ファイル」 → 「ESP32」 → 「Camera」
    → 「CameraWebServer」

”CameraWebServer”スケッチの選択
”CameraWebServer”スケッチの選択

4.スケッチを修正します。

 ・11行目の
  #define CAMERA_MODEL_WROVER_KIT // Has PSRAM
       ↓
  // #define CAMERA_MODEL_WROVER_KIT // Has PSRAM
  コメントアウトして無効にします。
 
 ・17行目の
  //#define CAMERA_MODEL_AI_THINKER // Has PSRAM
       ↓
  #define CAMERA_MODEL_AI_THINKER // Has PSRAM
  コメントアウトを外し、有効にします。

 ・22、23行目の
  const char ssid = ""
  const char password = ""
         ↓
  const char ssid = "abcd1234"
  const char password = "efgh5678"
  を、使用環境のWi-Fiルータの設定に合わせ、記述します。
  ※上記は設定例です。

5.検証します。
 ・アイコンメニュー「検証」 をクリックします。

6.マイコンドードに書き込みます。
 ・アイコンメニュー「マイコンボードへ書き込み」 をクリックします。

検証とマイコンボードへの書き込み
検証とマイコンボードへの書き込み

では、実行してみます。

1.スケッチの書き込み時のみに必要な、
 ESP32-CAMモジュール本体のGPIO0 - GNDの短絡を解除します。

本体のGPIO0 - GNDの短絡を解除
本体のGPIO0 - GNDの短絡を解除

2.Arduino IDEのシリアルモニタを起動します。
 通信速度を 115200bps に設定します。

シリアルモニタの起動と通信速度の設定
シリアルモニタの起動と通信速度の設定

3.ESP32-CAMモジュール本体のResetボタンを押します。

本体のResetボタン
本体のResetボタン

4.シリアルモニタに表示された、
 Camera Ready! Use 'http://192.168.1.23' to connect
 のURLを、起動したブラウザのURL欄に入力します。
 ※'http://192.168.1.23'は私の場合です。

connect IPアドレスを確認
connect IPアドレスを確認
ブラウザにURLを入力
ブラウザにURLを入力

”ESP32 OV2460”という Webページ が表示され、
左側のメニュー一番下の、”ストリームを開始”をクリックし、
カメラ映像が表示されれば成功です。

"ストリームを開始”のクリック
"ストリームを開始”のクリック
カメラ画像の表示状態
カメラ画像の表示状態

この時シリアルモニタには、
画像の処理状況が表示されています。

シリアルモニタの表示内容
シリアルモニタの表示内容

速度や解像度など今ひとつと言ったところでしょうか。
格安な、ESP32-CAMの小さな本体だけで、
簡単にネットワークを利用して映像の転送ができ、
Web画面のメニューで画像の簡易な操作も可能です。
なかなか面白いですね。