ESPHome dashboard - 보드 연결

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으로 표시되며 로그를 확인할 수 있습니다.
  • 보드 등록이 완료되었습니다~
0
Subscribe to my newsletter

Read articles from Albert Hongseok Gu directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Albert Hongseok Gu
Albert Hongseok Gu