Neste artigo vamos falar sobre
os detalhes internos e a pinagem do ESP32. Vou te mostrar como fazer a
identificaĆ§Ć£o correta dos pinos olhando o datasheet, quais deles funcionam como
OUTPUT/INPUT, como ter uma visĆ£o geral sobre os sensores e perifĆ©ricos que o
ESP32 nos oferece, alĆ©m do boot. Portanto, acredito que, com o vĆdeo abaixo,
vou conseguir sanar diversas dĆŗvidas que tenho recebido em mensagens e
comentĆ”rios sobre as referĆŖncias do ESP32, entre outras informaƧƵes.
NodeMCU ESP-WROOM-32
Aqui temos o PINOUT do
WROOM-32 que serve como uma boa referĆŖncia para quando vocĆŖ vai programar.
Importante prestar atenĆ§Ć£o nas GPIOs (General Purpose Input/Output), ou seja,
as portas programĆ”veis de entrada e saĆda de dados que, aqui, ainda podem ser
um conversor AD ou um pino de Touch, como Ć© o caso do GPIO4, por exemplo. Isso
tambĆ©m ocorre com o Arduino, no qual os pinos de entrada e saĆda tambĆ©m podem
ser PWM.
ESP-WROOM-32
Na imagem acima temos o ESP32
propriamente dito. SĆ£o vĆ”rios tipos de plaquinhas com caracterĆsticas
diferentes de acordo com o fabricante.
Mas, qual a pinagem correta para eu utilizar meu ESP32?
O ESP32 nĆ£o Ć© difĆcil, tanto
que podemos dizer que nĆ£o existe uma preocupaĆ§Ć£o didĆ”tica em seu entorno. PorĆ©m,
precisamos ser didĆ”ticos, sim. Se vocĆŖ quiser programar em Assembler, tudo bem.
Mas, tempo de engenharia custa caro. EntĆ£o, se tudo quanto Ć© fornecedor de tecnologia
te der uma ferramenta que vocĆŖ demora pra entender como ela funciona, isso vai
virar um problema para vocĆŖ, pois tudo isso vai aumentando o tempo de
engenharia e o produto vai ficando cada vez mais caro. DaĆ minha preferĆŖncia por coisas
fƔceis, aquelas que podem facilitar nosso dia a dia, pois hoje temos que
respeitar o tempo das pessoas.
Voltando ao ESP32, em um
datasheet, como neste acima, temos nos destaques a identificaĆ§Ć£o correta dos
pinos. Muitas vezes o rĆ³tulo no chip nĆ£o coincide com o nĆŗmero real do pino, jĆ”
que temos trĆŖs situaƧƵes: o GPIO, o nĆŗmero seriado e ainda o cĆ³digo da prĆ³pria
placa.
Veja no exemplo abaixo uma
ligaĆ§Ć£o de um LED no ESP e o modo correto de configurar:
Repare que o rĆ³tulo na placa Ć©
TX2, porĆ©m, devemos seguir a identificaĆ§Ć£o correta, como destacada na imagem
anterior. Portanto, a identificaĆ§Ć£o correta do pino serĆ” 17. Na imagem abaixo
vocĆŖ vĆŖ como deve ficar o cĆ³digo.
INPUT / OUTPUT
Ao realizar testes de INPUT e
OUTPUT nos pinos, obtivemos os seguintes resultados:
INPUT nĆ£o funcionou apenas no
GPIO0.
OUTPUT nĆ£o funcionou apenas
nos pinos GPIO34 e GPIO35, que sĆ£o VDET1 e VDET2 respectivamente.
*Os pinos VDET, pertencem ao
domĆnio de energia do RTC. Significa que eles podem ser usados como pinos ADC e
que o ULP-coprocessador pode lĆŖ-los. Podem ser apenas entradas e nunca saĆdas.
Diagrama de Blocos
Esse diagrama expƵe que o
ESP32 tem dual core, tem uma Ɣrea do chip que controla o WiFi, e outra que controla
o Bluetooth. TambĆ©m tem aceleraĆ§Ć£o de hardware para criptografia, que permite a
conexĆ£o com LoRa, rede de longa distĆ¢ncia que permite uma conexĆ£o atĆ© 15km,
isso com uso de uma antena. Ainda observamos o clock generator, real time clock,
e outros pontos que tratam, por exemplo, de PWM, ADC, DAC, UART, SDIO, SPI,
entre outros, que fazem esse dispositivo bastante completo e funcional.
PerifƩricos e Sensores
Digital-only;
Analog-enabled (podem ser
configurados como digital);
Capacitive-touch-enabled
(podem ser configurados como digital);
E outros.
Lembrando que a maioria dos
GPIOs digitais pode ser configurada como pull-up ou pull-down interno, ou
configurada para alta impedĆ¢ncia. Quando configurada como entrada (input), o
valor pode ser lido atravƩs do registro.
GPIO
Analog-to-Digital Converter
(ADC)
O Esp32 integra ADCs de 12
bits e suporta mediƧƵes em 18 canais (analog-enabled pins). O ULP-coprocessador
no ESP32 tambƩm Ʃ projetado para medir as tensƵes enquanto opera em modo sleep,
que permite o baixo consumo de energia. A CPU pode ser despertada por uma
configuraĆ§Ć£o de limite e/ou atravĆ©s de outros gatilhos.
Digital-to-Analog Converter
(DAC)
Dois canais DAC de 8 bits
podem ser usados para converter dois sinais digitais em duas saĆdas de tensĆ£o
analĆ³gica. Estes DAC duplos suportam a fonte de alimentaĆ§Ć£o como referĆŖncia de
tensĆ£o de entrada e pode conduzir outros circuitos. Os canais duplos suportam
conversƵes independentes.
Sensores
Touch Sensor
O ESP32 tem 10 GPIOs de
detecĆ§Ć£o capacitiva que detectam variaƧƵes induzidas ao tocar ou aproximar de
um GPIO com um dedo ou outros objetos.
O ESP32 ainda possui um sensor
de Temperatura e um Sensor Hall interno, porƩm, para trabalhar com eles devem-se
mudar as configuraƧƵes dos registradores. Para mais detalhes acesse manual
tƩcnico atravƩs do link:
Watchdog
O ESP32 tem trĆŖs
temporizadores de vigilĆ¢ncia: um em cada um dos dois mĆ³dulos de temporizador
(chamado o Temporizador de Watchdog Principal, ou MWDT) e um no mĆ³dulo RTC
(chamado RTC Watchdog Timer ou RWDT).
Bluetooth
Interface Bluetooth v4.2
BR/EDR e Bluetooth LE (low energy)
O ESP32 integra um controlador
de ligaĆ§Ć£o Bluetooth e Bluetooth baseband, que executam os protocolos de banda
base e outras rotinas de links de baixo nĆvel, como modulaĆ§Ć£o/desmodulaĆ§Ć£o,
processamento de pacotes, processamento de fluxo de bits, saltos de frequĆŖncia,
etc.
O controlador de ligaĆ§Ć£o opera
em trĆŖs estados principais: standby, connection e sniff. Permite mĆŗltiplas
conexƵes e outras operaƧƵes, como inquiry, page e secure simple-pairing, e,
portanto, permite a Piconet e Scatternet.
Boot
Em muitas placas de desenvolvimento
com USB/Serial incorporado o esptool.py pode redefinir automaticamente a
placa para o modo de inicializaĆ§Ć£o.
O ESP32 entrarĆ” no carregador
de inicializaĆ§Ć£o serial quando o GPIO0 for mantido baixo na reinicializaĆ§Ć£o. Caso
contrƔrio, ele executarƔ o programa em flash.
GPIO0 tem um resistor interno
pullup, entĆ£o, se ele estiver sem conexĆ£o irĆ” setar para alto.
Muitas placas usam um botĆ£o
marcado como “Flash” (ou “BOOT” em algumas placas de desenvolvimento Espressif)
que seta o GPIO0 para baixo quando pressionado.
O GPIO2 tambƩm deve ser
deixado sem conexĆ£o/flutuante.
Nesta imagem acima vocĆŖ vĆŖ um
teste que fiz. Coloquei osciloscĆ³pio em todos os pinos do ESP pra ver o que
acontecia no momento que ele fosse ligado. Descobri que, quando vou pegar um determinado
pino, ele gera oscilaƧƵes de 750 microssegundos, como no destaque ao lado
direito. O que podemos fazer a respeito? Temos vƔrias opƧƵes, como dar um delay
com circuito com transistor, expansor de porta, por exemplo. Destaco que no
GPIO08 Ć© invertido. A oscilaĆ§Ć£o sai para cima e nĆ£o para baixo.
Outro detalhe Ć© que temos
pinos que iniciam em High e outros em Low. Portanto, esse PINOUT Ć© referĆŖncia
quando o ESP32 liga, principalmente quando vocĆŖ estĆ” mexendo com carga para
disparar, por exemplo, um triac, um relĆ©, um contator ou algo de potĆŖncia.
FaƧa o download do PDF
47 ComentƔrios
Boa noite Professor
ResponderExcluirGostaria de saber se Ć© possĆvel utilizar o sensor de oxigĆŖnio dissolvido da DFRobot com o esp32. Tal sensor Ć© desenvolvido para uso com arduino. O link para o sensor Ć© https://www.dfrobot.com/product-1628.html
Desde ja agradeƧo.
OlĆ”. Sim Ć© possĆvel, faƧa a ligaĆ§Ć£o correta da alimentaĆ§Ć£o e o pino de dados em uma entrada ADC do seu ESP32. Depois sĆ³ fazer a leitura do pino atravĆ©s do comando analogRead(). AbraƧo!
ExcluirOlĆ” professor Fernando.
ExcluirEssa leitura analĆ³gica pode ser enviada para outra placa utilizando o protocolo ESP_NOW?
Boa tarde Amigo. Eu nĆ£o estou conseguindo fazer minha ESP-WROOM-32 ler um sensor de corrente SCT013 (30 A). Esse sensor utiliza uma entrada analĆ³gica, no arduino, funciona perfeitamente. O senhor sabe me informar se essa ESP32 tem entradas analĆ³gicas? e quais GPIO seriam?
ResponderExcluirDesde jĆ”, obrigado.
desiste...
ExcluirSĆ³ tem um pino analogico, sabe Deus qual Ć© o pino da tua placa.
ExcluirDo texto acima na pƔgina....
Excluir"
INPUT / OUTPUT
Ao realizar testes de INPUT e OUTPUT nos pinos, obtivemos os seguintes resultados:
INPUT nĆ£o funcionou apenas no GPIO0.
OUTPUT nĆ£o funcionou apenas nos pinos GPIO34 e GPIO35, que sĆ£o VDET1 e VDET2 respectivamente.
*Os pinos VDET, pertencem ao domĆnio de energia do RTC. Significa que eles podem ser usados como pinos ADC e que o ULP-coprocessador pode lĆŖ-los. Podem ser apenas entradas e nunca saĆdas.
"
Ola caio, nunca desista, se tem um problema contorne-o.
Excluirse for trabalhar com projetos problemas sempre surgirĆ£o! dito isso,
vamos sana-los.
se voce tem um sensor que trabalha com leitura analogica que varia de 0 a 5v
o que deve fazer ao utilizalo no esp32 que trabalha em 3v3 seria colocar um divisor de tensĆ£o no pino de saida! no caso de deste SCT013 sensor nĆ£o invasivo, ou seja capta uma corrente indutiva AC.
faƧa o circuito de forma que . o sensor Ʃ alimentado por 5v normalmente ok?
porƩm na saida voce coloca 2 resistores desta maneira:
R1 = 1K
R2 = 2K
onde o r1 uma ponta vai na saĆda do sensor, a outra ponta de r1 vai no r2, e a ultima ponta que sobrou liga no terra, gnd, -, negativo ou como estiver escrito ai no seu sensor!
desta maneira.
o que muda seria o calculo.
agora quando for fazer a conversĆ£o em vez de calcular a divisĆ£o entre 5v / leitura analog, serĆ” 3v3 / leitura analog.
Boa sorte!
e o pino de leitura seria o nĆ³ entre r1 e r2!
ExcluirFernando. Pode alimentar o Esp32 com 5V pelo pino Vin e Gnd?
ResponderExcluirAcho que pode mas nĆ£o tenho certeza. Vi em alguns sites q o VinĆcius e a porta USB aceitam a mesma voltagem, sĆ³ nĆ£o pode usar os dois juntos. VocĆŖ chegou a testar?
ExcluirTambĆ©m tenho essa dĆŗvida amigo! JĆ” tem a resposta? hehe
ExcluirJƔ utilizei e deu certo, mas nunca use as duas alimentaƧƵes ao mesmo tempo.
ExcluirAh uma soluĆ§Ć£o para que quer alimentar com 3,3v e nĆ£o tem uma fonte que forneƧa essa tensĆ£o, basta ligar em sĆ©rie com uma fonte de 5v 2 diodos 1n4001 ou outro. As quedas de tensĆ£o de 0,7v em cada resistor fornecerĆ” a tensĆ£o aproximada para alimentaĆ§Ć£o de 3,3v
Ć³tima resposta , corrigindo ( em cada diodo cairĆ” 0,7Volts) sĆ³ isso mesmo ok
ExcluirNĆ£o aconselho usar 3.3V na alimentaĆ§Ć£O. Quando o WiFi estĆ” ativado a placa consome bastante potĆŖncia. Mesmo alimentando pela USB, se for pelo computador e nĆ£o for uma porta com capacidade de corrente boa vocĆŖ pode obter um brownout. Mesmo um cabo muito comprido na alimentAĆ§Ć£o pela USB que fios bem finos no cabo em alguns casos pode provocar isso. Usando %V vocĆŖ mitiga este aspecto jĆ” que a corrente pode ser menor. Os ESP32 sĆ£o placas manhosas em muitos dos detalhes.
ExcluirCorreĆ§Ć£o 5V e nĆ£o %V
ExcluirDiria que Ć© atĆ© melhor usar 3.3v na alimentaĆ§Ć£o, justamente pelo wifi e outras coisas que consomem muito, NĆ£o Ć© bom confiar no ams1117 integrado da placa, nunca se sabe se Ć© um chip bom ou vagabundo (ex alguns sĆ£o pra 100ma). Eu particularmente sempre alimento pela porta 3v3
ExcluirBom dia, estou iniciando a programar o meu esp32, mas estou tendo problema com a biblioteca BLE, a IDE do ArduĆno diz "Biblioteca invĆ”lida", poderia me ajudar, nĆ£o estou conseguindo programar, pois ele nĆ£o envia o cĆ³digo para a minha placa esp.
ResponderExcluir1. VocĆŖ pode conseguir as 2 bibliotecas que precisa no seguinte endereƧo: https://github.com/nkolban/ESP32_BLE_Arduino
Excluir2. Baixe tambƩm esta biblioteca que o arduino IDE irƔ reclamar dela:
https://github.com/VSChina/ESP32_AzureIoT_Arduino
3. Para efetuar o download do seu script para o ESP32 Ć© necessĆ”rio pressionar o botĆ£o "BOOT";
Espero ter ajudado, boa sorte!!!
Posso usar os modulos (sensor ultrassonico, rele, etc) do arduino no esp32?
ResponderExcluirO esp 32 suporta 5 v nas gpio? E por que muitos sensores operam com 5 v!
ResponderExcluirO esp 32 suporta 5 v nas gpio? E por que muitos sensores operam com 5 v!
ExcluirNĆ£o Ć© possĆvel, terĆ” que realizar um divisor de tensĆ£o do sinal de saĆda do seu sensor.
ExcluirBom dia. Observei que existem placas com o ESP32 com 30 (Doit) ou 38 (NodeMCU) pinos. Essa diferenƧa Ʃ significativa para a escolha de compra?
ResponderExcluirGrato
O pino 3v3 fornece quantos amperes para mĆ³dulos externos?
ResponderExcluirAtƩ 600 mA.
Excluir600 MA, POREM PODE CONSUMIR ATE 250 NO MAXIMO!
ResponderExcluirBom dia. Sou novo nesta Ć”rea e estou com uma dĆŗvida. Estou montando um circuito de monitoramento de cĆ¢mara fria e pretendo utilizar 2 sensores de temperatura dentro da cĆ¢mera (redundĆ¢ncia) e um sensor de temperatura e umidade fora da cĆ¢mara. SerĆ£o portanto 4 portas analĆ³gicas. Pelo que entendi, no NODEMCU posso configurar qualquer IO (ADCnn)como entrada analĆ³gica?
ResponderExcluirOlĆ”. Estou com dificuldades para controlar motores. Estou usando uma ponte H L298N e o ESP. Consigo controlar apenas um motor, sem que o segundo se movimente. Pensei que o problema pudesse estar relacionado Ć pinagem, mas mesmo depois de conferir quais pinos podem ser configurados como saĆda e de testĆ”-los, ainda nĆ£o consigo controlar o segundo motor.
ResponderExcluirEsclarecendo: Consigo controlar qualquer motor, mas apenas a partir dos mesmos pinos. Se conecto ambos os motores e portanto uso outros pinos para o segundo motor, nĆ£o consigo.
Consegui resolver. O problema era no cĆ³digo. Esqueci de colocar o comando ledcWrite para o segundo motor.
Excluirestou com dificuldade no sensor sw420 - nĆ£o estou entendo a pinagem no esp32 - O DO do sensor deve ir em qual pino D4 do ESP32?
ResponderExcluirOlĆ” professor, no meu esp-cam estourou um transistor que fica logo abaixo do LED do flash. Como faƧo para saber que transistor Ć© esse para tentar substituir? nĆ£o acho a informaĆ§Ć£o desses componentes em lugar nenhum!!!!
ResponderExcluirBoa tarde professor, estou precisado usar um circuito divisor de tensĆ£o juntamento com o esp32, vocĆŖ jĆ” mediu ou possui algum documento que diz qual a resistĆŖncia associada ao esp? Ou no caso de usar o mesmo eu nĆ£o preciso levar em consideraĆ§Ć£o?
ResponderExcluirOlĆ” professor, gostaria de saber se senhor ou alguem tem o livraria e esquematico 3d para proteus, estou usando somente parte do sistema esp32, para um projeto.
ResponderExcluirSe alguem puder ajudar ederprestes@hotmail.com
Obrigado!
Oi! Estou com a mesma dĆŗvida... preciso simular o ESP32 no Proteus, mas o componente nĆ£o aparece lĆ”. AlguĆ©m sabe como fazer?
ExcluirTambƩm estou querendo.
ExcluirO esp32 nĆ£o tem biblioteca simulavel para o proteus ainda, jĆ” me informei na symasic e na EDA, sĆ³ esquemĆ”tico mesmo
ExcluirOlĆ” professor, gostaria de saber se Ć© possĆvel usar este sensor com o esp32 € 0,91 46%de desconto | Interruptor do sensor do flutuador do nĆvel de Ć”gua lĆquido da c.a. 100 v para a associaĆ§Ć£o horizontal do tanque de peixes dos aquĆ”rios com controle automĆ”tico do comprimento do flutuador de 85mm
ResponderExcluirhttps://s.click.aliexpress.com/e/sOstpJsM
Uso o ESP32 WRROM 32 com 38 pinos mais 1 GND, tem uns IO que nĆ£o consigo usar por nd sĆ£o eles GPIO 6,7,8,9,10 e 11 nem pra acender um led, vi que estĆ£o ligados a Flash, tem como desativar isso? e usar tais pinos?
ResponderExcluirSerĆ” que consigo montar o projeto speeduino no esp32?
ResponderExcluirBoa tarde Professor. Poderia orientar como corrigir a nĆ£o linearidade de leitura de valores analogicos das GPIOs ADC do ESP32 ?
ResponderExcluirBoa tarde, to montando meu TCC com o esp32 pra automatizar um quarto...por enquanto liguei ele com um relĆ© pra acender uma lĆ¢mpada, um sensor de LDR e um sensor de presenƧa...minha dĆŗvida Ć©, quantos sensores eu posso ligar no esp32 ? qual o mĆ”ximo de portas dele que posso usar sem comprometer meu sistema?
ResponderExcluirPosso ligar uma bateria (CR2032) de Backup do RTC interno do ESP32 quando esse estiver desligado ? e em quais pinos que eu deveria conecta-la ?
ResponderExcluirPercebi que o pino TX0 como GPIO01 esta sempre em HIGH, impossibilitando seu uso pra LOW/HIGH
ResponderExcluirOlĆ”, mestre
ResponderExcluirQueria uma soluĆ§Ć£o para uma aplicaĆ§Ć£o que fiz no meu ventilador com o ESP8266. JĆ” consigo ligar e desligar ele pela internet atravĆ©s de um clique e tbm desligar e ligar atravĆ©s de um temporizador, mas a hora e os minutos sĆ£o setados sĆ³ pelo IDE do arduĆno. Queria conseguir mudar as horas e minutos do despertador pela pĆ”gina web tbm. VocĆŖ pode me ajudar?
Qual Ć© o mĆ”ximo e o mĆnimo de amperes que podem ser utilizados no esp32 e esp32-CAM?
ResponderExcluirOlĆ” professor. Boa noite. Estou tendo um problema em um projetinho onde quero realizar a leitura de 20 entradas digitais no esp32. PorĆ©m estou com um problema onde o ESP reporta em alguns pino uma flutuaĆ§Ć£o de valores entre acionado e nĆ£o acionado que nĆ£o existem. Sabe me dizer se tem alguma ideia do que possa estar acontecendo?
ResponderExcluir