Bonsoir, j’ai moi aussi commander cette petite camera, j’ai recuperer les sources du programmes originel. Cela m’a permis de revoir tout le pinout pour esphome et inclure les bons pins, si ca peu aider voici mon code:
esphome:
name: camerajardin
friendly_name: Camera Jardin
platformio_options:
build_flags: -DBOARD_HAS_PSRAM
board_build.arduino.memory_type: qio_opi
board_build.f_flash: 80000000L
board_build.flash_mode: qio
on_boot:
priority: -100
then:
- switch.turn_on: amp_enable
- delay: 200ms
esp32:
board: esp32-s3-devkitc-1
flash_size: 16MB
partitions: partitions_16mb_ota.csv
framework:
type: esp-idf
logger:
ota:
- platform: esphome
password: 03051978
api:
encryption:
key: "!secret encryption"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.10.127
gateway: 192.168.10.1
subnet: 255.255.255.0
ap:
ssid: "Esp32Cam Fallback Hotspot"
password: "12345678"
captive_portal:
web_server:
port: 80
time:
- platform: homeassistant
id: homeassistant_time
mqtt:
broker: 192.168.10.21
port: 1883
username: camera_jardin
password: camera_jardin!!
discovery: true
# ESPHome 2026.x: la camera exige psram:
psram:
mode: quad
speed: 80MHz
# --------------------------
# LED statut (GPIO2)
# --------------------------
status_led:
pin:
number: GPIO2
inverted: true
# --------------------------
# LED RGBW WS2812 (GPIO21)
# --------------------------
light:
- platform: esp32_rmt_led_strip
id: led_rgb
name: "LED RGB (WS2812 GPIO21)"
pin: GPIO21
num_leds: 1
chipset: WS2812
rgb_order: GRB
restore_mode: RESTORE_DEFAULT_OFF
# --------------------------
# IR ON/OFF (GPIO13 / GPIO14)
# --------------------------
switch:
- platform: gpio
pin: GPIO13
name: "Camera jardin IR ON"
id: ir_on
on_turn_on:
- delay: 100ms
- switch.turn_off: ir_on
interlock: [ir_off]
- platform: gpio
pin: GPIO14
name: "Camera jardin IR OFF"
id: ir_off
on_turn_on:
- delay: 100ms
- switch.turn_off: ir_off
interlock: [ir_on]
- platform: output
name: "Amplifier Enable (NS4168)"
output: pa_ctrl
id: amp_enable
restore_mode: RESTORE_DEFAULT_ON
binary_sensor:
- platform: homeassistant
name: "Input Boolean Night Mode HA"
entity_id: input_boolean.camera_jardin_night_mode
on_press:
then:
- switch.turn_on: ir_off
on_release:
then:
- switch.turn_on: ir_on
# --------------------------
# CAMERA (pins EXACTS du firmware d'origine)
# --------------------------
i2c:
- id: cam_i2c
sda: GPIO37
scl: GPIO36
frequency: 100kHz
esp32_camera:
name: camera_jardin
# XCLK = GPIO33 (firmware d'origine)
external_clock:
pin: GPIO33
frequency: 20MHz
i2c_id: cam_i2c
# data_pins DOIT être D0..D7 dans l'ordre
data_pins: [GPIO7, GPIO5, GPIO4, GPIO6, GPIO8, GPIO42, GPIO48, GPIO47]
vsync_pin: GPIO35
href_pin: GPIO34
# PCLK = GPIO41 (firmware d'origine)
pixel_clock_pin: GPIO41
resolution: 640x480
jpeg_quality: 12
max_framerate: 5 fps
idle_framerate: 0.2 fps
vertical_flip: false
horizontal_mirror: false
contrast: 2
brightness: 2
saturation: 0
esp32_camera_web_server:
- port: 8080
mode: stream
- port: 8081
mode: snapshot
# --------------------------
# AUDIO (selon ton schéma précédent)
# - Micro MSM261S4030 : WS=GPIO40, BCLK=GPIO39, DIN=GPIO38
# - Ampli NS4168 : PA_CTRL=GPIO46, LRCLK=GPIO45, BCLK=GPIO10, DOUT=GPIO9
# --------------------------
output:
- platform: gpio
pin: GPIO46
id: pa_ctrl
i2s_audio:
- id: i2s_in
i2s_lrclk_pin: GPIO40
i2s_bclk_pin: GPIO39
- id: i2s_out
i2s_lrclk_pin: GPIO45
i2s_bclk_pin: GPIO10
microphone:
- platform: i2s_audio
id: mic
i2s_audio_id: i2s_in
adc_type: external
i2s_din_pin: GPIO38
pdm: false
speaker:
- platform: i2s_audio
id: spk
i2s_audio_id: i2s_out
dac_type: external
i2s_dout_pin: GPIO9
i2s_mode: primary
media_player:
- platform: speaker
name: "Camera Jardin Speaker"
id: mp
announcement_pipeline:
speaker: spk
format: WAV
sample_rate: 16000
num_channels: 1
alors ATTENTION!!! il y a des Avertissements lors de la compilation, cependant cela reste normal car la camera utilise des pins de la PSRAM, je vais bosser encore sur l’optimisation du code.
voici le code de la partition pour 16m de flash: a mettre dans un fichier “partitions_16mb_ota.csv”
#Name, Type, SubType, Offset, Size
nvs, data, nvs, 0x9000, 0x5000
otadata, data, ota, 0xE000, 0x2000
app0, app, ota_0, 0x10000, 0x700000
app1, app, ota_1, 0x710000, 0x700000
spiffs, data, spiffs, 0xE10000, 0x1F0000
Pour info c’est la meme carte que celle de @silvhino
Fonctionnel:
- cam
- led + la rgb
- haut parleur
- micro
- bouton mais je doit clarifier ce point
- je passe par go2rtc pour frigate