ESP8266 - OLED
Este tutorial ensina você a usar o ESP8266 com um display OLED. Em detalhes, vamos aprender:
- Como conectar o display OLED ao ESP8266.
- Como programar o ESP8266 para exibir texto e números no OLED.
- Como programar o ESP8266 para centralizar texto e números na vertical e na horizontal no OLED.
- Como programar o ESP8266 para desenhar no OLED.
- Como programar o ESP8266 para exibir uma imagem no OLED.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: If you want a bigger OLED display, use the 2.42 inch OLED Display 128x64 .
Sobre o Display OLED
Existem vários tipos de display OLED disponíveis. O OLED mais usado com o ESP8266 é o display SSD1306 I2C OLED 128x64 e 128x32.

Pinagem do Display OLED I2C
- Pino GND: deve ser conectado ao terra do ESP8266.
- Pino VCC: é a alimentação do display e deve ser conectado ao 3,3V ou 5V.
- Pino SCL: é o pino de clock serial da interface I2C.
- Pino SDA: é o pino de dados seriais da interface I2C.

※ Nota:
- Os pinos de um módulo OLED podem variar entre fabricantes e tipos de módulo. É essencial sempre consultar os rótulos impressos no módulo OLED. Preste atenção!
- Este tutorial usa o display OLED que possui o driver SSD1306 I2C. Testamos com o display OLED da DIYables e ele funciona perfeitamente.
Diagrama de Ligação
- Diagrama de ligação entre o ESP8266 e o OLED 128x64

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
- Diagrama de ligação entre o ESP8266 e o OLED 128x32

This image is created using Fritzing. Click to enlarge image
A tabela de ligação entre o ESP8266 e o display OLED:
| Módulo OLED | ESP8266 |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | D2 (GPIO4) |
| SCL | D1 (GPIO5) |
Como Usar o OLED com o ESP8266
Instalar a biblioteca SSD1306 OLED
- Clique no ícone Libraries na barra lateral esquerda da Arduino IDE.
- Pesquise por “SSD1306” e localize a biblioteca SSD1306 da Adafruit.
- Em seguida, pressione o botão Install para concluir a instalação.

- Você será solicitado a instalar algumas outras dependências de biblioteca.
- Para instalar todas elas, clique no botão Install All.

Como programar o OLED
- Inclua a biblioteca
- Especifique as dimensões da tela OLED como 128 x 64.
- Especifique as dimensões de um display OLED de 128x32.
- Crie um objeto do tipo SSD1306 OLED.
- Na função setup(), inicialize o display OLED.
- Depois, você pode mostrar texto, imagens e criar linhas...
Daqui em diante, todos os códigos são para OLED 128x64, mas podem ser adaptados para OLED 128x32 alterando o tamanho da tela e ajustando as coordenadas, se necessário.
Código ESP8266 - Exibir Texto no OLED
Aqui estão algumas funções que podem ser usadas para exibir texto no OLED:
- oled.clearDisplay(): todos os pixels ficam apagados.
- oled.drawPixel(x,y, color): desenha um pixel nas coordenadas x,y.
- oled.setTextSize(n): define o tamanho da fonte, suporta tamanhos de 1 a 8.
- oled.setCursor(x,y): define as coordenadas para começar a escrever o texto.
- oled.setTextColor(WHITE): define a cor do texto.
- oled.setTextColor(BLACK, WHITE): define a cor do texto e a cor de fundo.
- oled.println(“message”): imprime os caracteres.
- oled.println(number): imprime um número.
- oled.println(number, HEX): imprime um número em formato hexadecimal.
- oled.display(): chame este método para que as alterações tenham efeito.
- oled.startscrollright(start, stop): rola o texto da esquerda para a direita.
- oled.startscrollleft(start, stop): rola o texto da direita para a esquerda.
- oled.startscrolldiagright(start, stop): rola o texto do canto inferior esquerdo para o canto superior direito.
- oled.startscrolldiagleft(start, stop): rola o texto do canto inferior direito para o canto superior esquerdo.
- oled.stopscroll(): interrompe a rolagem.
Como centralizar texto/número na vertical e na horizontal no OLED
Para aprender sobre como centralizar texto e números no OLED, consulte Como centralizar na vertical/horizontal no OLED. Se você quiser saber como centralizar texto e números no OLED, dê uma olhada em Como centralizar na vertical/horizontal no OLED.
Código ESP8266 - Desenhar no OLED
Código ESP8266 – Exibir Imagem
Para exibir uma imagem no OLED, primeiro precisamos convertê-la do formato original para um array de bitmap. Isso pode ser feito usando a ferramenta online fornecida. A imagem a seguir mostra como converter uma imagem em um array de bitmap. Como exemplo, convertei o ícone do Arduino em um array de bitmap.

Quando a conversão estiver concluída, pegue o código do array e substitua o array ArduinoIcon no código abaixo por ele.
※ Nota:
- O tamanho da imagem não deve exceder o tamanho da tela.
- Se você quiser usar o código para um OLED 128x32, precisa redimensionar a imagem e alterar a largura e a altura na função oled.drawBitmap();.
Solução de Problemas do OLED
Verifique se o OLED está funcionando corretamente seguindo estes passos:
- Certifique-se de que a ligação está correta.
- Confirme que o seu OLED I2C utiliza o driver SSD1306.
- Utilize o código de Scanner de Endereço I2C no ESP8266 para verificar o endereço I2C do OLED.
A saída exibida no Serial Monitor é: . O Serial Monitor mostra o seguinte resultado: