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
 
(114 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
==ESP8266==
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 '''ESP8266''' é um '''microcontrolador''' que possui uma '''interface WiFi''', com suporte as redes 802.11 b/g/n.  
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.


Um versão mais moderna é o '''ESP32''', que do módulo de comunicação Wi-Fi, 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'''.  


;Características do '''ESP8266''':
[[Arquivo:ESP8266.jpg|300px]]
[[Arquivo:ESP8266.jpg|300px]]


;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'''.  
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'''.
: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
;Projeto ESP8266 no GitHub: https://github.com/esp8266/Arduino


;ESP8266 Arduino core: https://arduino-esp8266.readthedocs.io/en/latest/reference.html
;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]]


=== Módulo Node MCU baseado no ESP8266 ===
'''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


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


[[Arquivo:NodeMCU_ESP8266.jpg|200 pc]]
[[Arquivo:D1_ESP8266_pinagem.png|500px]] <ref name=randomnerdtutorials>https://randomnerdtutorials.com/getting-started-with-esp8266-wifi-transceiver-review/</ref>


;Pinagem do NodeMCU ESP8266:
== Módulo Node MCU baseado no ESP8266 ==


[[Arquivo:Pinagem_NodeMCU_ESP8266.jpg|600px]]
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|150 pc]]


;Instalação da placa do '''NodeMCU 1.0 ESP 12E''' na '''IDE do Arduino''':
;Pinagem do NodeMCU ESP8266:
#IDE ->  Arquivo -> Preferências
#URLs Adicionais para Gerenciadores de Placa: ''http://arduino.esp8266.com/stable/package_esp8266com_index.json''
#Ferramentas -> Gerenciadores de Placa -> Instalar ESP8266


*Atenção para a velocidade da upload em ''Upload Speed'', o ESP8266 12E funciona melhor com a velocidade de 115200.
[[Arquivo:ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png|500px]] <ref name=randomnerdtutorials/>
*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.


===Materiais sobre ESP8266 e NodeMCU===
;Materiais sobre ESP8266 NodeMCU:
#Felipeflop. Qual módulo ESP8266 comprar? https://www.filipeflop.com/blog/qual-modulo-esp8266-comprar/
#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
#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/
#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
#Robocore. Como programar o NodeMCU com Arduino IDE. https://www.robocore.net/tutorials/162
#BR-Arduino.org ESP8266: Instalando o firmware NodeMCU e a linguagem Lua. https://br-arduino.org/2015/08/nodemcu-esp8266.html
 
#Fernando Tecnologia. NodeMCU ESP8266: Detalhes e Pinagem. https://www.fernandok.com/2018/05/nodemcu-esp8266-detalhes-e-pinagem.html
==ESP8266: Laboratórios==
 
*[[ESP8266: Laboratorios|'''ESP8266: Laboratórios''']]


===Módulo WiFi ESP01===
===Módulo WiFi ESP01===
Linha 61: Linha 72:
#Instructables. Programming ESP8266- ESP-201 Stand Alone With Arduino IDE. https://www.instructables.com/id/Programming-ESP8266-ESP-201-stand-alone-with-Ardui/
#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..  
=ESP32=
 
O '''ESP8266''' é um '''microcontrolador''' que possui processador Dual Core, interface WiFi, Bluetooth e vários sensores embutidos.


;Modulo ESP32:
==Modulo ESP32-DOIT-DEVKIT-V1==


[[Arquivo:ESP32.png|600px]]
[[Arquivo:ESP32-DOIT-DEVKIT-V1-Board-Pinout-30-GPIOs.png|700px]] <ref>https://randomnerdtutorials.com/getting-started-with-esp32/</ref>


;Projeto ESP32 no GitHub: https://github.com/espressif/arduino-esp32
;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''':
;Instalação da placa do '''ESP32''' com a '''IDE do Arduino''':
#IDE ->  '''Arquivo''' -> '''Preferências'''
#IDE ->  '''Arquivo''' -> '''Preferências'''
#URLs Adicionais para Gerenciadores de Placa: ''https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json''
#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
#Ferramentas -> Gerenciadores de Placa -> Instalar ESP32
#Selecionar placa '''ESP32 Dev Module'''
#Selecionar placa '''ESP32 Dev Module'''


===ESP32: Exemplos===
==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">
#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
</syntaxhighlight>


;Wifi: Exemplo pronto da biblioteca padrão do Arduino: '''Arquivo -> Exemplos -> Wifi -> SimpleWifiServer''':
==ESP32: Laboratórios==
*Configurar apenas '''ssid''' e '''passwd''' da rede Wifi;
*Identificar via terminal serial o endereço IP recebido pelo ESP32;
*Será possível controlar led (gpio 5, ou outro) via nagerador Web.


;Bluetooth: Exemplo pronto da biblioteca padrão do Arduino: '''Arquivo -> Exemplos -> BluetoothSerial -> SerialToSerialBT''':
*[[ESP32: Laboratorios|'''ESP32: Laboratórios''']]
:Exemplo de interação '''''bluetooth''''' entre '''ESP32''' e Android '''Serial Bluetooth Terminal'''.
*Carregar código no ESP32;
*Instalar aplicativo '''Serial Bluetooth Terminal''' no Android;
*Parear o ESP32 com o Android;
*Trocar mensagens seriais entre o terminal do ESP32 e o aplicativo '''Serial Bluetooth Terminal'''


;Bluetooth Low Energy - BLE: Ver detalhes do BLE: https://randomnerdtutorials.com/esp32-bluetooth-low-energy-ble-arduino-ide/.
=Programando ESP32 com MicroPython=
:Biblioteca: https://github.com/nkolban/ESP32_BLE_Arduino
*'''[[ESP32 com MicroPython]]'''
*Exemplo pronto '''Arquivo -> Exemplos -> ESP BLE Arduino -> BLEserver''';
*Instalar aplicativo '''BLE Terminal''' no Android;
*Conectar ao dispositivo.


===Materiais sobre o ESP32 NodeMCU===
==Referências==
#Conhecendo o ESP32 - Curto Circuito: https://www.curtocircuito.com.br/blog/conhecendo-esp32
<references />
#ESP32 conectando-se a uma rede WiFi: https://www.usinainfo.com.br/blog/esp32-wifi-comunicacao-com-a-internet/


----
----
--[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 15h53min de 7 de dezembro de 2018 (BRST)
[[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:Eletrônica]] [[Categoria:IoT]]
[[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)