Upgrade de Firmware no ESP8266 ESP-01 e envio de Comandos AT

Upgrade de Firmware no ESP8266 ESP-01 e envio de Comandos AT

A partir dos passos abaixo você vai aprender a fazer a atualização do seu ESP8266 modelo ESP-01 no sistema operacional Windows e irá aprender também a enviar alguns comandos AT para a placa.

Para conectar o ESP8266 ESP-01 ao computador é necessário utilizar um conversor USB serial. Há vários modelos de conversores USB serial no mercado, mas para esta prática fiz o uso do Adaptador USB Serial para WiFi ESP8266 ESP-01 modificado. Na postagem Modificando o Adaptador USB Serial WiFi ESP8266 para Upgrade do ESP-01 você pode ver mais detalhes do processo de adaptação.

OBS: sem modificar o Adaptador USB Serial para WiFi ESP8266 ESP-01 conforme mostrado no link acima, não será possível utilizá-lo para upgrade de firmware.

Antes de fazer a gravação de firmware no ESP-01, podemos verificar qual a versão de firmware está gravado na placa. Para isto, vamos utilizar o PuTTY. Clique AQUI para fazer o download do programa.

Após o download do PuTTY, basta fazer a instalação dele no Windows e um atalho será criado na área de trabalho. Acople o ESP-01 no adaptador modificado, conecte a porta USB do seu computador e dê dois cliques no atalho para abrir o PuTTY.

Com ele aberto, basta configurar conforme mostrado na imagem a seguir:

img01_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

1 – Serial line: insira a porta COM em que seu adaptador foi alocado. Se não souber qual o número da porta, basta acessar o ‘Gerenciador de Dispositivos’ e em ‘Portas (COM e LPT)’ você pode ver o número da porta COM do adaptador.

2 – Speed: insira a velocidade de comunicação da serial. Por padrão, o ESP-01 vem de fábrica com a velocidade de 115200, mas se ao tentar enviar comandos AT através do PuTTY e não conseguir digitar nenhum comando, basta alterar esta configuração para 9600 e salvar.

3 – Connection type: marque o radio button referente a Serial.

4 – Saved Sessions: insira um nome para esta conexão que acabou de configurar e clique em ‘Save’ para que os dados fiquem registrados no programa. Com a sessão salva, basta dar dois cliques nela toda vez que precisar se conectar ao ESP-01 através do adaptador.

Terminada a configuração, basta clicar em ‘Open’ para que a janela de envio de comandos AT seja aberta:

img02_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Um conjunto de comandos AT ou comandos Hayes como também é conhecido, consiste em uma série de cadeias curtas de texto que podem ser combinadas para produzir comandos para operações a serem executadas por um dispositivo.

No caso do ESP8266, os comandos AT podem ser utilizados, por exemplo, para teste de conexão, reset, verificação de versão do firmware, configurar modo de operação, conectar a um ponto de acesso, verificar o IP de conexão, listar pontos de acesso, desconectar do ponto de acesso e muitas outras funções.

Inicialmente vamos utilizar apenas dois comandos AT, sendo um para verificar se a conexão está OK e outro para verificarmos a versão do firmware do módulo. Com a janela de comandos do PuTTY aberta, digite (sem aspas) o comando ‘AT’, dê enter e depois pressione Ctrl+j para que o comando seja executado. O resultado deverá ser algo parecido com a imagem abaixo:

img03_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Se o retorno do comando foi OK, então a conexão com o ESP-01 está funcionando conforme o esperado. Ainda na janela de comandos, digite (sem aspas) ‘AT+GMR’, dê enter e depois pressione Ctrl+j para que o comando seja executado. Na imagem abaixo você pode ver que a versão do firmware do ESP-01 que estou utilizando é a 0018000902:

img04_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

OBS: a taxa padrão de comunicação desta versão do meu ESP-01 é de 9600 bauds, diferente dos 115200 bauds que é mostrado numa das imagens de configurações do PuTTY, logo, tive que fazer o ajuste de configuração do Speed no programa para conseguir enviar comandos AT após abrir a conexão.

Pode ser que versão do firmware do seu ESP-01 seja diferente desta apresentada na imagem. Ao pesquisar por firmware para o ESP-01, você irá encontrar diversas opções, desde as oficiais até as modificadas por alguns desenvolvedores. Para este tutorial, utilizei a versão v0.9.5.2 AT que é uma atualização da v0.9.2.2 AT (versão que está instalada no ESP-01 que estou utilizando).

Agora vamos prosseguir com a gravação de firmware no ESP-01.

OBS: feche o PuTTY para que a conexão com o ESP-01 seja encerrada, pois se mantiver a conexão aberta, ao tentar acessar o módulo via serial através de outro programa, a conexão irá falhar.

Como vamos iniciar o processo de gravação de firmware no ESP-01, é necessário que o GPIO0 esteja conectado a GND, portanto, desconecte seu adaptador do computador e altere a posição do interruptor liga / desliga para ON. Na imagem abaixo você pode ver que alterei apenas uma das vias para a posição ON, pois ambas as vias estão soldas nos contatos do adaptador:

img05_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Reconecte o adaptador a porta USB do computador.

Clique AQUI para fazer o download do firmware v0.9.5.2 AT. Coloque na raiz da unidade C do seu computador o arquivo baixado.

Há diversos programas para gravação de firmware no ESP8266, porém, para este tutorial utilizei o xtcom_util, que você pode baixar clicando AQUI.

Após download do arquivo, basta descompactar e executar o XTCOM_UTIL.exe que está na pasta. Ao abrir o programa, clique na aba ‘Tools’ em seguida clique em ‘Config Device’:

img06_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Na janela que abrir, em ‘COM No:’ selecione a porta COM em que seu ESP-01 está conectado. Se seu ESP-01 está alocado em uma porta acima da COM6, recomendo que acesse a postagem Modificando o Adaptador USB Serial WiFi ESP8266 para Upgrade do ESP-01 e veja como alterar a porta COM de conexão. Em ‘Baud Rate:’ selecione a velocidade 115200:

img07_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Em seguida clique no botão ‘Open’ e a mensagem ‘Operation Succeeded!’ deverá ser mostrada. Clique em OK para fechar a janela:

img08_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Clique no botão ‘Connect’ e se tudo estiver OK você receberá a mensagem ‘Connect with target OK!’. Clique em OK para fechar a janela:

img09_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Se o interruptor do adaptador não estiver na posição ON, quando você clicar em ‘Connect’ o programa irá gerar uma mensagem de erro, pois o GPIO0 não vai estar conectado ao GND e consequentemente o modo de gravação de firmware não vai estar habilitado.

”Feche a janela ‘Config Device’, em seguida acesse a aba ‘API TEST(A)’ e clique na opção ‘(4) Flash Image Download’:

img10_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Na janela que abrir, clique em ‘Browse..’ e selecione o arquivo v0.9.5.2 AT Firmware que você colocou na raiz da unidade C do seu Windows:

img11_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Em seguida, clique em ‘Download’ e aguarde o processo de upgrade ser finalizado:

img12_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Ao final do processo você receberá a mensagem ‘Operation Succeeded!’:

img13_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Feche todas as janelas do xtcom_util e abra novamente o PuTTY. Se antes seu ESP-01 funcionava com a taxa de comunicação em 9600 bauds, você deverá alterar no PuTTY o Speed para 115200, pois esta é a taxa padrão para o firmware v0.9.5.2 AT.

Abra a conexão com o ESP-01 e na janela de comando, digite (sem aspas) o comando ‘AT’, dê enter e depois pressione Ctrl+j para que o comando seja executado. Se o resultado for OK, então a comunicação está operando normalmente.

OBS: se não conseguir digitar nenhum comando na janela do PuTTY, feche o programa, desconecte seu adaptador do computador e altere a posição do interruptor para desligado. Em seguida conecte o adaptador a porta USB, inicie o PuTTY, abra novamente a janela de comando e tente executar os comandos AT.

Para verificarmos a nova versão do firmware, digite (sem aspas) ‘AT+GMR’, dê enter e depois pressione Ctrl+j para que o comando seja executado. Note que a versão do firmware atualizou para AT version:0.21.0.0 e SDK version:0.9.5:

