Como programar o módulo ESP32 com IDE Arduino
Praticamente todo mundo já ouviu falar do ESP8266, um chip voltado para aplicações envolvendo rede wifi. Os módulos que usam o ESP8266 se popularizaram rapidamente e hoje temos vários modelos como o NodeMCU, ESP-01, ESP-07 e por aí vai. Hoje vamos ver como programar o sucessor do ESP8266, o módulo ESP32 usando IDE Arduino.
Veremos abaixo que o ESP32 é um módulo poderoso, possuindo wifi e bluetooth embutidos. Como o ESP8266, deve ganhar muitas variações, e já existem no mercado módulos ESP32 com display oled embutido, por exemplo. Pela sua capacidade, podemos esperar muitas novidades em breve.
O módulo ESP32
O ESP32 é um componente de baixo custo e alta performance, que se caracteriza por ser um SOC (System on a Chip) contendo microcontrolador, wifi e bluetooth BLEintegrados. O ESP32 foi desenvolvido pela Espressif Systems e tem configurações bem interessantes:
- CPU: Microprocessador Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS
- Ultra low power (ULP) co-processor
- Memory: 520 KiB SRAM
- Wi-Fi: 802.11 b/g/n/e/i
- Bluetooth: v4.2 BR/EDR and BLE
- 12-bit SAR ADC up to 18 channels
- 2 × 8-bit DACs
- 4 × SPI
- 2 × I2S interfaces
- 2 × I2C interfaces
- 3 × UART
- Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt
E esses são só alguns dados. Uma lista completa das características do ESP32 você encontra no datasheet do componente.
Falando especificamente do módulo ESP32, este que vamos usar é semelhante (fisicamente) ao já conhecido ESP8266 NodeMCU ESP-12, um módulo muito popular da linha ESP8266.
Como o NodeMCU, o módulo ESP32 tem um conector micro USB para alimentação e programação, botões RST e BOOT, além de um regulador de tensão. A memória é de 4MB e no módulo que estou testando o conversor serial USB-TTL é o CP2102.
Programando o ESP32 com IDE Arduino
Vamos testar o ESP32 executando o famoso “blink led” (piscar o led, em bom português). O programa em si é o que menos importa, já que configurar a IDE do Arduino para programar o ESP32 requer uma certa dose de atenção para que nada saia errado.
Vamos então aos passos, lembrando que estou usando o Windows 10 nesse tutorial.
1 – Instale a IDE do Arduino (se você já não tem, pode encontrá-la no site oficial do Arduino)
2 – Faça o download do Git neste link e em seguida instale o programa (não alterei nenhuma opção durante a instalação, deixei tudo no padrão sugerido pelo instalador). Ao final, selecione a opção Launch Git Bash e clique em Finish:
3 – Será então exibida a seguinte janela. Nela, digite o comando “git gui” e pressione ENTER:
4 – Na janela Git GUI, selecione Clone Existing Repository:
5 – Na janela seguinte, preencha os campos Source Location e Target Directory:
Source Location: https://github.com/espressif/arduino-esp32.git
O campo Target Directory pode variar, dependendo de como foi configurada a sua IDE, mas geralmente a pasta é C:\users[usuario]\Documents\Arduino. Você pode encontrar essa informação dentro da IDE do Arduino, no menu Arquivo => Preferências:
O campo Target Directory é formado pelo caminho mostrado em “Local do Sketchbook” mais hardware\espressifesp32. No meu caso então, o campo ficou assim:
Target Directory: C:\Users\Adilson\Documents\Arduino\hardware\espressifesp32
Após preencher os campos, clique em Clone e aguarde o download e instalação dos arquivos.
6 – Vá até a pasta [Local do Sketchbook]hardwareespressifesp32tools e execute o arquivo get.exe:
Aguarde o download e descompactação dos arquivos:
7 – Ao término do processo, você deve ter os arquivos abaixo na pasta:
8 – Hora de conectar o módulo ESP32 na porta USB e aguardar a instalação dos drivers. No meu computador, pelo gerenciador de dispositivos vejo que foi adicionado um dispositivo chamado Silicon Labs CP210x USB to UART Bridge na porta COM6:
Se precisar dos drivers para o CP2102, recomendo este link.
9 – Inicie a IDE do Arduino e no menu Ferramentas => Placa selecione ESP32 Dev Module:
10 – Ainda no menu Ferramentas, selecione a porta COM do módulo. No meu caso, a porta COM6.
11 – Carregue o programa exemplo “blink” na IDE do Arduino, alterando a porta de LED_BUILTIN para a porta 5. O blink está no menu Arquivo => Exemplos => Basics. Seu programa vai ficar assim:
void setup() { pinMode(5, OUTPUT); } void loop() { digitalWrite(5, HIGH); delay(1000); digitalWrite(5, LOW); delay(1000); }
12 – Conecte um led na porta 5 do módulo ESP32 (coloque a perna mais comprida do led na porta 5 e a perna mais curta na porta GND)
13 – Transfira o programa para o ESP32. Alguns tutoriais dizem para pressionar o botão BOOT durante o carregamento do programa, mas no módulo que estou usando não foi necessário. Em alguns instantes, o led conectado ao ESP32 será acionado em intervalos de 1 segundo.
Confira outros posts com ESP32 aqui mesmo no Arduino e Cia!
Alguém sabe informar se o ESP 32 consegue trabalhar ao mesmo tempo com Bluetooth e Wi-Fi ativos ?
Oi Luís,
Muito interessante a sua pergunta. Aparentemente funciona sim. Dê uma olhada neste link, por favor:
https://www.esp32.com/viewtopic.php?t=847
Abraço!
Adilson
Esse módulo não tem LORA?
Esse especificamente não tem, mas em breve a Filipefop terá módulos ESP32 com LORA, aguarde. 🙂
Abraço!
Adilson
Boa tarde!!!
sua explicação foi muito bem detalhadas gostei muito; mas não consegui estala pois quando vou na pasta esp32 esta vazia ou quando parece que vai estalar da erro de ramificação.
Boa noite,
Obrigado pela visita. Ele apresenta algum erro de download dos pacotes?
Abraço!
Adilson
Conseguimos fazer com que este equipamento torna-se um botão de pânico?
Ex: uma pessoa está precisando de ajuda, aí ela aciona este botão, aí chegaria uma mensagem de alerta para uma tal "prestadora de serviço".
Se existir, teremos que ter algum equipamento (roteador portátil) para fazer com que esse equipamento possa se comunicar com a central?
Boa tarde,
É possível sim. Você vai precisar de uma conexão com o roteador, se for usar no modo wifi.
Abraço!
Adilson
Como faço para o esp32 no IDE arduino usando ubuntu?
Olá! Grato pela dica. Funcionou tudo. Mas, depois de baixado, como atualizar?
Boa noite,
O que você precisa atualizar?
Abraço!
Adilson
. A dúvida é a seguinte: os códigos estão consumindo muuita memória do esp32. Os códigos que carrego no UNO consomem 10% da memoria . Porém quando carrego no esp32, este mesmo código consome 90% da memória do esp. Preciso muito de sua ajuda.
Alguem pode me explicar como converter os codigos feitos para arduino para que ele execute no ESP32?
Boa noite, Adilson.
Muito obrigado por este tutorial de instalação do ESP32.
Executei os passos indicados aqui e deu tudo certo de primeira.
Oi Torricelli!
Show! Obrigado pelo retorno. 🙂
Abraço!
Adilson
Por favor, eu consigo fazer com o ESP32 os mesmos projetos que faria com o arduíno UNO? Se não, o que eu devo fazer para ter os mesmos projetos? Obrigado!!!
Oi Sidemario,
Sim, muita coisa que vc faz com Arduino você consegue fazer com o ESP32 ou o ESP8266. Não esqueça que o nível de sinal desses módulos ESP é de 3.3V, então sensores e atuadores que trabalham com 5V precisam de uma adaptação.
Abraço!
Adilson
Olá, boa noite. Estou seguindo os seus passos, mas não consigo instalar a placa do esp32 na IDE Arduino porque toda vez que coloco https://dl.espressif.com/dl/package_esp32_index.json nas preferências e abro o gerenciador de placas, retorna que não foi possível fazer o download. Alguma sugestão de como posso resolver o erro? Obrigada desde já!!
Oi Mandy!
Me parece ser alguma coisa na configuração da IDE do Arduino, em Arquivo -> Preferencias, depois na aba "Rede".
No meu, está selecionada apenas a opção "Detectar automaticamente definições de proxy".
Abraço!
Adilson
Sigo passo a passo , porém quando chego na hora de clicar em “Clone” fica em working..please wait e não sai.. ja tem mais de 30 min…
alguma sugestão?
Oi Daniel,
Conseguiu?
Abraço!
Adilson
[…] Para o projeto deste post, o ESP32 será programado utilizando a Arduino IDE. Caso você não saiba como programar o ESP32 na Arduino IDE, eu recomendo a leitura deste artigo. […]