0% acharam este documento útil (0 voto)
14 visualizações64 páginas

Aula02 - Explorando ESP32 WROOM

O documento explora o módulo ESP32-WROOM, destacando suas capacidades de comunicação Wi-Fi, Bluetooth e múltiplos sensores, facilitando a construção de sistemas de Internet das Coisas (IoT). Ele detalha a configuração dos pinos GPIO, ADC, PWM, e outras funções, além de apresentar exemplos práticos de código para utilização com a IDE Arduino. Também menciona o Wokwi como uma ferramenta de simulação para projetos eletrônicos com ESP32.

Enviado por

Wilton Moreira
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações64 páginas

Aula02 - Explorando ESP32 WROOM

O documento explora o módulo ESP32-WROOM, destacando suas capacidades de comunicação Wi-Fi, Bluetooth e múltiplos sensores, facilitando a construção de sistemas de Internet das Coisas (IoT). Ele detalha a configuração dos pinos GPIO, ADC, PWM, e outras funções, além de apresentar exemplos práticos de código para utilização com a IDE Arduino. Também menciona o Wokwi como uma ferramenta de simulação para projetos eletrônicos com ESP32.

Enviado por

Wilton Moreira
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 64

Internet das Coisas - IoT

Explorando ESP32 WROOM


Professor:
Wilton Moreira Ferraz Junior
ESP32-WROOM

Desenvolvido pela empresa Espressif possui 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.

Atende a uma ampla variedade de aplicações, desde redes de sensores


de baixa potência até as tarefas mais exigentes, como codificação de
voz, streaming de música e decodificação de MP3.
ESP32-WROOM

O chip ESP32-D0WDQ6 é
projetado para ser escalável e
adaptável. Existem dois núcleos
de CPU que podem ser
controlados individualmente, e
a frequência do clock da CPU é
ajustável de 80 MHz a 240 MHz.
ESP32-WROOM
ESP32-WROOM
Os pinos GPIO 34, 35, 36 e 39 são apenas de
entrada.
TX0 e RX0 (Serial0) são usados ​para
programação serial.
TX2 e RX2 podem ser acessados ​como Serial2.
Todos os pinos GPIO suportam PWM e
interrupções.
O LED integrado está conectado ao GPIO2
Alguns pinos GPIO são usados ​para interfacear
memória flash e, portanto, não são mostrados.
ESP32-WROOM
Pinos GPIO

Os pinos GPIO (General Purpose Input Output)


são portas que servem como interface entre o
microcontrolador e periféricos como sensores,
atuadores ou até outros circuitos integrados e
microcontroladores.
A imagem ao lado a pinagem de um DOIT
Esp32 DevKit v1 de 30 pinos. Ele tem 25 pinos
GPIOs com níveis de tensão 0V e 3.3V (não
tolera 5V) para níveis digitais 0 e 1
respectivamente, com corrente máxima de
12mA por GPIO.
ESP32-WROOM
Pinos GPIO

A maioria desses 25 pinos GPIO do ESP32


pode funcionar como entrada ou saída
digital simples. Essas funções de entrada e
saída podem ser acessadas através do
framework arduino pelas funções
pinMode(), digitalRead() e digitalWrite().
ESP32-WROOM
Pinos pullup
Nem todos os pinos têm pullup de entrada.
Você precisa de pullup externo nesses pinos ao
usá-los como pullup de entrada.
Pinos com pull up interno INPUT_PULLUP
GPIO14
GPIO16
GPIO17
GPIO18
GPIO19
GPIO21
GPIO22
GPIO23
ESP32-WROOM
Pinos GPIO ADC

O ADC (Analog Digital Converter), é o circuito


capaz de converter uma grandeza analógica
de entrada (tensão) em uma representação
digital (valor inteiro).
No ESP32 existem 2 conversores AD, ADC1
com 8 canais e o ADC2 com 10 canais. Ambos
os conversores possuem resolução de 12 bits
alcançando 4096 valores distintos.
ESP32-WROOM
Pinos GPIO ADC
A faixa de entrada pode ser alternada
opcionalmente para níveis entre 0-1V, 0-1.34V,
0-2V ou 0-3.6V. O ESP32 tem 15 pinos
disponíveis para esta função:
GPIO 36 (ADC1_CH0 ) GPIO 15 (ADC2_CH3)
GPIO 39 (ADC1_CH3) GPIO 13 (ADC2_CH4)
GPIO 32 (ADC1_CH4) GPIO 12 (ADC2_CH5)
GPIO 33 (ADC1_CH5) GPIO 14 (ADC2_CH6)
GPIO 34 (ADC1_CH6) GPIO 27 (ADC2_CH7)
GPIO 35 (ADC1_CH7) GPIO 25 (ADC2_CH8)
GPIO 4 (ADC2_CH0) GPIO 26 (ADC2_CH9)
GPIO 2 (ADC2_CH2)
ESP32-WROOM
PWM (Pulse Width Modulation)
A Modulação por Largura de Pulso é usada para pulsar rapidamente um sinal digital por
um condutor. Isso permite controlar dispositivos como motores, aquecedores, LEDs e
luzes, ajustando a intensidade ou a frequência desses aparelhos.
ESP32-WROOM
Pinos PWM

O controlador ESP32 LED PWM possui 16 canais


independentes que podem ser configurados para
gerar sinais PWM com propriedades diferentes.
Todos os pinos que podem atuar como saídas
podem ser usados como pinos PWM (apenas os
pinos GPIOs 34 a 39 não podem gerar PWM).
ESP32-WROOM
Pinos GPIO Touch
Esses pinos funcionam como sensores capacitivos,
são sensíveis a objetos com alguma carga elétrica
como a pele humana. Com isso podem ser
utilizados para detectar o toque dos dedos. Os
pinos disponíveis nessa placa são:
GPIO 4 (T0)
GPIO 2 (T2)
GPIO 15 (T3)
GPIO 13 (T4)
GPIO 12 (T5)
GPIO 14 (T6)
GPIO 27 (T7)
GPIO 33 (T8)
GPIO 32 (T9)
ESP32-WROOM
Pinos GPIO DAC

Existem 2 pinos DAC (Digital to Analog Converter)


de 8 bits no ESP32 para converter valores digitais
em saídas com níveis de tensão analógica. Estes
são os pinos disponíveis:
GPIO 25 (DAC1)
GPIO 26 (DAC2)
Usa-se a função dacWrite() para uma conversão
digital-analógica. São passados como parâmetros
o pino GPIO de saída, e um valor de 0 (0V) a 255
(3.3V).
ESP32-WROOM
Outras funções

Todos os pinos GPIOs também podem ser


configurados como fontes de interrupções
externas. Interrupções “interrompem” a
tarefa que o processador está executando
para atender a rotina correspondente aquela
interrupção. Após concluir a rotina ele
retorna a tarefa anterior.
ESP32-WROOM
Outras funções

O pino GPIO 0 compartilha algumas funções


como Touch e ADC porém é utilizado no
modo de gravação e em alguns casos ele é
até omitido da placa para o usuário.
ESP32-WROOM
Outras funções

Alguns GPIO podem ser usados somente


como pinos entrada:
GPIO 34
GPIO 35
GPIO 36
GPIO 39
ESP32-WROOM
Outras funções
Alguns GPIOs alteram seu estado lógico ou
emitem sinais PWM durante a inicialização
causando resultados inesperados. Considere
utilizar outros pinos se precisar de uma saída mais
confiável mesmo durante o tempo de inicialização.
GPIO 1
GPIO 3
GPIO 5
GPIO 6 ao GPIO 11 (Pinos utilizados para
conectar Flash SPI integrada do ESP32).
GPIO 14
GPIO 15
ESP32-WROOM
Outras funções

Também existem pinos disponíveis que não


fazem parte do GPIO do ESP32 como:
VIN: Entrada de alimentação. Faixa
recomendada de 7-12V.
GND: Ground.
EN(Enable): Pino de ativação do regulador de
3,3V. Levando esse pino ao GND, o ESP32 será
desligado.
3V3: Saída de 3.3V. Corrente máxima de 500mA.
Conhecendo Wokwi
Conhecendo Wokwi
Wokwi é um simulador de eletrônica online. É possível simular Arduino, ESP32 e
muitas outras placas, componentes e sensores populares. Acesse o endereço
https://wokwi.com/
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi

Nesta aba encontra-se a área de


construção do código a ser simulado
Conhecendo Wokwi

Nesta aba encontra-se a área de codificação visual


dos componentes eletrônicos da simulação
Conhecendo Wokwi

Nesta aba é destinada a inclusão e gerenciamento


de bibliotecas utilizadas no projeto de simulação
Conhecendo Wokwi

Inicia a simulação
Conhecendo Wokwi

Adicionar
Componente
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
Calculando o resistor
Verificar o valor da tensão elétrica da fonte de alimentação.
3.3V - 12mA

3.3V - 12mA
3.3V - 500mA
Calculando o resistor

LED escolhido: Difuso, vermelho e de 5 mm.


verificar as especificações técnicas do LED escolhido
(1) tensão de operação; (2) corrente de operação;

0,02 A
Calculando o resistor

