ESP32 펌웨어 개발 방법(1) - SDK 종류에 대하여

ESPRESSIF|2023. 10. 31. 12:28

 ESP32의 펌웨어 개발을 위한 SDK 종류

ESP32의 펌웨어를 개발하는 방법은 ESP-IDF, 아두이노, AT command, 기타 3rd party SDK가 있습니다. 

 

ESP-IDF

Espressif사에서 공식 릴리즈하고, 관리하는 Open source SDK입니다.

가장 기본적인 SDK이고, 최신 버젼 및  API가 계속 update됩니다. 

FreeRTOS기반이고, C, C++를 사용합니다.

Host 개발환경으로 Window, Linux, MAC을 지원합니다.

 

ESP32는 전용 IDE를 공식적으로 지원하지 않기 때문에, 에디터는 개발자가 선택을 해야 합니다.

최근 가장 많이 사용하는 에디터로 VSCODE가 있고, 그외에 이클립스등 아무 에디터나 사용가능합니다.

ESP32는 완전한 GUI환경을 지원하지 않고, 터미널(도스창)에서 command로 작업을 많이 해야 합니다. 

상용 제품일 경우 ESP-IDF를 사용하길 권하여 드립니다. 

 

** 메뉴얼, SDK 다운로드 경로 **

 

https://github.com/espressif/esp-idf

https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html

 

Get Started - ESP32 - — ESP-IDF Programming Guide latest documentation

© Copyright 2016 - 2023, Espressif Systems (Shanghai) Co., Ltd.

docs.espressif.com

 

 

아두이노

ESP32는 native하게 아두이노(Arduino)를 지원합니다.

아두이노 코드로 코딩을 하여 빌드된 펌웨어를 ESP32에서 바로 구동 가능하니다.(외부 host mcu 칩 필요없음) 

아두이노는 C++을 사용하고, 자체 IDE(아두이노 Studio)를 지원합니다.

또한 3rd party IDE로 Platfrom IO, VSCODE extention이 있습니다.

 

아두이노는 API가 함축적으로 표현을 하고 있기 때문에 코드가 간단하고 빠르게 개발이 가능합니다.

다만, 복잡한 기능의 경우 ESP-IDF를 권하여 드립니다. 

 

ESP32 아두이노는 ESP-IDF로 개발된 API를 지원하는 방식으로 아두이노 내부에 ESP-IDF가 Encapsulation되어 있습니다. 즉, API자체의 수정 하거나, 세부적인 조정이 필요 하면, ESP-IDF에 대한 지식이 필요 합니다. 추가로, ESP-IDF가 지원하는 기능을 100% 지원 하지는 않습니다. 

 

https://www.arduino.cc/

https://github.com/espressif/arduino-esp32

 

GitHub - espressif/arduino-esp32: Arduino core for the ESP32

Arduino core for the ESP32. Contribute to espressif/arduino-esp32 development by creating an account on GitHub.

github.com

 

AT command 사용

펌웨어를 개발하지 않고, AT command를 사용하여 운영을 할 수도있습니다. 

이 경우, AT command에서 지원하는 명령어를 먼저 시험하여, 기능에 충실하게 구현이 가능한지를 확인해 보아야 합니다. 

AT command는 다양한 기능을 지원을 합니다, 그러나, AT command에 없는 기능이나, 수정이 필요 할 경우, 새로 개발을 해야 하는데 ESP-IDF를 사용해야 합니다. AT command사용시 반드시 Host MCU가 필요 합니다. 

https://docs.espressif.com/projects/esp-at/en/latest/esp32/AT_Command_Set/

 

AT Command Set - ESP32 - — ESP-AT User Guide latest documentation

+IPD ESP-AT received the data from the network when AT is not in Passthrough Mode. The message formats are as follows: +IPD, will be outputted if AT+CIPMUX=0 and AT+CIPRECVMODE=1. +IPD, , will be outputted if AT+CIPMUX=1 and AT+CIPRECVMODE=1. +IPD, : will

docs.espressif.com

 

기타 방법

기타 3rd part 개발 환경으로 Micro Python, RUST등도 있습니다. 많이 사용은 되지 않는 SDK입니다. 

그 중에서 RUST는 최근 관심이 많아지고 있는 언어로, 아래에서 참고 가능합니다. 

https://esp-rs.github.io/book/introduction.html

 

Introduction - The Rust on ESP Book

The goal of this book is to provide a comprehensive guide on using the Rust Programming Language with Espressif devices. Rust support for these devices is still a work in progress, and progress is being made rapidly. Because of this, parts of this document

esp-rs.github.io

https://github.com/espressif/rust-esp32-example

 

GitHub - espressif/rust-esp32-example: Example of Rust integration into an ESP-IDF project, for ESP32 series of chips

Example of Rust integration into an ESP-IDF project, for ESP32 series of chips - GitHub - espressif/rust-esp32-example: Example of Rust integration into an ESP-IDF project, for ESP32 series of chips

github.com

 


ESPRESSIF 한국 공식 대리점

(주) 아이디케이 테크놀러지

WWW.IDKTECH.CO.KR

문의메일 : INFO@IDKTECH.CO.KR

샘플 구매 : https://smartstore.naver.com/espressif