본문 바로가기

ESPRESSIF/ESP32

ESP32 PlatformIO 개발 환경 설정

 

ESP32를 Arduino IDE에서 컴파일 하면 속도가 너무 느리다
특히 라이브러리가 많아지면 점점 더 느려 개발 하기가 힘이 든다.

 

 
꼭 이렇게 까지 느려야 하나?
Arduino에서 컴파일 과정을 출력하게 해서 확인해 보면 라이브러리들을 항상 다시 컴파일 하고 있다.
한번 컴파일 되면 수정할때는 수정한 부분만 컴파일 하면 빠를텐데... (이런것도 옵션이 있나?)
아무튼 개발 하기 힘들 정도로 컴파일 속도가 느려서 대안을 찾기로 했다.

 

 

PlatformIO 는 어떨까?
PlatformIO 에서는 상당히 빠르다. 그리고 한번 컴파일 하면 수정된 부분만 컴파일 하므로 속도가 더 빠른것 같다.
 
그래서 PlatformIO에서 ESP32 개발 환경 설정하고 테스트 해 보았다.

 

 

 

VisualStudio Code에서 PlatformIO설치 하고 

 

Espressif IDF 를 설치 해 준다.

 
 
설치 후  새로운 프로젝트를 생성한다.

 

 

Board를 선택하고 Framework 설정후 프로젝트를 생성 하면 쉽게 ESP32 개발 환경을 구축 할 수 있다.

 

 

 

기본 생성 코드를 컴파일 해 보자

 

컴파일 및 다운로드 잘 동작 한다.

컴파일도 빠르고 다운로드도 잘 동작하는데.... 한가지 단점이 있다.
간단히 테스트 하기 위해 매번 새로운 프로젝트로 생성하는 것이 부담이 된다. 더구나 컴파일 결과 파일을 다 저장하고 있어서 용량도 커지고 쉽게 복사 해서 새로운 테스트 하기는 조금 까다롭다.
 
Arduino IDE는 그냥 코드만 복사해서 다른이름으로 저장해 주면 쉽게 다양한 예제를 테스트 할 수 있었는데...
 
일단 컴파일 속도 때문에 PlatformIO를 사용하기는 하지만 불편한점은 어쩔 수 없다.
 

PlatformIO 라이브러리 연결하기
 
Arduino IDE에서 사용하던 코드를 PlatformIO를 사용하면서  몇 가지 문제점 들을 정리 해 본다.
 
Arduino 의 외부 라이브러리를 사용하려면 어떻게 해야 할까?
OLED SSD1306 테스트를 해 보기 위해 기존에 테스트 했던 Arduino 예제를 컴파일 했는데 에러가 발생한다.
 
 
In file included from .pio\libdeps\esp32dev\Adafruit BusIO/Adafruit_BusIO_Register.h:9:0,
                 from .pio\libdeps\esp32dev\Adafruit BusIO\Adafruit_BusIO_Register.cpp:1:
.pio\libdeps\esp32dev\Adafruit BusIO/Adafruit_I2CDevice.h:5:18: fatal error: Wire.h: No such file or directory
 
**************************************************************

 

* Looking for Wire.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Wire.h"
*
 
ini 파일에 lib_deps 옵션으로 설정 해 주면 된다.
platformio lib search "header:Adafruit_GFX.h"
platformio lib search "header:Adafruit_ST7789.h"

 

 

 

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
#upload_port = 'COM3'
upload_speed = 921600

lib_deps = 
  ESP Async WebServer
  AsyncTCP
  ArduinoJson
  MPU9250
  VL53L0X

반응형