ESP8266 e ESP32: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
 
(184 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
O '''ESP8266''' e o '''ESP32''' são '''módulos de desenvolvimento micro controlados''' que possuem uma '''interface WiFi''', muito utilizados em projetos de '''Internet das Coisas'''.
O '''ESP32''' é uma versão mais moderna destes microcontroladores, que além do módulo de comunicação WiFi, possui processador Dual Core, Bluetooth e vários sensores embutidos.
=ESP8266=
=ESP8266=
== Sobre o ESP8266 ==


O '''ESP8266''' é um '''microcontrolador''' que possui uma '''interface WiFi''', com suporte as redes 802.11 b/g/n.  
O '''ESP8266''' é um módulo de desenvolvimento acessível para projetos de '''Internet das Coisas''', que combina controle de '''entradas e saídas''' e uma '''interface WiFi'''.  


[[Arquivo:ESP8266.jpg|300px]]
[[Arquivo:ESP8266.jpg|300px]]


Características do '''ESP8266''':
Para '''prototipagem''' com o '''ESP8266''' (módulo isolado, sem placa de prototipagem) é necessário realizar '''conexões com hardware''', uma vez que o espaçamento de sua '''pinagem não é compatível''' com o padrão utilizado em '''matrizes de contato'''. Neste caso, a '''comunicação''' com o módulo deve ser realizada via '''interface serial''' através dos pinos RX e TX. Caso seja necessário comunicação com módulos que trabalhem com níveis lógicos de 0V e 5V, como o '''Arduíno''' ou '''portas USB''', é necessário utilizar '''adaptadores de tensão'''.
*9 pinos GPIO, compatíveis com PWM
 
*1 pino de entrada analógica (ADC), medindo voltagens de 0V a 1V
;Plataformas para prototipagem: O '''ESP8266''' também é encontrado embutido em '''plataformas de prototipagem''', com pinagem compatível com matrizes de contado, reguladores de tensão embutido e outras facilidades, como os módulos '''Wemos D1 Mini Pro Wifi ESP8266''', '''Node MCU ESP8266''' e outros.
*CPU RISC 80MHz
*Memória flash 1MB
*Alimentação máxima de 3.3V
*Tensões lógicas de 0V e 3.3V
*Antena de cerâmica e conector para antena externa


;Prototipagem: Para '''prototipagem''' com o '''ESP8266''' é necessário realizar '''conexões com hardware''', uma vez que o espaçamento de sua '''pinagem não é compatível''' com o padrão utilizado em '''matrizes de contato'''.  
;Projeto ESP8266 no GitHub: https://github.com/esp8266/Arduino
:A '''comunicação''' com o módulo deve ser realizada via '''interface serial''' através dos pinos RX e TX. Caso seja necessário comunicação com módulos que trabalhem com níveis lógicos de 0V e 5V, como o '''Arduíno''' ou '''portas USB''', é necessário utilizar '''adaptadores de tensão'''.
 
;Random Nerd Tutorials: Getting Started with ESP8266 WiFi: https://randomnerdtutorials.com/projects-esp8266/
 
== Módulo Wemos D1 Mini Pro Wifi ESP8266 ==
O módulo '''Wemos D1 Mini Pro''' é uma placa indicada para utilização em projetos de '''Internet das Coisas''' que conta com o microcontrolador '''ESP8266''', com 16MB de memória ''flash'' e interface '''WiFi'''.
 
[[Arquivo:D1_ESP8266.jpg|200px]]
 
'''Características''':
*9 pinos digitais de entrada/saída digitais (com PWM) (níveis lógicos 0V e 3,3V)
*2 pinos TX/RX para comunicação serial
*1 pino de entrada analógico (máximo 3.2V)
*pinos I2C e ''one-wire''
*Conector micro-USB para alimentação e comunicação serial com computador
 
'''Pinagem''':
 
[[Arquivo:D1_ESP8266_pinagem.png|500px]] <ref name=randomnerdtutorials>https://randomnerdtutorials.com/getting-started-with-esp8266-wifi-transceiver-review/</ref>


== Módulo Node MCU baseado no ESP8266 ==
== Módulo Node MCU baseado no ESP8266 ==


O Módulo '''Node MCU''' facilita a prototipagem com o '''ESP8266''' uma vez que o apresenta '''pinagem compatível com matrizes de contado''', '''interface USB''' e adaptador para permitir a '''comunicação serial''' com o módulo, '''regulador de tensão de 3,3V''' que permite obter alimentação diretamente de conectores USB.
O Módulo '''Node MCU''' é uma '''plataforma de prototipagem''' com um '''ESP8266''' embutido. Este módulo apresenta pinagem compatível com matrizes de contado, facilitando a prototipagem, '''interface USB''', adaptador para permitir a '''comunicação serial''' com o módulo e '''regulador de tensão de 3,3V''', o qual permite obter alimentação para a placa diretamente de conectores USB.


[[Arquivo:NodeMCU_ESP8266.jpg|300 pc]]
[[Arquivo:NodeMCU_ESP8266.jpg|150 pc]]


;Pinagem do NodeMCU ESP8266:
;Pinagem do NodeMCU ESP8266:


[[Arquivo:Pinagem_NodeMCU_ESP8266.jpg|600px]]
[[Arquivo:ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png|500px]] <ref name=randomnerdtutorials/>
 
;Materiais sobre ESP8266 NodeMCU:
#ESP8266 NodeMCU Projects, Tutorials and Guides with Arduino IDE: https://randomnerdtutorials.com/projects-esp8266/
#Laboratório de Garagem. Programando o módulo ESP8266 pela IDE do Arduino: http://labdegaragem.com/profiles/blogs/tutorial-esp8266-programando-com-a-ide-do-arduino
#FelipeFlop. Como programar o NodeMCU com IDE Arduino. https://www.filipeflop.com/blog/programar-nodemcu-com-ide-arduino/
#Robocore. Como programar o NodeMCU com Arduino IDE. https://www.robocore.net/tutorials/162
 
==ESP8266: Laboratórios==
 
*[[ESP8266: Laboratorios|'''ESP8266: Laboratórios''']]
 
===Módulo WiFi ESP01===


===Programação do NodeMCU ESP8266 a partir da IDE do Arduíno===
O módulo '''ESP01''', baseado no microcontrolador '''ESP8266''', possui tamanho reduzido e 8 pinos e pode ser utilizado como ponte para '''comunicação serial''' via rede '''WiFi'''.


Para a utilização do '''ESP8266''' com a '''IDE do Arduino''', é necessário algumas configurações.
[[Arquivo:ESP01.jpg|200px]]


# Com a IDE aberta, vá em '''Arquivo''' . '''Preferências'''
;Materiais sobre o ESP01:
# Na caixa aberta, cole o endereço ''http://arduino.esp8266.com/stable/package_esp8266com_index.json'', conforme figura:<br />[[Arquivo:preferenciasarduino.png|450px|center]]
#BR-Arduino.org. ESP8266 do jeito simples: conexão ao Arduino, acesso à rede WiFi e resposta a ping. https://br-arduino.org/2015/05/esp8266-arduino-facil.html
# Clique em OK
#Embarcados. Gravando o ESP8266-01 na IDE Arduino. https://www.embarcados.com.br/gravando-o-esp8266-01-na-ide-arduino/
# Vá na aba '''Ferramentas''' > '''Placa''' > '''Gerenciador de Placas''', conforme figura:<br />[[Arquivo:GerenciadorPlacasIDE.png|450px|center]]
#Embarcados. Apresentando o módulo ESP8266. https://www.embarcados.com.br/modulo-esp8266/
# Digite na caixa de busca esp8266 ou procure utilizando a barra de rolagem, conforme figura: <br />[[Arquivo:ProcuraPlaca.png|450px|center]]
# Clique em Instalar
Depois que a placa for instalada, basta selecionar no menu '''Ferramentas''' > '''Placa''' > '''''NodeMCU 1.0 (ESP8266 12E Module)'''''.


''Atenção para a velocidade da upload em '''Upload Speed''''', o ESP8266 12E funciona melhor com a velocidade de 115200.
===Módulo ESP201===
O módulo ESP 201 é uma placa de desenvolvimento baseada no ESP8266 com WiFi e UART.


Ao iniciar a serial no setup, deve-se ater também para a velocidade ser a mesma da opção de Upload para o correto funcionamento.
[[Arquivo:ESP201.jpg|200px]] [[Arquivo:ESP201-pin.png|400px]] <ref>https://www.esp8266.com</ref>


;Exemplos de utilização: O ESP8266 12E conta com diversos exemplos após instalado na IDE do Arduino, basta ir em '''Arquivo''' > '''Exemplos''' > Escolher qual exemplo do ESP8266 disponível.
;Materiais sobre o ESP201:
#Instructables. Programming ESP8266- ESP-201 Stand Alone With Arduino IDE. https://www.instructables.com/id/Programming-ESP8266-ESP-201-stand-alone-with-Ardui/


:Segue um exemplo de um Blink no LED que já vem na placa:


=ESP32=
O '''ESP8266''' é um '''microcontrolador''' que possui processador Dual Core, interface WiFi, Bluetooth e vários sensores embutidos.
==Modulo ESP32-DOIT-DEVKIT-V1==
[[Arquivo:ESP32-DOIT-DEVKIT-V1-Board-Pinout-30-GPIOs.png|700px]] <ref>https://randomnerdtutorials.com/getting-started-with-esp32/</ref>
;Referências sobre o ESP32:
*Projeto ESP32 no GitHub: https://github.com/espressif/arduino-esp32
*Random Nerd Tutorials: '''Getting Started with the ESP32''': https://randomnerdtutorials.com/getting-started-with-esp32/
*Random Nerd Tutorials: '''ESP32 Projects''': https://randomnerdtutorials.com/projects-esp32/
;Instalação da placa do '''ESP32''' com a '''IDE do Arduino''':
#IDE ->  '''Arquivo''' -> '''Preferências'''
#URLs Adicionais para Gerenciadores de Placa: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
#Ferramentas -> Gerenciadores de Placa -> Instalar ESP32
#Selecionar placa '''ESP32 Dev Module'''
==Heltec ESP32 Wifi Lora==
A placa '''Heltec ESP32 LoRa''' é uma placa de desenvolvimento que integra três formas distintas de comunicação: Wifi, Bluetooth e a rede de comunicação de longo alcance LoRa. Além disto a placa apresenta um display OLED, o que facilita o controle da operação do dispositivo localizado em locais remotos.
[[Arquivo:Heltec_ESP32_LoRa.png|800px]] <ref>https://www.fernandok.com/2018/10/introducao-ao-esp32-wifi-lora.html</ref>
;Instalação da placa do '''Heltec ESP32''' com a '''IDE do Arduino''':
#IDE ->  '''Arquivo''' -> '''Preferências'''
#URLs Adicionais para Gerenciadores de Placa: https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/0.0.5/package_heltec_esp32_index.json
#Ferramentas -> Gerenciadores de Placa -> Instalar Heltec ESP32 Series Dev/boards
#Selecionar placa '''WiFi LoRa 32'''
;Referências sobre o Heltec ESP32:
*Heltec ESP32+LoRa Series Quick Start: https://heltec-automation-docs.readthedocs.io/en/latest/esp32/quick_start.html
===''Display'' OLED===
Para uso com o display OLED pode-se utilizar uma biblioteca chamada <code>images.h</code>, que contém várias logos que podem ser mostradas no display, como as logos do WiFi, Bluetooth, LoRa e outros.
Para usar a bibliteca, copiar o arquivo e salvar como <code>images.h</code> e colocar na mesma pasta do programa.
;images.h:
<syntaxhighlight lang="c">
<syntaxhighlight lang="c">
void setup() {
#define LoRa_Logo_width 59
   pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
#define LoRa_Logo_height 39
}
 
void loop() {
#define WiFi_Logo_width 60
   digitalWrite(LED_BUILTIN, LOW)// Turn the LED on (Note that LOW is the voltage level
#define WiFi_Logo_height 36
                                    // but actually the LED is on; this is because
 
                                    // it is acive low on the ESP-01)
#define HelTec_LOGO_width 128
   delay(1000);                     // Wait for a second
#define HelTec_LOGO_height 53
   digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
 
   delay(2000);                     // Wait for two seconds (to demonstrate the active low LED)
#define BT_width 8
}
#define BT_height 10
</syntaxhighlight>
 
#define BAT_width 20
#define BAT_height 9
 
#define WIFI_width 14
#define WIFI_height 8
 
const unsigned char LoRa_Logo_bits[] PROGMEM = {
   0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
  0x00, 0xFE, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xFF, 0xF1,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x1E,
  0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xFF, 0xC1, 0xFF, 0x07, 0x00, 0x00,
  0x1F, 0xC0, 0xFF, 0xE7, 0xFF, 0x0F, 0x00, 0x00, 0x1F, 0xC0, 0x83, 0xE7,
  0xFF, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x70, 0x00,
  0x1F, 0x00, 0xFE, 0xE0, 0x03, 0x1F, 0xFE, 0x01, 0x1F, 0x00, 0xFF, 0xE1,
  0x03, 0x1F, 0xFF, 0x03, 0x1F, 0x80, 0xFF, 0xE3, 0x03, 0x9F, 0xFF, 0x07,
  0x1F, 0xC0, 0xFF, 0xE7, 0x03, 0x9F, 0xFF, 0x07, 0x1F, 0xC0, 0xC7, 0xE7,
  0xFF, 0x9F, 0x8F, 0x07, 0x1F, 0xC0, 0x83, 0xE7, 0xFF, 0x0F, 0xF0, 0x07,
  0x1F, 0xC0, 0x83, 0xE7, 0xFF, 0x07, 0xFF, 0x07, 0x1F, 0xC0, 0x83, 0xE7,
  0xFF, 0x83, 0xFF, 0x07, 0x1F, 0xC0, 0x83, 0xE7, 0xE3, 0x87, 0x9F, 0x07,
  0x1F, 0xC0, 0x83, 0xE7, 0xE3, 0xC7, 0x87, 0x07, 0xFF, 0xCF, 0xC7, 0xE7,
  0xC3, 0xCF, 0xC7, 0x07, 0xFF, 0xCF, 0xFF, 0xE7, 0xC3, 0xDF, 0xFF, 0x07,
  0xFF, 0x8F, 0xFF, 0xE3, 0x83, 0x9F, 0xFF, 0x07, 0xFF, 0x0F, 0xFF, 0xE1,
  0x03, 0x1F, 0xFF, 0x07, 0xFF, 0x0F, 0xFE, 0xE0, 0x03, 0x1F, 0xBE, 0x07,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x83, 0x07,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x1E,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xFF, 0xF1,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00,
  0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
};
 
const unsigned char WiFi_Logo_bits[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
  0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
  0xFF, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
  0x00, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, 0x83, 0x01, 0x80, 0xFF, 0xFF, 0xFF,
  0x01, 0x00, 0x07, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x00,
  0xC0, 0xFF, 0xFF, 0x7C, 0x00, 0x60, 0x0C, 0x00, 0xC0, 0x31, 0x46, 0x7C,
  0xFC, 0x77, 0x08, 0x00, 0xE0, 0x23, 0xC6, 0x3C, 0xFC, 0x67, 0x18, 0x00,
  0xE0, 0x23, 0xE4, 0x3F, 0x1C, 0x00, 0x18, 0x00, 0xE0, 0x23, 0x60, 0x3C,
  0x1C, 0x70, 0x18, 0x00, 0xE0, 0x03, 0x60, 0x3C, 0x1C, 0x70, 0x18, 0x00,
  0xE0, 0x07, 0x60, 0x3C, 0xFC, 0x73, 0x18, 0x00, 0xE0, 0x87, 0x70, 0x3C,
  0xFC, 0x73, 0x18, 0x00, 0xE0, 0x87, 0x70, 0x3C, 0x1C, 0x70, 0x18, 0x00,
  0xE0, 0x87, 0x70, 0x3C, 0x1C, 0x70, 0x18, 0x00, 0xE0, 0x8F, 0x71, 0x3C,
  0x1C, 0x70, 0x18, 0x00, 0xC0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x08, 0x00,
  0xC0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x0C, 0x00, 0x80, 0xFF, 0xFF, 0x1F,
  0x00, 0x00, 0x06, 0x00, 0x80, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x07, 0x00,
  0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
  0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0x00, 0x00,
  0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
  0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  };
 
const unsigned char HelTec_LOGO_bits[] PROGMEM = {
   0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0xF0, 0x03,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0xC0, 0x07, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xF0, 0x1F,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0xE0, 0x1F, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0xF8, 0x3F,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0xE0, 0x1F, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0xFC, 0x1F,
  0x80, 0xFF, 0x8F, 0x7F, 0xC0, 0xFF, 0x7F, 0xC0, 0xFF, 0x03, 0xC0, 0x3F,
  0xF0, 0x1F, 0xFC, 0x1F, 0xE0, 0xFF, 0x87, 0x3F, 0xC0, 0xFF, 0x7F, 0xF0,
  0xFF, 0x01, 0xF8, 0xFF, 0xF0, 0x0F, 0xFC, 0x1F, 0xE0, 0xFF, 0x87, 0x3F,
  0xE0, 0xFF, 0x7F, 0xF8, 0xFF, 0x01, 0xFE, 0xFF, 0xF8, 0x0F, 0xFE, 0x0F,
  0xF0, 0xFF, 0x87, 0x3F, 0xE0, 0xFF, 0x7F, 0xFC, 0xFF, 0x01, 0xFF, 0xFF,
  0xF8, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xC7, 0x3F, 0xE0, 0xFF, 0x3F, 0xFC,
  0xFF, 0x81, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xC3, 0x1F,
  0xE0, 0xFF, 0x3F, 0xFC, 0xFF, 0xC0, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0x0F,
  0xF8, 0xFF, 0xC3, 0x1F, 0xE0, 0xFF, 0x3F, 0xFC, 0xFF, 0xE0, 0xFF, 0x7F,
  0xFC, 0xFF, 0xFF, 0x07, 0xF8, 0x03, 0xC0, 0x1F, 0x00, 0xFE, 0x01, 0xFE,
  0x00, 0xF0, 0x3F, 0x70, 0xFC, 0xFF, 0xFF, 0x07, 0xF8, 0x03, 0xE0, 0x0F,
  0x00, 0xFE, 0x00, 0xFE, 0x00, 0xF0, 0x1F, 0x60, 0xFC, 0xFF, 0xFF, 0x07,
  0xF8, 0x03, 0xE0, 0x0F, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xF0, 0x07, 0x20,
  0xFE, 0xFF, 0xFF, 0x07, 0xFC, 0xFF, 0xE1, 0x0F, 0x00, 0xFF, 0x00, 0xFF,
  0x7F, 0xF8, 0x07, 0x00, 0xFE, 0x83, 0xFF, 0x03, 0xFC, 0xFF, 0xF1, 0x0F,
  0x00, 0x7F, 0x00, 0xFF, 0x7F, 0xF8, 0x03, 0x00, 0xFE, 0x83, 0xFF, 0x03,
  0xFC, 0xFF, 0xF0, 0x07, 0x00, 0x7F, 0x00, 0xFF, 0x7F, 0xFC, 0x03, 0x00,
  0xFE, 0x81, 0xFF, 0x03, 0xFC, 0xFF, 0xF0, 0x07, 0x00, 0x7F, 0x00, 0xFF,
  0x3F, 0xFC, 0x03, 0x00, 0xFF, 0xC1, 0xFF, 0x01, 0xFE, 0xFF, 0xF0, 0x07,
  0x80, 0x3F, 0x80, 0xFF, 0x3F, 0xFC, 0x03, 0x00, 0xFF, 0xC1, 0xFF, 0x01,
  0xFE, 0xFF, 0xF8, 0x07, 0x80, 0x3F, 0x80, 0xFF, 0x3F, 0xFC, 0x03, 0x10,
  0xFF, 0xC1, 0xFF, 0x01, 0xFE, 0x00, 0xF8, 0x03, 0x80, 0x3F, 0x80, 0x3F,
  0x00, 0xFC, 0x03, 0x0C, 0xFF, 0xC0, 0xFF, 0x01, 0xFF, 0x00, 0xF8, 0x03,
  0xC0, 0x3F, 0x80, 0x3F, 0x00, 0xFC, 0x07, 0x0E, 0xFF, 0xE0, 0xFF, 0x00,
  0x7F, 0x00, 0xF8, 0x03, 0xC0, 0x1F, 0xC0, 0x3F, 0x00, 0xFC, 0xFF, 0x0F,
  0xFF, 0xE0, 0xFF, 0x00, 0xFF, 0x7F, 0xFC, 0xFF, 0xC1, 0x1F, 0xC0, 0xFF,
  0x1F, 0xFC, 0xFF, 0x0F, 0x7F, 0xE0, 0xFF, 0x00, 0xFF, 0x3F, 0xFC, 0xFF,
  0xC1, 0x1F, 0xC0, 0xFF, 0x0F, 0xF8, 0xFF, 0x07, 0x7E, 0xE0, 0xFF, 0x80,
  0xFF, 0x3F, 0xFC, 0xFF, 0xE0, 0x1F, 0xC0, 0xFF, 0x0F, 0xF8, 0xFF, 0x07,
  0x7C, 0xF0, 0x7F, 0x80, 0xFF, 0x3F, 0xFE, 0xFF, 0xE0, 0x0F, 0xE0, 0xFF,
  0x0F, 0xF0, 0xFF, 0x07, 0xF8, 0xF0, 0x7F, 0x80, 0xFF, 0x1F, 0xFE, 0xFF,
  0xE0, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0xE0, 0xF0, 0x7F, 0x80,
  0xFF, 0x1F, 0xFE, 0xFF, 0xE0, 0x0F, 0xE0, 0xFF, 0x07, 0x80, 0xFF, 0x03,
  0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x8F, 0xF7, 0xFF, 0x7C,
  0xBC, 0xC7, 0xF3, 0xFF, 0xFC, 0xBC, 0x07, 0x00, 0x00, 0xFC, 0x1F, 0x00,
  0x8F, 0x73, 0xFF, 0xFE, 0xBE, 0xC7, 0xFB, 0xFF, 0xFE, 0xBD, 0x03, 0x00,
  0x00, 0xFC, 0x1F, 0x80, 0x8F, 0x73, 0xFF, 0xEF, 0xFE, 0xE7, 0xFB, 0x77,
  0xEF, 0xFD, 0x03, 0x00, 0x00, 0xFC, 0x1F, 0x80, 0xDF, 0x7B, 0x9C, 0xE7,
  0xFE, 0xF7, 0xE3, 0x71, 0xE7, 0xFD, 0x03, 0x00, 0x00, 0xFC, 0x0F, 0xC0,
  0xDF, 0x79, 0x9E, 0xE3, 0xFE, 0xF3, 0xE3, 0x78, 0xE7, 0xFF, 0x03, 0x00,
  0x00, 0xFC, 0x0F, 0xE0, 0xDF, 0x39, 0x8E, 0xF3, 0xFF, 0xFB, 0xE7, 0xF8,
  0xE7, 0xFE, 0x01, 0x00, 0x00, 0xFC, 0x0F, 0xE0, 0xDF, 0x3F, 0x8E, 0x7F,
  0xFF, 0xFF, 0xE7, 0x38, 0x7F, 0xEE, 0x01, 0x00, 0x00, 0xF8, 0x0F, 0x70,
  0xDC, 0x1F, 0x0E, 0x3F, 0xFF, 0x9D, 0xF7, 0x38, 0x3F, 0xEF, 0x01, 0x00,
  0x00, 0xF8, 0x0F, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
  0x08, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  };
 
const unsigned char BT_bits[] PROGMEM = {
   0x18, 0x28, 0x4A, 0x2C, 0x18, 0x2C, 0x4A, 0x28, 0x18, 0x00,
  };
 
const unsigned char BAT_bits[] PROGMEM = {
  0xFC, 0xFF, 0x0F, 0x04, 0x00, 0x08, 0xF7, 0xDE, 0x0B, 0xF1, 0xDE, 0x0B,
  0xF1, 0xDE, 0x0B, 0xF1, 0xDE, 0x0B, 0xF7, 0xDE, 0x0B, 0x04, 0x00, 0x08,
  0xFC, 0xFF, 0x0F,
   };
 
const unsigned char WIFI_bits[] PROGMEM = {
  0xF0, 0x03, 0x04, 0x08, 0xF2, 0x13, 0x09, 0x24, 0xE4, 0x09, 0x10, 0x02,
   0xC0, 0x00, 0xC0, 0x00,
   };
 
 
//屏幕下方的小圆点
const unsigned char activeSymbol[] PROGMEM = {
    B00000000,
    B00000000,
    B00011000,
    B00100100,
    B01000010,
    B01000010,
    B00100100,
    B00011000
};


===Materiais sobre NodeMCU ESP8266===
const unsigned char inactiveSymbol[] PROGMEM = {
#PINTO, Pedro. NodeMCU: A placa de desenvolvimento muito low cost. pplhardware. https://pplware.sapo.pt/gadgets/hardware/nodemcu-a-placa-de-desenvolvimento-muito-low-cost/
    B00000000,
#FelipeFlop. Como programar o módulo ESP8266 NodeMCU com linguagem Lua. https://www.filipeflop.com/blog/esp8266-nodemcu-como-programar/
    B00000000,
#FelipeFlop. Como programar o NodeMCU com IDE Arduino. https://www.filipeflop.com/blog/programar-nodemcu-com-ide-arduino/
    B00000000,
#Robocore. Como programar o NodeMCU com Arduino IDE. https://www.robocore.net/tutorials/162
    B00000000,
#Fernando Tecnologia. NodeMCU ESP8266: Detalhes e Pinagem. https://www.fernandok.com/2018/05/nodemcu-esp8266-detalhes-e-pinagem.html
    B00011000,
    B00011000,
    B00000000,
    B00000000
};


==Módulo WiFi ESP8266 01==
//Added by Sloeber
#pragma once
</syntaxhighlight>


O módulo ESP 01 possui tamanho reduzido e 8 pinos e pode ser utilizado como ponte para comunicação serial via rede WiFi.
==ESP32: Laboratórios==


[[Arquivo:WiFi_ESP8266.jpg|200px]]
*[[ESP32: Laboratorios|'''ESP32: Laboratórios''']]


#BR-Arduino.org ESP8266: Instalando o firmware NodeMCU e a linguagem Lua. https://br-arduino.org/2015/08/nodemcu-esp8266.html
=Programando ESP32 com MicroPython=
#Laboratório de Garagem. Programando o módulo ESP8266 pela IDE do Arduino. http://labdegaragem.com/profiles/blogs/tutorial-esp8266-programando-com-a-ide-do-arduino
*'''[[ESP32 com MicroPython]]'''
#Embarcados. Gravando o ESP8266-01 na IDE Arduino. https://www.embarcados.com.br/gravando-o-esp8266-01-na-ide-arduino/
#Embarcados. Apresentando o módulo ESP8266. https://www.embarcados.com.br/modulo-esp8266/


==Referências==
<references />


----
----
[[Categoria:Arduíno]]
[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 10h38min de 8 de fevereiro de 2022 (-03)
----
 
[[Categoria:Arduíno]] [[Categoria:IoT]]

Edição atual tal como às 13h13min de 8 de dezembro de 2023

O ESP8266 e o ESP32 são módulos de desenvolvimento micro controlados que possuem uma interface WiFi, muito utilizados em projetos de Internet das Coisas.

O ESP32 é uma versão mais moderna destes microcontroladores, que além do módulo de comunicação WiFi, possui processador Dual Core, Bluetooth e vários sensores embutidos.

ESP8266

O ESP8266 é um módulo de desenvolvimento acessível para projetos de Internet das Coisas, que combina controle de entradas e saídas e uma interface WiFi.

Para prototipagem com o ESP8266 (módulo isolado, sem placa de prototipagem) é necessário realizar conexões com hardware, uma vez que o espaçamento de sua pinagem não é compatível com o padrão utilizado em matrizes de contato. Neste caso, a comunicação com o módulo deve ser realizada via interface serial através dos pinos RX e TX. Caso seja necessário comunicação com módulos que trabalhem com níveis lógicos de 0V e 5V, como o Arduíno ou portas USB, é necessário utilizar adaptadores de tensão.

Plataformas para prototipagem
O ESP8266 também é encontrado embutido em plataformas de prototipagem, com pinagem compatível com matrizes de contado, reguladores de tensão embutido e outras facilidades, como os módulos Wemos D1 Mini Pro Wifi ESP8266, Node MCU ESP8266 e outros.
Projeto ESP8266 no GitHub
https://github.com/esp8266/Arduino
Random Nerd Tutorials
Getting Started with ESP8266 WiFi: https://randomnerdtutorials.com/projects-esp8266/

Módulo Wemos D1 Mini Pro Wifi ESP8266

O módulo Wemos D1 Mini Pro é uma placa indicada para utilização em projetos de Internet das Coisas que conta com o microcontrolador ESP8266, com 16MB de memória flash e interface WiFi.

Características:

  • 9 pinos digitais de entrada/saída digitais (com PWM) (níveis lógicos 0V e 3,3V)
  • 2 pinos TX/RX para comunicação serial
  • 1 pino de entrada analógico (máximo 3.2V)
  • pinos I2C e one-wire
  • Conector micro-USB para alimentação e comunicação serial com computador

Pinagem:

[1]

Módulo Node MCU baseado no ESP8266

O Módulo Node MCU é uma plataforma de prototipagem com um ESP8266 embutido. Este módulo apresenta pinagem compatível com matrizes de contado, facilitando a prototipagem, interface USB, adaptador para permitir a comunicação serial com o módulo e regulador de tensão de 3,3V, o qual permite obter alimentação para a placa diretamente de conectores USB.

150 pc

Pinagem do NodeMCU ESP8266

[1]

Materiais sobre ESP8266 NodeMCU
  1. ESP8266 NodeMCU Projects, Tutorials and Guides with Arduino IDE: https://randomnerdtutorials.com/projects-esp8266/
  2. Laboratório de Garagem. Programando o módulo ESP8266 pela IDE do Arduino: http://labdegaragem.com/profiles/blogs/tutorial-esp8266-programando-com-a-ide-do-arduino
  3. FelipeFlop. Como programar o NodeMCU com IDE Arduino. https://www.filipeflop.com/blog/programar-nodemcu-com-ide-arduino/
  4. Robocore. Como programar o NodeMCU com Arduino IDE. https://www.robocore.net/tutorials/162

ESP8266: Laboratórios

Módulo WiFi ESP01

O módulo ESP01, baseado no microcontrolador ESP8266, possui tamanho reduzido e 8 pinos e pode ser utilizado como ponte para comunicação serial via rede WiFi.

Materiais sobre o ESP01
  1. BR-Arduino.org. ESP8266 do jeito simples: conexão ao Arduino, acesso à rede WiFi e resposta a ping. https://br-arduino.org/2015/05/esp8266-arduino-facil.html
  2. Embarcados. Gravando o ESP8266-01 na IDE Arduino. https://www.embarcados.com.br/gravando-o-esp8266-01-na-ide-arduino/
  3. Embarcados. Apresentando o módulo ESP8266. https://www.embarcados.com.br/modulo-esp8266/

Módulo ESP201

O módulo ESP 201 é uma placa de desenvolvimento baseada no ESP8266 com WiFi e UART.

[2]

Materiais sobre o ESP201
  1. Instructables. Programming ESP8266- ESP-201 Stand Alone With Arduino IDE. https://www.instructables.com/id/Programming-ESP8266-ESP-201-stand-alone-with-Ardui/


ESP32

O ESP8266 é um microcontrolador que possui processador Dual Core, interface WiFi, Bluetooth e vários sensores embutidos.

Modulo ESP32-DOIT-DEVKIT-V1

[3]

Referências sobre o ESP32
Instalação da placa do ESP32 com a IDE do Arduino
  1. IDE -> Arquivo -> Preferências
  2. URLs Adicionais para Gerenciadores de Placa: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  3. Ferramentas -> Gerenciadores de Placa -> Instalar ESP32
  4. Selecionar placa ESP32 Dev Module

Heltec ESP32 Wifi Lora

A placa Heltec ESP32 LoRa é uma placa de desenvolvimento que integra três formas distintas de comunicação: Wifi, Bluetooth e a rede de comunicação de longo alcance LoRa. Além disto a placa apresenta um display OLED, o que facilita o controle da operação do dispositivo localizado em locais remotos.

[4]

Instalação da placa do Heltec ESP32 com a IDE do Arduino
  1. IDE -> Arquivo -> Preferências
  2. URLs Adicionais para Gerenciadores de Placa: https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/0.0.5/package_heltec_esp32_index.json
  3. Ferramentas -> Gerenciadores de Placa -> Instalar Heltec ESP32 Series Dev/boards
  4. Selecionar placa WiFi LoRa 32
Referências sobre o Heltec ESP32

Display OLED

Para uso com o display OLED pode-se utilizar uma biblioteca chamada images.h, que contém várias logos que podem ser mostradas no display, como as logos do WiFi, Bluetooth, LoRa e outros.

Para usar a bibliteca, copiar o arquivo e salvar como images.h e colocar na mesma pasta do programa.

images.h
#define LoRa_Logo_width 59
#define LoRa_Logo_height 39

#define WiFi_Logo_width 60
#define WiFi_Logo_height 36

#define HelTec_LOGO_width 128
#define HelTec_LOGO_height 53

#define BT_width 8
#define BT_height 10

#define BAT_width 20
#define BAT_height 9

#define WIFI_width 14
#define WIFI_height 8

const unsigned char LoRa_Logo_bits[] PROGMEM = {
  0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0xFE, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xFF, 0xF1, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x1E, 
  0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0xFF, 0xC1, 0xFF, 0x07, 0x00, 0x00, 
  0x1F, 0xC0, 0xFF, 0xE7, 0xFF, 0x0F, 0x00, 0x00, 0x1F, 0xC0, 0x83, 0xE7, 
  0xFF, 0x1F, 0x00, 0x00, 0x1F, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x70, 0x00, 
  0x1F, 0x00, 0xFE, 0xE0, 0x03, 0x1F, 0xFE, 0x01, 0x1F, 0x00, 0xFF, 0xE1, 
  0x03, 0x1F, 0xFF, 0x03, 0x1F, 0x80, 0xFF, 0xE3, 0x03, 0x9F, 0xFF, 0x07, 
  0x1F, 0xC0, 0xFF, 0xE7, 0x03, 0x9F, 0xFF, 0x07, 0x1F, 0xC0, 0xC7, 0xE7, 
  0xFF, 0x9F, 0x8F, 0x07, 0x1F, 0xC0, 0x83, 0xE7, 0xFF, 0x0F, 0xF0, 0x07, 
  0x1F, 0xC0, 0x83, 0xE7, 0xFF, 0x07, 0xFF, 0x07, 0x1F, 0xC0, 0x83, 0xE7, 
  0xFF, 0x83, 0xFF, 0x07, 0x1F, 0xC0, 0x83, 0xE7, 0xE3, 0x87, 0x9F, 0x07, 
  0x1F, 0xC0, 0x83, 0xE7, 0xE3, 0xC7, 0x87, 0x07, 0xFF, 0xCF, 0xC7, 0xE7, 
  0xC3, 0xCF, 0xC7, 0x07, 0xFF, 0xCF, 0xFF, 0xE7, 0xC3, 0xDF, 0xFF, 0x07, 
  0xFF, 0x8F, 0xFF, 0xE3, 0x83, 0x9F, 0xFF, 0x07, 0xFF, 0x0F, 0xFF, 0xE1, 
  0x03, 0x1F, 0xFF, 0x07, 0xFF, 0x0F, 0xFE, 0xE0, 0x03, 0x1F, 0xBE, 0x07, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x83, 0x07, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x1E, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0xE0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xFF, 0xF1, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x1F, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char WiFi_Logo_bits[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
  0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00,
  0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
  0xFF, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
  0x00, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, 0x83, 0x01, 0x80, 0xFF, 0xFF, 0xFF,
  0x01, 0x00, 0x07, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x00,
  0xC0, 0xFF, 0xFF, 0x7C, 0x00, 0x60, 0x0C, 0x00, 0xC0, 0x31, 0x46, 0x7C,
  0xFC, 0x77, 0x08, 0x00, 0xE0, 0x23, 0xC6, 0x3C, 0xFC, 0x67, 0x18, 0x00,
  0xE0, 0x23, 0xE4, 0x3F, 0x1C, 0x00, 0x18, 0x00, 0xE0, 0x23, 0x60, 0x3C,
  0x1C, 0x70, 0x18, 0x00, 0xE0, 0x03, 0x60, 0x3C, 0x1C, 0x70, 0x18, 0x00,
  0xE0, 0x07, 0x60, 0x3C, 0xFC, 0x73, 0x18, 0x00, 0xE0, 0x87, 0x70, 0x3C,
  0xFC, 0x73, 0x18, 0x00, 0xE0, 0x87, 0x70, 0x3C, 0x1C, 0x70, 0x18, 0x00,
  0xE0, 0x87, 0x70, 0x3C, 0x1C, 0x70, 0x18, 0x00, 0xE0, 0x8F, 0x71, 0x3C,
  0x1C, 0x70, 0x18, 0x00, 0xC0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x08, 0x00,
  0xC0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x0C, 0x00, 0x80, 0xFF, 0xFF, 0x1F,
  0x00, 0x00, 0x06, 0x00, 0x80, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x07, 0x00,
  0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xF8, 0xFF, 0xFF,
  0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0x00, 0x00,
  0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,
  0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  };

const unsigned char HelTec_LOGO_bits[] PROGMEM = {
  0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0xF0, 0x03, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0xC0, 0x07, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x1F, 0xF0, 0x1F, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0xE0, 0x1F, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0xF8, 0x3F, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0xE0, 0x1F, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x1F, 0xFC, 0x1F, 
  0x80, 0xFF, 0x8F, 0x7F, 0xC0, 0xFF, 0x7F, 0xC0, 0xFF, 0x03, 0xC0, 0x3F, 
  0xF0, 0x1F, 0xFC, 0x1F, 0xE0, 0xFF, 0x87, 0x3F, 0xC0, 0xFF, 0x7F, 0xF0, 
  0xFF, 0x01, 0xF8, 0xFF, 0xF0, 0x0F, 0xFC, 0x1F, 0xE0, 0xFF, 0x87, 0x3F, 
  0xE0, 0xFF, 0x7F, 0xF8, 0xFF, 0x01, 0xFE, 0xFF, 0xF8, 0x0F, 0xFE, 0x0F, 
  0xF0, 0xFF, 0x87, 0x3F, 0xE0, 0xFF, 0x7F, 0xFC, 0xFF, 0x01, 0xFF, 0xFF, 
  0xF8, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xC7, 0x3F, 0xE0, 0xFF, 0x3F, 0xFC, 
  0xFF, 0x81, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0x0F, 0xF0, 0xFF, 0xC3, 0x1F, 
  0xE0, 0xFF, 0x3F, 0xFC, 0xFF, 0xC0, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0x0F, 
  0xF8, 0xFF, 0xC3, 0x1F, 0xE0, 0xFF, 0x3F, 0xFC, 0xFF, 0xE0, 0xFF, 0x7F, 
  0xFC, 0xFF, 0xFF, 0x07, 0xF8, 0x03, 0xC0, 0x1F, 0x00, 0xFE, 0x01, 0xFE, 
  0x00, 0xF0, 0x3F, 0x70, 0xFC, 0xFF, 0xFF, 0x07, 0xF8, 0x03, 0xE0, 0x0F, 
  0x00, 0xFE, 0x00, 0xFE, 0x00, 0xF0, 0x1F, 0x60, 0xFC, 0xFF, 0xFF, 0x07, 
  0xF8, 0x03, 0xE0, 0x0F, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xF0, 0x07, 0x20, 
  0xFE, 0xFF, 0xFF, 0x07, 0xFC, 0xFF, 0xE1, 0x0F, 0x00, 0xFF, 0x00, 0xFF, 
  0x7F, 0xF8, 0x07, 0x00, 0xFE, 0x83, 0xFF, 0x03, 0xFC, 0xFF, 0xF1, 0x0F, 
  0x00, 0x7F, 0x00, 0xFF, 0x7F, 0xF8, 0x03, 0x00, 0xFE, 0x83, 0xFF, 0x03, 
  0xFC, 0xFF, 0xF0, 0x07, 0x00, 0x7F, 0x00, 0xFF, 0x7F, 0xFC, 0x03, 0x00, 
  0xFE, 0x81, 0xFF, 0x03, 0xFC, 0xFF, 0xF0, 0x07, 0x00, 0x7F, 0x00, 0xFF, 
  0x3F, 0xFC, 0x03, 0x00, 0xFF, 0xC1, 0xFF, 0x01, 0xFE, 0xFF, 0xF0, 0x07, 
  0x80, 0x3F, 0x80, 0xFF, 0x3F, 0xFC, 0x03, 0x00, 0xFF, 0xC1, 0xFF, 0x01, 
  0xFE, 0xFF, 0xF8, 0x07, 0x80, 0x3F, 0x80, 0xFF, 0x3F, 0xFC, 0x03, 0x10, 
  0xFF, 0xC1, 0xFF, 0x01, 0xFE, 0x00, 0xF8, 0x03, 0x80, 0x3F, 0x80, 0x3F, 
  0x00, 0xFC, 0x03, 0x0C, 0xFF, 0xC0, 0xFF, 0x01, 0xFF, 0x00, 0xF8, 0x03, 
  0xC0, 0x3F, 0x80, 0x3F, 0x00, 0xFC, 0x07, 0x0E, 0xFF, 0xE0, 0xFF, 0x00, 
  0x7F, 0x00, 0xF8, 0x03, 0xC0, 0x1F, 0xC0, 0x3F, 0x00, 0xFC, 0xFF, 0x0F, 
  0xFF, 0xE0, 0xFF, 0x00, 0xFF, 0x7F, 0xFC, 0xFF, 0xC1, 0x1F, 0xC0, 0xFF, 
  0x1F, 0xFC, 0xFF, 0x0F, 0x7F, 0xE0, 0xFF, 0x00, 0xFF, 0x3F, 0xFC, 0xFF, 
  0xC1, 0x1F, 0xC0, 0xFF, 0x0F, 0xF8, 0xFF, 0x07, 0x7E, 0xE0, 0xFF, 0x80, 
  0xFF, 0x3F, 0xFC, 0xFF, 0xE0, 0x1F, 0xC0, 0xFF, 0x0F, 0xF8, 0xFF, 0x07, 
  0x7C, 0xF0, 0x7F, 0x80, 0xFF, 0x3F, 0xFE, 0xFF, 0xE0, 0x0F, 0xE0, 0xFF, 
  0x0F, 0xF0, 0xFF, 0x07, 0xF8, 0xF0, 0x7F, 0x80, 0xFF, 0x1F, 0xFE, 0xFF, 
  0xE0, 0x0F, 0xE0, 0xFF, 0x0F, 0xE0, 0xFF, 0x07, 0xE0, 0xF0, 0x7F, 0x80, 
  0xFF, 0x1F, 0xFE, 0xFF, 0xE0, 0x0F, 0xE0, 0xFF, 0x07, 0x80, 0xFF, 0x03, 
  0x00, 0xF0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x3C, 0x00, 0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0xF8, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x00, 0x8F, 0xF7, 0xFF, 0x7C, 
  0xBC, 0xC7, 0xF3, 0xFF, 0xFC, 0xBC, 0x07, 0x00, 0x00, 0xFC, 0x1F, 0x00, 
  0x8F, 0x73, 0xFF, 0xFE, 0xBE, 0xC7, 0xFB, 0xFF, 0xFE, 0xBD, 0x03, 0x00, 
  0x00, 0xFC, 0x1F, 0x80, 0x8F, 0x73, 0xFF, 0xEF, 0xFE, 0xE7, 0xFB, 0x77, 
  0xEF, 0xFD, 0x03, 0x00, 0x00, 0xFC, 0x1F, 0x80, 0xDF, 0x7B, 0x9C, 0xE7, 
  0xFE, 0xF7, 0xE3, 0x71, 0xE7, 0xFD, 0x03, 0x00, 0x00, 0xFC, 0x0F, 0xC0, 
  0xDF, 0x79, 0x9E, 0xE3, 0xFE, 0xF3, 0xE3, 0x78, 0xE7, 0xFF, 0x03, 0x00, 
  0x00, 0xFC, 0x0F, 0xE0, 0xDF, 0x39, 0x8E, 0xF3, 0xFF, 0xFB, 0xE7, 0xF8, 
  0xE7, 0xFE, 0x01, 0x00, 0x00, 0xFC, 0x0F, 0xE0, 0xDF, 0x3F, 0x8E, 0x7F, 
  0xFF, 0xFF, 0xE7, 0x38, 0x7F, 0xEE, 0x01, 0x00, 0x00, 0xF8, 0x0F, 0x70, 
  0xDC, 0x1F, 0x0E, 0x3F, 0xFF, 0x9D, 0xF7, 0x38, 0x3F, 0xEF, 0x01, 0x00, 
  0x00, 0xF8, 0x0F, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 
  0x08, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x80, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  };

const unsigned char BT_bits[] PROGMEM = {
  0x18, 0x28, 0x4A, 0x2C, 0x18, 0x2C, 0x4A, 0x28, 0x18, 0x00,
  };

const unsigned char BAT_bits[] PROGMEM = {
  0xFC, 0xFF, 0x0F, 0x04, 0x00, 0x08, 0xF7, 0xDE, 0x0B, 0xF1, 0xDE, 0x0B, 
  0xF1, 0xDE, 0x0B, 0xF1, 0xDE, 0x0B, 0xF7, 0xDE, 0x0B, 0x04, 0x00, 0x08, 
  0xFC, 0xFF, 0x0F,
  };

const unsigned char WIFI_bits[] PROGMEM = {
  0xF0, 0x03, 0x04, 0x08, 0xF2, 0x13, 0x09, 0x24, 0xE4, 0x09, 0x10, 0x02, 
  0xC0, 0x00, 0xC0, 0x00,
  };


//屏幕下方的小圆点
const unsigned char activeSymbol[] PROGMEM = {
    B00000000,
    B00000000,
    B00011000,
    B00100100,
    B01000010,
    B01000010,
    B00100100,
    B00011000
};

const unsigned char inactiveSymbol[] PROGMEM = {
    B00000000,
    B00000000,
    B00000000,
    B00000000,
    B00011000,
    B00011000,
    B00000000,
    B00000000
};

//Added by Sloeber 
#pragma once

ESP32: Laboratórios

Programando ESP32 com MicroPython

Referências


Evandro.cantu (discussão) 10h38min de 8 de fevereiro de 2022 (-03)