2019年5月30日木曜日

ベーシックESP32-CAMスケッチ

ESP32カメラの続きです。
前回はOTAやmDNSなどを追加しました。
今回はとても基本的なスケッチです。
設定とかなにもありません。
全てはスケッチ内でハードコーディングされています。
https://github.com/vivian-ng/esp32_camera_streaming
スケッチではAI-ThinkerのESP32-CAMモジュールのピンアウトを使用しています。
別のカメラモジュールを使う場合、ピンの番号を変える必要があります。

ちなみに、ベースのスケッチはこれです:
https://github.com/maximemoreillon/esp32_camera_streaming

それにWiFi設定をメインのスケッチに移動、そしてmDNSを追加しただけです。

#define WIFI_SSID "ssid"
#define WIFI_PASSWORD "ssid_password"
WiFi設定はこの2行です。

#define HOSTNAME "esp32cam"
ホスト名はこの行です。
これがあれば、
http://esp32cam.local/
だけでカメラからのビデオが見れます。
ホスト名は任意に変えられます。
例えば、複数のモジュールを使っている場合、
esp32cam1
esp32cam2
などにすることもできます。

で、利点は?

まず、ウェブ上の設定ページをなくしたことによって、このESP32カメラモジュールは単純なネットワークカメラになり、MotionEyeなどで「Network camera」として使用できます。
mDNSを追加することによって、ホスト名で接続できます。
IPアドレスをしらべたりしなくても大丈夫です。
例えば、MotionEyeでカメラを追加と選択し、
Camera Typeを「Network camera」で、
カメラのURLを「http://esp32cam.local/」に入力。

また、PSRAMがあるモジュールの画像解析度についてですが、
1600x1200はできますが、(ベースのスケッチもそれになっています)
それだとESP32の処理能力がボトルネックになり、FPSが落ちます。
試した結果、やはりPSRAMがあっても800x600はベストです。

  if(psramFound()){
    Serial.println("PSRAM found");
    //config.frame_size = FRAMESIZE_UXGA;
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {

解析度を変えるには赤字のところを変えればいいです。
UXGAは1600x1200です。
SVGAは800x600です。
その他に、
QQVGA = 160x120
QQVGA2 = 128x160
QCIF = 176x144
HQVGA = 240x176
QVGA = 320x240
CIF = 400x296
VGA = 640x480
XGA = 1024x768
SXGA = 1280x1024
QXGA = 2048x1536 (メモリ的に無理かもしれません)
があります。

今度はこのスケッチにOTAを追加するかな?

0 件のコメント:

コメントを投稿