Hoje vamos mostrar como usar o módulo ESP8266 com display Oled embutido de 0.91″, um item muito interessante para o seu projeto de IoT (Internet das Coisas) que permite mostrar informações em uma tela de 128×32 pixels.

O módulo ESP8266 com display Oled 0.91″

O ESP8266 já é um velho conhecido dos makers que acompanham o blog, e com ele foram desenvolvidas diversas placas de desenvolvimento, como essa que mostramos no post de hoje.

O módulo ESP8266 com display Oled embutido tem conexão micro USB, utilizada tanto para transferir os programas quanto para alimentar o módulo.

Módulo ESP8266 com display Oled Embutido

Alimentação essa que pode ser feita também por meio de bateria de lítio de 3.7V, cujo conector podemos ver na parte de trás do módulo:

Módulo ESP8266 com display Oled - Verso

Olhando a parte da frente com um pouco mais de detalhes, temos um display Oled 0.91″ com resolução de 128×32 pixels, na parte direita a antena wifi embutida, e no lado esquerdo botões de Reset e Programação, além do led de status da bateria.

Esse led fica piscando quando o módulo está sendo alimentado pela porta micro USB, e se mantém aceso quando a bateria está em carregamento.

Detalhes Módulo ESP8266

Internamente, temos como coração do módulo um ESP8266EX (datasheet) da Espressif rodando a 160MHz, conexão Wifi 802.11n, 4MB de memória Flash e 512KB de SRAM.

Para interligar sensores, módulos e outros dispositivos, temos uma GPIO de 11 portas e as interfaces de comunicação mais usadas, como UART (2), SPI (1), I2C (1) e I2S (1), além de um conversor analógico digital (ADC) de 10 bits.

O fabricante dessa belezinha é a Heltec, e você pode acessar a página oficial do produto para obter maiores informações.

Instalação da placa na IDE Arduino

Antes de passar os programas para o ESP8266, temos que preparar a nossa IDE do Arduino para reconhecer a placa.

Primeiramente, entre no menu Arquivo, e em seguida em Preferências:

IDE Arduino - Tela Principal

Dentro de preferências, coloque a URL abaixo no campo URLs Adicionais para Gerenciadores de Placas:

http://resource.heltec.cn/download/package_heltec_esp8266_index.json

Sua tela ficará assim:

Vá agora até o menu Ferramentas => Placa => Gerenciador de Placas:

Dentro do Gerenciador de placas, procure por Heltec e instale o Heltec ESP8266 Series Dev-boards, conforme imagem abaixo:

Gerenciador de placas IDE Arduino - Instalação Heltec ESP8266

Agora basta selecionar a placa Heltec Wifi Kit 8 no menu Ferramentas => Placas:

Calma que ainda não acabou. Vamos agora instalar a biblioteca da Heltec.

Instalação biblioteca Heltec ESP8266

A instalação da biblioteca é feita também dentro da IDE do Arduino. Vá até o menu Sketch => Incluir Biblioteca => Gerenciar Bibliotecas.

No Gerenciador de Bibliotecas, procure por Heltec ESP8266 e instale a Heltec ESP8266 Dev-Boards, clicando em seguida em Instalar:

Instalação Biblioteca Heltec ESP8266 com display Oled

Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.

Programa teste módulo ESP8266 com display Oled

O nosso programa de teste abaixo utiliza a biblioteca que instalamos anteriormente para fazer a conexão com a rede Wifi e mostrar o endereço IP na tela do módulo.

Antes de carregar o programa, atualize a linha 14 com o nome da sua rede wifi e também a senha da rede.

//Programa: Modulo ESP8266 com display Oled Wifi Kit 8
//Autor: Arduino e Cia

#include <heltec.h>
#include <ESP8266WiFi.h>

void WIFISetUp(void)
{
  //Desconecta o Wifi das outras redes e seleciona o modo wifi para Station Mode
  WiFi.disconnect(true);
  delay(100);
  WiFi.mode(WIFI_STA);
  WiFi.setAutoConnect(true);
  WiFi.begin("NOME-DA-REDE-WIFI", "SENHA-DA-REDE-WIFI");
  delay(100);
  Heltec.display->clear();

  //Conecta na rede wifi
  byte count = 0;
  while (WiFi.status() != WL_CONNECTED && count < 10)
  {
    count ++;
    delay(500);
    Heltec.display->drawString(0, 0, "Conectando...");
    Heltec.display->display();
  }

  if (WiFi.status() == WL_CONNECTED)
  {
    Heltec.display->drawString(0, 9, "Conexao OK");
    Heltec.display->display();
    delay(1000);
    Heltec.display->clear();
  }
  else
  {
    //Heltec.display->clear();
    Heltec.display->drawString(0, 9, "Conexao falhou!");
    Heltec.display->display();
    delay(1000);
    Heltec.display->clear();
  }
}

void setup()
{
  Heltec.begin(true /*Habilita o display*/, true /*Habilita a serial*/);

  //Chama a rotina de conexao na rede wifi
  WIFISetUp();
}

void loop()
{
  //Mostra no serial monitor o endereco IP atribuido ao modulo
  Serial.print("Endereco IP: ");
  Serial.println(WiFi.localIP());

  //Mostra as informacoes no display
  Heltec.display->drawString(0, 0, "ESP8266 com display Oled");
  Heltec.display->drawLine(0, 11, 150, 11); //desenha linha
  Heltec.display->drawString(20, 20, "IP:");
  Heltec.display->drawString(40, 20, WiFi.localIP().toString());
  Heltec.display->display();

  delay(10000);
}

A biblioteca simplifica bastante a tarefa de enviar informações para a tela.

Repare que no programa temos o comando drawString(), onde você define a posição (coordenadas X e Y) do display em que irá aparecer o texto colocado entre aspas, e o comando drawLine(), usado para desenhar uma linha.

Não se esqueça que depois que usar os comandos de tela, é necessário o Heltec.display->display() para que o display seja atualizado com as novas informações.

Gostou? Confira outros posts usando ESP8266 aqui mesmo no Arduino e Cia!

5/5 - (18 votes)