img14_upgrade_de_firmware_no_esp-01_e_envio_de_comandos_at_ide_arduino_nodemcu_atualizacao_update

Portanto, a atualização de firmware foi executada com sucesso no ESP-01.

Ainda utilizando comandos AT, vamos ver alguns outros comandos e suas funcionalidades. Na janela de comandos do PuTTY digite e execute cada um dos comandos abaixo e veja o resultado (primeiro enter no comando e depois Ctrl+j para executar):

AT+CWMODE? –  o resultado deste comando será um numeral de 1 a 3, onde 1 significa que o ESP-01 está configurado como Station (Estação), 2 significa que está configurado como Access Point (Ponto de Acesso) e 3 significa que ele está configurado como Station e Access Point.

AT+CWMODE=1 – ao executar este comando, o ESP-01 passará a atuar apenas como Station. Depois de executá-lo, digite e execute novamente o AT+CWMODE? e verifique se a configuração alterou.

AT+CWLAP – este comando exibe todos os pontos de acesso (redes sem fio) que estiverem ao alcance do módulo. Lembrando que se o módulo estiver configurado apenas como como Access Point (CWMODE:2), ao executar o AT+CWLAP você irá receber ERROR como retorno.

AT+CWJAP=”ssid”,””senha” – este comando é utilizado para que o módulo se conecte a um ponto de acesso WiFi. Para isto, basta inserir no comando o ssid (nome da rede sem fio) e a senha. Por exemplo: AT+CWJAP=”MinhaRede”,”12345678″. Após preencher estas informações, basta executar o comando. Lembrando que você NÃO deve remover as aspas duplas deste comando.

AT+CWJAP? – após se conectar a uma rede WiFi, execute este comando e ele irá retornar o ssid da rede em que você está conectado.

AT+CIFSR – ao executar este comando, o ESP-01 irá retornar o IP de conexão do módulo. Em posse do IP, vá até o cmd (terminal de comandos) do Windows e execute um ping no IP e veja se está OK.

AT+CWQAP – ao executar este comando, o ESP-01 irá se desconectar do ponto de acesso.

AT+RST – este comando é utilizado para dar um reset no módulo e efetivar as configurações feitas.

Com estes comandos mencionados acima, já é possível fazer alguns testes básicos no ESP-01, modificar configurações e conectar a redes sem fio.

O firmware que vem de fábrica no ESP-01 só nos permite fazer o envio de comandos AT. Portanto, se você quer programar o módulo através da IDE do Arduino, por exemplo, é necessário o uso de um firmware alternativo. A opção mais comum de firmware que vai possibilitar programar a placa para novas funcionalidades e através da IDE do Arduino, é o NodeMCU.

Interessado em saber mais detalhes sobre instalação do firmware NodeMCU no ESP-01?! Então acesse nossa postagem Instalando o Firmware NodeMCU no ESP8266 ESP-01 e veja como é simples a migração.

