001. ESP32 시작과 ESP32-WROVER

ESP32 스터디를 시작하기 위한 자료 정리

ESP32 모듈을 가지고 센서도 붙여보고, LVGL 이용해서 화면에 글자도 출력해 봤습니다. 그러나 기본기 없이 AI(검색)에 의존해서 하려니 뭐가 뭔소리인지 잘 모르겠더라구요. 코딩 안한지도 너무너무 오래되어서 기본적인 C 문법도 혼란스럽구요. 그래서 기본기 좀 해 놓고, 해야겠다는 생각이 듭니다.

서점을 검색해보니 ESP32 기반으로 다음과 같은 책이 나옵니다.

  • ESP32로 만드는 IoT 월드 with 아두이노 IDE2
  • 마이크로 파이썬을 활용해 사물인터넷(IoT) 프로젝트 만들기 with ESP32
  • ESP32로 만드는 스마트 IoT 프로젝트

Aduino IDE 보다는 VS Code 기반에서 하고 싶고, 파이썬도 좋지만 AI 기반(?)으로 하기에는 C가 유리해 보인다는 생각이 듭니다.
유투브를 검색해보니 “심심한녹칸다”님 유투브 채널이 눈에 들어옵니다. 그 중에 다음 두가지 재생목록을 꼭 봐야겠다 마음먹었습니다.

  1. [녹칸다] ESP32
  1. [녹칸다] ESP32와 LVGL

저 처럼 입문하시려는 분들에이 강려크하게 추천합니다!
채널에 올라온 영상들 보니 전혀 안심심하셨을 것 같은… 리스펙트!

다만, 저는 구세대라 책 보며 빠르게 진행하는게 맞겠다는 생각이 듭니다.

그러다 생각해보니 예전(2023년 11월)에 세일에 눈이 멀어 Keyestudio사의 ESP32 Smart Farm Kit을 구입한 기억이 납니다. 당시 $44.85 정도 줬던 것 같구요. 대략 그림 같은 모듈들이 조합되어 있었습니다.

그리고 이 회사에서 제공하는 자료 파일이 생각났습니다. 이 중에 영문이지만 스터디용으로 괜찮아 보이는 자료가 그림 처럼 있습니다.

이거 보면서 하나씩 해보면 될 것 같습니다.


ESP32 WROVER와 핀아웃 기호 의미

입문 과정은 전형적인(?) 개발보드로 할까 합니다. 뒤져보니 언젠가 사 놓은 ESP32-WROVER 보드가 2가지 나옵니다. 그 중에 USB-C 타입인거가 편하니 이걸 주로 사용할 생각입니다. 제 수준에는 WROOM이 더 어울리겠으나, 뭐 그게 그거니 ㅋ

ESPRESSIF 한국 공식 대리점인 IDK사 블로그에서 보니 WROVER는 8MB PSRAM이 달려 있다 하더라구요. RAM을 더 많이 필요로하는 경우에 WROVER가 어울리나 봅니다.

  • (주)아이디케이 테크놀러지 블로그: https://devicein.tistory.com/

바로 책상에 놓기 뭐해서 창고에서 전에 쓰던 브레드보드 하나 꺼내왔습니다.

ESP32 보드에 깨알 같이 글자들이 적혀있습니다. 앞으로 뭔가 연결할 때 사용해야하는 것들이라 정리 좀 해봐야겠습니다. Espressif 문서 사이트에는 그림과 같이 나와 있습니다.

  • https://docs.espressif.com/projects/esp-idf/en/v5.2.2/esp32/hw-reference/esp32/get-started-devkitc.html

제가 구입한 것과 비교해보니 글자는 똑 같습니다. 호환 제품(?)이다 보니 실제로 그럴지는 써봐야 알겠죠 ^^

IDK 블로그 글에는 “PSRAM 연결을 위해 GPIO16, GPIO17을 점유”하고 있다고 나옵니다. 즉 센서 연결용으로 사용 못합니다.

  • https://devicein.tistory.com/100

