substitutions: device_name: esp32-h2c-camera friendly_name: "3D Printer Camera" esphome: name: ${device_name} friendly_name: ${friendly_name} esp32: board: esp32-s3-devkitc-1 framework: type: esp-idf # Required for ESP32 camera buffering. psram: mode: octal logger: api: encryption: key: !secret api_encryption_key ota: - platform: esphome password: !secret ota_password wifi: ssid: !secret wifi_iot_ssid password: !secret wifi_password ap: ssid: "${friendly_name} Fallback" password: !secret fallback_password captive_portal: web_server: port: 80 i2c: - id: camera_i2c sda: GPIO8 scl: GPIO9 scan: false esp32_camera: name: "${friendly_name}" external_clock: pin: GPIO5 frequency: 20MHz i2c_id: camera_i2c data_pins: [GPIO16, GPIO18, GPIO21, GPIO17, GPIO14, GPIO7, GPIO6, GPIO4] vsync_pin: GPIO1 href_pin: GPIO2 pixel_clock_pin: GPIO15 # Start conservative for reliability; increase later if stable. resolution: 640x480 jpeg_quality: 12 max_framerate: 10 fps idle_framerate: 0.2 fps frame_buffer_count: 1 # Common orientation defaults for this module. vertical_flip: false horizontal_mirror: false brightness: 1 # Camera endpoints: # Stream: http://:8080 # Snapshot: http://:8081 esp32_camera_web_server: - port: 8080 mode: stream - port: 8081 mode: snapshot switch: # DFRobot board IR illumination control pin. - platform: gpio name: "${friendly_name} IR LED" pin: GPIO47 restore_mode: ALWAYS_OFF sensor: - platform: wifi_signal name: "${friendly_name} WiFi Signal" update_interval: 60s - platform: uptime name: "${friendly_name} Uptime" button: - platform: restart name: "${friendly_name} Restart"