Gostou deste tutorial? 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 22 comentários para esta postagem
  1. CRISTIANO SANTOS RIBEIRO às 19:10

    Euller, boa tarde meu nobre.. muito bom seus ttorias tem uma didatica muito bacana… Publiquei em um outro post seu sobre uma dificuldade que eu estou tendo para enviar os comandos AT.

    Eu fiz o processo certinho, tanto usando o XTCOM_UTIL, como o FLASH… eu consigo atualizar o firmware, em ambas as ferramentas o processo eh concluído com sucesso. Porém ao remover o adaptador do USB e inserir novamente em modo de execução, sem a ligação com o GND o computador não reconhece a porta COM, ele apenas reconhece se eu colocar em modo de gravação. Percebi que o adaptador USB que eu tenho, quando ligado em modo de execução, dois LEDS ficam acessos, e quando coloco em modo de Gravação apenas um LED. você sabe o que pode está causando este comportamente estranho? caso não saiba teria alguma orientação? será que eh problema no meu ESP?

    • Euler Oliveira Autor às 09:33

      Olá Cristiano.

      Agradeço pelo comentário!

      Infelizmente não sei o que pode estar causando esse comportamento.

      O ideal seria testar um outro ESP-01 ou adaptador serial.

  2. Ballejos às 15:13

    Levei umas duas semanas procurando um site que resolvesse o problema de comunicação AT do meu ESP8266-01. Ontem fui dormir muito feliz. Ninguém da minha casa entendeu a minha felicidade. :)) Obrigado e parabéns.

    • Euler Oliveira Autor às 10:35

      Olá Ballejos.

      Agradeço pelo comentário e reconhecimento!

      Vlw!!!

  3. matheus às 09:34

    Bom dia, estou fazendo um projeto pra fins de aprendizado mas estou apanhando bastante, sera que você não poderia me auxilar ? tenho um Arduino pro mini com uma FTDI232 e a ESP 8266 preciso fazer a ligação delas, ja peguei algumas imagens da internet e consegui chegar a algum lugar, mas como tenho quase que conhecimento Nulo estou enfrentando bastante problemas.

    • Euler Oliveira Autor às 18:18

      Olá Matheus.

      Agradeço pelo comentário!

      Descreva os problemas que está tendo e de repente consigo te auxiliar.

  4. Ednardo às 10:04

    Já tentei várias firmwares diferentes para fazer meu esp01 aceitar comandos AT e não obtive sucesso. Nem mesmo com essa que vc disponibilizou nesse post.
    Meu esp01 aceita códigos via IDE do arduino e funciona normalmente com eles. Só não consigo fazer ele voltar a aceitar comandos AT. Não sei mais o que fazer.

    • Euler Oliveira Autor às 11:08

      Olá Ednardo.

      Agradeço pelo comentário!

      Seguindo a risca os passos do tutorial e seu ESP8266 sendo o ESP-01S, deveria funcionar. O que posso sugerir é você executar os procedimentos do tutorial e ao final tentar alterar a taxa de comunicação da serial para outras velocidades além das mencionadas no texto

  5. Luis Fernando Padovani Da às 07:15

    Show esse tutorial… man to procurando como alterar o nome dele como acesso point…. Como altero o nome do ssdi do esp01 ?

  6. sergio às 16:03

    Obrigado pelo tutorial e parabéns.
    Uma grande dúvida… quando programo com a IDE do Arduino e salvo no nodmcu ou no esp, estou sobrescrevendo esse firmware?
    Digo…ou uso o firmware que dele ou uso o gragrama que gravei via IDE do arduino?
    Se programo em “arduino” não preciso fazer atualizações de firmware?

    Obrigado

    • Euler Oliveira Autor às 16:13

      Olá Sérgio.

      Agradeço o reconhecimento!

      Quando é feito carregamento de um firmware no ESP8266 ou qualquer placa baseada nele, se por ventura posteriormente for carregado um outro código na placa, o firmware / código anterior será sobrescrito.

  7. Lucas às 00:50

    Não estou conseguindo digitar o comando na tela preta do PuTTY, não esta aparecendo nada quando digito

    • Euler Oliveira Autor às 09:07

      Olá Lucas.

      No artigo menciono alguns procedimentos para situações em que os comandos AT não são enviados ou mostrados no Putty.

      Releia o artigo e execute os procedimentos.

  8. Jose às 14:34

    Eu tambem custei a achar um site que fizesse o esp8266 funcionar. So nao entendi o porque do comando ctrl+j no putty, ja que pelo serial monitor da interface IDE do arduino nao tem necessidade deste comando.

    • Euler Oliveira Autor às 14:41

      Olá Jose.

      O Ctrl+j é uma particularidade do Putty para confirmação da execução do comando

  9. renato às 18:22

    Muuuuuuiiiiiito obrigado. Foi único lugar em que consegui as informações necessárias para fazer meu ESP funcionar. Já estava ficando louco.

  10. lucas às 08:18

    Pow amigo,eu tentei mas não consegui ,alterei o bd barias vezes e as entradas serial mas n consegui enviar os comandos at

    • Euler Oliveira Autor às 18:09

      Olá Lucas.

      Sugiro que confira se a velocidade da serial que está definida no seu ESP-01, pois este pode ser o motivo de não conseguir enviar os comandos.

      • Mario às 16:37

        Como faço para conferir a velocidade que meu esp está?