Você está na página 1de 19

01/05/2020 Conhecendo o ESP32 | Curto Circuito

HOME  BLOG  IOT  CONHECENDO O ESP32

CONHECENDO O ESP32

 October 31, 2018

Data: Outubro 31, 2018 | Categorias: IoT , ESP32 | Tags: wireless , nodemcu , iot , esp8266 , esp32 | Autor: Blog da Curto

          Você conhece o ESP32? Sabe a diferença entre o ESP32 e o ESP8266? Neste tutorial vamos
fazer a comparação dos sistemas, pinagem e comunicação entre o ESP32 e o ESP8266, além

disso, vamos apresentar alguns programas que podem ser utilizados para realização do
projeto. Com isso, você será capaz de concluir qual é a melhor placa para o seu trabalho.

Aproveite e boa leitura!



ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 1/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

ESP32: Internet of Things 

          Desenvolvido pela empresa Espressif, o ESP32 apresenta-se como um meio inovador no


desenvolvimento de projetos automatizados. Esse pequeno componente demonstra ser mais

versátil do que seu antecessor, o ESP8266, pois além do clássico módulo de comunicação Wi-Fi,
apresenta um sistema com processador Dual Core, Bluetooth híbrido e múltiplos sensores

embutidos, tornando a construção de sistema como internet das coisas (IoT) muito mais
simples e compacto.

          O objetivo dessa primeira postagem, será a apresentação introdutória dos principais


componentes, hardware, sistema operacional e funções básicas, com exemplos práticos e

lógica de programação detalhada.

         Mas afinal, o que é Internet das Coisas?  Entende-se por “coisa” qualquer objeto que possua
um sistema eletrônico embutido, capaz de transmitir informações a rede, sem a necessidade
de interações humanas. É considerado como um tipo de automação sem fio, controlada pela

internet.

ESP8266 vs. ESP32

          Para expressar melhor as qualidades presente nesta placa, observe a tabela apresentada
abaixo, onde realizaremos uma breve comparação entre os sistemas operacionais de um

ESP8266 e um ESP32.


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 2/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

          O ESP32 apresenta-se como um sucessor digno, afinal, dispõe de memória SRAM de 520 KB,
memória flash de 16MB, dois núcleos de processamento em arquitetura Tensilica LX6 capaz de
operar em 240 MHz,  Bluetooth híbrido (clássico e BLE), tensão operacional de 2,3V á 3,6V,

conector externo antena IPEX/PCB, redução de problemas com instabilidade, quantidade maior
de portas programáveis, múltiplos sensores, cristal oscilador 32KHZ e criptografia com chave
RSA de 4096 bits, ou seja, flexibilidade operacional e maior segurança na construção de

sistemas automatizados.

          No diagrama apresentado abaixo, demonstraremos um breve exemplo sobre a

distribuição dos componentes presentes em um ESP32.


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 3/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

Pinagem ESP32

          Inicialmente, iremos explorar o desenvolvimento de programações através do Arduino IDE,


por ser uma plataforma mais simples e popular entre aqueles que estão iniciando no mundo

dos sistemas embarcados. Analisando a pinagem de um ESP32, podemos encontrar 34 portas


GPIO, 3 SPI, 2 I2S, 18 canais ADC, 3 UART, 10 pinos de leitura capacitiva e PWM.  Na imagem abaixo,
será apresentado um breve resumo das funções presentes em cada pino.


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 4/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

          A legenda demonstrada acima, indica que os valores destacados em verde serão


utilizados na declaração de pinos em uma programação via Arduino IDE. Portanto, ler a entrada
analógica de um sensor Touch, por exemplo, o sensor presente no pino GPIO04 (D4), o
programador poderá optar por duas opções: Declarar o pino o 4, ou touch T0 como INPUT.

ESP32 na IDE do Arduino 


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 5/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

          Umas das alternativas de software mais simples utilizadas no desenvolvimento inicial de


programações em placas ESP tem sido a plataforma de desenvolvimento Arduino, pois, este
possui uma grande comunidade de desenvolvedores, que costumam disponibilizar diversos
exemplos e projetos de forma Open Source (gratuita). A transferência de programações a
qualquer microcontrolador, exigirá a seleção de pelo menos um dos modelos de placas
compatíveis com o software, no caso de placas ESP32 ou similares, será preciso adicionar um
novo conjunto nas opções de gerenciamento de placas, no menu Arquivo >> Preferências.  Na
opção URLs Adicionais para Gerenciamento de Placas, digite a seguinte URL:

https://dl.espressif.com/dl/package_esp32_index.json.

          Caso haja outras URLs adicionadas, digite uma vírgula entre eles para separa-los. Confirme
a adição do conjunto de placas ESP32 abrindo o menu Ferramentas e acessando a opção
Placa, o modelo utilizado por placas padrão como o DOIT ESP32, será  o ESP32 Dev Module. 
 

          Para testar a comunicação entre a placa e o software, transfira a seguinte programação:


 


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 6/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

// Projeto Curto Circuito – Blynk ESP32

void setup()
{
pinMode(2, OUTPUT);
}

void loop()
{
digitalWrite(2, HIGH); // LED Liga
delay(1000); // Espera 1 segundo
digitalWrite(2, LOW); // LED Desliga
delay(1000); // Espera 1 segundo
}

          O exemplo transferido terá como função piscar o LED D2  que encontra-se embutido na


própria placa. Se estiver familiarizado com a programação de placas Arduino ou similares, o
desenvolvimento inicial com ESP32 será relativamente simples, afinal, a programação escreve-
se no padrão comum da linguagem C, declarando os componentes como entradas (INPUT) ou

saídas (OUTPUT), controlando o nível lógico com HIGH-1 ou LOW-0 (Liga e desliga), e dando
pequenas pausas com delay em milissegundos (1 segundo = 1000 milissegundos).

          Em algumas situações, poderá ocorrer um erro ao tentar transferir uma programação,


neste caso, pressione o botão BOOT quando a mensagem “Connecting” surgir, ou quando a
barra de progresso estiver cheia.

          Para auxiliar no desenvolvimento de futuros projetos, abra o Arduino IDE clique em Sketch
>> Incluir Biblioteca >> Gerenciar Bibliotecas. Escreva “ESP32” na barra de pesquisa do
gerenciador e procure adicionar ao menos uma biblioteca compatível, com exemplos e
funções próprias, orientando a leitura de sensores e componentes presentes na placa ESP32.


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 7/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

Aplicações Práticas

          A construção de programações servirá como auxilio no entendimento referente a placas


ESP32, e, desse modo, iremos explorar o funcionamento dos principais sensores e portas
programáveis, aplicando algumas funções e lógicas de manuseio simples, por meio da
plataforma Arduino IDE.

          Para concluir as atividades desse post, tenha em mãos os seguintes componentes:

Placa DOIT ESP32;

Led Difuso Vermelho - 5mm;

Resistor 1K - 1/4W - 5%;

Kit Jumper Macho Macho;

Protoboard 400 Pontos;

Potenciômetro Linear 1K - L20.

          Você pode compra-los clicando nos links acima ou visitando nosso

site: www.curtocircuito.com.br.

Sensor Capacitivo ESP32

          O ESP32 dispõe de dez pinos de leitura capacitiva, que nada mais são do que sensores
capazes de interagir com de objetos condutores, variando a resistência de acordo com a
leitura coletada. Tais sensores estarão distribuídos entre as seguintes portas GPIOS:


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 8/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

          O funcionamento do sensor capacitivo tomará como base a construção de uma


programação simples, em que um componente luminoso permanecerá acionado sempre que
o pino T5 estiver em contato com algum objeto condutor. A construção do circuito elétrico
deste exemplo será simples, basta conectar o terminal positivo do LED ao pino D13 (GPIO13), um
resistor de 1KΩ entre o terminal negativo e um dos pinos GND da placa, e um jumper ao pino D12
(GPIO12).  

          Placas ESP32 excedem a largura máxima da placa Protoboard, mas isto não será visto
como um problema inicialmente, pois o exemplo irá utilizar poucos componentes.
 
 

          Transfira a programação a seguir:


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 9/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

// Projeto Curto Circuito – ESP32: Interruptor Touch


int led = 13; // Pino D13 do ESP
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(115200);
Serial.println("ESP32 Touch Interrupt Test");
}

void loop()
{
int cap = touchRead(4); // Direciona a leitura ao pino Touch T0
if (cap < 50) // Se o valor do sensor for menor que 50
{
digitalWrite(led, 1); // LED Liga
Serial.println("LED ON");

}
else {
Serial.println("LED OFF");
digitalWrite(led, 0); // LED Desliga

}
Serial.println(cap); // Escreve o valor coletado no sensor
delay(500);
}

          O funcionamento da programação será baseado na leitura do sensor capacitivo T5, os


valores coletados no sensor serão armazenados na variável int cap e interpretados pela
função touchRead(). A lógica presente na linha if (cap < 50) diz que o LED acionará sempre que
a leitura da variável estiver abaixo de 50, neste caso, abra o monitor serial do software de
programação, e procure passar o dedo sob a ponta do jumper conectado ao GPIO12.
 
 
 

 
 
 


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 10/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

A leitura será mantida em valores acima de 50, enquanto o jumper estiver fora do contato com
objetos condutores. 

 
 

          Objetos comuns como Smartphones e tablets, possuem sistemas integrados com o


funcionamento similar a este simples exemplo de interruptor táctil, afinal, a maioria
das tecnologias eletrônicas utilizam esse tipo de sensor para interações humanas, controlando
sistemas computacionais com apenas um toque.

Sensor Hall ESP32

          É um transdutor que altera o valor da tensão de saída ao interagir com magnetismo,


sensores como este são utilizados para analisar o efeito Hall (ou tensão de hall), que, de forma
resumida, seria um estudo voltado a aplicação de um campo magnético sob objetos
condutores, que por sua vez geram um desvio na corrente elétrica presente no condutor.

          O objeto condutor utilizado na medição da tensão de Hall, consistirá nos arredores do


módulo ESP-WROOM-32 ( chip metálico), e, para gerar o campo magnético basta aplicar um

ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 11/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

imã qualquer sob o ele. A programação deste sensor irá utilizar uma função de leitura própria,
capaz de analisar o magnetismo em placas ESP32,o hallRead(). A construção do circuito elétrico
tomará como base o exemplo anterior, terminal positivo do LED no pino D13 (GPIO13), um resistor
de 1KΩ entre o terminal negativo e um dos pinos GND da placa. 

          A programação abaixo irá acionar um LED quando houver presença de um campo


magnético e indicar a intensidade do hall.

// Projeto Curto Circuito – ESP32:Análise de Hall

int led = 13; // Pino D13 do ESP


void setup()
{
Serial.begin(115200); // Taxa de transmissão
}
void loop()
{
int hall = hallRead(); // Armazena os valores de leitura
if (hall < 0) // Se o valor do sensor for menor que 0
{
digitalWrite(led, 1); // LED Liga
}
Serial.println("Hall valor:");
Serial.println(hall); // Exibe o valor no monitor serial
delay(1000); // Intervalo de 1 segundo
}

          Abra o monitor serial, e observe que o valor, inicialmente, se apresenta de forma positiva,
porém, quando o imã comum estiver próximo ao módulo, haverá um desvio na corrente,

gerando uma diferença de potencial que demonstra-se através das alterações na escala de
leitura, que tendem a um valor negativo, indicando assim o desvio dos valores, e a intensidade
do campo magnético ao redor do chip. 


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 12/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

          Umas das principais aplicações para este tipo de sensor poderá ser encontrado em
