O módulo wifi ESP32 NodeMCU é uma evolução do ESP8266 e nele também é possível instalar o MicroPython aproveitando todos os recursos que essa linguagem oferece. Você vai ver que programar o ESP32 em Python é muito simples usando os procedimentos mostrados neste post.
Basicamente o que vamos fazer é usar o uPyCraft, uma eficiente IDE de programação e que também possibilita a gravação do firmware no ESP32.
Instalando firmware MicroPython no ESP32
O procedimento que vamos mostrar aqui pode ser usado tanto no Módulo Wifi ESP32 NodeMCU como em outros modelos de módulo ESP8266, com algumas adaptações (versão de firmware, placa, etc).
Tenho um outro post aqui no blog que também serve para essas duas placas e pode ser uma outra opção caso você tenha algum problema. Consulte o post Como instalar o MicroPython no ESP8266 NodeMCU.
Para que o uPyCraft funcione é necessário que você tenha na sua máquina uma versão do Python instalada. A versão mais atual você encontra neste link. Faça o download do arquivo de instalação (selecione Download Python X.X.X) e execute selecionando as opções padrão do instalador. É bem simples:
Agora vamos baixar o firmware do MicroPython para o ESP32. Na página, procure por Firmware for ESP32 Boards e selecione o arquivo de imagem (.bin) que você deseja usar. A versão mais atual que estou usando na data de criação deste post é a v1.10-265, conforme abaixo:
Após baixar o firmware, faça o download do uPyCraft, disponível neste link. Ele é uma IDE de programação e através dele você pode não só gravar o firmware como veremos logo abaixo, como também realizar a comunicação com o ESP32 e transferir arquivos para ele.
O uPyCraft que você baixar tem apenas um executável e ao rodar o programa você verá a seguinte tela:
Para gravar o firmware, selecione o menu Tools e escolha a opção BurnFirmware:
Na tela seguinte, escolha a placa ESP32, selecione a opção Erase Flash (para apagar completamente a memória do ESP32) e no campo Firmware Choose coloque o caminho do firmware MicroPython que você baixou anteriormente. Atenção para o endereço de gravação, que deve ser 0x1000. Sua tela vai ficar mais ou menos assim:
Clique em Ok e aguarde o processo de gravação. Na placa que estou usando foi necessário pressionar o botão BOOT para que fosse iniciado:
A imagem abaixo mostra como será o processo de gravação do firmware.
Após a gravação, não esqueça de reiniciar o NodeMCU para que o novo firmware já com o MicroPython seja carregado.
Para checar se está tudo ok, selecione a porta COM referente ao seu ESP32 NodeMCU no menu Tools e nesse mesmo menu selecione a placa ESP32.
Para realizar a conexão com o ESP32, clique no ícone da “corrente” no lado direito da IDE. Você poderá ver no lado esquerdo os arquivos que estão no módulo (boot.py) e na parte de baixo um prompt de comando:
Pressione o botão EN para reiniciar o módulo e ele irá mostrar nessa parte inferior do uPyCraft a versão do MicroPython instalada:
Tudo ok? Vamos testar a programação do ESP32 em Python.
Programando o ESP32 em Python
Vamos testar o MicroPython no ESP32 rodando o bom e velho blink, um dos programas mais básicos para quem vai testar plaquinhas e microcontroladores em geral e que pisca o led onboard do módulo.
No uPyCraft, selecione o menu File -> Examples -> Basic -> blink.py, conforme figura abaixo:
O programa blink será carregado na área de edição:
Nessa área você pode não só ver o programa como modificá-lo ou criar novos programas (usando o menu File -> New).
Se o programa solicitar que você crie um workSpace, saiba que nada mais é do que uma pasta no seu computador onde serão guardados os programas em Python para posterior transferência ao módulo ESP32 ou ESP8266.
O blink é bem simples e coloca o pino 2 como saída (linha 9 do programa), ligando ou desligando (led.value(1) e led.value(0)) o led em intervalos de 1/2 segundo (time.sleep(0.5)).
Para executar o blink, selecione o ícone de “play” (DownloadAndRun) no lado direito da IDE:
Observe na parte inferior da IDE as mensagens que devem aparecer quando você rodar o programa, que é transferido para o módulo e em seguida executado:
Se tudo estiver certo, o led onboard do módulo ESP32 NodeMCU comecará a piscar em intervalos regulares:
O uPyCraft vem ainda com várias bibliotecas pré-instaladas, como por exemplo para o sensor de temperatura DHT, displays LCD e conexão à internet, entre outras. Vamos explorar essas bibliotecas em uma outra oportunidade.
Gostou? Então confira outros posts sobre ESP32 aqui mesmo no Arduino e Cia!