I was able to get this device working and integrated with HomeAssistant. Sharing to hopefully help save others some time…
substitutions:
name: esphome-web-123456
friendly_name: Seeed Xaio w/Camera 123456
# Pin definitions
camera_sda_pin: GPIO40
camera_scl_pin: GPIO39
camera_data_pins: GPIO15, GPIO17, GPIO18, GPIO16, GPIO14, GPIO12, GPIO11, GPIO48
camera_vsync_pin: GPIO38
camera_href_pin: GPIO47
camera_pclk_pin: GPIO13
camera_xclk_pin: GPIO10 # Assign the appropriate GPIO pin for xclk
esphome:
name: ${name}
friendly_name: ${friendly_name}
name_add_mac_suffix: false
platformio_options:
# board_build.flash_mode: dio
board_build.mcu: esp32s3
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
# https://wiki.seeedstudio.com/XIAO_ESP32S3_esphome/
project:
name: esphome.web
version: '1.0'
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
#version: latest
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
api:
encryption:
key: <your api key here>
ota: # Allow Over-The-Air updates
- platform: esphome
logger:
web_server:
sensor:
- platform: uptime
name: "Uptime"
id: esp_uptime
icon: mdi:clock-start
entity_category: "diagnostic"
update_interval: 60s
- platform: uptime
name: "ESP32 Camera Uptime Sensor"
id: foo_uptime
entity_category: "diagnostic"
icon: mdi:information
- platform: wifi_signal
name: "ESP32 Camera WiFi Signal"
id: foo_wifi
entity_category: "diagnostic"
icon: mdi:information
update_interval: 60s
text_sensor:
- platform: wifi_info
ip_address:
name: "Wifi IP Address"
id: wifi_ip_address
entity_category: "diagnostic"
ssid:
name: "WiFi SSID"
id: wifi_ssid
icon: mdi:ip-outline
entity_category: diagnostic
mac_address:
name: "WiFi MAC Address"
id: wifi_mac_address
icon: mdi:ip-outline
entity_category: diagnostic
# Camera configuration
esp32_camera:
name: "Seeed XIAO ESP32-S3 Camera"
id: seeed_camera
external_clock:
pin: ${camera_xclk_pin}
frequency: 12MHz
i2c_pins:
sda: ${camera_sda_pin}
scl: ${camera_scl_pin}
data_pins:
- GPIO15
- GPIO17
- GPIO18
- GPIO16
- GPIO14
- GPIO12
- GPIO11
- GPIO48
vsync_pin: ${camera_vsync_pin}
href_pin: ${camera_href_pin}
pixel_clock_pin: ${camera_pclk_pin}
resolution: 1280X1024
jpeg_quality: 10
max_framerate: 15 fps
switch:
- platform: template
name: "Camera Control"
id: camera_control
optimistic: True
- platform: restart
id: foo_restart
name: "ESP32 Camera Restart"