Translation: If you want to translate this tutorial into your language, I suggest using the Google Chrome browser. Right-click – it will be translated into your language. If you have questions, you can post in any language for me!
ESP32 – usando ARDUINO IDE
Atualmente, a IDE do Arduino ( Ambiente de Desenvolvimento Integrado) é uma das mais conhecidas plataformas de desenvolvimento para Microcontroladores. Foi criada para o Arduino, mas vem sendo usada por muitos outros modelos, como o ESP8266 e para o ESP32. (obs – a imagem acima com o ESP32 foi criada por mim) . Vi recentemente no Twitter do John Lee (CEO da ESPRESSIF) que possivelmente poderá haver um relacionamento mais próximo entre as duas empresas, brevemente.
Como a IDE do Arduino já tem mais de 10 anos de desenvolvimento, ela esta bem evoluída e madura. A facilidade de uso, conquistou o mundo. E por isso, vou começar a usar o ESP32 através dela.
Preparando a ARDUINO IDE para o ESP32 :
Antes de tudo, é necessário atualizar a IDE no seu computador. Versões antigas não permitem o uso do ESP32.
Todo o procedimento desse tutorial será para o Windows 10 . Acredito que deva servir também para outros tipos de Windows mais antigos. Portanto faça a download da IDE e instale no seu PC. Atualmente a versão da Arduino IDE é 1.8.5.
Abra a IDE e informe-se sobre o local do Sketchbook. Clique em Arquivo e depois em Preferências : (anote isso)
Local do Sketchbook = C:\Users\jgust\Documents\Arduino (meu exemplo)
NOVO Método (fácil) para instalação do ESP32 na IDE do Arduino – agosto de 2018 :
Carregue a IDE do Arduino no seu PC e abra a janela de preferências.
Na opção URLs adicionais para Gerenciadores de Placas : entre com o link
https://dl.espressif.com/dl/package_esp32_index.json
( você pode acrescentar esse link ao link do ESP8266 (se já existir), separando os links com uma vírgula).
OBS : se já tinha o pacote do ESP32 na IDE do Arduino, remova-o antes de usar esse procedimento.
Clique em Ferramentas / Placas / Gerenciador de Placas . Na janela do Gerenciador de Placas , refine a sua busca digitando ESP32. Clique em Install. Seu PC precisa estar conectado na Internet,para baixar o pacote ESP32. Após a instalação, recarregue a IDE do Arduino, para o pacote ficar ativo.
Continue com o procedimento nesse mesmo tutorial – Configurando a ARDUINO IDE p/ o ESP32 :
Referência : Installation instructions ESP32 – Arduino
Método antigo para instalação do ESP32 na IDE do Arduino :
Todo o procedimento abaixo é baseado no Tutorial da própria ESPRESSIF :
Steps to install Arduino ESP32
Agora vamos instalar uma ferramenta de instalação da IDE, a GIT-SCM.
Com essa ferramenta, a instalação e atualização dos programas, das bibliotecas, dos compiladores fica muito mais fácil e confiável. Faça o download e instale-a no seu PC. ( escolha a versão para o seu Windows – versão 32 bits ou 64 bits).
Três programas serão instalados – GIT BASH, GIT CMD e GIT GUI.
Abra o programa GIT GUI . Clique em Clone Existing Repository .
Preencha os campos Source (origem) e Target (destino), com as informações abaixo. Para Target use o Local do Sketchbook da IDE Arduino mais o diretório do ESP32 (IMPORTANTE – Todas as barras devem ser trocadas por barras invertidas).
Após preencher todos os campos, clique em CLONE para iniciar a clonagem do repositório.
Source Location: https://github.com/espressif/arduino-esp32.git
Target Directory: [ARDUINO_SKETCHBOOK_DIR]/hardware/espressif/esp32
Após a clonagem dos arquivos, abra o GIT BASH. Dentro da janela, digite o comando pwd para certificar-se que esta dentro do diretório correto. Acesse o diretório Local do Sketchbook do ESP32 :
cd documents/arduino/hardware/espressif/esp32
E execute o comando abaixo :
git submodule update --init --recursive
(esse comando é usado para fazer todas as atualizações – pode ser que não tenha nenhuma)
Feche a janela do GIT BASH e abra o Gerenciador de Arquivos do Windows. Na pasta Sketchbook do ESP32 / tools , dê dois cliques em GET.EXE (execute o Aplicativo) .
Exemplo C:\Users\jgust\Documents\Arduino\hardware\espressif\esp32\tools
Quando o aplicativo GET.EXE terminar, você visualizará os arquivos demarcados abaixo ( esptool e get) :
Pronto, o seu PC esta preparado para o ESP32 !
Atualizando a ARDUINO IDE para o ESP32 :
Se precisar atualizar a IDE do ESP32 , siga esse procedimento abaixo. Abra o programa GIT GUI e clique em : Open Recent Repository
Na Janela , selecione REMOTE , FETCH FROM, ORIGIN :
Aguarde as possíveis atualizações e depois feche a janelas do GIT GUI.
Repita o procedimento de instalação já feito anteriormente . Abra o Gerenciador de Arquivos do Windows. Na pasta Sketchbook do ESP32 / tools , dê dois cliques em GET.EXE (execute o Aplicativo) .
Exemplo C:\Users\jgust\Documents\Arduino\hardware\espressif\esp32\tools
Configurando a ARDUINO IDE p/ o ESP32 :
Instale os drivers da Interface USB-Serial da sua Placa ESP32. Na minha placa, o chip usado é o CP2102. Veja a identificação no próprio chip. Se na sua placa for usado outro chip, instale os drivers adequados.
Link para download dos drivers do CP2102 para Windows, Macintosh OSX, Linux e Android : Link dos drivers CP2102
Conecte a sua placa ESP32 em uma porta USB do seu PC (cabo com conector micro-USB). Aguarde o reconhecimento da porta COM pelo Windows. Para descobrir qual porta COM será usada, acesse o Gerenciador de dispositivos. Digite Gerenciador de dispositivos na caixa de pesquisa do Windows e selecione-o. No meu PC, a porta configurada foi a COM3.
Abra a IDE do Arduino . Selecione Ferramentas / Placa
Selecione o modelo da sua Placa .No meu caso, selecionei :
DOIT ESP32 DEVKIT V1 .
Configure os parâmetros abaixo:
- Flash Frequency = 40 MHZ (dependendo da memória Flash, pode ser 80 Mhz)
- Upload Speed = 921600
- Porta = COM3 (escolha a porta do seu PC)
Primeiro SKETCH de teste do ESP32 :
Estou começando a aprender sobre o ESP32. Tenho estudado bastante. E cada dia mais surpreso e fascinado com a versatilidade e potencial desse super Microcontrolador !
Para dar uma boa impressão, vamos começar com um exemplo de acesso ao Relógio da WEB. Você vai precisar de acesso WIFI através de um roteador. Muito fácil de fazer o teste. Na IDE do Arduino, clique em Exemplos. Acesse a pasta de Exemplos para o ESP32 e selecione o Sketch SimpleTime:
ESP32 / Time / SimpleTime.
No Sketch SimpleTime, configure o SSID e a password do seu roteador WIFI (entre aspas).
const char* ssid = “SSID do Roteador”;
const char* password = “senha do WIFI”;
Após o upload do Sketch no seu ESP32, abra a janela da console da IDE. Configure a velocidade para 115200 Bps e aparecerá a data e hora atual !! Veja que o fuso horário não é do Brasil – por isso existe a diferença de 3 horas no meu caso. Muito legal !
Obs: Para obter o horário correto do Brasil (São Paulo) , faça a seguinte alteração no sketch (lembrando que estou usando o horário de verão nesse caso GMT-2) . O correto seria GMT-3 .
const long gmtOffset_sec = -2*3600; // -2 horas x 3600
Link importante do Arduino CORE para ESP32 :
(nesse link você poderá encontrar tudo sobre a Arduino IDE para o ESP32)
Observação interessante : No tutorial da ESPRESSIF sobre o uso da IDE Arduino com o ESP32, tem a seguinte dica :
“Às vezes, para programar o ESP32 via serial, você deve manter o GPIO0 com nível baixo (0 Volts) durante o processo de programação.”
Mas durante meus testes, em momento algum, pelo menos por enquanto, precisei apertar o botão de BOOT (ou LOAD) para gravar o Sketch no ESP32. Analisando o diagrama da minha placa, entendi o porquê. Os pinos DTR e RTS do Chip CP2102, controlam o pino ENA (reset chip ESP32) e o pino GPIO0 (Load program). Muito melhor do que no ESP8266 !
- Conhecendo o ESP32 – Introdução (01)
- Conhecendo o ESP32 – Primeiros contatos (2)
- Conhecendo o ESP32 – usando Arduino IDE (3)
- Conhecendo o ESP32 – usando ESP-IDF (4)
- Conhecendo o ESP32 – usando PlatformIO / ATOM (5)
Aguardem mais tutoriais !
Bom dia professor,obrigado pelas explicações,estou tendo problema somente ao verificar o programa do nextion para o microcontrolador,me aparece esta mensagem:
exit status 1
Erro compilando para a placa DOIT ESP32 DEVKIT V1
Já fiz a inclusão das bibliotecas e mesmo assim não consigo nem verificar o codigo pra ver se esta correto,e já me aparece este erro,o que pode ser?
Mto obrigado e aguardo anciosamente pela resposta.
CurtirCurtir
Boa tarde Paulo, copie todas as mensagens de erro e me envie. Sem essas informações, não será possível ajudá-lo.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Mto obrigado por responder professor,fiquei um tempo sem mexer no controlador e infelizmente continua com mesmo erro,sou iniciante e talvez seja algo simples de resolver,porém não estou conseguindo,me ajude por favor.
file does not exist
Erro compilando para a placa DOIT ESP32 DEVKIT V1
CurtirCurtir
Paulo, você precisa enviar todas as mensagens de erro!
Na janela inferior da Arduino IDE (preta) , copie todas as mensagens e me envie.
Atenciosamente,
Gustavo Murta
CurtirCurtir
ola estou com esse
erro In file included from sketch\conn_ESP32.ino.cpp:1:0:
C:\Users\pc\Documents\Arduino\hardware\espressif\esp32\cores\esp32/Arduino.h:142:21: fatal error: algorithm: No such file or directory
compilation terminated.
exit status 1
Erro compilando para a placa ESP32 Dev Module
CurtirCurtir
Boa tarde Adrian,
Provavelmente instalou incorretamente alguma biblioteca. Qual sketch esta usando.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Olá! Ótimo tutorial, mas estou tendo problemas com a minha placa Módulo-ESP32 DEV KIT. Antes, ela funcionava normalmente, inclusive, para gravar um programa, eu apertava no botão Boot. Mas hoje, a placa começou a esquentar bastante, e não consegui mais gravar nenhum programa. Já apertei e segurei diversas vezes o botão boot, no momento de gravar, mas a mensagem que aparece no arduino IDE de conectando vai ate o final, e acaba não reconhecendo a placa.e por consequência não consigo gravar nenhuma placa. Já segurei por alguns segundos o botão “EN”, mas sem êxito. Gostaria de uma sugestão para o meu problema.
Grato!!
CurtirCurtir
Boa noite Wolfgang,
Como já deve saber, o ESP32 trabalha com níveis de tensão de 3,3V. Se conectar algum dispositivo que usa 5V nas portas, poderá danificar o microcontrolador. Isso é uma das causas de defeito. Recomendo que meça a tensão no pino 3,3V. Essa é a tensão do regulador que alimenta o ESP32. Conecte o cabo USB e veja se a porta esta sendo reconhecida pelo Sistema Operacional. Se tudo isso estiver OK e se o ESP32 ainda não estiver respondendo, existe a hipótese dele estar danificado.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Oi Murta; Muito bom tutorial.
O Upload Speed do ESP32 é 921600 ou 115200?
Pois, o meu reconhece o driver; já carreguei diversos sketches normalmente mas, esse seu, depois de carregar, não mostrou nada no Monitor serial.
Tenho tido dificuldades tb com os arquivos SPIFFS;
Baixei um sketch ‘SPIFFS_listing’ para listagem de arquivos no SPIFFS do ESP32 mas, não mostra nada.
Isso, depois de carregar arquivos da pasta ‘data’.
Alguma dica ou, há algum procedimento a fazer com os dois botões de pressão do ESP?
Obrigado
CurtirCurtir
Boa tarde Daniel, sugiro que releia o tutorial com atenção.
Recomendo que instale o ESP32 na IDE Arduino, usando o procedimento de agosto de 2018 (consta no tutorial).
Se o seu Módulo for igual ou similar ao DOIT ESP32 DEVKIT V1 .
Configure os parâmetros abaixo:
Flash Frequency = 40 MHZ (dependendo da memória Flash, pode ser 80 Mhz)
Upload Speed = 921600
Porta = COM3 (escolha a porta do seu PC)
No tutorial esta escrito:
” Observação interessante : No tutorial da ESPRESSIF sobre o uso da IDE Arduino com o ESP32, tem a seguinte dica :
“Às vezes, para programar o ESP32 via serial, você deve manter o GPIO0 com nível baixo (0 Volts) durante o processo de programação.”
Mas durante meus testes, em momento algum, pelo menos por enquanto, precisei apertar o botão de BOOT (ou LOAD) para gravar o Sketch no ESP32. Analisando o diagrama da minha placa, entendi o porquê. Os pinos DTR e RTS do Chip CP2102, controlam o pino ENA (reset chip ESP32) e o pino GPIO0 (Load program). Muito melhor do que no ESP8266 !”
Atenciosamente,
Gustavo Murta
CurtirCurtir
Muito bom esse tutorial. Mas estou com um pequeno probleminha. Tenho uma placa TTGO LoRa32-OLED V2 915MHz, quando tento carregar o código na placa apareceu várias informações na ide e no final para em:
“Leaving…
Hard resetting via RTS pin…”
Depois disso não acontece mais ND.
Alguém poderia me ajudar?
CurtirCurtir
Boa tarde Marco,
Não conheço a sua placa TTGO LoRa32-OLED V2 915MHz. Favor enviar um link das especificações ou tutorial de uso.
Veja se isso ajuda : https://m.banggood.com/Wemos-TTGO-LORA32-868915Mhz-SX1276-ESP32-Oled-display-Bluetooth-WIFI-Lora-p-1248652.html?p=96171935563852016015#popupStatedetail
Atenciosamente,
Gustavo Murta
CurtirCurtir
Excelente tutorial, mas estou tendo dificuldades, com a minha dev kit wroom-32 .
quanto conecto na minha usb ele fica reconhecendo e depois some em um ciclo continuo. estou usando uma porta USB que pode fornecer ate 1 A. voce saberia me dizer qual poderia ser o problema, teste 4 placa todas com os mesmos problemas. Obrigado
CurtirCurtir
Bom dia Antonio,
Não entendi isso ” quanto conecto na minha usb ele fica reconhecendo e depois some em um ciclo continuo” .
Você instalou os drivers antes de conectar o módulo ? (como informei no tutorial) .
Você consegue identificar a Porta Serial no Windows ? Qual é o chip de interface do seu ESP32?
Informe o link do seu módulo.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Ja consegui identificar a porta do esp32 e a conexão esta estável, mas ainda não tive sucesso em conseguir gravar o firmware. Eu já uso o Platformio e o Atom. Uso tranquilamente com o esp8266. Mas o esp32 é super novo comprei ontem 6 kits para aprender a usar e tentar desenvolver alguns sensores. Ele consome menos que o esp8266 ? Meu esp8266 gastam 75 mA no modo ativo e 150uA no modo em deep sleep (usando o DHT22) e usando o ds18b20 (15uA). Agora estou interessado em utilizar o esp32 para fazer o mesmo e tentar gastar menos energia.
CurtirCurtir
Antonio Cesário,
Recomendo que estude o tutorial :
Atenciosamente,
Gustavo Murta
CurtirCurtir
Olá.. parabéns. Tutorial completíssimo. Uma dúvida, para gravar a minha placa ESP32 preciso pressionar o botão BOOT no momento do carregamento do programa para a placa, senão não dá certo. Tem como alterar algum parâmetro na IDE do Arduino para não precisar mais ficar pressionando o botão BOOT toda vez que for gravar algo?
CurtirCurtir
Bom dia Guilherme,
Obrigado pelo elogio. Como informei no tutorial, em algumas placas ESP32 é preciso apertar o botão de boot(load) para gravar o programa.
Isso depende do circuito da placa. Não depende de programação.
Atenciosamente,
Gustavo Murta
CurtirCurtir
Muito bom as dicas. Queria saber se consegue me ajudar. Estou com dificuldades em escrever no display do esp32 oled.
CurtirCurtir
Fernando boa noite,
Eu ainda não desenvolvi um tutorial com OLED. E você também não informou o modelo do seu display.
Nesse site da Adafruit tem boa informação sobre OLED.
https://learn.adafruit.com/monochrome-oled-breakouts/overview
Atenciosamente,
Gustavo Murta
CurtirCurtir
Parabéns pelo tutorial.
Pena que o meu não consegue identificar minha placa, tenho uma placa ESP-WROOM-32 mas o programa não consegue identificar a placa.
Sabe algo que posso tentar para corrigir isso?
Pois em qualquer placa seleccionada na lista do arduino nenhuma deu certo.
CurtirCurtir
Bom dia Anderson,
Por isso recomendo o uso do Módulo-ESP32 DEV KIT, pois já vem tudo montado !
Você tem o módulo ESP-Wroom-32 sem a fonte e a interface USB Serial ? É isso ?
Envie o diagrama da sua montagem.
Atenciosamente, Gustavo Murta
CurtirCurtir
Pois então, eu comprei o Módulo-ESP32 DEV KIT tem tudo pronto, conecto no pc pela USB o windows reconhece o dispositivo (drive atualizado).
Entro no programa Arduino , onde seleciono a placa os modelos de placa ESP32, abro um exemplo do programa e tento transferir o programa, mas não consigo transferir o programa.
O programa Arduino não esta reconhecendo a placa.
Este é o problema que não achei a solução.
No programa dentro das opções ja conta todos as referencias de placa ESP32.
CurtirCurtir
Anderson , sugiro que leia o tutorial com atenção :
Carregou esses drivers antes de conectar a placa no seu PC ? Link dos Drivers CP2102
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
Qual a porta serial foi reconhecida ? Selecionou a mesma porta na Arduino IDE ?
Faça o teste de comunicação com o PUTTY ! (do tutorial acima)
Recomendo que refaça todos os procedimentos :
Atenciosamente,
Gustavo Murta
CurtirCurtir
Parabéns!
Ótimo tutorial!
CurtirCurtir
Ok. Muito obrigado.
Gustavo Murta
CurtirCurtir
muito bom.
CurtirCurtir
Obrigado !
CurtirCurtir