ESP32 마이크로파이썬 OLED
이 튜토리얼은 MicroPython을 사용하여 OLED 128x64 I2C 디스플레이와 함께 ESP32를 사용하는 방법을 안내합니다. 자세히는, 우리는 다음을 배울 것입니다:
- ESP32를 128x64 OLED 디스플레이에 연결하는 방법.
- OLED에 텍스트, 정수 및 부동 소수점 숫자를 표시하기 위해 ESP32용 MicroPython 코드를 작성하는 방법.
- OLED에서 텍스트/숫자를 자동으로 수직 및 수평 중앙 정렬하는 방법.
- OLED에 이미지를 표시하기 위해 ESP32용 MicroPython 코드를 작성하는 방법.
- OLED에 도형을 그리기 위해 ESP32용 MicroPython 코드를 작성하는 방법.

준비물
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
1 | × | SSD1306 I2C OLED 디스플레이 128x64 | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
OLED 디스플레이 소개
OLED 디스플레이는 통신 방식, 크기 및 색상이 다양합니다.
- 통신 프로토콜: I2C, SPI
- 크기: 128x64, 128x32
- 사용 가능한 색상: 흰색, 파란색, 노란색...

SPI는 I2C보다 빠른 데이터 전송 속도를 제공하지만 ESP32에서는 더 많은 핀을 필요로 합니다. 반면에 I2C는 두 개의 핀만 사용하며 여러 I2C 장치를 연결할 수 있습니다. 이 선택은 핀 사용량을 줄이는 것을 우선시할지 아니면 빠른 속도를 우선시할지에 따라 달라집니다. I2C 기반 OLED 디스플레이의 경우, 일반적으로 사용되는 드라이버로는 SSD1306과 SH1106이 있습니다. 이 가이드는 특히 128x64 SSD1306 I2C OLED 디스플레이 사용법을 다룹니다.
I2C OLED 디스플레이 핀아웃
- GND 핀: ESP32의 접지(GND)에 연결합니다.
- VCC 핀: 전원 공급을 위해 ESP32의 5V 또는 3.3V 핀에 연결합니다.
- SCL 핀: I2C 통신을 위한 클럭 핀입니다.
- SDA 핀: I2C 통신을 위한 데이터 핀입니다.

※ 주의:
OLED 모듈 핀 설정
- 핀 설정은 제조사와 모델에 따라 다릅니다.
- 모듈의 라벨을 따르세요.
이 가이드는 SSD1306 I2C 드라이버를 사용합니다. 우리는 DIYables OLED 디스플레이로 테스트했습니다.
선연결
- breadboard를 사용하여 ESP32를 OLED 128x64 디스플레이에 연결하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32를 나사 터미널 블록 브레이크아웃 보드를 사용하여 OLED 128x64 디스플레이에 연결하는 방법

다른 ESP32 모델에 대한 자세한 정보는 아래 표를 참조하십시오.
OLED Module | ESP32 |
---|---|
VCC | 3.3V |
GND | GND |
SDA | GPIO21 |
SCL | GPIO22 |
ESP32 MicroPython 코드 - OLED에 텍스트, 정수 및 실수 표시
자세한 사용 방법
ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하십시오.
- ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하십시오.
- ESP32에서 MicroPython을 처음 사용한다면 단계별 지침을 제공하는 ESP32 마이크로파이썬 - 시작하기 가이드를 확인해 보세요.
- 제공된 다이어그램에 따라 OLED 디스플레이를 ESP32에 연결하십시오.
- USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하십시오.
- 컴퓨터에서 Thonny IDE를 실행하십시오.
- Thonny IDE에서 도구 옵션으로 이동하십시오.
- 인터프리터 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하십시오.
- 올바른 포트가 선택되어 있는지 확인하십시오. Thonny IDE는 일반적으로 자동으로 포트를 감지하지만, 경우에 따라 수동으로 선택해야 할 수도 있습니다 (예: Windows의 COM3 또는 Linux의 /dev/ttyACM0).
- Thonny IDE에서 도구 패키지 관리로 이동하십시오.
- “DIYables-MicroPython-OLED”를 검색한 후, DIYables에서 만든 OLED 라이브러리를 찾으십시오.
- DIYables-MicroPython-OLED를 클릭한 후, OLED 라이브러리를 설치하려면 Install 버튼을 클릭하십시오.

- 제공된 MicroPython 코드를 복사하여 Thonny의 편집기에 붙여넣습니다.
- ESP32에 코드를 저장하려면:
- Save 버튼을 클릭하거나 Ctrl+S를 누릅니다.
- 저장 대화 상자에서 MicroPython device를 선택합니다.
- 파일 이름을 main.py로 지정합니다.
- 녹색 Run 버튼(또는 F5 키)을 클릭하여 스크립트를 실행합니다.
- OLED 디스플레이에 표시된 결과를 확인합니다. 결과는 아래와 같이 나타납니다.

OLED에서 텍스트/숫자를 자동으로 수직 및 수평 중앙 정렬하는 방법
아래의 MicroPython 코드는 OLED 디스플레이에서 텍스트를 수직 및 수평 중앙에 자동으로 배치합니다.
코드를 실행하면 OLED 화면에 사각형, 원, 삼각형이 나타납니다.

ESP32 MicroPython 코드 – OLED에 이미지 표시
아래 코드는 LCD 디스플레이에 이미지를 그립니다. 이미지가 DIYables 아이콘입니다.
위의 코드를 실행하면 아래와 같이 OLED에 이미지가 표시되는 것을 볼 수 있습니다.

OLED 화면에 다른 이미지를 표시하려면, 아래 단계를 따르세요:
- 이미지를 (어떤 형식이든) 비트맵 배열로 변환합니다. 변환을 위해 이 온라인 도구를 사용할 수 있습니다. 아래 그림을 참조하여 이미지를 비트맵 배열로 변환하는 방법을 알아보세요. 저는 ESP32 아이콘을 비트맵 배열로 변환했습니다.

- 변환된 비트맵 배열을 새로운 배열 코드로 ESP32 MicroPython 코드에 업데이트합니다.
- ESP32 MicroPython 코드에서 이미지의 너비와 높이를 이미지의 차원에 맞게 변경합니다.
이미지 크기는 화면 크기와 같거나 작아야 합니다.
ESP32 마이크로파이썬 코드 - OLED에 도형 그리기
코드를 실행하면 OLED 화면에 사각형, 원, 삼각형이 표시됩니다.

OLED 문제 해결
OLED 화면에 아무것도 표시되지 않는 경우, 다음 단계를 따르십시오:
- 배선이 올바른지 확인하세요.
- I2c OLED에 SSD1306 드라이버가 있는지 확인하세요.
- ESP32에서 이 I2C 주소 스캐너 코드를 사용하여 OLED의 I2C 주소를 확인하세요.
Thonny 하단의 셸에서 출력: