ESP8266 - OLED | ESP8266 - OLED
이 튜토리얼은 ESP8266을 OLED 디스플레이와 사용하는 방법을 알려줍니다. 자세히 말하자면, 우리는 다음을 배울 것입니다:
- ESP8266을 OLED 디스플레이에 연결하는 방법.
- ESP8266에 텍스트와 숫자를 OLED에 표시하는 프로그래밍 방법.
- ESP8266에 텍스트와 숫자를 OLED에서 수직 및 수평으로 중앙 정렬하는 프로그래밍 방법.
- ESP8266에 OLED에 그리기를 프로그래밍하는 방법.
- ESP8266에 이미지를 OLED에 표시하는 프로그래밍 방법.
준비물
1 | × | ESP8266 NodeMCU | Amazon | |
1 | × | Micro USB Cable | Amazon | |
1 | × | SSD1306 I2C OLED Display 128x64 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) 5V Power Adapter for ESP8266 | Amazon | |
1 | × | (Optional) Screw Terminal Expansion Board for ESP8266 | 쿠팡 | Amazon |
OLED 디스플레이에 대해
다양한 종류의 OLED 디스플레이가 있습니다. ESP8266과 가장 많이 사용되는 OLED는 SSD1306 I2C OLED 128x64 및 128x32 디스플레이입니다.
I2C OLED 디스플레이 핀아웃
- GND 핀: ESP8266의 접지에 연결되어야 합니다.
- VCC 핀: 디스플레이의 전원 공급으로, 3.3V 또는 5V에 연결되어야 합니다.
- SCL 핀: I2C 인터페이스를 위한 직렬 클록 핀입니다.
- SDA 핀: I2C 인터페이스를 위한 직렬 데이터 핀입니다.
※ NOTE THAT:
OLED 모듈의 핀은 제조사와 모듈 유형에 따라 다를 수 있습니다. 항상 OLED 모듈에 인쇄된 라벨을 참조하는 것이 중요합니다. 주의하세요!
이 튜토리얼은 SSD1306 I2C 드라이버가 탑재된 OLED 디스플레이를 사용합니다. DIYables에서 제공하는 OLED 디스플레이로 테스트해 보았고 완벽하게 작동합니다.
선연결
ESP8266과 OLED 128x64 간의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP8266의 핀 배치 및 ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.
ESP8266과 OLED 128x32 사이의 배선도
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP8266과 OLED 디스플레이 간의 연결 표:
OLED Module | ESP8266 |
---|---|
Vin | 3.3V |
GND | GND |
SDA | D2 (GPIO4) |
SCL | D1 (GPIO5) |
ESP8266과 OLED 사용 방법
SSD1306 OLED 라이브러리 설치
- Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
- "SSD1306"을 검색하고 Adafruit에서 SSD1306 라이브러리를 찾으세요.
- 그런 다음, Install 버튼을 눌러 설치를 완료하세요.
다른 라이브러리 종속성을 설치하라는 메시지가 표시됩니다.
모두 설치하려면 Install All 버튼을 클릭하세요.
OLED 프로그래밍 방법
도서관을 포함하세요.
OLED 화면의 크기를 128 x 64로 지정하십시오.
128x32 OLED 디스플레이의 규격을 명시하십시오.
SSD1306 OLED 타입의 객체를 생성하십시오.
setup() 함수에서 OLED 디스플레이를 초기화하세요.
그러면 텍스트, 사진을 보여주고 선을 그릴 수 있습니다...
앞으로 모든 코드는 OLED 128x64용이지만, 필요한 경우 화면 크기를 조정하고 좌표를 조정하여 OLED 128x32에 맞게 적용할 수 있습니다.
ESP8266 코드 - OLED에 텍스트 표시
다음은 OLED에 텍스트를 표시하는 데 사용될 수 있는 몇 가지 함수입니다:
- oled.clearDisplay(): 모든 픽셀이 꺼집니다.
- oled.drawPixel(x,y, color): x,y 좌표에 픽셀을 그립니다.
- oled.setTextSize(n): 글꼴 크기를 설정합니다, 1부터 8까지의 크기를 지원합니다.
- oled.setCursor(x,y): 텍스트 작성을 시작할 좌표를 설정합니다.
- oled.setTextColor(WHITE): 텍스트 색상을 설정합니다.
- oled.setTextColor(BLACK, WHITE): 텍스트 색상, 배경 색상을 설정합니다.
- oled.println(“message”): 문자를 출력합니다.
- oled.println(number): 숫자를 출력합니다.
- oled.println(number, HEX): 숫자를 16진수 형식으로 출력합니다.
- oled.display(): 변경 사항을 적용하기 위해 이 메소드를 호출합니다.
- oled.startscrollright(start, stop): 텍스트를 왼쪽에서 오른쪽으로 스크롤합니다.
- oled.startscrollleft(start, stop): 텍스트를 오른쪽에서 왼쪽으로 스크롤합니다.
- oled.startscrolldiagright(start, stop): 텍스트를 왼쪽 하단 모서리에서 오른쪽 상단 모서리로 스크롤합니다.
- oled.startscrolldiagleft(start, stop): 텍스트를 오른쪽 하단 모서리에서 왼쪽 상단 모서리로 스크롤합니다.
- oled.stopscroll(): 스크롤을 중지합니다.
OLED에서 텍스트/숫자를 세로 및 가로 중앙 정렬하는 방법
OLED에서 텍스트와 숫자를 중앙에 정렬하는 방법을 알고 싶으시다면, OLED에서 수직/수평 중앙 정렬하는 방법을 참조하세요. OLED에서 텍스트와 숫자를 중앙에 놓는 방법을 알고 싶다면, OLED에서 수직/수평 중앙 정렬하는 방법을 확인해 보세요.
ESP8266 코드 - OLED에 그리기
ESP8266 코드 - 이미지 표시
OLED에 이미지를 표시하려면 먼저 원본 형식에서 비트맵 배열로 변환해야 합니다. 이는 제공된 온라인 도구를 사용하여 수행할 수 있습니다. 다음 이미지는 이미지를 비트맵 배열로 변환하는 방법을 보여줍니다. 예를 들어, Arduino 아이콘을 비트맵 배열로 변환했습니다.
변환이 완료되면, 배열 코드를 가져다가 아래 코드의 ArduinoIcon 배열을 그것으로 교체하세요.
※ NOTE THAT:
- 이미지의 크기는 화면의 크기를 초과해서는 안 됩니다.
- OLED 128x32에 코드를 사용하고 싶다면, 이미지의 크기를 조정하고 oled.drawBitmap(); 함수에서 너비와 높이를 변경해야 합니다.
OLED 문제 해결
다음 단계를 따라 OLED가 제대로 작동하는지 확인하십시오:
- 배선이 올바른지 확인하세요.
- I2C OLED가 SSD1306 드라이버를 사용하는지 확인하세요.
- ESP8266에서 I2C 주소 스캐너 코드를 사용하여 OLED의 I2C 주소를 확인하세요.
시리얼 모니터에 표시된 출력은 다음과 같습니다: . 시리얼 모니터는 다음 결과를 보여줍니다: