ESP32 스마트워치 개발보드에 아두이노 IDE 로 펌웨어 테스트 해보기

스마트워치 소스 + 아두이노 IDE 로 펌웨어 올려보자

최근에 하는 업무가 IoT 장치쪽과 관련이 있다 보니 이런 저런 IoT 관련 제품들과 솔루션들을 이리저리 찾아보고 있는 편입니다. 그러다가 제가 지난 글에서 ESP32 기반인 스마트워치 개발보드에 대해 소개를 해 드린 적이 있습니다.

바로 요 개발보드인데요, 관련 내용은 위 링크 글을 참고하시면 되겠습니다.

일단 아두이노 IDE 가 내 PC에 설치되어 있는지 확인해 보셔야 합니다. 설치가 안되어 있으면 아두이노 IDE를 다운로드하여 설치하세요.

저도 지금 사용하는 PC에 설치가 안되어 있어서 이글을 쓰는 시점의 최신버전인 2.2.1 을 설치하였습니다.

스마트워치 예제 소스코드 다운로드

그런 다음에 스마트워치 개발보드에 적용할 예제코드가 들어 있는 소스를 위 링크에서 다운로드 하시면 됩니다.

아두이노 IDE 에서 ESP32-2424S012 개발 환경 셋팅하기

스마트워치 개발보드를 가지고 놀기 위해 일단 먼저 아두이노 IDE 를 실행시킵니다.

그런 다음에 File – Preferences 를 선택합니다.

Settings 에서 “Additional Boards Manager URLs” 에서 아래 URL를 선택해 줍니다.

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

추가해 준 이후에 OK 버튼을 누릅니다.

그런 다음에 Tools – Board Manager 를 실행합니다.

Board Manager 검색 창에서 “ESP32” 를 입력하고 검색을 합니다. 그러면 위와 같이 나타나는데요, “esp32 by Espressif Systems 를 Update 버튼을 눌러서 업데이트를 해줍니다.

그러면 ESP32 관련 신규 업데이트 파일들이 설치가 됩니다.

그리고 나서 Tools 의 Board 에 ESP32 Arduino 를 선택하면 위와 같이 “ESP32C3 Dev Module” 을 선택할 수가 있습니다. 요걸 선택해 줍니다.

그런 다음 Tools 에 가서 위와 동일하게 설정을 해 줍니다. 특히 USB 쪽을 활성화 시켜 줘야 스마트워치 개발보드와 통신을 할 수 있는거 같네요.

그런 다음에 시리얼 모니터를 한번 연결해 봤습니다. 그랬더니 위와 같은 시리얼 데이터가 날라오는거 같습니다.

여기까지 하셨다면 일단 환경 설정은 완료되었습니다.

스마트워치 예제 소스 Load 및 빌드하여 다운로드 하기

자 그럼 실제로 스마트 워치 데모 소스를 Load 하여 빌드 및 다운로드가 잘 되는지 확인해 볼까요? 먼저 다운로드 받은 예제 소스의 압축을 해제하고 해당 소스를 살펴봅니다.

압축 파일 내에는 아두이노용 예제 소스들이 쭉 나열이 되어 있는데 여기서 맨 위의 “Factory samples” 를 아두이노 IDE로 load 합니다.

그럼 위와 같이 IDE 에서 소스들이 쭉 나열이 되게 됩니다. 소스를 빌드하려면 왼쪽 상단의 “Verify” 버튼을 눌러 봅니다.

그랬더니 위와 같이 에러가 발생하는군요. “lvgl.h” 파일이 없다고 나옵니다. 이 에러의 의미는 LVGL 라이브러리가 없어서 나타나는 에러입니다.

Tools의 Manage Libraries 를 선택한 다음에

“LovyanGFX” 이라고 검색을 한다음 설치를 진행하면 됩니다. 그런 다음 “lvgl” 도 검색하여 설치해야 합니다.

그럼에도 위와 같이 에러가 발생하는데요. 그 이유는 “lv_conf.h” 파일이 없기 때문입니다.

lv_conf.h 파일은 Factory samples 하위 폴더에 있습니다. 이 파일을 lgvl 라이브러리가 설치된 경로로 이동하여 “lv_conf.h” 파일을 복사해 놓으세요. 그리고 필요하다면 lv_conf_internal.h 파일에서 lv_conf.h 파일의 위치도 수정해 줍니다.

다음으로 “demos/lv_demos.h” 쪽에서도 에러가 발생할 텐데요, lgvl 라이브러리가 설치된 경로로 이동해보면 하위 폴더에 “demo” 가 보일겁니다. 요걸 Factory samples 폴더의 하위로 복사해서 붙여넣습니다.

여기 안에 lv_demos.h 파일이 있네요. 요걸 그대로 복사해서 붙여넣으면 됩니다.

흠 그런데 lvgl 라이브러리에서 컴파일 도중 에러가 발생하는군요. DIR 이라는 Define 매크로가 정의가 안되어 있다고 합니다. 관련하여 구글에 검색을 해보기로 했습니다.

구글링을 통해 이리저리 찾아보니 LV_USE_FS_FATFS 와 관련이 있는거 같습니다. 일단 “lv_conf.h” 파일에서 위와 같이 LV_USE_FS_FATFS 를 0으로 바꿔줬습니다.

그랬더니 컴파일이 잘 되는 것을 확인했네요. 자 그럼 컴파일한 펌웨어 파일을 ESP32 스마트워치 보드에 업로드를 해봐야 겠습니다.

업로드가 성공적으로 되었고 자동으로 리셋을 해 주고 나서 스마트워치 화면을 확인해 보니,

짠 요렇게 직접 빌드하여 업로드한 펌웨어에서도 스마트워치에서 화면이 잘 나타나는 것을 볼 수 있습니다. 그런데 전과 달라진점은 자동으로 1초마다 모드 화면이 바뀌는 현상이 있네요. 이 부분은 코드를 살펴봐야 할거 같습니다.

이상으로 ESP32 스마트워치 보드에 아두이노 IDE 로 개발 환경 및 소스를 빌드하는 과정에 대해 설명해 봤습니다. 이제 시간날때 마다 가지고 노는 일만 남았군요^^