Upgrade de Firmware do WiFi ESP8266 ESP-01 através do Arduino e Conversor USB Serial

Upgrade de Firmware do WiFi ESP8266 ESP-01 através do Arduino e Conversor USB Serial

A partir dos passos abaixo você vai aprender fazer a atualização / modificação de firmware do ESP8266 modelo ESP-01 no sistema operacional Windows. Para fazer upgrade de firmware da placa você poderá utilizar o Arduino Uno R3 ou um Conversor USB Serial.

img00_substituindo_o_firmware_original_do_sonoff_arduino_esp8266_nodemcu_automacao_mqtt_web_android_app_ewelink_gravar_upgrade

ESTE TUTORIAL E OS DEMAIS AQUI DO BLOG QUE ENVOLVAM ESP8266 ESP-01, FORAM TODOS EXECUTADOS COM A VERSÃO PRETA DA PLACA ESP-01 (POSSUI 8Mb = 1MB DE MEMÓRIA FLASH). SE VOCÊ POSSUI A VERSÃO AZUL DO ESP-01, ESTE TUTORIAL E OS DEMAIS AQUI DO BLOG NÃO SERÃO COMPATÍVEIS, POIS ESTA VERSÃO POSSUI APENAS 4Mb = 512KB DE MEMÓRIA FLASH, O QUE É INSUFICIENTE PARA CARREGAMENTO DOS FIRMWARES / CÓDIGOS DISPONIBILIZADOS.

Para conectar o ESP8266 ESP-01 ao computador é necessário utilizar um conversor USB serial. Caso você não possua um conversor USB serial convencional, poderá utilizar o conversor do Arduino Uno R3 como intermédio. Há vários modelos de conversores USB serial no mercado, mas para esta prática utilizei o Adaptador Conversor USB Serial TTL PL2303HX.

Para fazer atualização do ESP-01, iremos utilizar o ESP8266 Flash Download Tools:

Download ESP8266 Flash Download Tools v2.4

O firmware que vamos utilizar é o Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a AT Firmware:

Download Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a AT Firmware

Feito o download do programa e do firmware, copie ambos para a raiz (unidade C) do seu Windows.

Faça a descompactação do flash_download_tools_v2.4_150924.rar e a pasta FLASH_DOWNLOAD_TOOLS_v2.4_150924 será gerada.

O ESP-01 possui oito pinos de conexão, contudo, vamos utilizar apenas seis pinos:

img00_upgrade_de_firmware_do_wifi_esp8266_esp-01_atraves_do_arduino_e_conversor_usb_serial

Os pinos RST e GPIO2 não serão utilizados. O pino CH-PD pode estar identificado no módulo com a sigla EN, o GPIO0 pode ser identificado como IO0 e o GPIO2 pode ser identificado como IO2.

– Utilizando o conversor USB serial do Arduino Uno R3 como intermédio:

O próximo passo é conectar o ESP-01 ao computador. Caso não possua um conversor usb serial convencional, poderá utilizar o Arduino Uno R3 para fazer a ponte entre em ESP-01 e o computador. Além do Arduino Uno R3 com Cabo USB você irá precisar de:

01 – Módulo WiFi ESP8266 ESP-01
01 – Protoboard de 400 Pontos
01 – Chave Táctil / Push Button
01 – Opção 01 de divisor de tensão (R1 = 1KΩ e R2 = 2.2KΩ)
01 – Opção 02 de divisor de tensão (R1 = 1KΩ e R2 = 1KΩ)
01 – Opção 03 de divisor de tensão (R1 = 10KΩ e R2 = 10KΩ)
01 – Resistor de 10KΩ

06 – Cabos Jumper macho-fêmea
07 – Cabos Jumper macho-macho

1) Deixei disponível três opções de divisores de tensão. Caso o ESP-01 não funcione bem (acuse erros de comunicação) com a opção 03, por exemplo, monte com a opção 01 ou a opção 02.

2) Antes de montar o esquema de ligação com o Arduino, você deverá carregar um código em branco na placa para garantir que o conversor USB serial não esteja sendo utilizado. Carregue o código abaixo em seu Arduino e prossiga:

img01_upgrade_de_firmware_do_wifi_esp8266_esp-01_atraves_do_arduino_e_conversor_usb_serial_resistor_divisor_tensao

– Utilizando o Adaptador Conversor USB Serial TTL PL2303HX:

Irá precisar do seguintes itens além do Adaptador Conversor USB Serial TTL PL2303HX:

01 – Protoboard de 400 Pontos
01 – Chave Táctil / Push Button
04 – Cabos Jumper macho-fêmea
01 – Cabos Jumper macho-macho
02 – Cabos Jumper fêmea-fêmea

img02_upgrade_de_firmware_do_wifi_esp8266_esp-01_atraves_do_arduino_e_conversor_usb_serial

OBS: O PL2303 possui alimentação 5V e 3V3. Utilize a alimentação 3V3 e ignore o pino 5V.

