📷 Adds support for esp32-wroom-camera
This commit is contained in:
@@ -312,6 +312,26 @@
|
||||
#define HREF_GPIO_NUM 23
|
||||
#define PCLK_GPIO_NUM 22
|
||||
|
||||
#elif defined(CAMERA_MODEL_ESP32S3_EYE)
|
||||
#define PWDN_GPIO_NUM -1
|
||||
#define RESET_GPIO_NUM -1
|
||||
#define XCLK_GPIO_NUM 15
|
||||
#define SIOD_GPIO_NUM 4
|
||||
#define SIOC_GPIO_NUM 5
|
||||
|
||||
#define Y2_GPIO_NUM 11
|
||||
#define Y3_GPIO_NUM 9
|
||||
#define Y4_GPIO_NUM 8
|
||||
#define Y5_GPIO_NUM 10
|
||||
#define Y6_GPIO_NUM 12
|
||||
#define Y7_GPIO_NUM 18
|
||||
#define Y8_GPIO_NUM 17
|
||||
#define Y9_GPIO_NUM 16
|
||||
|
||||
#define VSYNC_GPIO_NUM 6
|
||||
#define HREF_GPIO_NUM 7
|
||||
#define PCLK_GPIO_NUM 13
|
||||
|
||||
#else
|
||||
#error "Camera model not selected"
|
||||
#endif
|
||||
@@ -78,7 +78,9 @@ esp_err_t CameraService::InitializeCamera() {
|
||||
if (psramFound()) {
|
||||
camera_config.frame_size = FRAMESIZE_SVGA;
|
||||
camera_config.jpeg_quality = 10;
|
||||
camera_config.fb_location = CAMERA_FB_IN_PSRAM;
|
||||
camera_config.fb_count = 2;
|
||||
camera_config.grab_mode = CAMERA_GRAB_LATEST;
|
||||
} else {
|
||||
camera_config.frame_size = FRAMESIZE_SVGA;
|
||||
camera_config.jpeg_quality = 12;
|
||||
@@ -87,7 +89,8 @@ esp_err_t CameraService::InitializeCamera() {
|
||||
|
||||
log_i("Initializing camera");
|
||||
esp_err_t err = esp_camera_init(&camera_config);
|
||||
if (err != ESP_OK) log_e("Camera probe failed with error 0x%x", err);
|
||||
if (err == ESP_OK) ESP_LOGI("CameraService", "Camera probe successful");
|
||||
else ESP_LOGE("CameraService", "Camera probe failed with error 0x%x", err);
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -95,7 +98,7 @@ esp_err_t CameraService::InitializeCamera() {
|
||||
esp_err_t CameraService::cameraStill(PsychicRequest *request) {
|
||||
camera_fb_t *fb = safe_camera_fb_get();
|
||||
if (!fb) {
|
||||
Serial.println("Camera capture failed");
|
||||
ESP_LOGE("CameraService", "Camera capture failed");
|
||||
request->reply(500, "text/plain", "Camera capture failed");
|
||||
return ESP_FAIL;
|
||||
}
|
||||
|
||||
@@ -23,8 +23,12 @@
|
||||
/*
|
||||
* I2C software connection
|
||||
*/
|
||||
#define SDA 14
|
||||
#define SCL 15
|
||||
#ifndef SDA_PIN
|
||||
#define SDA_PIN 14
|
||||
#endif
|
||||
#ifndef SCL_PIN
|
||||
#define SCL_PIN 15
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Ultra sonic sensors
|
||||
@@ -45,8 +49,8 @@ public:
|
||||
|
||||
class DeviceConfiguration {
|
||||
public:
|
||||
int sda = SDA;
|
||||
int scl = SCL;
|
||||
int sda = SDA_PIN;
|
||||
int scl = SCL_PIN;
|
||||
std::vector<PinConfig> pins;
|
||||
|
||||
static void read(DeviceConfiguration &settings, JsonObject &root) {
|
||||
@@ -55,8 +59,8 @@ class DeviceConfiguration {
|
||||
}
|
||||
|
||||
static StateUpdateResult update(JsonObject &root, DeviceConfiguration &settings) {
|
||||
settings.sda = root["sda"] | SDA;
|
||||
settings.scl = root["scl"] | SCL;
|
||||
settings.sda = root["sda"] | SDA_PIN;
|
||||
settings.scl = root["scl"] | SCL_PIN;
|
||||
return StateUpdateResult::CHANGED;
|
||||
};
|
||||
};
|
||||
|
||||
+1259
-1259
File diff suppressed because it is too large
Load Diff
@@ -30,8 +30,8 @@ build_flags=
|
||||
${env.build_flags}
|
||||
-D FT_CAMERA=1
|
||||
-D CAMERA_MODEL_AI_THINKER=1
|
||||
-D LED_BUILTIN=4
|
||||
-D KEY_BUILTIN=0
|
||||
-D SDA_PIN=14
|
||||
-D SCL_PIN=15
|
||||
|
||||
[env:esp32-wroom-camera]
|
||||
board = esp32-s3-devkitc-1
|
||||
@@ -42,16 +42,15 @@ upload_speed = 1000000
|
||||
build_flags =
|
||||
${env.build_flags}
|
||||
-D FT_CAMERA=1
|
||||
-D CAMERA_MODEL_ESP32S3_WROVER=1
|
||||
-D KEY_BUILTIN=0
|
||||
-D CAMERA_MODEL_ESP32S3_EYE=1
|
||||
-D SDA_PIN=47
|
||||
-D SCL_PIN=21
|
||||
|
||||
[env:esp32dev]
|
||||
board = esp32dev
|
||||
board_build.partitions = min_spiffs.csv
|
||||
build_flags =
|
||||
${env.build_flags}
|
||||
-D LED_BUILTIN=2
|
||||
-D KEY_BUILTIN=0
|
||||
|
||||
|
||||
; ================================================================
|
||||
|
||||
Reference in New Issue
Block a user