diff --git a/ESP32CAM-ONVIF/camera_control.h/camera_control.cpp b/ESP32CAM-ONVIF/camera_control.h/camera_control.cpp new file mode 100644 index 0000000..191e177 --- /dev/null +++ b/ESP32CAM-ONVIF/camera_control.h/camera_control.cpp @@ -0,0 +1,59 @@ +#include "camera_control.h" +#include +#include "esp_camera.h" + +// ========== User Config ========== +const char* ssid = "YOUR_WIFI_SSID"; +const char* password = "YOUR_WIFI_PASSWORD"; +// ================================= + +bool camera_init() { + camera_config_t config; + config.ledc_channel = LEDC_CHANNEL_0; + config.ledc_timer = LEDC_TIMER_0; + config.pin_d0 = 5; + config.pin_d1 = 18; + config.pin_d2 = 19; + config.pin_d3 = 21; + config.pin_d4 = 36; + config.pin_d5 = 39; + config.pin_d6 = 34; + config.pin_d7 = 35; + config.pin_xclk = 0; + config.pin_pclk = 22; + config.pin_vsync = 25; + config.pin_href = 23; + config.pin_sccb_sda = 26; + config.pin_sccb_scl = 27; + config.pin_pwdn = 32; + config.pin_reset = -1; + config.xclk_freq_hz = 20000000; + config.pixel_format = PIXFORMAT_JPEG; + config.frame_size = FRAMESIZE_VGA; + config.jpeg_quality = 12; + config.fb_count = 2; + esp_err_t err = esp_camera_init(&config); + if (err != ESP_OK) { + Serial.printf("[ERROR] Camera init failed: 0x%x\n", err); + return false; + } + Serial.println("[INFO] Camera initialized."); + return true; +} + +bool wifi_connect() { + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, password); + Serial.print("[INFO] Connecting to WiFi"); + for (int i = 0; i < 40 && WiFi.status() != WL_CONNECTED; i++) { + delay(250); + Serial.print("."); + } + if (WiFi.status() == WL_CONNECTED) { + Serial.println("\n[INFO] WiFi connected: " + WiFi.localIP().toString()); + return true; + } else { + Serial.println("\n[ERROR] WiFi connect failed."); + return false; + } +}