ESP32 C3 Super Mini OLED 128x64 디스플레이
소개
ESP32 C3 Super Mini 프로젝트에서 센서 판독값, 시스템 상태 또는 사용자 정의 그래픽을 표시하고 싶나요? 이 튜토리얼은 OLED 128x64 디스플레이를 ESP32 C3 Super Mini에 연결하고 프로그래밍하는 방법을 보여줍니다 - 초보자에게 완벽합니다!
이 튜토리얼에서 배우게 될 내용:
- OLED 디스플레이가 무엇이고 ESP32 C3 Super Mini 프로젝트에 좋은 이유
- OLED 128x64 디스플레이를 ESP32 C3 Super Mini에 연결하는 방법
- ESP32 C3 Super Mini용 SSD1306 OLED 라이브러리 설치 방법
- OLED 화면에 텍스트와 숫자를 표시하는 방법
- ESP32 C3 Super Mini로 도형과 그래픽을 그리는 방법
- OLED 디스플레이에 사용자 정의 이미지를 표시하는 방법
- 일반적인 OLED 디스플레이 문제 해결 방법

필요한 하드웨어
| 1 | × | ESP32 C3 Super Mini | 아마존 | |
| 1 | × | 마이크로 USB 케이블 | 아마존 | |
| 1 | × | SSD1306 I2C OLED 디스플레이 128x64 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 |
OLED 디스플레이 소개
OLED (유기 발광 다이오드) 디스플레이는 각 픽셀이 자신의 빛을 생성하는 화면입니다.
OLED 디스플레이의 주요 특징:
- 완벽한 검은색 - 필요 없을 때 픽셀이 완전히 꺼짐
- 높은 대비 - 선명하고 깨끗한 시각
- 넓은 시야각 - 어느 방향에서나 볼 수 있음
- 백라이트 불필요 - 낮은 전력 소비
- 얇고 가벼움 - 컴팩트한 디자인
ESP32 C3 Super Mini에 인기 있는 OLED 유형:
- SSD1306 I2C OLED 128x64 - 가장 일반적인 크기, 텍스트와 간단한 그래픽에 이상적
- SSD1306 I2C OLED 128x32 - 컴팩트한 프로젝트용 더 작은 버전
- I2C 인터페이스 - ESP32 C3 Super Mini와의 통신에 필요한 2개의 선만 필요

I2C OLED 디스플레이 핀아웃
SSD1306 OLED 디스플레이는 일반적으로 ESP32 C3 Super Mini에 쉽게 연결하기 위한 4개의 핀을 가지고 있습니다:
- GND pin: ESP32 C3 Super Mini의 접지(GND)에 연결
- VCC pin: 전원 공급 - ESP32 C3 Super Mini의 3.3V에 연결 (일부 모듈은 5V 허용)
- SCL pin: I2C 통신을 위한 Serial Clock Line, ESP32 C3 Super Mini와 통신
- SDA pin: I2C 통신을 위한 Serial Data Line, ESP32 C3 Super Mini와 통신

※ 주의:
- 핀 레이블은 제조사에 따라 다를 수 있으므로 항상 특정 OLED 모듈의 표시를 확인하세요
- 이 튜토리얼은 SSD1306 I2C OLED 디스플레이를 사용합니다 - DIYables OLED 모듈로 테스트됨
배선 다이어그램
ESP32 C3 Super Mini에 OLED 128x64 디스플레이를 I2C 인터페이스를 사용하여 연결하는 방법입니다:
- 브레드보드를 사용한 ESP32 C3 Super Mini와 OLED 디스플레이 간의 배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- ESP32 C3 Super Mini와 OLED 디스플레이를 직접 연결한 배선 다이어그램

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 C3 Super Mini와 OLED 디스플레이의 연결 테이블:
| OLED Module | ESP32 C3 Super Mini |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | SDA (pin 11) |
| SCL | SCL (pin 12) |
ESP32 C3 Super Mini로 OLED 사용하는 방법
SSD1306 OLED 라이브러리 설치
ESP32 C3 Super Mini로 OLED 디스플레이를 프로그래밍하기 전에 필요한 라이브러리를 설치하세요:
- Library Manager 열기: Arduino IDE의 왼쪽 사이드바에서 Libraries 아이콘을 클릭합니다
- SSD1306 검색: 검색 상자에 "SSD1306"을 입력합니다
- Adafruit SSD1306 설치: Adafruit SSD1306 라이브러리 옆의 Install을 클릭합니다
- 종속성 설치: 메시지가 나타나면 "Install All"을 클릭하여 Adafruit GFX 라이브러리를 추가합니다


이러한 라이브러리가 하는 역할:
- Adafruit_SSD1306 - ESP32 C3 Super Mini의 OLED 디스플레이 하드웨어 제어
- Adafruit_GFX - OLED에 그리기 위한 그래픽 함수 제공
ESP32 C3 Super Mini OLED 디스플레이 프로그래밍
ESP32 C3 Super Mini로 OLED 디스플레이를 사용하기 위한 기본 코드 구조입니다:
라이브러리 포함:
OLED 치수 정의:
OLED 객체 생성:
setup()에서 OLED 초기화:
이것이 하는 역할:
- SSD1306_SWITCHCAPVCC - 내부 전압 생성 사용
- 0x3C - 대부분의 OLED 디스플레이의 기본 I2C 주소 (일부는 0x3D 사용)
- OLED 초기화가 실패하면 오류 처리가 프로그램을 중지합니다
ESP32 C3 Super Mini 코드 - OLED에 텍스트 표시
이 예제는 ESP32 C3 Super Mini를 사용하여 OLED 화면에 텍스트를 표시하는 방법을 보여줍니다:
OLED 텍스트 필수 함수
ESP32 C3 Super Mini로 OLED에 텍스트를 표시하기 위한 주요 함수:
- oled.clearDisplay() - OLED 화면의 모든 픽셀 지우기
- oled.drawPixel(x, y, color) - 좌표 x, y에 단일 픽셀 그리기
- oled.setTextSize(n) - 텍스트 크기 설정 (1-8, 1이 가장 작음)
- oled.setCursor(x, y) - 텍스트 시작 위치 설정
- oled.setTextColor(WHITE) - 텍스트 색상을 흰색으로 설정
- oled.setTextColor(BLACK, WHITE) - 텍스트 색상을 흰 배경의 검은색으로 설정
- oled.println("message") - OLED에 텍스트 메시지 출력
- oled.println(number) - OLED에 숫자 출력
- oled.println(number, HEX) - OLED에 16진수 형식의 숫자 출력
- oled.display() - 변경 사항으로 OLED 화면 업데이트
- oled.startscrollright(start, stop) - 텍스트를 왼쪽에서 오른쪽으로 스크롤
- oled.startscrollleft(start, stop) - 텍스트를 오른쪽에서 왼쪽으로 스크롤
- oled.startscrolldiagright(start, stop) - 왼쪽 아래에서 오른쪽 위로 대각선 스크롤
- oled.startscrolldiagleft(start, stop) - 오른쪽 아래에서 왼쪽 위로 대각선 스크롤
- oled.stopscroll() - 스크롤 애니메이션 중지
OLED 디스플레이에서 텍스트 중앙 정렬
OLED 128x64 디스플레이에서 텍스트를 중앙에 정렬하려고 하나요? 텍스트 치수를 계산해야 합니다.
텍스트 중앙 정렬 방법에 대한 자세한 지침 (수평 및 수직):
- 우리의 포괄적인 가이드 방문: OLED에서 수직/수평 중앙 정렬 방법
빠른 중앙 정렬 방법:
- 텍스트 너비와 높이를 계산하기 위해 getTextBounds()를 사용합니다
- 수평 중앙 정렬: x = (OLED_WIDTH - textWidth) / 2
- 수직 중앙 정렬: y = (OLED_HEIGHT - textHeight) / 2
ESP32 C3 Super Mini 코드 - OLED에 도형 그리기
ESP32 C3 Super Mini를 사용하여 OLED 디스플레이에 선, 원, 직사각형 및 기타 도형을 만듭니다:
ESP32 C3 Super Mini OLED용 일반 그리기 함수:
- drawLine(x1, y1, x2, y2, color) - 두 점 사이의 선 그리기
- drawRect(x, y, width, height, color) - 직사각형 윤곽선 그리기
- fillRect(x, y, width, height, color) - 채워진 직사각형 그리기
- drawCircle(x, y, radius, color) - 원 윤곽선 그리기
- fillCircle(x, y, radius, color) - 채워진 원 그리기
- drawTriangle(x1, y1, x2, y2, x3, y3, color) - 삼각형 윤곽선 그리기
- fillTriangle(x1, y1, x2, y2, x3, y3, color) - 채워진 삼각형 그리기
- drawRoundRect(x, y, width, height, radius, color) - 둥근 모서리 직사각형 그리기
ESP32 C3 Super Mini 코드 - OLED에 이미지 표시
비트맵 배열로 변환하여 OLED에 사용자 정의 이미지, 로고 또는 아이콘을 표시합니다.
이미지를 비트맵 배열로 변환
ESP32 C3 Super Mini OLED용 이미지를 변환하는 단계:
- 이미지 파일 선택 (JPG, PNG, GIF 등)
- 온라인 변환기 열기: image2cpp
- 캔버스 크기를 128x64로 설정 (OLED 해상도와 일치)
- 출력 형식으로 "Arduino code" 선택
- 그리기 모드로 "Vertical - 1 bit per pixel" 선택
- 생성을 클릭하고 비트맵 배열 복사
변환 프로세스 예제:

ESP32 C3 Super Mini 코드에서 비트맵 사용
이 코드의 ArduinoIcon 배열을 생성된 비트맵으로 대체합니다:
OLED에서 최고의 이미지 결과를 위한 팁:
- 높은 대비의 검은색과 흰색 이미지 사용
- 변환하기 전에 이미지를 128x64로 크기 조정
- 간단한 그래픽이 복잡한 사진보다 더 잘 작동
- 더 작은 이미지는 ESP32 C3 Super Mini 메모리를 덜 사용
- 사진 품질을 위해 다양한 디더링 설정 테스트
OLED 문제 해결 가이드
OLED 디스플레이가 ESP32 C3 Super Mini와 작동하지 않으면 다음 해결 방법을 시도하세요:
디스플레이가 켜지지 않음
배선 확인:
- VCC가 ESP32 C3 Super Mini의 3.3V에 연결됨
- GND가 GND에 연결됨
- SDA가 ESP32 C3 Super Mini의 SDA (pin 11)에 연결됨
- SCL이 ESP32 C3 Super Mini의 SCL (pin 12)에 연결됨
- 느슨한 연결이나 손상된 선이 있는지 확인
드라이버 칩 확인:
- 대부분의 OLED 디스플레이는 SSD1306 드라이버를 사용합니다
- 모듈 사양 확인
- 일부는 SH1106 또는 다른 드라이버를 사용 (다른 라이브러리 필요)
OLED의 I2C 주소 찾기
대부분의 OLED 디스플레이는 I2C 주소 0x3C를 사용하지만 일부는 0x3D를 사용합니다. ESP32 C3 Super Mini에서 다음 스캐너 코드를 실행합니다:
업로드하고 Serial Monitor 확인 - 다음이 보여야 합니다:
주소가 다르면 코드를 업데이트합니다:
일반적인 문제 및 해결 방법
"SSD1306 allocation failed" 오류:
- 잘못된 I2C 주소 - 위의 스캐너 코드 실행
- ESP32 C3 Super Mini의 잘못된 배선
- 결함이 있는 OLED 모듈 - 다른 디스플레이 시도
화면의 임의 픽셀:
- 루프 시작 시 oled.clearDisplay() 추가
- 항상 화면을 업데이트하려면 oled.display() 호출
텍스트가 너무 작거나 큼:
- 더 큰 텍스트는 oled.setTextSize(2) 이상 사용
- 크기 범위: 1 (가장 작음) ~ 8 (가장 큼)
디스플레이가 뒤집혀 있음:
- 실제로 OLED를 회전하거나
- 초기화 후 oled.setRotation(2) 추가
화면이 업데이트되지 않음:
- 그리기 후 oled.display() 호출 확인
- ESP32 C3 Super Mini에 대한 I2C 연결 확인
빠른 단계
- ESP32 C3 Super Mini가 처음이신가요? 개발 환경을 설정하려면 먼저 우리의 ESP32 C3 Super Mini 시작하기 튜토리얼을 완료합니다.
- OLED 연결: OLED를 ESP32 C3 Super Mini에 연결합니다 (VCC→3.3V, GND→GND, SDA→pin 11, SCL→pin 12)
- 라이브러리 설치: Library Manager를 열고 Adafruit SSD1306과 Adafruit GFX를 설치합니다
- ESP32 C3 Super Mini 연결: 보드를 USB 케이블로 컴퓨터에 연결합니다
- 보드 선택: Arduino IDE에서 "ESP32 C3 Super Mini"와 올바른 COM 포트를 선택합니다
- 코드 업로드: 위의 예제를 복사하여 Arduino IDE에 붙여넣고 Upload를 클릭합니다
- 디스플레이 확인: OLED가 켜지고 프로그래밍한 내용을 표시합니다
- 프로 팁: OLED 화면을 업데이트하려면 항상 그리기 후 oled.display()를 호출합니다
응용 아이디어
ESP32 C3 Super Mini 프로젝트 아이디어로 새로운 OLED 디스플레이 기술을 활용하세요:
- 온도 모니터 - OLED에 DHT22 센서 판독값 표시, ESP32 C3 Super Mini
- WiFi 상태 디스플레이 - OLED에 연결 상태 및 IP 주소 표시
- 스마트 초인종 - OLED 128x64 화면에 방문자 알림 표시
- 날씨 스테이션 - OLED에 온도, 습도 및 예보 표시
- 시스템 모니터 - ESP32 C3 Super Mini CPU 사용률 및 가동 시간 표시
- 카운트다운 타이머 - OLED 디스플레이에서 시각적 타이머 생성
- 음악 플레이어 인터페이스 - 곡 정보 및 재생 컨트롤 표시
- 게임 디스플레이 - OLED에서 Snake 또는 Pong 같은 간단한 게임 구축
동영상
아래 비디오에서 이 프로젝트의 시각적 안내를 확인하세요.
도전 과제
ESP32 C3 Super Mini OLED 기술을 더욱 발전시킬 준비가 되셨나요? 다음 도전 과제를 시도하세요:
- 쉬움: OLED에 DHT11 센서의 실시간 온도 판독값 표시
- 쉬움: OLED 화면 전체에 긴 메시지를 표시하는 스크롤 텍스트 만들기
- 중간: OLED 디스플레이 주위에서 움직이는 애니메이션 튀는 공 만들기
- 중간: OLED에 여러 페이지가 있는 간단한 메뉴 시스템 설계
- 고급: OLED 128x64 화면에 센서 데이터를 그리는 실시간 그래프 만들기
- 고급: ESP32 C3 Super Mini에서 생성한 QR 코드를 OLED에 표시
- 전문가: OLED 디스플레이에서 아이콘과 예보가 포함된 완전한 날씨 스테이션 구축