Este post é destinado para as pessoas que querem dar um passo a mais no mundo maker com o ESP32 pois busca opções mais robusta de microcontroladores ao invés do Arduino.
Aplicações
- IoT;
- Automação Industrial;
- Malha de rede;
- Agricultura Inteligente;
- Eletrônicos vestíveis;
- Monitoramento por câmera.
ESP32 Especificações
- Voltagem de Trabalho: 3V a 3,6V;
- WiFi
- Protocolos:
- 802.11 b/g/n (802.11n up to 150 Mbps);
- A-MPDU and A-MSDU aggregation and 0.4 µs guard interval support.
- Faixa de Frequência: 2,4GHz a 2,5GHz.
- Protocolos:
- Bluetooth
- Protocolo: Bluetooth v4.2 BR/EDR and BLE specification;
- Radio:
- NZIF receiver with –97 dBm sensitivity;
- Class-1, class-2 and class-3 transmitter;
- AFH.
- Áudio: CVSD and SBC;
- Consumo:
- 300uA Funcionando;
- 0,1uA Standby.
- Tamanho: 18mm x 25,5mm x 3,10mm;
Periféricos
- 34 × GPIOs programáveis;
- SAR ADC de 12 bits até 18 canais;
- DAC 2 × 8 bits;
- 10 × sensores de toque;
- 4 × SPI;
- 2 × I²S;
- 2 × I²C;
- 3 × UART;
- 1 host (SD / eMMC / SDIO);
- 1 escravo (SDIO / SPI);
- Interface Ethernet MAC com DMA dedicado e suporte IEEE 1588;
- Interface automotiva de dois fios (TWAI®, compatível com ISO11898-1);
- IR (TX / RX);
- Motor PWM;
- LED PWM até 16 canais;
- Sensor Hall.
Peculiaridades
O ESP32 é um chip porém a própria fabricante vende principalmente o modelo ESP32 WROOM que basicamente é um “embarcado” com os componentes mínimos necessários para seu funcionamento.

Entretanto, o modelo de placa mais comum no mercado é o ESP32 Dev Module que basicamente é uma placa com conversor USB para Serial, regulador de tensão e alguns componentes complementares.

Uma das maiores vantagens desse microcontrolador é sem duvidas a quantidade de recursos que ele tem integrado em apenas um chip, no qual torna sua aquisição muito vantajosa, veja o bloco esquemático a baixo do chip:

São tantas características únicas desse sensor que é preciso listar e falar de cada um separadamente em outras postagens, porém o que se destaca mais de todas são o WiFi/Bluetooth, Real Time Clock (RTC) e um dos mais interessantes é dois núcleos de processamento o que possibilita o desenvolvimento de projetos mais complexos que precisam de multiprocessamento.
Leitura ESP32 ADC
O conversor analógico digital (ADC) do ESP32 tem uma resolução de 12bit o que chega a encantar alguns usuários, no entanto o ADC do ESP32 pode ser uma grande dor de cabeça para projetos que necessitem de uma precisão, pois o próprio datasheet informa que a tem uma diferença de variação de +/- 6% na leitura entre os chips.

O ADC do ESP32 é sensível a ruído por isso o gráfico acima mostra a leitura ADC sem o capacitor (pontos branco), com capacitor de 0,1uf (pontos amarelo) e o mais estável é com o uso de capacitor e Multisampling (pontos azul). Tem outras formas de calibração do conversor AD porém isso é um assunto para outra postagem mas quem tiver curiosidade é só clicar aqui para acessar a documentação da Espressif.
Dimensões ESP32 Wroom
Existem inúmeras modelos do ESP32 no mercado, no entanto, seria quase impossível dimensionar todas em um único post. Portanto, a solução é usar o mais comum do mercado é o ESP32 WROOM com antena na própria placa de circuito impresso, tendo um dimensionamento de 18mm x 25,5mm x 3,10mm.

Diagrama Esquemático ESP32 Dev Module
De antemão, como o ESP32 Dev Module é o modelo que é usado para desenvolvimento como o próprio sugere, não haverá a necessidade de demonstrar o diagrama do Wroom, no entanto, caso tenha curiosidade é só clicar aqui e colocar na página 19 do datasheet.
As placas que usadas para prototipagem tem um conversor USB para Serial CP2102N, um regulador de tensão AMS1117 3v3 com input menor ou igual 12v e maior ou igual a 4v7 com até 1A e alguns componentes ativos e passivos complementares.

ESP32 Pinout

Como instalar o ESP32 na IDE do Arduino?
O ESP32 não é uma placa padrão do Arduino e por esse motivo não vem junto com a IDE, para resolver esse problema é só seguir os passos a seguir:

Selecione o textbox da imagem abaixo marcado com a cor amarela e insira este link: https://dl.espressif.com/dl/package_esp32_index.json depois clique no botão ‘OK’.

Feito o passo acima é só ir em ferramentas, placa e selecionar opção gerenciador de placas como na imagem abaixo:

Esse é o ultimo passo para a instalação completa do ESP32 na IDE do Arduino. Após fazer a tarefa anterior, é só clicar no textbox e digitar “ESP32” que irá aparecer “esp32 by Espressif Systems”, clique no botão instalar. Pronto, instalação concluída e deve ficar como na imagem abaixo:

Primeiro Teste Pratico “Hello World”
O ESP32 não é como o Arduino que é só plugar e gravar o código, mas ESP32 precisa de uma atenção maior.
Diagrama ESP32 e LED

Código
const int pin = 13; // 'pin' representa a porta do
void setup() {
Serial.begin(115200); // Define a baudrate de 115200
pinMode(pin, OUTPUT); // Habilita G13 como saida
}
void loop() {
digitalWrite(pin, HIGH); // Liga o pino G13
Serial.println("on"); // Imprime mensagem "on" na serial
delay(500); // Atraso de meio segundo
digitalWrite(pin, LOW); // Desliga o pino G13
Serial.println("off"); // Imprime mensagem "off" na serial
delay(500);
}
Selecionar Modelo para Compilação ESP32 Dev Module
Clique em ferramentas, depois placa, depois selecione a opção ESP32 Dev Module e mantenha as configurações padrão da segunda imagem abaixo.


Exportação do Código
Quando o ESP32 é novo nas primeiras gravações não se torna necessário fazer o seguinte processo, entretanto, conforme o uso acaba sendo obrigatório.

Perceba que na imagem acima fica aparecendo uns pontilhados “…..____…..____…..___” esse comportamento é basicamente um “aguardo do modo boot” e isso fica até um determinado período de tempo, caso não entre no modo boot vai aparecer a seguinte mensagem: Timed out waiting for packet header.
Para resolver o problema acima é só pressionar o botão boot até que os pontilhados e tracejados sejam interrompidos, logo em seguida será exibido um monte de mensagens de upload quando isso ocorrer poderá soltar o botão de boot.
Funcionamento
O funcionamento a seguir é apenas demonstrativo mas há uma ótima aplicação do ESP32 aqui no site que é com o Aplicativo Orion que foi feito para facilitar a construção de uma estação meteorológica, no qual é usado para se comunicar com o servidor.
Considerações
Contudo, o ESP de fato é um ótimo microcontrolador para inúmeras aplicações por ser carregado de funcionalidades que facilitam para o desenvolvedor. Entretanto, sua leitura ADC não é o das melhores e acaba sendo seu principal ponto negativo, embora tenha métodos de solucionar.
Você precisa fazer log in para comentar.