Skip to main content

Command Palette

Search for a command to run...

ESPHome dashboard - 보드 연결

Updated
3 min readView as Markdown

1. 서론.

  • ESPHome dashboard는 웹 기반의 인터페이스로, ESP8266 및 ESP32 칩을 사용하는 디바이스들을 손쉽게 설정하고 USB 연결, OTA 등으로 관리할 수 있는 도구입니다.
  • 이 글에서는 별도 서비스로 실행되는 dashboard에, OTA로 보드를 연결하는 방법을 정리합니다.

 

2. 보드에 OTA 펌웨어 업로드.

  • OTA로 연결하려면 보드에 OTA 펌웨어를 업로드 해야 합니다.
  • ESP32-C3 Super mini를 가지고 있어서 해당 보드를 기준으로 작성했으며, 펌웨어 업로드 방법은 ESPHome - ESP32 사용해보기 를 참고하세요.
  • 아래는 OTA를 설정한 YAML 내용이며, 파일명은 esp32-c3-ota.yaml 로 했습니다. IP는 manual_ip 항목에 고정으로 잡아주는게 편합니다. 자신의 환경에 맞게 설정한 다음 보드를 PC에 연결해 업로드합니다.

    esphome:
      name: esp32-c3-ota
      friendly_name: "ESP32-C3 OTA"
      platformio_options:
        platform: espressif32
    
    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
      manual_ip:
        static_ip: 127.127.0.11
        gateway: 127.127.0.254
        subnet: 255.255.255.0
    
    ota:
      - platform: esphome
    
  • 업로드가 완료되면, 보드를 PC에서 분리한 다음 별도 전원을 연결합니다.

 

3. ESPHome dashboard에 보드 등록.

3-1. 공유기 연결 암호 등록.

  • ESPHome에 접속해 상단 "SECRETS" 버튼을 클릭합니다.
  • 공유기 암호를 입력하고 "SAVE" 버튼을 클릭해 저장한 후 "X" 버튼을 클릭해 화면을 닫습니다.

3-2. 추가할 보드 정보 생성.

  • 홈 화면에서 "+ NEW DEVICE" 버튼을 클릭하면 설명이 팝업되는데, "CONTINUE" 버튼을 클릭합니다.
  • 보드 이름을 입력한 후 "NEXT" 버튼을 클릭합니다. "ESP32-C3 LED"로 지정했습니다.
  • ESP32-C3를 선택합니다.
  • 보드 정보가 생성되었습니다. 우선 "SKIP" 버튼을 클릭합니다.
  • "EDIT" 버튼을 클릭해 정보를 확인해 봅시다.
  • ESP32-C3를 사용하기 위한 기본적인 정보가 생성되었습니다.

3-3. YAML 수정.

  • 생성된 YAML.

    esphome:
      name: esp32-c3-led
      friendly_name: ESP32-C3 LED
    
    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
      encryption:
        key: "G6NBMDF0vuR+kkoxScD0QcYg5pJBPNou0sEuS1CVcY0="
    
    ota:
      - platform: esphome
        password: "8f61f107e8c1b6d604dd0a9761df1e01"
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
      # Enable fallback hotspot (captive portal) in case wifi connection fails
      ap:
        ssid: "Esp32-C3-Led Fallback Hotspot"
        password: "TvEjCZs8QlRA"
    
    captive_portal:
    
  • 보드에 업로드 시 지정한 IP를 manual_ip로 추가하고, LED 깜빡임 로직을 추가합니다.

    wifi:
      manual_ip:
        static_ip: 127.127.0.11
        gateway: 127.127.0.254
        subnet: 255.255.255.0
    
    switch:
      - platform: gpio
        id: led
        pin:
          number: 8
          mode: output
    
    interval:
      - interval: 1s
        then:
          - switch.toggle: led
    
  • 항목이 추가된 전체 YAML.

    esphome:
      name: esp32-c3-led
      friendly_name: ESP32-C3 LED
    
    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
      encryption:
        key: "G6NBMDF0vuR+kkoxScD0QcYg5pJBPNou0sEuS1CVcY0="
    
    ota:
      - platform: esphome
        password: "8f61f107e8c1b6d604dd0a9761df1e01"
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
      manual_ip:
        static_ip: 127.127.0.11
        gateway: 127.127.0.254
        subnet: 255.255.255.0
    
      # Enable fallback hotspot (captive portal) in case wifi connection fails
      ap:
        ssid: "Esp32-C3-Led Fallback Hotspot"
        password: "TvEjCZs8QlRA"
    
    captive_portal:
    
    switch:
      - platform: gpio
        id: led
        pin:
          number: 8
          mode: output
    
    interval:
      - interval: 1s
        then:
          - switch.toggle: led
    

3-4. OTA를 통해 보드에 업로드.

  • 추가한 "ESP32-C3 LED" 항목의 더보기 메뉴에서 "Install"을 클릭합니다.
  • "Wirelessly"를 선택합니다.
  • 컴파일이 진행됩니다.
  • 컴파일이 완료되면 지정한 보드의 IP에 연결해 업로드 됩니다. "STOP" 버튼을 클릭하면 홈 화면으로 이동합니다.
  • 업로드가 완료되면 연결 상태가 유지되고 ONLINE으로 표시되며 로그를 확인할 수 있습니다.
  • 보드 등록이 완료되었습니다~

More from this blog

크로스/멀티 플랫폼 앱 개발의 진화

서론 최근 몇 년간 크로스/멀티 플랫폼을 지원하는 앱 개발 프로젝트들이 빠르게 확산되고 있습니다. 이제 개발자들은 단일 코드베이스로 여러 플랫폼에서 동작하는 앱을 만들 수 있는 다양한 도구와 프레임워크를 활용할 수 있게 되었습니다.   과거의 크로스 플랫폼 개발 도구들 과거에도 크로스 플랫폼 앱 개발을 시도한 많은 프로젝트들이 있었습니다. 그러나 그중 다수는 성능과 안정성 문제로 인해 큰 인기를 끌지 못했습니다. 그 결과, 많은 개발자들이 오히...

Oct 10, 20242 min read

ESPHome - ESP32 사용해보기

1. ESP32 보드. ESP32 보드 중 작은 ESP32-C3 Super Mini입니다.   2. ESP32-C3 Super Mini 연결. 처음 PC USB에 연결하면 연결되었다가 끊겼다가를 계속 반복하며 업로드가 되지 않습니다. 다운로드 모드로 진입해야 정상 연결되며 업로드가 됩니다. 진입 방법은 아래 두가지입니다. 보드의 Boot 버튼을 누른 채로 USB에 연결. USB에 연결 후 Boot 버튼을 누른 채로 Reset 버튼을 눌렀...

Sep 21, 20242 min read

ESPHome 설치

1. 서론. ESP 보드 펌웨어 개발 환경은 여러가지가 있습니다. 프레임워크를 사용하지 않고 개발해도 되고, Arduino, PlatformIO, ESPHome 같은 프레임워크를 이용할 수도 있죠. ESPHome은 Arduino와 PlatformIO 프레임워크를 사용하기 쉽게 한번 더 패키징 한 것이고, 소스코드를 작성할 필요 없이 yaml 형식으로 간단하게 정의해서 사용합니다.   2. ESPHome 설치. 문서. 최상위 문서: http...

Sep 21, 20241 min read

Albert Hongseok Gu's blog

18 posts