Skip to main content

Command Palette

Search for a command to run...

ESPHome - ESP32 사용해보기

Published
2 min readView as Markdown

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 업데이트가 가능하니 너무 편리한 기능입니다.

More from this blog

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

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

Oct 10, 20242 min read

ESPHome dashboard - 보드 연결

1. 서론. ESPHome dashboard는 웹 기반의 인터페이스로, ESP8266 및 ESP32 칩을 사용하는 디바이스들을 손쉽게 설정하고 USB 연결, OTA 등으로 관리할 수 있는 도구입니다. 이 글에서는 별도 서비스로 실행되는 dashboard에, OTA로 보드를 연결하는 방법을 정리합니다.   2. 보드에 OTA 펌웨어 업로드. OTA로 연결하려면 보드에 OTA 펌웨어를 업로드 해야 합니다. ESP32-C3 Super mini를...

Sep 22, 20243 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