Como instalar o MicroPython no ESP8266 NodeMCU
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.
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:
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):
Selecione a aba Advanced e selecione os parâmetros abaixo:
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:
Com as configurações finalizadas, volte para a aba principal (Operation), e selecione Flash para que a gravação do firmware seja iniciada.
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:
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:
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:
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()
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:
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.
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:
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!
Funciona também no Wemos D1 Mini?
Oi Samir,
No momento eu não tenho um Wemos D1 mini para testar, mas por esse link creio que você consiga fazer:
https://forum.micropython.org/viewtopic.php?t=2827&start=30
Abraço!
Adilson
Muito bom o conteúdo do canal parabéns! poderia fazer um post apresentando o funcionamento do sensor de PH. Obrigado.
Oi Luciano,
Muito obrigado! Vamos arrumar um sensor de PH e montar um post. Pode deixar. 😉
Abraço!
Adilson
Boa tarde, legal o site de vocês! Não consegui instalar microPython usando esse roteiro mencionado no artigo. Na parte de teste a porta serial apresenta vários caracteres como se a velocidade selecionada estivesse errada, testei várias velocidades e nada… o led built-in não parava de piscar.
Optei por usar o roteiro em http://docs.micropython.org/en/latest/esp8266/esp8266/tutorial/intro.html#deploying-the-firmware e consegui instalar e usar a serial a 115200, estou usando Windows 10 pro 64 e o ESP8266 Lolin new NodeMcu V3. Agora estou com microPython instalado nesse ESP8266 de teste.
Se vocês quiserem mais informações sobre o ESP que usei nos testes e outras informações para melhorar o artigo a fim de que novatos como eu não enfrentem muitas dificuldades estou a disposição para ajudar.
Abraços e continuem o bom trabalho. 🙂
Oi Anderson!
Muito legal! Obrigado pelas informações. Se puder compartilhar o que foi feito, pode responder por aqui mesmo ou se preferir, use o formulário de contato no lado direito da página.
Abraço e obrigado! 🙂
Adilson
na hora de gravar percebi que faltava alguma configuração e a gravação saiu errada. Como faço para apagar a EEPROM.
Obrigado.
Oi Luiz,
Já aconteceu isso comigo. Eu acabei regravando o firmware original. Use este post aqui como base, por favor.
Abraço!
Adilson