Veja que em ambos os esquemas de ligação é necessário o uso de um botão que está conectado ao GND e ao pino GPIO0 do ESP-01. Para colocar o ESP-01 em modo de gravação é necessário que o pino GPIO0 inicie conectado ao GND. Portanto, sempre que for gravar um firmware / código em qualquer módulo da linha ESP8266, lembre-se de conectar o GPIO0 ao GND antes de inserir o cabo USB no computador. Caso não vá gravar um firmware / código no módulo, não há necessidade de conectar o GPIO0 ao GND.

Após efetuar um dos esquemas de ligação acima, basta manter pressionado o botão na protoboard e conectar o cabo USB (ao Arduino e ao computador) ou o conversor USB serial ao computador. Após conectado solte o botão, pois o ESP-01 já vai estar em modo de gravação.

Em seguida acesse o ‘Painel de Controle’ do Windows, ‘Gerenciador de Dispositivos’, e na janela que abrir vá até ‘Portas (COM e LPT)’. Você poderá ver o dispositivo conectado e o número da porta COM em que ele foi alocado. A título de demonstração, conectei tanto o Arduino quanto o conversor USB serial no computador e na imagem abaixo você pode ver como os dispositivos aparecem no gerenciador:

img03_upgrade_de_firmware_do_wifi_esp8266_esp-01_atraves_do_arduino_e_conversor_usb_serial

Se estiver utilizando o PL2303HX e o mesmo não estiver sendo reconhecido pelo o Windows, acesse a postagem Conversor USB Serial TTL PL2303HX – Instalação no Windows 10, veja como resolver e em seguida retorne para continuar.

Agora vá até a pasta FLASH_DOWNLOAD_TOOLS_v2.4_150924 e execute o ESP_DOWNLOAD_TOOL_V2.4.exe:

img04_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

Com o programa aberto, desmarque a opção ‘SpiAutoSet’, selecione a porta COM, selecione o ‘BAUDRATE’ 115200, desmarque qualquer checkbox marcado em ‘Download Path Config’, configure as demais opções conforme a imagem abaixo e clique em ‘START’:

img05_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

Se a comunicação com o ESP-01 estiver OK, você verá informações em ‘DETECTED INFO’, ‘MAC Address’ e a escrita ‘SYNC’:

img06_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

OBS: caso o programa retorne ‘FAIL’, confira se selecionou a porta COM correta. Se o erro persistir, feche o ESP_DOWNLOAD_TOOL_V2.4.exe e repita todo o procedimento, desde o pressionamento do botão para colocar o ESP-01 em modo de gravação.

Em ‘Download Path Config’ você deverá selecionar o arquivo ‘o Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a AT Firmware.bin’ baixado. Clique nas ‘…’ do primeiro campo e na janela que abrir navegue até a pasta em que colocou o firmware e selecione o arquivo ‘Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a AT Firmware.bin’. No campo ‘ADDR’ preencha com o offset 0x00000 e marque o checkbox para concluir. Ao terminar, você terá as configurações conforme a imagem abaixo:

img07_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

Agora clique em ‘START’ para o processo iniciar:

img08_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

Aguarde o processo de upgrade de firmware ser concluído:

img09_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

Terminado o processo de upgrade de firmware, feche as janelas do ESP_DOWNLOAD_TOOL_V2.4, desconecte o cabo USB ou o conversor USB serial do computador e conecte novamente (SEM PRESSIONAR O BOTÃO NA PROTOBOARD).

Agora abra a IDE do Arduino para que você possa enviar comandos AT a placa para verificar se o firmware foi atualizado corretamente e se a placa está respondendo aos comandos.

Com a IDE aberta acesse o menu ‘Ferramentas’ e em seguida na opção ‘Porta’ selecione a porta COM. Note na imagem abaixo que selecionei a porta COM2:

img10_upgrade_de_firmware_do_wifi_esp8266_esp-01_atraves_do_arduino_e_conversor_usb_serial

Você NÃO precisa selecionar a placa na IDE, pois isto é irrelevante para o envio de comandos AT.

Abra o ‘Monitor Serial’ da IDE e no rodapé confira se a velocidade está definida em 115200 e se ‘Ambos, NL e CR’ está selecionado:

img11_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

Agora digite o comando ‘AT’ (sem aspas) e dê ‘ENTER’ ou clique em ‘Enviar’. Se a conexão estiver funcionando você terá como retorno a mensagem de ‘OK’:

img12_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

OBS: se ao enviar o comando NÃO receber nenhum retorno ou receber uma série de caracteres aleatórios, altere a velocidade de 115200 do monitor serial para 9600 e envie o comando novamente.

No ‘Monitor Serial’ digite o comando ‘AT+GMR’ (sem aspas) e dê ‘ENTER’ ou clique em ‘Enviar’. Se receber como retorno as informações conforme a imagem abaixo, então seu ESP-01 foi atualizado com sucesso:

img13_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

Caso queira alterar o baudrate de comunicação com o ESP-01 para 9600, digite na IDE o comando ‘AT+UART_DEF=9600,8,1,0,0’ (sem aspas) e dê ‘ENTER’ ou clique em ‘Enviar’. Se receber como retorno as informações conforme a imagem abaixo, então a velocidade de comunicação foi alterada:

img14_upgrade_de_firmware_no_shield_wifi_esp8266_esp-12e_para_arduino_nodemcu_comandos_at_flash_blynk

