Manual
do
Maker
.
com
Vamos começar pelos fatos. Esse ESP32 com oled onboard é incrível. Essa board não é uma Wemos. Quem fez, utilizou o logo da Wemos.cc, mas aí eu me perguntei duas coisas ao mesmo tempo:
"E daí?" - Tem importância pra você a "etiqueta"?
"Pra quê?" - Havia necessidade de "pichar" a placa?
Tanto faz se é Wemos ou Wallace, é um ESP32 com display OLED onboard! E na parte de trás ainda tem um conector para pack de bateria. Desse jeito o coração não aguenta! Esse sim vale a pena ir para a árvore de natal com esse projetinho. Daí aposto que você já está se perguntando:
Por sorte temos alguém apaixonado por novidades. Esse ESP32 você encontra na CurtoCircuito, clicando aqui. Se você procurar pelo display OLED e um ESP32 à parte (mais os jumpers necessários para fazer o wiring e mais as taxas de entrega) com certeza você terá um custo maior, mas independente disso, você terá exclusividade em primeira mão. Confira por si mesmo!
O acesso aos pinos do ESP32 estão dispostos nas duas laterais (ou em cima e embaixo, dependendo da forma que você o está segurando). Na parte de trás da placa estão as portas USB e a porta de conexão com a bateria. O pinout dessa board é o seguinte:
O display é I2C e os pinos de comunicação utilizados no ESP32 são o pino 5 para SDA e pino 4 para SCL. O endereço do display é 0x3E. Os pinos configurados são pino 5para SDA e pino 4 para SCL. A biblioteca utilizada foi a da Adafruit.
Para conseguir compilar, a IDE do Arduino deve ficar com os avisos do compilador em Padrão. Para isso, abra Arquivos > Preferências e faça a escolha.
Mas (e muitas vezes tem um "mas"), você precisará dar um "tapinha" na chamada do Wire dentro do arquivo ~/Arduino/libraries/Adafruit_SSD1306/Adafruit_SSD1306.cpp porque precisamos dizer qual pino utilizar, uma vez que está fora do padrão a utilização dos pinos 4 e 5. Mas está mais fácil que fazer um blink. Edite o arquivo e vá até a linha 206, então deixe o begin assim:
Wire.begin(5,4);
Daí o que vai acontecer é que essa biblioteca funcionará apenas para esse display, exceto removamos a referência dos pinos "ou" adicionemos esses parâmetros à classe. É fácil fazer, mas como não é tão fácil quanto adicionar esses 3 Bytes na chamada do begin, preferí a solução "porca" por enquanto.
Para testar, utilizei o mesmo código do projeto para árvore de natal, só que agora eu não coloquei o buzzer pra tocar Jingle Bell, só queria mesmo testar o display pra ver se realmente eu poderia controlá-lo com essa biblioteca.
Quando a placa chegou, já estava com um programa pré-carregado, que é justamente um dos exemplos que você encontra na biblioteca, mas se carregar um exemplo sem fazer a modificação supracitada, não vai funcionar!
Bom, agora sempre que escrever um artigo com ESP32, vou utilizar essa board quando precisar de display e a placa de desenvolvimento quando não. Não viu a placa de desenvolvimento ainda? Tá perdendo artigo, hum?
Eis o video desse demo (unha suja de esfregar cola, não repare):
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.