Já ouviu falar de MicroPython? Ele é uma versão reduzida do interpretador Python, feita para rodar em microcontroladores e permite que você use todas as facilidades da linguagem para programar o seu dispositivo, e neste post vamos mostrar como instalar o MicroPython no ESP8266 NodeMCU.

MicroPython e ESP8266 NodeMCU

O módulo wifi ESP8266 NodeMCU já apareceu várias vezes aqui no Arduino e Cia, então vamos direto ao ponto, mostrando como implantar o MicroPython nessa placa.

Download do firmware MicroPython

Antes de mais nada, vamos fazer o download do firmware do MicroPython, que você encontra nesta página.

O firmware nada mais é do que um arquivo com extensão “.bin”, e vou utilizar nos testes a versão mais atual disponível, no caso a 1.9.4:

Download do firmware MicroPython

Por enquanto apenas guarde o local onde o arquivo foi baixado, pois vamos utilizá-lo no próximo passo.

Nota: O procedimento abaixo foi testado em módulos wifi ESP8266 NodeMCU, com o ESP-12 idenfificado como ESP-12F e ESP8266MOD. Segundo a documentação do MicroPython o procedimento é válido para todas as versões do ESP8266, variando o firmware de acordo com a quantidade de memória flash do módulo que você deseja gravar.

Gravando o MicroPython no ESP8266 NodeMCU

Para gravar o firmware MicroPython no ESP8266 NodeMCU, vamos usar o NodeMCU Flasher, disponível neste link. Não é necessário instalar o programa. Apenas descompacte o arquivo que você baixou, conecte o NodeMCU na USB do seu computador e execute o ESP8266Flasher.exe, que se encontra na pasta Win32Release (para versões Windows de 32 bits) ou Win64Release (para versões Windows de 64 bits).

Ao rodar o NodeMCU Flasher, será exibida a tela abaixo, onde já é mostrada a porta serial em que o NodeMCU foi encontrado (no caso, a porta COM8):

Tela principal NodeMCU Flasher

Selecione a aba Advanced e selecione os parâmetros abaixo:

Tela Advanced NodeMCU Flasher Serial

Na aba Config vamos setar o path (caminho) do firmware que baixamos anteriormente. Configure também o endereço 0x00000 no lado direito da tela:

Configurações de firmware MycroPython NodeMCU Flasher

Com as configurações finalizadas, volte para a aba principal (Operation), e selecione Flash para que a gravação do firmware seja iniciada.

Gravando firmware MicroPython no ESP8266 NodeMCU

Aguarde o final do processo e se tudo estiver OK, o NodeMCU agora já está com o firmware MicroPython instalado. Reinicie o NodeMCU para que o novo firmware seja carregado.

Testando o MicroPython no ESP8266 NodeMCU

Vamos testar o MicroPython no NodeMCU usando um programa de comunicação serial. Vou usar o Termite (download), mas você pode usar outros programas com o TeraTerm, Putty, etc. Configure a velocidade da serial (baud rate) do seu programa para 115200, selecione a porta serial correta e faça a conexão com o seu ESP8266 NodeMCU. Se você reiniciar o módulo, verá as informações iniciais do firmware MicroPython que você instalou:

Termite NodeMCU com MicroPython

Também é exibido o prompt do Python (>>>), indicando que você já pode entrar com os comandos em Python, como por exemplo print(‘Arduino e Cia’), que exibe a saída abaixo:

Python exibição de texto

Outro teste inicial que você pode fazer é manipular o Led onboard do ESP8266 NodeMCU, com a sequência de comandos abaixo:

import machine
pin = machine.Pin(2, machine.Pin.OUT)
pin.value(1)
pin.value(0)

A sua tela do programa de comunicação serial fica assim:

Python manipulação de GPIO NodeMCU

Alterne os comandos pin.value(1) para apagar o led onboard, e pin.value(0) para acender.

Programando o NodeMCU em Python usando a rede Wireless

Quando você grava o firmware do MicroPython no NodeMCU, ele já “sobe” com uma rede wifi configurada. No meu caso, a rede abaixo:

Você pode se conectar nessa rede para usar o WebRPL (o programa que disponibiliza um prompt do Python via Wifi). Utilize a senha micropythoN (com N maiúsculo no final), ou então conecte o seu NodeMCU no roteador (recomendo essa opção).

Para conectar o módulo ao roteador, utilize os comandos abaixo, substituindo SSID pelo nome da rede wifi que você deseja se conectar, e senha-wifi pela senha da rede:

import network
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('SSID', 'senha-wifi')

Verifique o IP que foi atribuído ao módulo com o comando sta_if.ifconfig()

Endereço IP NodeMCU

Antes de fazer a conexão, vamos configurar uma senha para o WebRPL no ESP8266 usando o comando import webrepl_setup. É uma pequena configuração que vai perguntar se você deseja que o WebREPL seja carregado durante o boot, vai pedir que você digite e depois confirme uma senha (coloquei a senha “arduino”) e finalmente vai perguntar se você deseja reiniciar o ESP8266 para que as configurações tenham efeito:

WebREPL Setup MicroPython

Com o NodeMCU carregado e o WebREPL ativado no módulo com a nova senha, acesse este link, que vai mostrar a tela abaixo. Você também pode fazer o download do WebREPL direto no github.

MicroPython WebREPL

Preencha o endereço IP do seu módulo ESP8266 NodeMCU (no meu caso, 192.168.0.181) e clique em Connect. Entre com a senha que você configurou anteriormente e em poucos instantes o prompt do Python estará disponível para você programar o NodeMCU via Wifi:

MicroPython WebREPL Conexão

Claro que o MicroPython no ESP8266 NodeMCU não fica só nisso. Você pode criar arquivos, scripts, manipular a GPIO, usar PWM, interfaces, etc. Confira toda a documentação oficial do MicroPython para ESP8266 e divirta-se!

Gostou? Confira outros posts com ESP8266 aqui mesmo no Arduino e Cia!

Avalie este post!