Instalando o Firmware NodeMCU no ESP8266 ESP-01

Instalando o Firmware NodeMCU no ESP8266 ESP-01

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.

O processo para fazer a migração de firmware é similar ao visto na postagem Upgrade de Firmware no ESP8266 ESP-01 e envio de Comandos AT, a diferença é que vamos utilizar o NodeMCU Flasher para instalar o novo firmware no módulo.

Para este tutorial, novamente vou utilizar o 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.

Para iniciar o processo será necessário fazer o download do firmware NodeMCU e do NodeMCU Flasher:

Download do firmware NodeMCU
Download do NodeMCU Flasher

Feito o download dos arquivos, recorte ambos e cole na raiz da unidade C do seu computador.

Com o ESP8266 ESP-01 acoplado ao Adaptador USB Serial para WiFi ESP8266 ESP-01 modificado, mude a posição do interruptor para ON e conecte a porta USB do seu computador:

img01_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Faça a descompactação do NodeMCU Flasher e na pasta descompactada (nodemcu-flasher-master) você terá as subpastas ‘Win32’ e ‘Win64’. Abra a pasta correspondente a versão do seu Windows (32bits ou 64bits), acesse a pasta ‘Release’ e em seguida execute o ESP8266Flasher:

img02_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Com o programa aberto, acesse a aba ‘Advanced’ e em ‘Baudrate’ selecione 115200:

img03_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Em seguida acesse a aba ‘Config’, clique no primeiro botão com símbolo de engrenagem e selecione o arquivo nodemcu_integer_0.9.6-dev_20150704 que você colocou na raiz da unidade C do seu Windows. No campo ao lado da engrenagem deixe o endereço 0x00000:

img04_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Clique na aba ‘Operation’, selecione a porta COM em que seu ESP-01 está conectado e clique no botão ‘Flash(F)’:

img05_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

OBS: se os endereços AT MAC e STA MAC do módulo não forem reconhecidos pelo programa, clique em ‘Stop(S)’, desconecte o adaptador do computador, conecte novamente e clique em ‘Flash(F)’.

Se o processo ocorrer bem, ao final um símbolo verde será mostrado no rodapé do programa:

img06_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Terminado a migração de firmware do ESP-01, o módulo está apto a receber códigos através das IDE do Arduino. Lembrando que com este firmware você não conseguirá mais enviar comandos AT. Caso queira utilizar seu ESP-01 com comandos AT novamente, basta fazer upgrade de um firmware voltado apenas para isto, no caso, o firmware padrão de fábrica, por exemplo.

Para fazermos um teste rápido do módulo, vamos executar o blink. No ESP-01 há um LED conectado a GPIO1, que no caso é o pino U0TXD (TX) do módulo e este LED fica piscando sempre que estamos fazendo upgrade de firmware ou quando enviamos algum código através da IDE do Arduino.

Se você ainda não instalou a IDE do Arduino, acesse o link abaixo e em seguida retorne para continuar:

Arduino – Instalação e Configuração da IDE no Windows

Para fazer o envio de códigos ao ESP-01 a partir da IDE do Arduino, também é necessário que a GPIO0 do módulo esteja conectada ao GND pelo menos quando conectar o adaptador a porta USB. Portanto, se mudou a posição do interruptor no adaptador para a posição de desligado, volte a posição para ON e conecte o adaptador a porta USB. Após conectar, você pode voltar o interruptor para a posição desligado ou se preferir pode manter na posição ON que não irá interferir no envio de códigos para o módulo.

OBS: após enviar um código ao ESP-01 através da IDE do Arduino, sempre que for enviar um novo código, será necessário desconectar a placa da USB, colocar a GPIO0 conectada ao GND e inserir o módulo novamente na porta USB. Caso não faça desta forma, irá receber os erros espcomm_sync failed / espcomm_open failed / espcomm_upload_mem failed:

img07_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Abra a IDE do Arduino e no menu ‘Ferramentas’ selecione a opção ‘Placa:’ e na lista selecione ‘Generic ESP8266 Module’:

img08_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