�� − �푳� �, � − �
�� = = = �� Ω
�� �, ��
Conhecendo Wokwi
Conhecendo Wokwi
Conhecendo Wokwi
LED piscante
Análise do código

void setup() {

pinMode(22, OUTPUT);

Um sketch do Esp32 deve ter uma função setup() e uma função loop(), do
contrário, não funcionará. A função setup() é executada somente uma vez no
início do programa, e é nela que você emitirá instruções gerais para preparar
o programa antes que o loop principal seja executado, como a definição dos
modos dos pinos, das taxas de transmissão serial etc.
LED piscante
Análise do código

void setup() {
pinMode(22, OUTPUT);
}
A função pinMode, que diz ao Esp32 que deseja-se definir o modo de um
dos pinos como Saída (Output), e não Entrada (Input). Dentro dos
parênteses, coloca-se o número do pino e o modo (OUTPUT ou INPUT).
Dessa forma, essa instrução está simplesmente dizendo ao Esp32 que o
pino digital 22 deve ser definido como modo OUTPUT.
LED piscante
Análise do código
void loop() {
digitalWrite(22, HIGH);
delay(1000);
digitalWrite(22, LOW);
delay(1000);
}
A função loop() é a função principal do programa e executa continuamente
enquanto o Esp32 estiver ligado. Todas as declarações dentro da função loop()
(dentro das chaves) são executadas uma de cada vez, passo a passo, até que se
alcance o fim da função; nesse ponto, o loop reinicia desde o princípio e assim
infinitamente, ou até que o Esp32 seja desligado ou o botão Reset pressionado.
LED piscante
Análise do código

digitalWrite(22, HIGH);
Ela escreve um valor HIGH ou LOW para o pino dentro da instrução .
Quando define-se um pino como HIGH, está enviando 3,3 volts para ele.
Quando define como LOW, o pino se torna 0 volt, ou terra. Essa
instrução, portanto, envia 3,3 V para o pino 22 e acende o LED.
LED piscante
Análise do código

delay(1000);
Essa instrução simplesmente diz ao Esp32 para esperar 1.000 milissegundos (há
1.000 milissegundos em um segundo) antes de executar a instrução seguinte.

digitalWrite(22, LOW);
O que desliga a força que vai para o pino digital 22 e apaga o LED. Então, há
outra instrução de espera por mais 1.000 milissegundos, e depois a função
termina. Entretanto, como essa é sua função loop() principal, a função reiniciará
desde o princípio.
ESP32-WROOM
Exemplo GPIO - Entrada e Saída
#define botao 4
#define led 15
int pinStatus = 0;
void setup(){
Serial.begin(115200);
pinMode(botao, INPUT);
pinMode(led, OUTPUT);
}

void loop(){
pinStatus = digitalRead(botao);
digitalWrite(led, pinStatus);
delay(500);
}
ESP32-WROOM
Exemplo GPIO - PWM

#define potenciometro 33
int poten;
void setup(){
Serial.begin(115200);
}

void loop(){
poten = analogRead(potenciometro);
Serial.println(poten);
delay(500);
}
ESP32-WROOM
Exemplo GPIO - Touch
//configurando pinos
#define touchPin T0 //corresponde ao pino D4
#define ledPin 23
//valor limite pode ser alterado
#define valLimite 20
//variável para armazenar o valor do pino touch
int valorTouch;

void setup(){
//inicializando a saída serial com 115200 bps
Serial.begin(115200);
//inicializando ledPin como saída
pinMode(ledPin, OUTPUT);
}
ESP32-WROOM
Exemplo GPIO - Touch
void loop(){
//lê o pino touch e armazena na variável
valorTouch = touchRead(touchPin);
Serial.println(valorTouch);
//verifica se o valorTouch é menor que valLimite
// se for, define ledPin como HIGH
if (valorTouch < valLimite) {
//ligar o LED
digitalWrite(ledPin, HIGH);
Serial.println(" - LED ligado");
} else {
// desligar o LED
digitalWrite(ledPin, LOW);
Serial.println(" - LED ligado");
}
delay(500);
}
Conhecendo a IDE Arduino
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo

A transferência de programas para 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, digites a seguintes URLs:

http://arduino.esp8266.com/stable/package_esp8266com_index.json,
https://dl.espressif.com/dl/package_esp32_index.json.
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo
IDE Arduino
Conhecendo

Existem diferentes
modelos de placas. No
software é preciso
selecionar o modelo da
placa e a porta USB
utilizada antes de começar
a programação. Neste
curso será utilizado o
modelo Esp32 wroom 32
IDE Arduino
Conhecendo
LED piscante
Montagem Prática

Clique neste botão para enviar o


código fonte para a placa Esp32

Você também pode gostar