Até um dia anterior à publicação desse artigo eu não havia conseguido instalar ainda o firmware MicroPython no ESP32, mas por acaso dei uma “passeada” pelo repositório e vi que em pleno domingo fizeram a atualização do repositório e, adivinha? MicroPython funcionando no ESP32! Fiquei bastante feliz, porque o o esp-idf não é lá uma API muito interessante e agora as coisas ficaram bem mais fáceis com o MicroPython que – digo assim de passagem – chegou primeiro que o Sming (meu framework preferido).
Table of Contents
Onde comprar o ESP32?
Minha recomendação é que você adquira do mesmo lugar que veio o meu. Pegue na AutoCore Robótica através desse link.
Quais as vantagens de instalar MicroPython no ESP32?
Prompt de comandos
Primeiro, a excelente opção de ter acesso a um prompt onde você pode testar toda a lógica que deseja implementar antes de subir seu programa.
Enviar seu programa para o ESP32
Outra vantagem é que “subir o programa” significa realmente criá-lo em seu notebook/desktop e posteriormente enviá-lo para a raiz do sistema, para o sistema de arquivos do MicroPython no ESP32. Não conhece o sistema de arquivos SPIFFS? Tranquilize-se, logo mais vou passar uns links de referência para cada um dos recursos que eu citar aqui.
WEBREPL
Com MicroPython no ESP32 você tem a opção de acessá-lo pelo browser através do protocolo WEBREPL. Além disso, ainda poderá utilizar esse mesmo recurso para enviar arquivos para o sistema de arquivos dele. Também será referenciado em um link mais adiante, apenas empolgue-se!
Recursos do Python
Entre as demais características estão ativos por padrão o unicode, inteiros de precisão arbitrária, floats, números complexos, bytecode e montes de módulos internos!
Sistema de arquivos
Utilizando-se da flash, você conta com o sistema de arquivos SPIFFS, contando com 256K para gravar tudo o que desejar! É “muito” espaço isso!
Além disso, o módulo machine com o controle dos GPIO, I2C e SPI. Pronto para começar?
Preparando o ambiente
A frase que você vai encontrar tradicionalmente em meus artigos é “eu não uso Windows há mais de 20 anos”. Logo, o tutorial é completamente voltado para Linux, mas você pode instalar um Linux (preferencialmente Debian) em uma máquina virtual no seu Windows e então seguir esse tutorial. Recomendo fortemente a instalação do VirtualBox.
Para começar (já dentro de seu Linux, seja nativo ou virtual), crie um arquivo (se não existir) ~/.bash_profile e adicione o seguinte conteúdo:
export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin alias get_esp32="export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin" export IDF_PATH=~/esp/esp-idf
Não se esqueça do “.” prefixando o arquivo; isso significa que ele é um arquivo oculto. Até aqui isso não serve pra nada, é apenas um pré-requisito para a compilação do seu firmware. Essas linhas estão adicionando ao path o caminho do cross-compiler para o ESP32 e o caminho do SDK para o ESP32.
Agora instale os pacotes de dependência. Sem isso, você obterá erros e não poderá seguir adiante, então não tenha preguiça:
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
Download do toolchain
Na publicação desse artigo, a versão mais atual é essa para Linux x86_64. Esse toolchain é o pacote do compilador, fundamental para a compilação do firmware, uma vez que ele fará a compilação para a plataforma cruzada, isto é, binário para a plataforma Tensillica invés de binário para x86.
Vamos manter tudo em um lugar só para não fazer bagunça. Após o download, crie um diretório chamado “esp” em seu home e descomprima o arquivo dentro dele:
mkdir ~/esp && cd ~/esp wget -c https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz tar zxvf xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
Mais uma vez, isso não será utilizado de imediato, lembre-se que estamos apenas preparando o ambiente para utilização.
ESP-IDF
Agora será necessário baixar a API para o ESP32. Ainda dentro do diretório esp, digite (ou copie e cole) a seguinte linha de comando:
git clone --recursive https://github.com/espressif/esp-idf.git
É fundamental que você use a opção “–recursive” para que sejam baixados os sub-módulos, necessários para uma compilação com sucesso.
Hello World
Hora de experimentar seu SDK para ver se está tudo ok até aqui. Faça uma cópia do diretório de exemplo hello_world para dentro do diretório esp (o nível de diretório atual em que você deve estar nesse momento):
cp -r ~/esp/esp-idf/examples/get-started/hello_world/ .
Agora entre no diretório copiado e vamos ver uma novidade:
cd hello_world make menuconfig
Com o comando “make menuconfig” você obtém um menu para configurar o funcionamento do firmware! Aqui você deve configurar os parâmetros da comunicação serial. Após gravar o “hello world”, ele imprime a mensagem e em 10 segundos ele reinicía o MicroPython no ESP32, imprime novamente e assim o processo se repete. Nos links deixados mais adiante está também uma referência introdutória ao ESP32. Considerando que o dispositivo foi encontrado em /dev/ttyUSB0, claro.
Após configurar e sair do menu, digitei “make flash” para compilar e subir o firmware. Para ver o resultado, da comunicação, basta digitar “make monitor”. Se quiser executá-los na sequência, digite “make flash monitor”.
Links adicionais
Esses links são referências para os seguintes conteúdos:
Passamos pela fase 1, agora podemos iniciar a preparação do ambiente para o MicroPython. Dentro do diretório esp-idf que você clonou anteriormente, faça agora o clone do micropython:
git clone https://github.com/micropython/micropython-esp32.git
Eu fiz nessa ordem; talvez seja uma boa ideia fazer o próximo passo antes desse, mas como funcionou assim para mim, recomendo o procedimento. Entre no diretório esp-idf/micropython-esp32 e digite:
make -C mpy-cross
Depois, suba mais um nível de diretório, entrando em esp32/ e busque pela linha ESPIDF_SUPHASH:
egrep '^ESPIDF_SUPHASH' Makefile
O retorno será uma linha contendo o respectivo hash ao final. Copie o hash, que é a versão do esp-idf compatível com o MicroPython. Desça 2 níveis de diretório (novamente para o diretório esp-idf) e regrida a versão para a versão compatível:
cd ../.. && git checkout <hash_encontrado_no_Makefile>
Depois volte ao diretório esp32 e digite make:
cd - && make
Ao final da compilação você deverá ver algo como:

Agora você precisará limpar a flash primeiramente e depois gravar o novo firmware. Para tal, execute os seguintes comandos:
make erase && make deploy
Se for utilizar sudo, ele utilizará as variáveis de ambiente. Se digitar ‘su’, precisará daquelas primeiras linhas do export novamente. Nesse caso, você pode copiar e colar sem problemas.
Depois disso você já poderá fazer uma conexão serial à 115200 de velocidade e apertando Enter no terminal vazio, deverá obter o prompt do MicroPython. Feito isso, já dá pra fazer um “hello world” pra ver o firmware funcionando:

Bem, você já está com o MicroPython instalado e funcionando se chegou a esse resultado. Os recursos são os mesmos disponíveis na versão do MicroPython para ESP8266, portanto deixarei agora todas as referências para que você possa se divertir bastante.
Versão estável do MicroPython para ESP8266
Webserver com MicroPython para acionar relé
I2c com ESP8266 e MicroPython (lembre-se, esses tutoriais servirão para ESP32 também)
Dicas rápidas de ESP8266 com MicroPython – aqui você vê como utilizar o WEBREPL, SPIFFS, configurar WiFi, trocar SSID, instalar módulos, lista de código de erros, interrupções, buffer de emergência, como não utilizar delay…
Programar para ESP8266 com MicroPython – Aqui você entenderá o processo de boot, outra vez configuração de WiFi (STA+AP), utilização da REPL por web e por serial.
Como utilizar MQTT no ESP8266 com MicroPython
Reparar o sistema de arquivos SPIFFS
Primeiros passos com ESP32 e algumas IDEs – Esse artigo é ótimo, introduzindo-o ao ESP32 e mostrando a configuração e uso de diversas IDEs. Chega de IDE de Arduino para ESP, hum?
Configurar o WiFi do ESP32 pelo bluetooth – Não servirá para MicroPython, mas é interessante conhecer o que o esp-idf oferece.
Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.
Siga-nos no Do bit Ao Byte no Facebook.
Prefere twitter? @DobitAoByte.
Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.
Nossos grupos:
Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do bit Ao Byte – https://www.facebook.com/groups/dobitaobyte/
Projetos Arduino e Eletrônica – https://www.facebook.com/groups/projetosarduinoeletronica/
ESP8266 BR – https://www.facebook.com/groups/ESP8266BR/
Próximo post a caminho!
viu nos ja tms a dias tentando estalar faltava um arquivo q era o esptool
agora nao vem o arquivo gitignere