ESPHome - ESP32 사용해보기

1. ESP32 보드.

  • ESP32 보드 중 작은 ESP32-C3 Super Mini입니다.

 

2. ESP32-C3 Super Mini 연결.

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

 

3. ESPHome 설치.

  • https://hsgpublic.hashnode.dev/14 를 참고하세요.

 

4. ESPHome yaml 파일 작성.

  • 참고 문서.
  • LED를 1초마다 깜빡이는 예제를 esp32-c3-led.yaml 파일로 작성했습니다.

    esphome:
      name: led-blinking
      friendly_name: "LED bliking"
      platformio_options:
        platform: espressif32
    
    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino
    
    switch:
      - platform: gpio
        id: led
        pin:
          number: 8
          mode: output
    
    interval:
      - interval: 1s
        then:
          - switch.toggle: led
    
  • ESP32-C3를 위한 중요 지정 항목은 아래 두가지입니다.
    esphome:
      platformio_options:
        platform: espressif32
    
    esp32:
      board: esp32-c3-devkitm-1
    

 

5. 실행해보기.

  • 참고문서.
  • 컴파일 및 업로드를 위해서는 아래 명령어를 사용합니다.
    $ esphome run esp32-c3-led.yaml
    
  • 그러면 연결된 ESP32-C3 보드를 자동으로 찾아 업로드 합니다.
  • 업로드가 완료된 후 보드의 reset 버튼을 누르면 LED가 깜빡이는 것을 확인할 수 있습니다.

 

6. OTA(Over-The-Air) 업데이트.

  • 문서.
  • ESP 보드는 Wi-Fi를 통한 OTA를 지원하며, ESPHome은 OTA도 간단하게 설정하고 사용 가능하게 해줍니다.
  • 보안을 위해 계정 정보를 secrets.yaml 파일로 별도 작성합니다. esp32-c3-led.yaml 과 같은 디렉토리에 저장해야 합니다.
    wifi_ssid: "공유기 SSID"
    wifi_password: "공유기 연결 비밀번호"
    ota_password: "OTA를 보호하기 위한 비밀번호"
    
  • 기존 esp32-c3-led.yaml 파일에 wifi 및 ota 항목을 추가합니다.

    esphome:
      name: led-blinking
      friendly_name: "LED bliking"
      platformio_options:
        platform: espressif32
    
    esp32:
      board: esp32-c3-devkitm-1
      framework:
        type: arduino
    
    switch:
      - platform: gpio
        id: led
        pin:
          number: 8
          mode: output
    
    interval:
      - interval: 1s
        then:
          - switch.toggle: led
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
    ota:
      - platform: esphome
        password: !secret ota_password
    
  • 보안 항목 값 앞에 !secret 을 붙이면 secret.yaml 에서 같은 항목을 찾아 적용 해준다는 점 참고하세요.
  • 컴파일 및 업로드 해줍니다.
    $ esphome run esp32-c3-led.yaml
    
  • 업로드가 완료되면, PC에서 ESP32 보드를 분리하고, 별도 전원을 연결하면 OTA로 업데이트 가능합니다.
  • PC에 연결되어 있지 않아도 업로드가 잘 되는지 확인하기 위해 명령어를 다시 한번 실행해 봅시다.
    $ esphome run esp32-c3-led.yaml
    
  • OTA 가능한 보드가 하나라면 바로 업로드가 되고 reset이 됩니다. 여려개라면 리스트가 표시되며 하나를 선택하면 업로드 후 reset 됩니다.
  • 월패드 안쪽 등 분리가 귀찮거나 까다로운 위치에 부착된 보드를 분리하지 않고도 OTA 업데이트가 가능하니 너무 편리한 기능입니다.
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