máquinas industriais, por exemplo, como meio de medir a distância ou velocidade de
aproximação de peças, aplicação de imãs bipolares no controle de sinais, cilindros
pneumáticos, ou até mesmo objetos corriqueiros como Impressoras comuns, onde, o hall será
utilizado como forma de identificar o nível ou a ausência de papel.

Controle PWM ESP32

          O PWM (Modulação de Largura de Pulso) é uma técnica adotada por muitos


Microcontroladores, por ser uma forma eficiente de controlar sinais analógicos
digitalmente. Este tipo de pulso encontra-se em todos os pinos GPIO de um ESP32. 

          Sinais analógicos variam continuamente, sendo por muitas vezes difícil definir o valor real,
enquanto os valores digitais possuem uma variação mais previsível, alternando entre dois
níveis lógicos, ligado (0) e desligado (1). O controle PWM será responsável por codificar tais
sinais, onde uma onda quadrada será modulada para receber a leitura analógica, tornando-a

ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 13/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

digital e por fim ajustando-a de acordo com a amplitude desejada. Na figura abaixo, o pulso
está codificando 3 sinais analógicos a 10%, 50% e 90%, então se houver, por exemplo, um sinal
analógico de 5V sendo codificado a 10%, será obtido um valor analógico de 0,5V. 

          Um ciclo completo de um sinal será o momento em que o mesmo formar uma onda, no
exemplo demonstrado acima, cada quadrado/retângulo será considerado como um ciclo, e a
distância entre eles  é o tempo de espera na repetição do sinal. A aplicação de controle PWM
em placas ESP32, necessitará de algumas funções específicas, sendo que uma delas requer a
construção de três variáveis lógicas para definir o valor da frequência, o canal de controle e a
resolução do ciclo.

          A frequência, como o próprio nome sugere, irá influenciar na quantidade de ciclos de


acordo, e o tempo entre eles será determinado por um cálculo simples: T = 1/F. Portanto, se o
valor da frequência for igual a 500, o tempo entre cada ciclo será igual a 2 milissegundos.  A
resolução irá determinar quantos bits serão utilizados na representação de cada amostragem
do sinal, por exemplo, se estiver configurada em 1 bit, então a amostragem será capaz de
receber apenas dois valores 0 (OFF) e 1 (ON), no caso de 8 bits será 000, 001, 010, 011, 100, 101, 110, 111. E
por fim, o channel será utilizado como forma de conectar as informações do pulso,

ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 14/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

armazenando os resultados em um único canal, e possibilitando a aplicação de tais


informações ao controle de outros componentes.
         Então, no caso de controlar o PWM em um LED, por exemplo, utilizaremos as funções:
ledcSetup(channel, freq, resolution)  e  ledcAttachPin(led, channel)

           Onde: 

ledcSetup: Armazena os parâmetros do pulso;


ledcAttachPin: Atribui o canal a um componente, controlando o pulso do mesmo.

           A programação abaixo utilizará tais funções no controle de luminosidade de um LED,


alternando a intensidade através da leitura de um sensor capacitivo.  

// Projeto Curto Circuito – ESP32: Controle PWM de um LED

int led = 13; // pino D13 do ESP32


int freq = 500; // Frequência 500 Hz
int channel = 0; // Canal 0
int resolution = 8; // Resolução 8 bits

void setup()
{
Serial.begin(115200);
ledcSetup(channel, freq, resolution);
ledcAttachPin(led, channel);

}
void loop()
{
cap = touchRead(T5); // Sensor Capacitivo T0
Serial.println(cap);
ledcWrite(channel, (cap)*10); // Reduz a luminosidade do LED de acordo com o valor d
delay(500);
}

 
 

          A função ledcWrite(channel, (cap)*10) irá coletar o valor de leitura do sensor capacitivo e


multiplica-lo por 10, para alternar a intensidade da luminosidade no LED.


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 15/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

        Esse tipo de pulso costuma ser aplicado ao controle de alguns parâmetros em