핀에 써진 기호들 의미 몇가지 정리해 보겠습니다.

  • WROOVER는 16, 17 사용 불가
  • ! 있는 D0, D1, D2, D3, CMD, CLK: 사용자가 입출력 용도로 사용 못함.
  • EN : 리셋 버튼과 연결되어 있습니다. 제 경우 USB 왼쪽에 EN이라고 써져 있는 버튼이 리셋버튼이 됩니다. 컴퓨터 리셋 버튼과 같은 의미입니다.
  • 3V3, 5V0: DC 전원의 +. USB로 전원이 입력되고 이 두 핀을 3.3V, 5V 전원용으로 사용할 수 있습니다.
  • GND 3개: DC 전원의 -. 전원 연결시 편한 것 사용
  • 화살표와 물결표시 의미: 화살표는 입력 전용, 물결표시는 입/출력 가능
  • OD/ID와 OD/IE: 위 내용과 그림에 있는 설명 참조. 입출력 가능한 핀의 경우 용도에 따라 입력으로 쓸건지, 출력으로 쓸건지 설정이 필요.
  • VP/VN: 내장 감쇠기(Attenuator)가 없고 0~1V 범위 측정. 내장 홀센서(보드 따라 다른?)에 연결되어 있는 핀. 블로그 글 참조: https://m.blog.naver.com/elepartsblog/221540030984
  • WPU/WPD: 디지털 입력 값을 기본적으로 높은(HIGH) 값 또는 낮은(LOW) 값을 유지하는지 의미. 그림 약자 해설 참조.
  • RTC: RTC 도메인에 속해있다는 의미. RTC 도메인은 저전력 모드(딥 슬립 등)에서도 동작.
  • ADC1_0~7, ADC2_7 등: ADC 콘트롤러가 2개 있어서 ADC1, ADC2로 구분됩니다. 뒤의 숫자는 ADC에서 채널을 의미합니다. 예 ADC1_5는 1번 ADC 콘트롤러의 2번 채널.
  • TOUCH0 ~ TOUCH7: 연결된 터치센서 입력 채널
  • 32K_XP, 32K_XN: 외부에 32.768 kHz 크리스털을 연결할 때 사용하는 핀이란 의미
  • VDET_1, VDET_2: 명확하게 모르겠음
  • DAC_1, DAC_2: Digital-to-Analog Converter. DAC가 필요한 경우 둘 중 하나 사용. 0~255의 값을 입력 받아 0~3.3V의 전압으로 출력.
  • MDTO, MTDI, MTCK, MTMS: JTAG 디버그 인터페이스. JTAG 사용하지 않을 경우에는 일반 입출력 포트로 사용 가능.
  • HSPI_SCK, HSPI_MISO, HSPI_MOSI, HSPI_SS: SPI 버스. ESP32의 SPI 버스 중 SPI2를 의미. SPI 주변기기(디스플레이, SDCARD 등) 연결에 사용. 사용하지 않을 경우에는 일반 입출력 포트로 사용 가능.
  • VSPI_SCK, VSPI_MISO, VSPI_MOSI, VSPI_SS: SPI 버스. ESP32의 SPI 버스 중 SPI3을 의미. SPI 주변기기(디스플레이, SDCARD 등) 연결에 사용. 사용하지 않을 경우에는 일반 입출력 포트로 사용 가능.
  • VDD_FLASH: 플레시 메모리 메모리 전원 공급 결정. Low = 3.3V, High = 1.8V
  • 분홍색(Strapping Pin Functions): ESP32가 리셋 또는 켜질 때 해당 핀의 상태에 따라 칩의 동작모드를 결정하는 핀. 컴퓨터 부트 스트래핑의 스트래핑과 비슷한 개념.
  • WIRE_SCL, WIRE_SDA: I2C(Inter-Integrated Circuit) 버스
  • SPI_MOSI: SPI 버스의 MOSI 기능을 한다는 의미(?). VSPI_MOSI 표기가 있음에도 또 있는 이유에 대해서 좀 더 확인 필요.
  • SERIAL_TX, SERIAL_RX: 시리얼 통신에서 송신(TX), 수신(RX). 보통 CH340과 같은 칩에 연결되어 있어서 PC와 통신하는 용도로 사용.
  • U0TXD, U0RXD: ESP32의 UART 인터페이스 중 UART0(디보그/프로그래밍 용)의 송신과 수신이란 의미
  • BOOT: 부팅시 모드를 결정. BOOT 단추를 누르고 부팅하면 펌웨어 업로드 모드로 진입.
  • LOG: 확인 필요

이것 빼고, 저것 빼고 대략 편하게 사용할 수 있는 핀 정리해보면~

  • DAC: 25, 26
  • WROOM인 경우: 16, 17 사용 불가
  • 입출력: 27, 32, 33
  • 입력: 34, 35

이 정도 이 되겠습니다. 생각보다 몇 핀 없내요 ;;

추가로 상황 따라 사용할 수 있는 것은

  • I2C 사용 안할 때 입출력: 21, 22
  • VSPI 사용 안할 때 입출력: 18, 19, 23

이 정도 되겠습니다.

연결하려는 주변기기의 요구사항(입력, 출력, 입출력, DAC 등)에 따라 알뜰하게 사용해야할 것 같습니다.
전 일단 쓰다가 아니다 싶으면 WROOM으로 바꿔야겠습니다!

숙제

  • VP/VN에 홀센서 연결되어 있는지 확인
  • WPU와 WPD 포트의 전압 측정
  • DAC와 연결된 포트에서 입력 값에 따른 전압 측정
  • VDD_FLASH 전압 측정

초보자는 참 힘듭니다. 이게 뭐라고 이거 정리에 4시간 넘게 걸린 것 같습니다 ㅠ.ㅠ

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like