ESP8266 – Instalar firmware nodeMCU usando Linux ou Windows

ESP8266-07
ESP8266-07

Trocar o firmware do seu ESP8266, seja ele qual modelo for, é um processo bastante simples. Neste post será exemplificada a sobrescrição do firmware AT da espressif com o nodeMCU, um firmware que oferece recursos extras e acessos ágeis a funcionalidades que usando AT tornam o processo um pouquinho mais longo e demorado. Também será apresentada uma IDE de desenvolvimento para linguagem LUA e MicroPython, flashers para Windows e Linux e referências da linguagem LUA.

ESPlorer

O ESPlorer é uma IDE multiplataforma escrita em Java, criado pela 4refrOnt russa para desenvolver em LUA para nodeMCU e MicroPython e também suporta todos os comandos AT. Infelizmente, por ser Java requer Java SE a partir da versão 7 instalada. Para executar em Linux, pode-se abrir um terminal e digitar:

As principais características dessa IDE são:
* highlight para LUA e Python
* Temas de cores
* Refazer/Desfazer
* Envio de dados para o ESP8266
* log detalhado
* entre outros




Um bom tutorial em PDF pode ser baixado (por sua conta e risco) nesse link. Para utilizar essa IDE, obviamente você precisa ter o firmware nodeMCU instalado em seu ESP8266.

Se preferir, pode ir até o repositório do projeto no GitHub. Ou no site oficial, através desse link.

Subir código através da IDE

Para fazer a interface, você precisará de um adaptador FTDI/USB. O meu tem a opção de 3.3v ou 5v configurado por jumper. Não conecte o ESP8266 diretamente a 5v ou “capuft”, se é que entendeu a onomatopéia. O wiring do meu modelo fica assim:

ESP8266 FTDI
ESP8266 FTDI

LUA é uma linguagem bastante simples, vale a pena dar uma olhada. Um pequeno exemplo de código para fazer blink:

ESPlorer IDE
ESPlorer IDE

Repare que não há declaração de tipo para variáveis, assim como no Python. Perceba também que gpio é um objeto e OUTPUT é um atributo. Não é difícil adaptar-se à sua sintaxe, bastante parecida com Python e provavelmente para hobistas é a melhor opção pela agilidade que isso dá na programação, além de simplificar a depuração de erros.

Depois de ter a conexão devidamente estabelecida entre o ESP8266 e seu computador utilizando o ESPlorer, selecione a aba NodeMCU, clique em Scripts e crie um novo script chamado init.lua. Copie o código disposto no exemplo para essa aba do script que você acabou de criar e clique em “Save to ESP”.

Se desejar remover o script posteriormente, digite (à esquerda) file.remove(“init.lua”) e clique em Send. Outra opção é utilizar o comando file.format() para remover todos os arquivos salvos no ESP8266.

Resumindo, no canto inferior direito da IDE você tem um inputbox que após o sinal de igual você pode inserir comandos lua como por exemplo, wifi.sta.getip(). Após, basta clicar em Send, simples assim de interagir. Fora isso, você escreve seu script e a partir da própria IDE salva, faz upload, executa, apaga, etc.

Espero que isso tenha lhe motivado a dar o próximo passo.

Flasher

Flasher para Windows
Flasher para Windows

Será necessário um programa com habilidade de fazer o upload do firmware para o ESP8266. O flasher oficial do nodeMCU (para Windows) pode ser baixado nesse link. Sua interface é bastante intuitiva e a única coisa a mudar é o path para o firmware (na linha que está em verde), como você pode observar no screenshot que tirei rodando o programa com Wine (apenas para mostrar a interface).

Se pretende subir o firmware no Linux, você pode pegar o ESPTool, ferramenta escrita em Python e a que utilizo. Você vai precisar instalar também python-serial. Enfim, sigamos com o flashing; sua sintaxe é bastante simples:

No meu caso, o arquivo descritor do dispositivo era ttyUSB0, mas dependendo da ocasião, o seu pode ser outro. Uma das formas de saber o dispositivo é usar:




Então conecte o dispositivo FTDI e observe o terminal posteriormente.

Se sua distribuição não está com o messages habilitado, o arquivo não exisitirá, então você pode fazer outro procedimento:

Isso deve mostrar o dispositivo que foi conectado.

Firmware

NodeMCU no GitHub
NodeMCU no GitHub

O firmware é pequeno, por isso tanto faz você baixá-lo previamente ou fazer a conexão do seu dispositivo primeiro. Pegue-o nesse link. Logo que abrir a página, vá em “Branch: master” e escolha “Branch: dev”, então clique em “releases”, localizado na posição do screenshot abaixo:

Seleção do Firmware
Seleção do Firmware

 Baixe o mais atual (na época desse post, a versão mais atual está datada como 27 de Junho de 2015).

Após fazer o flashing, abra o ESPlorer e configure a velocidade para 9600kbps (kilobauds, só pra constar). Faça a conexão e clique em Reset para ver a versão do firmware.

Se você optou por gravar o programa descrito anteriormente em seu ESP8266 e gostaria de testá-lo, faça o wiring desse modo:

Preparando o blink
Preparando o blink

Após fazer o flashing, retire o fio do GPIO e reinicie o ESP8266. Conecte via serial à 9600kbps. Se você já sabe o SSID e senha que vai utilizar, o primeiro passo para colocá-lo na rede é executar essa série de comandos:

Reiniciar e então veja se o modo está correto (1):

Agora, tendo em mãos o SSID e senha:

Para auto-conexão, use 0 para desativar e 1 para ativar:

E para conferir o ip (retorna ip, mascara e gateway):

Tem uma lista gigantesca de comandos predefinidos, sugiro fortemente que faça uma leitura em http://www.nodemcu.com/docs/wifi-sta-module/ porque além dos comandos documentados ainda tem exemplos dos comandos e de seus respectivos retornos. Apenas para ter uma idéia, essa é a lista de categorias (se é que pode ser chamado assim):

NODE MODULE
FILE MODULE
WIFI MODULE
WIFI.STA MODULE
WIFI.AP MODULE
TIMER MODULE
GPIO MODULE
PWM MODULE
NET MODULE
NET.SERVER MODULE
NET.SOCKET MODULE
I2C MODULE
ADC MODULE
UART MODULE
ONEWIRE MODULE
BIT MODULE
SPI MODULE
MQTT MODULE
MQTT CLIENT MODULE



O que mais dá pra fazer?

Até o ESP8266-01 fica mais poderoso com o nodeMCU. Com ele, fica fácil dispensar outra MCU, ainda mais de o objetivo for IoT, onde o conjunto de hardware fica super reduzido, bastando um regulador de tensão, sensor, pack de bateria e o ESP-8266.

Espero que o post tenha lhe agradado e se sim, compartilhe-o nas redes sociais e siga Do bit Ao Byte no facebook.

Pra mim, particularmente, esse tutorial será um problema, porque as idéias que me surgem na mente vão render muitos outros posts.
Até o próximo!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

2 comentários em “ESP8266 – Instalar firmware nodeMCU usando Linux ou Windows

Deixe uma resposta