よくみると、Arduinoのスケッチ例には、ESP32⇒Camera⇒Camera WebServerというのがあります。こちらを動かしてみます。
スケッチ例を開きますが、端子定義がありませんので、これを追加します。camera_pin.h に lewisxhe/esp32-camera-series の同じファイルから定義をコピペします。
#elif defined(T_Camera_V05_VERSION) #define PWDN_GPIO_NUM 26 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 32 #define SIOD_GPIO_NUM 13 #define SIOC_GPIO_NUM 12 #define Y9_GPIO_NUM 39 #define Y8_GPIO_NUM 36 #define Y7_GPIO_NUM 23 #define Y6_GPIO_NUM 18 #define Y5_GPIO_NUM 15 #define Y4_GPIO_NUM 4 #define Y3_GPIO_NUM 14 #define Y2_GPIO_NUM 5 #define VSYNC_GPIO_NUM 27 #define HREF_GPIO_NUM 25 #define PCLK_GPIO_NUM 19 #define AS312_PIN 33 #define BUTTON_1 34 #define I2C_SDA 21 #define I2C_SCL 22 #define SSD130_MODLE_TYPE 0 // 0 : GEOMETRY_128_64 // 1: GEOMETRY_128_32
の部分をコピーして、camera_pins.h の最後の
#define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 ★ #else #error "Camera model not selected" #endif
の★の部分に追加してやります。そして、CemeraWebServerファイルの冒頭の部分のカメラモデル選択の箇所に定義を追加します。あと、SSIDとパスワードの設定も追加します。
// Select camera model //#define CAMERA_MODEL_WROVER_KIT //#define CAMERA_MODEL_ESP_EYE //#define CAMERA_MODEL_M5STACK_PSRAM //#define CAMERA_MODEL_M5STACK_WIDE //#define CAMERA_MODEL_AI_THINKER #define T_Camera_V05_VERSION #include "camera_pins.h" const char* ssid = "*********"; const char* password = "*********";
これでコンパイルは通るようになるのですが、容量オーバーで書き込みができません。Partition Schemeを変更してHuge APP(3MB No OTA)に変更します。
これで動作させることができるのですが、なぜこんなに容量が大きくなるのかはよくわかりません。