Utilizando o Arduino para programar o ESP

Nada mais frustrante do que esperar aqueles 3 meses para o ESP chegar e ai descobrir que é necessário um conversor serial-USB para programá-lo. Essa frustração pode ser contornada se você tiver um Arduino em mãos.

Neste artigo, vou mostrar como usar um Arduino Nano para programar o ESP de forma muito fácil. Lembrando que pode ser utilizado qualquer modelo Arduino, não somente o Nano, inclusive genéricos.

Para esta utilização do Arduino como conversor serial-USB, não é preciso de nenhuma programação especial no Arduino, já que ele não será utilizado diretamente como um Arduino comum.

Esquema de ligação

Basicamente o esquema segue a imagem abaixo:

ESP com Arduino

Esquema de ligação


* Como o ESP opera com 3.3v e o Arduino com 5v, é necessário que o nível de tensão seja adequado para não danificar o ESP. Para isso use um simples divisor de tensão, conforme a figura anterior.

O pino de reset (RST) do Arduino deve ser conectado ao terra (GND) para que o Arduino não inicie, assim deixando o mesmo em situação de reset o tempo todo.

Demonstração

20 Comments

  1. Raphael

    Opa! Isso que me refiro.
    Excelente.

    Reply
  2. Jonni

    Tenho um ESP8266-01, Arduino nano, fiz todas as ligações que você fez, idênticas, mas, estou tendo o erro de

    “warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed”

    Saberia dizer o que posso fazer para corrigir, tenho fonte externa, fiz toda a ligação, mas o erro persiste.

    Eu baixei do site do Arduino a IDE, lá fala 1.6.8, mas quando termino de instalar, 1.6.9. Instalei a biblioteca para a ESP da forma de sempre, tudo blz, mas, esse erro não sai por nada.

    Pode dar alguma luz sobre o que estou fazendo de errado.

    Ps.: Já baixei até a IDE 1.6.7, instalei a biblioteca e nada.

    Reply
    1. Jonni

      Eu que muita gente acaba tendo esse erro nos fóruns gringos, mas, nem sempre acham solução, somente revisar a protoboard, fiação e etc. Eu já verifiquei várias vezes, tá tudo certinho. A placa liga normal. Se eu não coloco o GPIO00 no GND, ela inicia, aparece até a rede que ela cria, enfim, ela está normal.

      Reply
    2. Pedro Minatel (Post author)

      Jonni, bom dia!

      Você usa no Linux ou Windows?
      Se for Linux, o programa em Python para fazer o upload não funciona muito bem no Linux, o ideal é trocar pelo esptool.py.

      Tem um tutorial que explica como fazer isso, só não tenho o Link agora para te passar.

      Obrigado!

      Reply
    3. joão Silva

      velocidade de baud rate errada geralmente o nano utiliza 9600 e o esp 115000 não fiz o teste mais configura a velocidade na ide do arduino para 115000.

      Reply
      1. junior8801junior8801

        vlw!

        Reply
      2. Tom Inácio Ramos

        Estou trabalhando com o ESP8266 D1 mini, isso acabou de me ajudar muito! resolveu!
        Obrigado

        Reply
    4. Filipe Guerra

      Tive esse problema. Descobri que se eu alimentar o ESP externamente na hora de gravar dá isso. A solução é, na hora de fazer a gravação, alimentar o ESP pelo FTDI mesmo!

      Reply
  3. Prof Telles

    Pedro, boa tarde.
    Tentei gravar o WEBSERVER (http://pedrominatel.com.br/arduino/web-server-com-esp8266-e-ide-arduino/), no ESP-01, através desse seu método via ARDUINO NANO e os seguintes erros aparece:
    (warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed)

    Já verifiquei todas as conexões, troquei o ESP-01 por um igual, (tenho dois) e os erros persistem.
    Nesse vídeo acima, você utilizou qual método para gravar o ESP ?

    Desde já agradeço a atenção !

    Reply
  4. Leonardo

    Estou com o mesmo problema para enviar o código para o esp:
    (warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed)

    Conexões estão normais, tentei realizar um reset no esp mas sem sucesso..
    Testei mudar a velocidade da porta mas nada deu certo até agora, a rede criada pelo esp aparece mas não consigo colocar ele em modo de programação…

    Reply
    1. Petter Lopes

      Olá Leonardo, pra não ocorrer esse erro eu costumo remover o GND e inserir novamente, antes de cada upload de código. Obs utilizo o Arduino Uno. Espero ter ajudado.

      Reply
  5. luiz cancela

    boa noite preciso muito da ajuda de alguém pois estou perdendo um grande projeto por não conseguir mais colocar o programa no meu nodemcu já fiz de tudo , tem alguém que pode me ajudar troquei cabo

    error: espcomm_upload_mem failed alguém consegui resolver este problema e porque ele aparece pois funcionava muito bem antes….

    agradeço a todos pela ajuda

    Reply
    1. Pedro Minatel (Post author)

      Luiz, boa parte dos erros com essa mensagem é devido a forma que o circuito está ligado e não é possível entrar em modo boot ou o CH_PD não está em VCC.
      Me descreva como está o circuito, por favor.

      Reply
  6. Wilson

    Estou usando o serial da placa arduino sem o controlador. Toda gravação conecto gpio0 no gnd, tiro o gnd do esp-01 e reconecto, depois reseto e mando gravar. Comigo funcionou.

    Reply
  7. luiz salgueiro

    nota 10 parabens

    Reply
  8. Marcio Souto

    tira o chip do arduino que vai funcionar
    se vocês tiverem grupo no zap me add 21988011364

    Reply
  9. André Feliciano

    Boa noite colegas,
    Comprei uma nodeMCU. Ela funcionou no computador de outra pessoa, mas no meu computador o windows não reconhece.
    1) logo que conectei o windows reconheceu, mas não achou o driver.
    2) fui no Gerenciador de dispositivo e não tinha nenhuma exclamação amarela, com isso não consigo instalar o driver correto.
    3) não aparece a COM adicional na IDE do arduino
    4) quando upload o programa aparece a mensagem :
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed
    Desculpe se não for referente ao artigo , mas não encontrei a solução em nenhum lugar. Alguém pode me ajudar?

    Reply
    1. André Feliciano

      A placa está boa. Quando ligo o Led azul do esp2866 pisca e o sinal de Wi-Fi dela está habilitado, rede “ESP_1C7382”

      Reply
  10. Thiago Antonio

    Olá, caso eu desligue o ESP ele perde essa programação? Se sim existe alguma forma de torna-la permanente?

    Reply
    1. Pedro Minatel (Post author)

      Thiago, não tem problema de perder a programação, já que todo código é armazenado na flash do ESP.

      Reply

Deixe seu comentário