ESP32 MATTER CAMERA SDK 소개

ESPRESSIF|2026. 1. 28. 15:19

Espressif Matter Camera 예제 (ESP32-P4 Function EV Board)

 

출처: esp-matter/examples/camera at main · espressif/esp-matter · GitHub

 

esp-matter/examples/camera at main · espressif/esp-matter

Espressif's SDK for Matter. Contribute to espressif/esp-matter development by creating an account on GitHub.

github.com


1. 개요

이 예제는 Matter 카메라 기능을 두 칩 분리 아키텍처(two-chip split architecture)로 구현한 사례이다.

  • 시그널링(Signaling)미디어 스트리밍(Media Streaming)을 서로 다른 프로세서에 분리하여 전력 효율성을 극대화한다.
  • ESP32-C6은 Matter 스택 및 WebRTC 시그널링을 담당하고, ESP32-P4는 비디오/오디오 캡처 및 인코딩, 스트리밍을 담당한다.

2. 아키텍처 개요

펌웨어 구성

  1. matter_camera (ESP32-C6)
    • 역할: Matter 카메라 + WebRTC 시그널링
    • 책임:
      • Matter 스택 실행
      • WebRTC 시그널링 처리
      • media_adapter와 브리지 통신
      • 항상 연결 상태 유지 (즉각 응답성 확보)
  2. media_adapter (ESP32-P4)
    • 역할: 미디어 스트리밍 디바이스
    • 구현: ${KVS_SDK_PATH}/esp_port/examples/streaming_only 예제 기반
    • 책임:
      • 비디오/오디오 캡처 및 H.264 인코딩
      • WebRTC 미디어 스트리밍
      • 비스트리밍 시 저전력 모드 유지
      • matter_camera로부터 브리지 명령 수신

시스템 아키텍처 다이어그램


3. 빠른 시작 (Quick Start)

필수 조건

  • ESP32-P4 Function EV Board
  • ESP-IDF v5.5.1
  • Amazon Kinesis Video Streams WebRTC SDK 저장소

주의: ESP32-C6과 ESP32-P4 각각에 별도의 펌웨어를 플래싱해야 한다.


4. 카메라 예제 설정 (ESP32-C6)

  1. ESP-IDF 및 esp-matter 환경 설정
  2. 빌드 및 플래싱 
  3. cd esp-matter/examples/camera idf.py set-target esp32c6 idf.py build idf.py -p [PORT] flash monitor
  4. UART 연결 주의사항
    • ESP32-C6에는 온보드 UART 포트가 없음 → ESP-Prog 또는 JTAG 필요
    • 핀 연결:
      • IO0 → IO9
      • TX0 → TXD0
      • RX0 → RXD0
      • EN → EN
      • GND → GND

5. 미디어 어댑터 설정 (ESP32-P4)

  1. WebRTC SDK 클론 및 설정
    git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
    git checkout beta-reference-esp-port
    git submodule update --init --depth 1
    export KVS_SDK_PATH=/path/to/amazon-kinesis-video-streams-webrtc-sdk-c
    
  2. 빌드 및 플래싱
    cd ${KVS_SDK_PATH}/esp_port/examples/streaming_only
    idf.py set-target esp32p4
    idf.py menuconfig
    # Component config -> ESP System Settings -> Channel for console output
    # (X) USB Serial/JTAG Controller (EV Board V1.2/V1.5)
    # (X) UART0 (EV Board V1.4)
    idf.py build
    idf.py -p [PORT] flash monitor
    

콘솔 출력 채널을 잘못 선택하면 부트로더 로그만 보임 → 올바른 설정 후 재플래싱 필요


6. 파티션 구성 주의사항

  • ESP32-C6의 플래시 용량 제한으로 인해 ota_1 파티션 비활성화
  • ota_0 파티션 크기 증가
  • OTA 업데이트 불가 → 프로덕션 환경에서는 권장되지 않음

7. 테스트 방법

  • Matter 기반 카메라 컨트롤러 앱을 사용하여 영상 스트림 확인 가능
  • 또는 connectedhomeip 저장소의 camera-controller 예제 활용 가능

8. 결론

이 예제는 ESP32-C6 + ESP32-P4의 이중 칩 구조를 통해 Matter 카메라 기능을 구현한 레퍼런스이다.

  • ESP32-C6: Matter 스택 및 WebRTC 시그널링 담당
  • ESP32-P4: H.264 인코딩 및 미디어 스트리밍 담당
  • 장점: 전력 최적화, 빠른 응답성, WebRTC 기반 실시간 스트리밍 지원

이는 Espressif의 MCU 기반 Matter 카메라 솔루션을 실제로 구현하는 데 중요한 출발점이며, 향후 저전력 IoT 카메라 제품 개발에 활용될 수 있다.