ESP32 – Especificação Técnica
Está é a plataforma mais famosa pra uso em Internet das Coisas (Internet of Things ou IoT) pois ele não necessita de nenhum modulo adicional para ter conexão com a internet pois ele já vem com Bluetooth e Wi-fi integrado, já no caso do Arduíno Uno, Mega, Nano e etc, necessitam que seja conectado um Shield ou modulo para que haja essa conexão e que ele possa ser usado para a Internet das Coisas. O conjunto inteiro do ESP-32 é chamado de NodeMCU-32S, mas também há outras variantes para a plataforma completa.
Após a explosão no mercado com a plataforma Arduíno muitas outras empresas e organizações começaram a seguir o modelo da plataforma do Arduíno porem nem todas essas plataformas conseguiram ter a integração com a IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado) do Arduíno, porem em 2016 a Espressif Systems criou a plataforma ESP32 (ESP-WROOM-32) que utiliza o SoC (System on Chip) ESP32-D0WDQ6 e através de sua comunidade desenvolveram um plugin que consegue fazer a integração do ESP32 com a IDE de programação do Arduíno, o que tornou este chip uma grande alternativa em relação ao Arduíno já que ele possui Bluetooth e Wi-fi integrado.
A grande diferencia em si da plataforma Arduíno não era o Arduíno Uno, Arduíno Mega e etc, mas sim a sua IDE de programação que faz um trabalho maravilho em simplificar gigantescamente a programação do usuário e tudo isso graças as grandes quantidades de bibliotecas disponíveis na internet, onde por ser uma plataforma gratuita torna o acesso mais fácil e o desenvolvimento pelos os usuários algo contínuo.
A IDE é muito simples sem muitos botões para confundir usuários iniciantes, o que torna a adesão grande em escolas e por pessoas que nunca tiveram contato com uma IDE de programação,
Especificações:
O datasheet do ESP32 que a Espressif fornece possui muitos dados que são importantíssimos para a conservação e o bom uso do ESP32, organizei em forma de tabela:
Alimentação: | 2,2V ~ 3,3V DC |
Corrente de Consumo: | Média de 80mA |
Temperatura de Operação: |
-40°C ~ +85°C
|
Processador: | Xtensa® Dual-Core 32-bit LX6 |
Processador secundário: | ULP (Ultra Low Power coprocessor) 8MHz com consumo de 150uA. |
Frequência de Operação: | 80MHz ~ 240MHz |
Memoria FLASH: | 4MB |
Memoria RAM: | 520KB |
Memoria ROM: | 448KB |
GPIOs (Entradas e Saídas): | 34 GPIOS de 3.3V e 12mA. |
Conversores ADC (Analógico para Digital): | 18 ADC com 12-bit de resolução (4096 bits) |
Conversores DAC (Digital para Analógico): | 2 ADC com 8-bit de resolução (256 bits) |
WiFi: | 2,4 GHz,
802.11 b/g/n/e/i (802.11n até 150 Mbps)
|
Bluetooth: | Bluetooth Low Energy v4.2 (BLE) |
Criptografia: | AES, RSA, SHA e ECC |
Segurança: | WPA/WPA2/WPA2-Enterprise/WPS |
Protocolos de Rede: | IPv4, IPv6, SSL, TCP/UDP/HTTP/FTP/MQTT |
Temporizadores: | 4 Timers de 64-bit. |
Interfaces de Módulos: |
Cartão SD, UART, SPI, SDIO, I2C, LED PWM, Motor PWM, I2S, I2C, IR
|
Sensores: |
|
Recursos: |
|
São muitos os recursos que estão disponíveis no ESP32, se comparado com o Arduino, o ESP é ideal para projetos profissionais onde necessitam vários recursos com poucos módulos, seu poder de processamento é muito maior que o Arduíno.
Atenção: A alimentação máxima do ESP32 é de 3,3V o que faz que 5V para alimentação ou para sinal lógico em seus GPIOs seja fatal, podendo levar a queima do ESP32, caso necessite entrar um sinal lógico de 5V em seus GPIOs utilize um divisor de tensão com dois resistores um de 1K e outro de 2K.
A alimentação é um dos contras do ESP32 pois a tensão máxima de trabalho é de 3,3V fazendo com que seja necessário adaptações para alimentar algum sensor ou conectar algum periférico nos pinos de GPIO do ESP32, mas dependendo dos sensores nem é necessário adaptações com resistores ou transistores já que uma gama de sensores funcionam a 3,3V.
Pinos de GPIOs:
O esp32 possui 34 GPIOs programáveis e estes mesmos GPIOs possuem diversas funções onde:
- 18 GPIOs possuem conversor ADC
- 2 possuem DAC,
- 10 possuem Sensores de Toque Capacitivo.
- 34 possuem interrupção
- 4 possuem I2C
- 16 possuem Ethernet EMAC
Abaixo está uma ilustração feita pelo identificando cada pino dos ESP32:
Outra informação importante é que nem todos os GPIO’s possuem resistores de pull-up e pull-down, fui descobrir desta característica depois de desenvolver o XPboard percebi que o pino 34 do LCD não estava funcionando normalmente não exibindo nada no LCD, fui descobrir que alguns pinos não possuem esses resistores internamente. São os GPIO’s do 34 ao 39:
GPIO 34 – Não possui resistor de Pull-up ou Pull-down
GPIO 35 – Não possui resistor de Pull-up ou Pull-down
GPIO 36 – Não possui resistor de Pull-up ou Pull-down
GPIO 39 – Não possui resistor de Pull-up ou Pull-down
Em algumas placas de ESP32 o GPIO 6 até o GPIO 11 Estão disponíveis para o uso para o programador. No entanto, esses pinos estão conectados ao chip flash SPI integrado no chip ESP-WROOM-32 e não são recomendados para outros usos. Portanto, evite usar esses pinos em seus projetos:
GPIO 6 (SCK / CLK)
GPIO 7 (SDO / SD0)
GPIO 8 (SDI / SD1)
GPIO 9 (SHD / SD2)
GPIO 10 (SWP / SD3)
GPIO 11 (CSC / CMD)
Alguns GPIOs alteram seu estado para nivel HIGH (3,3V) ou emitem sinais PWM na inicialização ou reset da placa. Isso significa que, se você tiver saídas conectadas a esses GPIOs, poderá obter resultados inesperados quando o ESP32 for reiniciado ou inicializado, evite usa-los para acionamento de coisas que possam comprometer a segurança de pessoas. Abaxo segue a lista de GPIO’s
Você deve estar atento aos GPIO’s que você irá utilizar pois não é todos que possuem as funções que você deseja, algumas GPIO’s são imprevisíveis, segue uma tabela com a maioria dos GPIO’s:
GPIO | Entrada | Saída | Comentários: |
0 | Sempre em ALTO | OK | Emite sinal PWM na inicialização |
1 | Pino TX | OK | Saída de depuração na inicialização |
2 | OK | OK | Conectado ao LED da placa |
3 | OK | Pino RX | Durante o boot fica HIGH(3,3V) |
4 | OK | OK | |
5 | OK | OK | Emite sinal PWM na inicialização |
6 | x | x | Conectado ao SPI flash integrado |
7 | x | x | Conectado ao SPI flash integrado |
8 | x | x | Conectado ao SPI flash integrado |
9 | x | x | Conectado ao SPI flash integrado |
10 | x | x | Conectado ao SPI flash integrado |
11 | x | x | Conectado ao SPI flash integrado |
12 | OK | OK | Inicialização falha se colocado em Alto |
13 | OK | OK | |
14 | OK | OK | Emite sinal PWM na inicialização |
15 | OK | OK | Emite sinal PWM na inicialização |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | Sem Pull-Up e Pull-Down Recomendável: Somente Entrada | |
35 | OK | Sem Pull-Up e Pull-Down Recomendável: Somente Entrada | |
36 | OK | Sem Pull-Up e Pull-Down Recomendável: Somente Entrada | |
39 | OK | Sem Pull-Up e Pull-Down Recomendável: Somente Entrada |
Energia:
Embora o ESP32 seja muito mais potente e robusto para projetos do que o Arduino Uno ou Mega ele consome uma elevada corrente de 80mA se comparado com o Arduíno que consome em torno de 2mA. Isto é devido ao Wi-fi, bluetooth e o processamento o que é horrível para aplicações que utilize bateria, nessas aplicações o uso da energia é crucial quanto menor é a corrente maior é a duração do funcionamento do circuito sem ter que recarregar a bateria, há maneiras de diminuir a corrente de uso do ESP32 como o Deep Sleep, desligar o Wi-Fi quando não houver uso e etc.
Estas praticas exigem que o programador conheça bem o hardware e quando é necessário ligar e desligar os recursos que consomem energia e que não são necessários ficarem ativos constantemente.
Hardware:
A construção do ESP-32 é protegida por um shield de ferro para evitar interferências eletromagnéticas, o ESP-32 em sí é o modulo ESP-WROOM-32 que é bem pequeno se comparado com o restante do NodeMCU-32S no modulo ESP-WROOM-32 possui o chip principal ESP32-D0WDQ6 um cristal oscilador normalmente de 40MHz e um chip de memória Flash GD25Q32 de 4Mb a 16Mb. A seguir está uma galeria de imagens dos componentes do hardware e também o esquemático fornecido pelo datasheet:
Referencias:
https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
Muito legal o conteúdo, bem esclarecedor o texto.