componentes, influenciando na intensidade, velocidade, emissões sonoras, em fim, qualquer
parâmetro que possa ser influenciado pelo ajuste do sinal elétrico.

ADC – Portas Analógicas ESP32


          Portas analógicas são comumente aplicadas ao controle e análise de sensores. Os 18 pinos
analógicos disponíveis em placas ESP32, operam com resolução em 12 bits, tornando a faixa de

leitura de 0 á 4095. Trabalhar com qualquer pino ADC será exatamente igual ao procedimento
utilizado em placas Arduino,  realizando leituras e controle por meio de funções como
analogRead e analogWrite. Porém, ao conectar-se ao Wi-Fi, por exemplo, os pinos ADC2 não
irão fornecer leituras, pois, até o presente momento, tais pinos serão utilizados como
alimentação para o módulo, portanto, se desejar atribuir uma leitura analógica a qualquer
programação conectada a internet, utilize os pino ADC1.  

          Utilize a programação demonstrada anteriormente, substituindo a função  touchRead()


por analogRead().


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 16/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

// Projeto Curto Circuito – Controle Analógico

int led = 13; // LED conectado ao pino D13


int cap = 0; // Variável de leitura capacitiva
int analog = 0; // Variável de leitura analógica
// ----- PWM -----
int freq = 0;
int channel = 0;
int resolution = 8;

void setup()
{
Serial.begin(115200); // Taxa de transmissão 115200 dBs
ledcSetup(channel, freq, resolution);
ledcAttachPin(led, channel);
}
void loop()
{
analog = analogRead(12); // Substitua o touchRead() por analogReady()
freq = analog;
Serial.println("Leitura do Potenciômetro:");
Serial.println(analog);
cap = touchRead(T7);
if (cap < 50) {
ledcWrite(channel, analog);
}
delay(500);
}

          Para a atividade proposta, adicione um potenciômetro linear de 1K ao circuito, conectando


o terminal no meio do componente ao pino D12, os demais terminais nos pinos GND e 3,3 V do
ESP, e um jumper no pino D27(T7) como forma de acionar o sensor capacitivo.

          A função "if" determina que ao pressionar o sensor capacitivo T7, a luminosidade do o LED

ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 17/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

será ajustada de acordo com os valores de leitura analógica presente no Channel 0. Esse canal
estará conectado ao potenciômetro, que será utilizado para ajustar a faixa de leitura do pino
D12 entre 0 á 4095.O potenciômetro será um dos meios mais comuns empregados a analisar o
funcionamento de sinais analógicos, pois tal componente demonstra de forma simples a
variação do sinal, através de uma diferença no potencial elétrico.

Considerações Finais

          Este pequeno componente apresenta-se como uma opção completa no desenvolvimento


de sistemas automatizados, já que dispõe de tantas opções para a interação com projetos sem
fio, processamento  de informações de forma ajustável, sensores embutidos e múltiplas
funções próprias que simplificam a lógica de programação para placas ESP32. Descrever todas
as possibilidades em um único post seria equivalente a construção de um artigo científico, mas
é claro que não iremos parar por aqui, nas próximas postagens, trabalharemos com a
comunicação via módulo Wi-Fi, divisão de processamento, memória RTC, e todo conhecimento
obtido será aplicado a um breve projeto prático, com o intuito de explorar as demais
oportunidades presente em modelos da Placa Doit ESP32.

          Gostou do tutorial? Curta nossa página e compartilhe! Conhecimento bom é


conhecimento compartilhado!

 
 

 
 

 

 
ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 18/19
01/05/2020 Conhecendo o ESP32 | Curto Circuito

← Anterior Próximo →

0 comentários Classificar por Mais antigos

Adicione um comentário...

Plugin de comentários do Facebook

Copyright © 2016-2020 Curto Circuito Componentes Eletrônicos Ltda Me | CNPJ: 26.191.165/0001-81


ITEM(S) IN YOUR CART 
https://www.curtocircuito.com.br/blog/conhecendo-esp32 19/19

Você também pode gostar