[ESP32-DevKitC V4] 새로운 개발 환경 학습하기 및 후기

제가 사용한 보드는 ESP32 DevKitC V4 개발 보드이며 비교적 저렴한 보드입니다. 예전에 구매했던 보드인데 현재까지도 알리익스프레스 또는 국내 인터넷에서 쉽고 저렴하게 구입 할 수 있습니다. 자세한 스펙 사항은 아래 사이트를 참고하세요.

ESP-IDF Programming Guide Get Started Introduction What You Need Hardware ESP32-DevKitC ESP-WROVER-KIT ESP32-PICO-KIT ESP32-Ethernet-Kit ESP32-DevKit-S(-R) ESP32-PICO-KIT-1 ESP32-PICO-DevKitM-2 ESP32-DevKitM-1 Software Installation Build Your First Project API Reference ESP32 Hardware Reference API ...

docs.espressif.com

여태까지 ESP32의 개발 환경을 Arduino IDE에 Arduino 용 라이브러리를 가지고 사용하였는데 좀 더 전문적인 개발 환경을 구축하고자 이번 기회에 vscode에 ESP-IDF 4.4버전을 설치하여 개발 환경을 구축하였습니다. (안정화된 가장 최신 버전이고 ESP-IDF 깃허브 참고하니 ESP32는 ESP-IDF 모든 버전을 다 지원해서 사용했습니다.)

참고로 개발 환경 구축 과정은 Espressif 사의 "ESP-IDF 프로그래밍 가이드" 사이트만 참고해도 충분히 쉽게 따라 하실 수 있습니다.

ESP-IDF Programming Guide Get Started Introduction What You Need Installation Build Your First Project API Reference ESP32 Hardware Reference API Guides ESP-IDF 5.0 Migration Guides Libraries and Frameworks Contributions Guide ESP-IDF Versions Resources Copyrights and Licenses About Switch Between L...

docs.espressif.com

제가 사용한 보드의 구성과 핀맵입니다. 아쉽게도 보드 내 LED가 없어서 GPIO 16에 LED 달아서 ESP-IDF의 블링크 예제를 참고하여 아주아주아주 간단한 LED 테스트를 진행해 봤습니다...

보드 내에 USB TO UART 브리지 칩이 있어서 Device flash 타입은 UART로 진행하였고요 보드 레이트 같은 경우는 default 값으로 지정해두었습니다.

New Project 만들어서 다음과 같이 세팅하였고요. 이건 좀 앞선 이야기이지만 시리얼 포트 같은 경우에는 지금은 no port인데 후에 프로젝트 만들고 난 뒤 USB TO UART 드라이버가 만약 설치되어 있다면 장치 관리자에 잡힌 컴포트 넘버를 vscode → settings.json에 아래와 두 번째 그림과 같이 설정하면 됩니다.

다시 돌아와서 New Project의 Chosse Template을 누른 후 다음으로 넘어가 ESP-IDF 누른 뒤 샘플 프로젝트로 일단 프로젝트를 만들어봐서 테스트해봤습니다.

여기서부터 이제 코딩을 직접 짜야 하는 단계인데 ESP-IDF API 레퍼런스랑 esp-idf 구성 중 components 파일 내의 API 그리고 exmples 파일의 blink 예제 참고하면서 아주 간단히 구현해보았습니다.

아래 깃허브 사이트를 참고하세요.

아래는 API 레퍼런스 사이트하고 Git Hub 사이트입니다.

ESP-IDF Programming Guide Get Started API Reference API Conventions Application Protocols Bluetooth API Error Codes Reference Networking APIs Peripherals API Project Configuration Provisioning API Storage API System API ESP32 Hardware Reference API Guides ESP-IDF 5.0 Migration Guides Libraries and F...

docs.espressif.com

Espressif IoT Development Framework. Official development framework for Espressif SoCs. - GitHub - espressif/esp-idf: Espressif IoT Development Framework. Official development framework for Espress...

github.com

구현한 ESP32 DevKitC V4의 GPIO 16번의 LED 블링크 예제입니다. Trea Term에 연결하여 printf도 같이 출력되는지 확인하였습니다.

아 참고로 해당 개발 보드는 Boot 버튼을 누른 상태에서 EN 버튼을 눌러야지 펌웨어 다운로드 모드가 시작되는데 EN 핀과 (버튼 아님) GND 핀에 10uF 커패시터를 +,-을 물리고 Device flash를 진행하면 별도로 Boot 버튼과 EN 버튼을 누를 필요 없이 펌웨어 다운로드가 됩니다.

마지막으로 아래는 esp-idf의 gpio 함수들입니다. 아래의 그림처럼 esp-idf 을 잘 사용하기 위해서는 esp 폴더 → components 폴더 내의 있는 함수들과 친해져야 할 것 같습니다.

이를 위해 당연하듯... ESP32 데이터 시트뿐만 아니라 API 레퍼런스 자료 그리고.. 함수 위에 쓰여있는 brief와 파라미터, return 값 등을 보며 사용법을 익히고 있습니다. 예를 들어 gpio_num_t 자료형 파라미터에 어떤 파라미터를 넣어줘야 하는지는 gpio_num_t를 타고 들어가서 알아내는 것처럼 이런 식으로 빨리 익숙해지려고 노력하고 있습니다.

STM32의 HAL 드라이버 공부하는 느낌이 듭니다. 빨리 익숙해져서 WI FI/ BLE 관련 테스트나 프로젝트도 쉽게 구현 가능해지도록 하는 것이 목표입니다. (특히 먼저 OTA DFU 부터 구현해보고 싶습니다.)