맥/우분투 설치 방법은 아래 포스트 참고
ESP32 시리즈 SoC를 사용하기 위해서는 ESP-IDF 프레임워크를 사용하거나 아두이노 BSP를 올려 아두이노 코드를 실행시키는 방법이 있습니다.
ESP를 아두이노로 사용하면 ESP의 모든 기능을 사용하기 어려우며, ESP의 모든 성능을 끌어내기 어렵습니다.
ESP-IDF를 사용하기 위해서 PlatformIO
를 사용하거나, Eclipse
, VS Code
에서 Esp 확장 플러그인을 설치하거나, 사용하시는 IDE에서 CMake 환경을 설정하는 방법이 있습니다.
CLion은 C 개열 IDE중 당연 최고라 할 수 있는만큼, CLion을 활용한 ESP-IDF 환경을 구성하는 방법을 소개합니다.
사용한 ESP
제가 사용한 ESP 보드 입니다. Espressif 공식 레퍼런스 보드이며, ESP32-S3-WROOM-1
모듈을 사용하며, USB to UART 칩셋으로 Silicon Labs CP2102
칩을 사용하는 보드 입니다.
ESP-IDF 설치
위 링크에 접속해서 ESP-IDF 윈도우 인스툴러를 다운로드 받습니다.
Windows Installer
를 클릭하고, 아래 이미지를 찾아 클릭하면 됩니다.
Universal Online Installer
를 다운받아 실행하면 됩니다.
설치를 시작하기전, 인스툴러는 ESP-IDF를 구동하기 위한 환경인지를 검사 합니다. Check complete
를 기다리고 Next
를 클릭하면 됩니다.
새로운 ESP-IDF
를 설치하기 위해, Download ESP-IDF
를 체크하면 됩니다.
설치하고자 하는 버전을 지정하면 됩니다. 현재 최신 Stable 버전은 v5.0.1
입니다.
설치하고자 하는 항목을 설정하면 됩니다.
☑ Framework # 기본적인 프레임워크
☐ Development integrations
├ ☐ Espressif-IDE # CLion을 사용할 것임으로 체크 해제 했습니다.
├ ☐ Rust language support # Rust 언어 지원을 설치하는 옵션입니다.
├ ☐ Toit language support # Toit 언어 지원을 설치하는 옵션입니다.
├ ☑ PowerShell # 파워쉘 ESP-IDF 스크립트의 바로가기를 추가해주는 옵션입니다.
│ ├ ☑ Windows Terminal ...
│ ├ ☑ Desktop shortcut
│ └ ☑ Start menu shortcut
└ ☑ Command Prompt # CMD ESP-IDF 스크립트의 바로가기를 추가해주는 옵션입니다.
├ ☑ Desktop shortcut
└ ☑ Start menu shortcut
☐ Drivers # ESP의 USB 드라이버 입니다. 레퍼런스 보드의 스펙을 참고해서
│ 설치하면 됩니다.
├ ☑ Espressif
├ ☐ FTDI
├ ☑ Silicon Labs
└ ☐ WCH
☐ Chip Targets # 사용하시는 보드를 체크하시면 됩니다.
├ ☐ ESP32
├ ☐ ESP32-C Series
│ ├ ☐ ESP32-C2
│ ├ ☐ ESP32-C3
│ └ ☐ ESP32-C6
└ ☐ ESP32-S Series
├ ☐ ESP32-S2
└ ☑ ESP32-S3
☑ Optimization # 기본값으로 사용하면 됩니다.
설치가 완료되면 위 화면이 나타나며, Run ESP-IDF Powershell ...
와 Register the ESP-IDF ...
를 체크하고 Finish
를 클릭하면 설치가 종료되고, ESP-IDF
환경이 구성된 파워쉘 창이 나타납니다.
ESP-IDF는 위 파워쉘에서 개발을 합니다. 이 쉘에서는 ESP-IDF 개발을 위한 일회성 환경 변수들이 설정되며, ESP 를 개발할 때 반드시 이 쉘에서 개발을 해야 합니다.
환경이 설정된 파워쉘 혹은 CMD 를 열고 싶으면 설치된 바로가기를 실행하거나
ESP-IDF 가 설치된 폴더에서 실행하면 됩니다.
CMD 는 idf_cmd_init.bat
을, PowerShell은 Initalize-idf.ps1
을 실행하면 됩니다.
프로젝트 생성
ESP-IDF 파워쉘에서 작업을 이어서 하면 됩니다.
Setting IDF_PATH: ...
에 출력 된 폴더에 들어가면 examples
폴더가 있습니다.
{IDF_PATH}/examples/get_started/blink
폴더를 복사하여 사용하면 됩니다.
blink
프로젝트는 DevKit
보드에 내장된 네오픽셀 LED를 제어하는 예제 프로젝트 입니다.
예제 코드가 없는 빈 프로젝트를 만들고자 하면 sample_project
폴더를 복사해서 사용하면 됩니다.
idf.py 명령으로 프로젝트를 생성할 수 있습니다.
idf.py create-project [프로젝트 이름]
idf.py create-project hello
cd hello
clion . // 현재 디렉토리로 CLion 실행
idf.py app // 프로젝트 빌드
CLion 에서 ESP-IDF 구성하기
수정
기존 포스트에서 작성된 방법은 환경 변수들을 수동으로 추가하는 방법을 다룹니다.
자동으로 환경 변수를 설정하는 방법을 아래 포스트에 추가 했으니 이 방법을 사용해 주세요.
기존 글은 포스트 최 하단으로 위치를 변경 했습니다.
포스트의 방법을 사용하고, 기존 방법은 최후의 방법으로 사용해 주세요
==
sdkconfig
파워쉘에서 프로젝트 폴더로 디렉토리 변경 후 idf.py menuconfig
명령으로 프로젝트 설정을 구성합니다.
Example Configutation
에서 blink
프로젝트의 설정을 진행하면 됩니다.
Blink GPIO number
로 네오픽셀 LED 의 GPIO 핀을, Blink period in ms
로 깜빡이는 간격을 설정하면 됩니다.
idf.py 프로젝트 빌드, 업로드
파워쉘에서 프로젝트 최상단 폴더로 디렉토리 변경 후
idf.py app // 프로젝트 빌드, 바이너리 생성
idf.py flash // 바이너리 플래시
idf.py flash -p COM11 // COM11 포트로 플래시
idf.py monitor // 기기 시리얼 모니터 열기
idf.py app flash // 빌드, 플래시
idf.py app flash monitor // 빌드, 플래시, 모니터
CLion 에서 프로젝트 빌드, 업로드
상단에 Run Configurations
에서 app 을 선택한 후 Ctrl+F9
혹은 망치 모양의 Build
아이콘을 클릭하면 프로젝트가 빌드 됩니다.
User environment variables
에서 ESPPORT
변수를 ESP
보드가 연결된 COM
번호로 지정하면 보드에 코드 업로드가 가능합니다.
만약 ESPPORT
를 설정하지 않으면 PC에 연결된 모든 COM 포트에서 ESP
를 감지하여 코드 업로드를 시도 합니다.
Flash
로 변경 후 빌드하면 코드가 업로드 됩니다.
추가
환경변수 관련 설정을 자동화 할 수 있습니다. 아래 포스트를 참고해 주세요
CLion 에서 ESP-IDF 구성하기
ESP-IDF 파워쉘에서 작업을 이어서 하면 됩니다.
Setting IDF_PATH: ...
에 출력 된 폴더에 들어가면 examples
폴더가 있습니다.
{IDF_PATH}/examples/get_started/blink
폴더를 복사하여 사용하면 됩니다.
blink
프로젝트는 DevKit
보드에 내장된 네오픽셀 LED를 제어하는 예제 프로젝트 입니다.
예제 코드가 없는 빈 프로젝트를 만들고자 하면 sample_project
폴더를 복사해서 사용하면 됩니다.
CLion으로 복사한 blink
프로젝트를 열면 아래와 같이 빌드 환경을 설정하는 창이 나타납니다.
OK
를 클릭합니다.
프로젝트가 열리면 CMake
관련 오류가 출력 됩니다. 이는 CLion
이 ESP-IDF
에서 사용하는 컴파일러가 아니라 호스트 PC의 컴파일러를 인식하기 때문입니다.
또한 ESP
프로젝트를 빌드하기 위한 프로그램돠 라이브러리, 파이썬 환경이 인식되지 않기 때문에 관련 변수를 설정 해주어야 합니다.
Ctrl + Alt + S
를 클릭하여 설정창을 띄운 후, Build, Excution, Deployment > CMake
를 클릭합니다.
Environment
입력 창 우측의 버튼을 클릭하여 아래처럼 환경 변수를 설정합니다.
- User environment variables:
- IDF_PATH: ESP-IDF 의 위치를 지정합니다.
- IDF_TARGET: 보드 타겟을 지정합니다. esp32, esp32c2, esp32s3 ...
- System environment variables:
- PATH: ESP-IDF 툴의 위치를 작성합니다.
IDF_PATH
는 파워쉘 환경에서 Setting IDF_PATH: ...
에 나타난 경로를 입력하면 됩니다.
위 파워쉘에서 $Env:path
명령을 입력해서 IDF_PATH
의 하위 폴더들을 모두 복사합니다.
기본 설치 경로를 사용하였다면, C:\Espressif
하위 경로의 폴더를 복사하면 되며, 마지막 세미콜론까지 복사해야 합니다.
위 이미지처럼 복사하면 됩니다.
복사한 텍스트를 PATH
값 최좌측에 붙여넣으면 됩니다.
OK > OK
를 클릭한 후 아래처럼 Reset cache and Reload project
를 클릭하면 성공적으로 CMake
프로젝트가 로드 됩니다.