A configuração após selecionar a placa deverá ser igual à da imagem abaixo:

img09_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Ainda no menu ‘Ferramentas’ selecione a opção ‘Porta’ e marque a porta COM em que seu ESP-01 está conectado. No meu caso ele está conectado à porta COM2:

img10_instalando_o_firmware_nodemcu_no_esp8266_esp-01_ide_arduino_atualizacao_update

Abaixo está o código que você deve carregar no ESP-01. Copie e cole o código na IDE para em seguida enviar para a placa:

Após terminar o carregamento do código, o LED azul do módulo irá piscar em intervalos de 1 segundo.

No código você pode alterar as linhas ‘delay(1000);’ e dentro dos parênteses remover o 1000 e colocar outro valor para diminuir ou aumentar o intervalo que o LED permanecerá aceso ou apagado. Lembre-se de que o 1000 entre parênteses é igual a 1000 milissegundos que é igual 1 segundo. Portanto, se você deseja que o intervalo seja de 5 segundos, deverá colocar 5000 entre os parênteses.

Conforme já mencionei anteriormente, sempre que for enviar um novo código, desconecte o módulo da USB, coloque a GPIO0 conectada ao GND e insira o módulo novamente na porta USB. Além disso, o LED irá parar de piscar quando você reconectar o módulo a USB com o interruptor na posição ON, pois lembre-se: o LED está conectado ao pino TX do módulo e este pino é uma das vias de comunicação da serial e precisa estar liberado para comunicação. Estes detalhes não são exclusivos do Adaptador USB Serial para WiFi ESP8266 ESP-01 modificado, pois se você for utilizar qualquer outro adaptador USB serial, será necessário fazer os mesmos procedimentos.

Apesar do ESP8266 modelo ESP-01 possuir poucos pinos disponíveis, é possível desenvolver vários projetos voltados para IoT (Internet da Coisas). Com o firmware NodeMCU instalado no módulo, você poderá implementar funcionalidades bem interessantes, que antes não eram possíveis devido ao firmware padrão de fábrica.

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 6 comentários para esta postagem
  1. Robson Andrade às 20:17

    Com esse firmware é necessário ter 3.3v no pino ch_pd para o módulo funcionar nos modos st, ap ou st+ap?

    • KAJO às 09:52

      Agora descobri o erro de enviar código.

      Obrigado por esclarecer as dúvidas todas. Obrigado.

  2. Sergio às 03:05

    Euler(ou algum colega) poderia me ajudar?
    Fiz exatamente como descrito e a atualização do firmware ocorreu com sucesso. Em seguida, carreguei o código do blink 100%.
    Dai vc disse “Após terminar o carregamento do código, o LED azul do módulo irá piscar em intervalos de 1 segundo.”
    Porém isso não ocorreu. Somente o led vermelho fica aceso.
    Depois tentei desconectar e voltar a chave para desligar o junper do GPIO0 do GND, porém continua da mesma forma somente com o led vermelho aceso.
    O que pode estar errado? já até fiz este mesmo procedimento com outro esp-01 mas o problema continua o mesmo.
    *Já estou no desespero pois fiquei a tarde toda de hoje e agora de madrugada até 4 da manhã tentando resolver e nada consegui.
    Obrigado.

  3. Alexandre Inacio às 15:29

    Euler Oliveira Excelente material já me ajudou muito.

    Deixa te perguntar, consigo usar esse módulo com o arduino uno por exemplo e com este firmware? Eu tenho aquele adaptador ESP-01 Adapter de 8 pinos para 4 que sai VCC GND RX e TX. Sabe como eu poderia usar ele pra desenvolver algo no arduino uno e usar ele para interface wifi me conectando a uma rede?

  4. GERALDO MAJELA FERREIRA DE MACEDO às 17:14

    Perfeito! Excelente! Finalmente consegui gravar o firmware do NodeMCU no ESP-01.
    Também consegui gravar o Sketch feito na IDE do Arduino no ESP01.
    Conseguiram explicar com linguagem clara e objetiva de como chegar lá.
    Parabéns! Muito obrigado!