OBS: ao mudar o baudrate do ESP-01, você deverá mudar também a velocidade de 115200 para 9600 no rodapé do ‘Monitor Serial’. Em seguida envie novamente o comando ‘AT’ (sem aspas) e dê ‘ENTER’ ou clique em ‘Enviar’. Se receber o ‘OK’ como retorno, então a comunicação está funcionando.

Vale ressaltar que, caso pretenda utilizar o ESP-01 para atribuir WiFi ao Arduino, a velocidade de comunicação ideal é de 9600 bauds.

Ao meu ver, o Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a AT Firmware é a versão que melhor se adequou ao uso do ESP8266 ESP-01 em conjunto com Arduino e bibliotecas responsáveis por gerenciar conexões WiFi. Inclusive, no uso do Blynk com o ESP-01 e Arduino, esta versão do firmware foi uma das poucas que consegui fazer a conexão com o servidor.

Gostou desta postagem? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 90 comentários para esta postagem
  1. Edinei às 21:01

    Muito Obrigado! Deu tudo certo 100%
    Você com letras conseguiu fazer eu entender melhor do que uns 200 vídeos no youtube!

    • Euler Oliveira Autor às 10:58

      Olá Edinei.

      Agradeço pelo comentário e reconhecimento!

  2. João Kaíque às 08:39

    Muito legal, consegui fazer e deu certinho, única diferença é que só apareceram as informações do esp depois que cliquei no botão “start” para subir o firmware. Minha dúvida é se esse firmware impõe alguma limitação ao esp-01 ou se apenas adiciona a possibilidade dos comandos AT.

  3. Fernando vieira às 08:42

    Olá Gabriel, será que consegue me ajudar? Estou com o mesmo problema que teve com o esp-01.
    Atualizei o firmware tentei com os bancos db4free, clever e um mysql local (XAMPP) e volta o mesmo erro:

    [WiFiEsp] Connecting to 85.10.205.173
    20:50:34.029 -> [WiFiEsp] TIMEOUT: 46
    20:50:37.872 -> ERROR: Timeout waiting for client.
    20:50:37.918 -> Error: -1 = Conexão SQL falhou.
    20:50:40.914 -> Conectando SQL novamente.

    Já tentei mudar bibliotecas wifi, fazer testes simples só de conexão com o banco e nada vai, já estou a 5 dias quebrando a cabeça e não saio mais do lugar, não sei mais o que tentar.

    Vc conseguiu resolver esse problema?

  4. Alexandre às 11:23

    Muito Bem descrito. Acabou que ao verificar usando os comandos AT vi que meu módulo já está ok para receber comandos AT. Como Sugestão repita esse passo ao inicio como forma de ajudar newbies como Eu a verificar o funcionamento e como ver se o ESP01 está ok para inserir wifi no Arduino. Agora vou ralar para fazer funcionar. Obrigado

  5. Ryan às 15:49

    Parabéns pelo tutorial, me ajudou muito em um projeto muito importante. Bem explicado e como ótima didática.

  6. Gabriel às 20:58

    Fala, turma. Excelente tutorial! No entanto, estou com um problema que talvez vcs consigam me ajudar…

    Com o upgrade feito, estou tentando transmitir as informações do DHT22 por meio do ESP01 para o banco de dados, mas estou recebendo o seguinte erro em loop:

    [WiFiEsp] Connecting to 85.10.205.173
    20:50:34.029 -> [WiFiEsp] TIMEOUT: 46
    20:50:37.872 -> ERROR: Timeout waiting for client.
    20:50:37.918 -> Error: -1 = Conexão SQL falhou.
    20:50:40.914 -> Conectando SQL novamente.

    O mesmo erro acontece no banco db4free e no clever cloud. O mesmo código com o mesmo upgrade de framware de um brother meu funcionou normalmente.

    Segue:

    #include “DHT.h”
    #include
    #include
    #include
    #include
    #include

    #define DHTPIN 2 // Digital pin connected to the DHT sensor

    #define DHTTYPE DHT22

    DHT dht(DHTPIN, DHTTYPE);

    SoftwareSerial Serial1(6,7); //Pinos que emulam a serial,onde o pino 6 e o rx e o 7 tx

    IPAddress servidor(85,10,205,173); // Endereco de IP do servidor Mysql db4free.net
    char user[] = “xxxxxx”; // Usuario do servidor Mysql
    char password[] = “xxxxxx”; // Senha do servidor Mysql

    char ssid[] = “xxxxxx”; // Nome da rede wifi
    char pass[] = “xxxxxx”; // Senha da rede wifi

    int status = WL_IDLE_STATUS; //Status atribuido quando wifi e inicializado

    WiFiEspServer server(80); //Porta realizada a conexao

    RingBuffer buf(8); //Buffer pra aumentar a velocidade e reduzir a alocaçao de memoria

    char INSERT_SQL[] = “INSERT INTO >nome_do_banco_de_dadosnome_da_planilhaexecute(query);
    delete cur_mem;
    Serial.print(“Informações Enviadas”);
    Serial.println(“Temperatura: “);
    Serial.print(t);
    Serial.println(“Umidade: “);
    Serial.print(h);

    delay(60000); // Tempo de intervalo de envio de dados (em mili segungos)
    }

    Desde já agradeço pela força.

  7. Paulo às 11:48

    Gostaria de deixar meu agradecimento e dúvida, segui o tutorial e funcionou corretamente.

    Dúvida 1: Ao dar Start no flash tool, tudo funciona corretamente, porém ao apertar start pela segunda vez, para gravar o firmware, no cmd aparece que está se conectando e fica assim por muito tempo, a solução que eu encontrei é retirar o esp01 do adaptador usb e coloca-lo de novo fazendo a ligação do GPIO0 ao GND, fazendo assim entrar em modo de gravação de novo. Ou seja, só é possível dar start UMA vez pra gravar o firmware, se eu tentar de novo, fica se conectando infinitamente.

    Dúvida 2: Após finalizar a gravação e testar os comandos AT, caso eu tente gravar um sketch do arduino no ESP01, não vai ser possível utilizar mais os comandos AT? como se o sketch fosse gravado por cima do firmware que foi gravado nesse tutorial?

    Utilizei o adaptador UART-USB

    Att.

    • Euler Oliveira Autor às 08:29

      Olá Paulo.

      Agradeço pelo comentário!

      Para iniciar o processo de gravação uma segunda vez deverá sim desconectar o ESP8266 do computador e conectar novamente em modo de gravação.

      A gravação de qualquer outro código no ESP8266 irá substituir o firmware de comandos AT.

  8. Felipe às 21:47

    Boa noite,

    Conectei o modulo ESP-01 num adaptador por USB.
    Estou tendo um erro e não estou conseguindo configurar. Poderia me ajudar?
    Obrigado.

    reg2>>13: 5
    =================
    48bit mac
    debug:
    ———————–
    28 6c 07 27 fb eb
    ID FOR XM: 02 F7 38 00 65 4F 64 47
    XM_ID: 02F73800654F6447
    ———————–
    crc_efuse_4bit: 14
    crc_calc_4bit: 14
    48bit mac
    Exception in thread Thread-1:
    Traceback (most recent call last):
    File “threading.pyo”, line 532, in __bootstrap_inner
    File “download_panel_info.pyo”, line 460, in run
    File “esptool.pyo”, line 242, in flash_download_thread
    File “esptool.pyo”, line 747, in get_mac
    File “esptool.pyo”, line 800, in set_mac
    IOError: [Errno 13] Permission denied: ‘./MAC_ADDR/MAC_TABLE.CSV’

    • Euler Oliveira Autor às 17:13

      Olá Felipe.

      Agradeço pelo comentário!

      Infelizmente desconheço esse erro que relatou.

  9. CRISTIANO SANTOS RIBEIRO às 13:40

    Ok Euler.. muito obrigado mesmo… vou tentar refazer o processo..
    Origado

  10. CRISTIANO SANTOS RIBEIRO às 03:14

    Olá boa noite, segui o tutorial de atualização, estava indo tudo certo, porém quando removi o conversor USB para inserir novamente após a atualização, caso eu não prescione o botão ao inserir a placa, a porta COM é não é identificada. Sabe o que pode ser?

    • Euler Oliveira Autor às 08:55

      Olá Cristiano.

      Agradeço pelo comentário!

      Sugiro que refaça o procedimento de carregamento de firmware, pois em algum momento pode ter ocorrido algum problema, pois isso que aconteceu com você não deveria ter acontecido.

      O tutorial funciona 100%.

  11. Matheus às 19:38

    Só recebo esta mensagem de erro no FAIL, fiz todos os procedimentos que estavam nos comentários também, testei com os 3 divisores de tensão, será que meu módulo não funciona? Somente o LED vermelho fica aceso.

    test baudrate: 9600
    test baudrate selection: 0
    tout as adc
    RF option applied…
    (True, [])
    test running : False
    serial port opened
    Connecting…
    chip sync error.
    com closed

    • Euler Oliveira Autor às 14:54

      Olá Matheus.

      Agradeço pelo comentário!

      Pode ser problema no módulo sim, pois esta prática foi testada antes de ser publicada e inclusive há muitos comentários do pessoal que executou com sucesso.

  12. Antonio Testa às 09:27

    Preciso atualizar meu ESP8266 com a versão AT 1.7.4. Pelos confusos métodos encontrados, com vários arquivos separados, não funcionou em hipótese alguma. Se existisse um só arquivo talvez funcionasse. Algo parecido com o que você usou na versão 1.5.4 mas mais recente. Seria como
    Ai-Thinker_ESP8266_DOUT_8Mbit_v1.7.4……. Tem idéia de onde encontrar tal raridade ? Obrigado

    • Euler Oliveira Autor às 14:58

      Olá Antonio.

      Agradeço pelo comentário!

      Infelizmente não sei onde encontrar neste formato que precisa.

  13. Samuel às 16:42

    Muito bem explicado e deu super certo, estava achando que tinha queimado meu ESP mas esse procedimento fez ele voltar a responder. Muito obrigado.

  14. Carlos Edelweiss às 22:16

    Olá, gostei da postagem. Deu tudo certo até a leitura final do monitor serial. Apareceram alguns ruidos (?I?I?I?I?I?I …… etc) e não consegui finalizar. Não consegui verificar se a placa esta recebendo comandos AT, nem mudar o baudrate.
    Alguma dica ?
    abs

  15. Marcos Nascimento às 23:56

    Obrigado pela excelente pela abordagem bem simples, parabéns pela didática.

  16. Gabriel N V às 04:32

    Cara, preciso te agradecer demais, estava com essa placa parada a anos, na época comprei para um trabalho na faculdade e travei ela com um comando incorreto para mudar o Baud Rate. Tentei consertar com as dicas de outros tutoriais, mas sem sucesso. Dessa vez foi tiro e queda. ESP01 FUNCIONANDO! Muito obrigado!

    • Euler Oliveira Autor às 08:22

      Olá Gabriel.

      Agradeço pelo comentário e reconhecimento!

    • Euler Oliveira Autor às 08:47

      Olá Evandro.

      Agradeço pelo comentário!

      Que fiz o teste e funcionou é sim.

  17. Bruno às 11:48

    Olá!
    Bom tutorial! Segui passo a passo e funcionou tudo bem.
    Obrigado e bom trabalho.

    • Murilo às 03:59

      Olá, fiz a atualização do firmware do esp utilizando o Arduino como ponte, o processo deu tudo certo, depois entrei na Ide do Arduino, usei o comando AT e respondeu OK, digitei AT+GMR e retornou a versão igual da imagem do tutorial.
      Porém estou com uma dúvida: gostaria de gravar um programa no esp-01, usando o Arduino como conversor serial usb, teria como fazer isso? Gostaria de controlar um interruptor via aplicativo, e usar o gpio do esp em um relé. O programa está feito, mas não obtive sucesso em enviar para o Esp01 usando o Arduino como conversor.
      Tentei também enviar o Blink para o Esp01 e não consegui.

      • Euler Oliveira Autor às 09:39

        Olá Murilo.

        Agradeço pelo comentário!

        O mesmo procedimento mostrado neste tutorial para carregamento de firmware no ESP-01 também é usado para carregamento de códigos no ESP-01 através do IDE do Arduino.

        Você deverá montar o mesmo esquema de ligação desta postagem (seja com o Arduino ou conversor USB serial a parte) e antes de ligar a placa ao computador, manter pressionado o botão para colocar o ESP-01 em modo de gravação e conectar o cabo USB ao computador. Em seguida no IDE do Arduino, no menu “Ferramentas” você deverá selecionar a placa “Generic ESP8266 Module”, ainda no menu “Ferramentas”, selecione a opção “Porta” e marque a porta COM em que sua placa foi alocada.

        Agora basta carregar o código no ESP-01.

        Caso queira utilizar o ESP-01 para atribuir WiFi ao Arduino, o esquema de ligação muda conforme pode ser visto no tutorial abaixo:

        https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-modulo-wifi-esp8266-esp-01/

  18. A. Geovany às 18:07

    Boa noite a todos!

    Euler,

    Parabéns por contribuir com a comunidade iot.
    Através de seu tutorial consegui regravar dois módulos ESP8266 com o Arduíno uno.
    Gostaria de colaborar com a minha experiência de um dia inteiro tentando (rsrsrs)
    Pra encurtar essa longa história: depois de ver a resposta “FALHA” trocentas vezes, decidi retirar todos os resistores e ligar direto mesmo, apenas utilizei uma fonte exclusiva de 4V alimentar o módulo ESP8266. Após esse procedimento hard, finalmente consegui (ufa!).
    Também tive que retirar aquela conexão do pino RESET do Arduino… mas permaneceu Tx->Tx e Rx->Rx.

    • Euler Oliveira Autor às 19:17

      Olá.

      Agradeço pelo comentário e reconhecimento!

      Alguns Módulos ESP-01 são tolerantes a 5V e com isso não queimam facilmente se conectados direto ao Arduino, porém outros só aceitam os 3.3V e dessa forma o uso de divisor de tensão é ideal, pois não há como saber qual módulo é tolerante a 5V.

      Na minha humilde opinião, para upgrade de firmware da placa junto ao Arduino, a melhor opção para evitar problemas de mau contato com resistores dos divisores de tensão é usar este adaptador:

      https://www.masterwalkershop.com.br/adaptador-conector-33v-5v-para-o-modulo-wifi-esp8266-esp-01

  19. Lucas Crispim às 10:34

    Olá Euler , tudo bem ?

    Consegui fazer todo o procedimento , porém quando chegou no “Monitor Serial” eu coloco o “AT” e não aparece nada , independente se eu mudar a velocidade de 115200 para 9600.

    Você poderia me ajudar ?

    • Euler Oliveira Autor às 09:06

      Olá Lucas.

      Agradeço pelo comentário!

      Os comandos AT iniciais são enviados com a serial definida em 115200 bauds.

      • Lucas Crispim às 10:28

        Olá Euler.

        Entendi , muito obrigado pelo retorno!

        Mas no meu “Monitor Serial” não aparece nada apos eu digitar o “AT” , o que posso fazer ?
        Pois fiz o procedimento pra mudar para 9600 bauds e também não apareceu nada.

        • Euler Oliveira Autor às 12:05

          Se o firmware foi carregado corretamente no módulo, então deveria funcionar conforme o tutorial.

          Recomendo a tentar fazer todo o procedimento em outro computador.

  20. Luiz Ricardo às 19:59

    Obrigado! Me ajudou, pois o meu veio um modelo S series e não estava conectando.

    Agora conecta normal.

    Uma dica: No meu caso não aparecia informação nenhuma na janela DECTED INFO.
    Também dava erro no final, naquela tela preta que abre junto com o programa.
    E ele só lia e aparecia as informações corretas a primeira vez que eu pressionava START.
    Faça o seguinte casa tenha qualquer um desses problemas: faça o processo de apertar o botão e conectar o usb normalmente, e então quando for apertar o START, deixe tudo configurado e não aperte start para conectar antes, já conecte e grave de uma vez

  21. Pericles às 11:43

    Depois de terminar todo o processo quando dava o comando AT retornava ERROR.
    A solução foi alterar, no Monitor Serial do Arduino, o carácter de fim de linha para “Ambos NL e CR”.

    Excelente artigo, parabéns.

    • Euler Oliveira Autor às 13:37

      Olá Pericles.

      Agradeço pelo comentário!

      Inclusive no texto tem imagem informando que deve ser selecionado a opção “AMBOS NL e CR”.

  22. Clarice às 20:26

    Parabens, fiquei muito feliz com seu tutorial. Você esplica bem detalhado. Procurei em outros e não tinha conseguido mas com o seu consegui. Muito obrigado.

    • Euler Oliveira Autor às 09:44

      Olá Clarice.

      Agradeço pelo comentário e reconhecimento!

      Vlw!!!

    • Carl às 04:35

      Hello, followed every step but when i run the final process it only gives me a line in cmd like this “…..____”””. Please notice please

  23. pablo verlly às 17:45

    Único tutorial que resolveu meu problema. Obrigado!

    Dicas pra quem não conseguiu com esse tutorial (como foi o meu caso nas primeiras 99999 tentativas)
    – teste todos os jumpers antes de usar
    – meça as resistências com o multimetro
    – baixe exatamente a mesma versão do programa e do firmware que está no tutorial.
    – revise todas as ligações na protoboard. dependendo do tamanho fica dificil de enxergar se ta no lugar certo.

    vlw flw

    • Euler Oliveira Autor às 09:45

      Olá Pablo.

      Agradeço pelo comentário e reconhecimento!

      As dicas que deixou certamente vai ajudar outras pessoas.

      Vlw!!!

  24. Ronaldo Cabral às 17:23

    Deu tudo certo usando arduíno como serial, muito obrigado.

    • Euler Oliveira Autor às 17:40

      Olá Ronaldo.

      Agradeço pelo comentário!

      Show de bola!

      Vlw!!!

  25. Leonardo às 18:58

    Boa noite!
    Obrigado! Obrigado! Obrigado! Obrigado! Obrigado!
    Perfeito, excelente tutorial, nota 10!
    Ajudou e muito!
    Ótimo trabalho, muito bem explicado, detalhado, não tem como errar!!
    Mais uma vez obrigado!

  26. Paulo Eduardo às 01:55

    O meu ESP possui apenas os pinos: EN, VCC, GND, TXD, RXD e STATE, não possui o pino GPIO0. Nesse caso, como ficaria a ligação do push-botton ? Ou nesse caso eu não precisaria dele ?

    • Euler Oliveira Autor às 09:16

      Olá Paulo Eduardo.

      Agradeço pelo comentário!

      Se é uma versão de ESP8266 ESP-01, com certeza tem o GPIO0, mas o mesmo pode estar com outra identificação, como, por exemplo, IO0.

      Recomendo que pesquise pelo pinout desta versão que você tem e veja onde está o GPIO0.

  27. Emylle às 16:46

    Seguindo o tutorial até a parte da sincronização está ok, depois quando seleciono o arquivo .bin para fazer a atualização do firmware e clico em start novamente aparece “error: read crystal” e encerra a atualização. O que eu faço?

    • Euler Oliveira Autor às 19:52

      Olá Emylle.

      Agradeço pelo comentário!

      Está utilizando um conversor USB serial convencional ou utilizando o Arduino como ponte? SpiAutoSet está desmarcado? BAUDRATE está definido em 115200?

      • Mariano Silva Paiva às 14:15

        Também estou com o mesmo poblema, estou utilizando arduino ponte. Saberia me dizer se tem uma solução?

        • Euler Oliveira Autor às 16:51

          Olá Mariano.

          Agradeço pelo comentário!

          Se possível, tira algumas fotos e hospeda as imagens da parte de cima e da parte debaixo do ESP-01 que você tem. E, seguida informa os links fazendo outra pergunta nesta publicação.

          Desta forma fica mais fácil eu verificar e ver se há alguma solução neste caso.

    • Gabriel Augusto Paiva às 15:54

      Estou com o mesmo erro, você conseguiu resolve-lo?

  28. Ramon Misse às 00:59

    Pra que está usando o USB serial, para responder aos comandos precisa tirar do modo FLASH, o meu tem uma chavinha ON/OFF, precisei mudar para OFF para responder aos comandos AT, pois o ON é o modo FLASH

    • Euler Oliveira Autor às 07:57

      Olá Ramon.

      Agradeço pelo comentário!

      Se observar os esquemas de ligação disponibilizados na postagem, verá que há um chave táctil ON/OFF que faz justamente o que você está dizendo.

      Pra que está usando o USB serial:

      No texto é informado a necessidade do uso de um conversor USB serial para carregamento de código no módulo. Procedimento necessário para plataformas microcontroladas que forem programadas pelo PC.

      o meu tem uma chavinha ON/OFF, precisei mudar para OFF para responder aos comandos AT, pois o ON é o modo FLASH:

      No texto é informado no início: Para colocar o ESP-01 em modo de gravação é necessário que o pino GPIO0 inicie conectado ao GND. Portanto, sempre que for gravar um firmware / código em qualquer módulo da linha ESP8266, lembre-se de conectar o GPIO0 ao GND antes de inserir o cabo USB no computador. Caso não vá gravar um firmware / código no módulo, não há necessidade de conectar o GPIO0 ao GND.

      Após efetuar um dos esquemas de ligação acima, basta manter pressionado o botão na protoboard e conectar o cabo USB (ao Arduino e ao computador) ou o conversor USB serial ao computador. Após conectado solte o botão, pois o ESP-01 já vai estar em modo de gravação.

      E no final da postagem: Terminado o processo de upgrade de firmware, feche as janelas do ESP_DOWNLOAD_TOOL_V2.4, desconecte o cabo USB ou o conversor USB serial do computador e conecte novamente (SEM PRESSIONAR O BOTÃO NA PROTOBOARD).

      Portanto, o que você disse já está tudo mencionado no texto.

  29. Jeovani Ribeiro às 14:45

    Boa tarde comprei um esp8266 com módulo de 4 relés porém gravei outro firmware nele para usar no arduíno . agora gostaria de voltar a usar na placa de relé, você teria algum tutorial de como fazer isso.

    • Euler Oliveira Autor às 09:19

      Olá Jeovani.

      Agradeço pelo comentário!

      No momento não temos.

  30. Matteus às 19:20

    O meu só fica assim:

    load config …
    EFUSE_MODE: 1
    load config …
    test label: Download Panel 1
    self.num: 1
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 115200
    test baudrate selection: 4
    test label: Download Panel 2
    self.num: 2
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 46080
    test baudrate selection: 2
    test label: Download Panel 3
    self.num: 3
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 9600
    test baudrate selection: 0
    test label: Download Panel 4
    self.num: 4
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 9600
    test baudrate selection: 0
    test label: Download Panel 5
    self.num: 5
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 9600
    test baudrate selection: 0
    test label: Download Panel 6
    self.num: 6
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 9600
    test baudrate selection: 0
    test label: Download Panel 7
    self.num: 7
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 9600
    test baudrate selection: 0
    test label: Download Panel 8
    self.num: 8
    init finished
    ==============
    _COM: 6
    ESP_ROM_BAUD : 115200
    EFUSE_MODE: 1
    ==============
    test baudrate: 9600
    test baudrate selection: 0
    tout as adc
    RF option applied…
    (True, [])
    test running : False
    serial port opened
    Connecting…

    • Euler Oliveira Autor às 08:01

      Olá Matteus.

      Agradeço pelo comentário!

      Verifique se selecionou a porta COM correta e a velocidade de comunicação do seu ESP-01. Além disso, confira o esquema de ligação e se está colocando a placa em modo de gravação de firmware.

  31. Marina às 16:24

    Olá, o processo de upgrade de firmware não consegue ser concluído

    • Euler Oliveira Autor às 16:26

      Olá Marina.

      Agradeço pelo comentário!

      Verifique seu esquema de ligação e o seu ESP-01 possui 8Mb de memória flash.

  32. Fred às 13:03

    Sensacional, muito bem explicado. Passo a passo que funciona!!!!!

    • Euler Oliveira Autor às 15:30

      Olá Fred.

      Agradeço pelo comentário!

      Fico satisfeito em saber que deu certo para você!

  33. Luana Campos às 15:57

    Muito bom esse tutorial! Tudo funcionou perfeitamente. Obrigada!

    • Euler Oliveira Autor às 16:34

      Olá Luana.

      Agradeço pelo comentário!

      Fico satisfeito em saber que deu certo para você!

  34. Victor às 14:06

    Tudo certo, mas os testes não funcionaram. Envio os comandos e não tenho retorno.

    • Euler Oliveira Autor às 17:01

      Olá Victor.

      Agradeço pelo comentário!

      Após fazer o upgrade de firmware você está desconectando / conectando o módulo do computador para em seguida fazer o teste no IDE do Arduino?

      Os passos destes tutorial foram testados um a um antes de ser publicado no Blog, logo, tudo funciona se seguido corretamente e se o ESP8266 for o ESP-01S (versão de placa preta e que possui 8Mb de memória flash).

      • Victor às 17:59

        Agradeço muito sua atenção Euler, mas segui exatamente os passos também. E quando vou testar , não tenho retorno. Alguma sugestão?

        • Euler Oliveira Autor às 18:26

          Está utilizando conversor USB serial convencional ou o Arduino como ponte? Seu ESP8266 é o ESP-01S? Testou o envio de comandos AT com velocidade de 115200 bauds? Trocou a velocidade para 9600 e depois testou novamente?

          • Victor às 00:17

            Estou com o Arduino como ponte. Mudei para 115200 e com 9600 e nada. Como os comandos não geram respostas… acabei configurando como se estivesse (https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-modulo-wifi-esp8266-esp-01/) a resposta foi essa:

            [WiFiEsp] Initializing ESP module
            00:13:03.544 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:06.534 -> [WiFiEsp] Initializing ESP module
            00:13:07.563 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:09.557 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:11.583 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:13.575 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:15.568 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:16.565 -> [WiFiEsp] Cannot initialize ESP module
            00:13:22.609 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:25.134 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:26.661 -> [WiFiEsp] >>> TIMEOUT >>>
            00:13:26.694 -> [WiFiEsp] No tag found

          • Euler Oliveira Autor às 20:50

            Recomendo que execute os passos do tutorial novamente, porém em outro computador.

  35. Fabio às 05:07

    Euler, Parabéns, muito bem explicado. !!!
    Vou por em prática e volto pra dizer como foi. Obrigado !

    • Euler Oliveira Autor às 09:12

      Olá Fabio.

      Agradeço pelo comentário!

      Espero que dê tudo certo aí.

      Vlw!!!

  36. rony às 07:09

    ola fiz passo a passo no monitor serial o esp responde a todos os comandos AT mas depois que compila o código no monitor serial da mensagem de que não e possível inicializar o modulo esp.
    tem ideia do que pode ser ? mas de toda forma o artigo esta incrível aprendi muito aqui.

    • Euler Oliveira Autor às 08:55

      Olá Rony.

      Agradeço pelo comentário!

      Não consegui compreender o trecho:

      mas depois que compila o código no monitor serial da mensagem de que não e possível inicializar o modulo esp.

      Qual código seria?

  37. Rogerio às 00:05

    Gravou de boa, mas tive que retirar do adaptador usb e conectar com o arduino usando comunicação serial sem inverter !!!

    • Euler Oliveira Autor às 09:49

      Olá Rogério.

      Se conectar o RX do ESP-01 ao RX do Arduino e o TX do ESP-01 ao TX do Arduino, será mesma coisa que usar o Adaptador Conversor USB Serial, pois o Arduino com esta ligação irá funcionar como uma ponte de conexão entre o ESP-01 e o computador. Já no Adaptador Conversor USB Serial a conexão com o ESP-01 é inversa (RX ao TX e TX ao RX).

      • EMERSON JULIO DA SILVA às 09:02

        Obrigado pelo conteúdo!
        Fui apresentado ao arduíno recentemente por um professor, aqui estou encontrando os melhores conteúdos! Já indiquei p toda a classe.
        Poderia fazer esse tutorial usando tbm o ambiente Mac OS (sem máquina virtual)?
        Obrigado!

        • Euler Oliveira Autor às 09:18

          Olá Emerson.

          Agradeço pelo comentário!

          Fico satisfeito em saber que os tutoriais do Blog estão sendo úteis no seu aprendizado e que está indicando para outras pessoas também acessarem nossos conteúdos.

          Quanto a desenvolvimento com macOS, infelizmente no momento não é possível, pois todas as máquinas aqui da MasterWalker Shop rodam Windows.

          • PAULO ANTONIO ARRUDA MEIRA às 00:49

            Tá russo pra mim.

            esptool.py v2.8
            Serial port COM7
            Connecting…….._____….._____….._____….._____….._____….._____…..____Traceback (most recent call last):
            File “C:\Users\Dell\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3/tools/upload.py”, line 65, in
            esptool.main(cmdline)
            File “C:/Users/Dell/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py”, line 2890, in main
            esp.connect(args.before)
            File “C:/Users/Dell/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py”, line 483, in connect
            raise FatalError(‘Failed to connect to %s: %s’ % (self.CHIP_NAME, last_error))
            esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
            esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

            _

  38. joilson santos às 21:58

    Mesmo problemaGravou certinho. Porém na etapa do teste na IDE Arduino ele não retornou nenhum valor após modificar os boundrates e inserir os comandos descritos…

    • Euler Oliveira Autor às 09:01

      Olá Joilson.

      Após fazer o upgrade de firmware você está desconectando / conectando o módulo do computador para em seguida fazer o teste no IDE do Arduino?

  39. Rodrigo Santos às 13:10

    Olá, parabéns pelo tutorial, muito dinâmico e simples. Deu tudo certo!

  40. Felipe às 21:59

    Fiz todos os passos, ele gravou com sucesso. Porém na etapa do teste na IDE Arduino ele não retornou nenhum valor após modificar os boundrates e inserir os comandos descritos…

  41. Ruberto Stutzer às 14:27

    Muito bom e útil à beça! Obrigado! Salvou meu dia!

    • João às 02:34

      Excelente. Estava com dúvida em vários pontos e você conseguiu de forma bem didática sanar todas as minhas dúvidas de forma extremamente simples. Obrigado e continue assim!!