Módulos Wifi

ESP8266 com MicroPython

Eletrogate 17 de novembro de 2022

Introdução

Geralmente, o ESP8266 é comprado com as configurações para receber códigos em C++. Neste post, veremos como o configurar para ser programado com MicroPython.


Sobre o MicroPython

MicroPython é uma linguagem em Python mais enxuta, voltada para programação de chips microcontroladores, dispositivos IoT e módulo e placas e desenvolvimento como o esp8266, Esp32, Raspberry Pico, Arduino etc.


Mas por que MicroPython?

Python é a segunda linguagem de programação mais utilizada no mundo, segundo o GitHub (https://exame.com/tecnologia/as-5-linguagens-de-programacao-mais-usadas-no-mundo-segundo-o-github/). Além disso, outros motivos:

  • Linguagem de alto nível

Python é uma linguagem de propósito diverso, servindo para programar em diversas plataformas, realizar análise de dados, automação e protótipos. Assim, ela tem sua sintaxe bem parecida com a linguagem humana, facilitando o aprendizado.

  • Código aberto e Gratuito

Não existe um “dono” cobrando pelo direito de uso da Linguagem, podendo os programadores utilizar e modificar o código fonte da linguagem. A sua licença aberta é pela MIT. Assim, qualquer pessoa que tenha o código pode copiar, modificar, mesclar, publicar, distribuir e vender sem qualquer restrição do seu criador.

  • Grande fontes de recursos

Por ser uma linguagem muito utilizada pelo mundo, vai existir também uma comunidade enorme para ajuda mútua entre os programadores. Um expediente dessa ajuda são as bibliotecas, módulos de programas feitos por um programador que fornece para outros programadores para solução de um problema já existente.

Exemplo:

Um programador que esteja precisando de implementar um controle de acesso de uma portaria por reconhecimento facial. Ao invés de perder diversas horas, dias ou até meses para implementar essa solução, o programador pode baixar a biblioteca OpenCV, que já tem quase tudo pronto, precisando talvez só efetuar a configuração e treinar a inteligência artificial da biblioteca.  Com isso, um trabalho custoso pode ser resolvido em questões de hora.


Instalando a IDE Thonny

Thonny é um ambiente de desenvolvimento minimalista e essa é a maior vantagem em relação aos outros IDE’s (Ambiente de Desenvolvimento Integrado), como o Pycharm e VScode. Além disso, apresenta grande facilidade para instalar o firmware que o IDE dispõe, utilizando de interfaces gráficas.

Baixe o programa

No site oficial da Thonny, baixe e instale o programa. Na versão 4.0.1 do Thonny, já vem instalado, com ele, o Python 3.10, facilitando, ainda mais, a sua utilização. Faça a instalação de acordo com o seu sistema operacional. No nosso caso, vamos baixar a versão estável do Windows, que é o sistema operacional mais utilizado. Quem pretende utilizar em outro sistema não terá problema com instalação, já que, muito provavelmente, já está familiarizado com as nuances do sistema.


Baixando o Firmware

Baixe o Firmware mais recente, de acordo com a versão do seu ESP8266, no site https://micropython.org/download

Escolha sempre a versão mais recente e estável.


Instalando o Firmware

Agora, com o Thonny instalado, vamos atualizar o Firmware no ESP8266. Com o ESP8266 conectado à porta USB, clique em ferramentas e, depois, em Opções

Depois, na aba interpretador

Nos campos de seleções, deixe conforme a figura, observando sempre a porta que o seu ESP está conectado. Clique em Install or update MicroPython:

No campo Port, procure a porta à qual seu ESP está conectado e selecione-a. No campo Firmware, procure o caminho para o firmware baixado. Nos campos abaixo, deixe tudo igual à figura acima, clique em Instalar e espere terminar a instalação. Então, tudo estará configurado para o seu primeiro projeto.


Primeiro Teste em Python

Depois de Instalado o Thonny e atualizado o firmware, é hora de verificar se tudo está funcionando. Para testar, vamos ao Blink (pisca pisca).

import machine # importação para trabalhar com a GPIO
from time import sleep # importação para trabalahar com tempo

led_teste = machine.Pin(2, machine.Pin.OUT) # configuração da porta gpio

while True: # loop
    led_teste.value(1) # apagar led
    sleep(1) # 1 segundo de interrupção
    led_teste.value(0) # ligar led
    sleep(0.5) # meio segundo de interrupção

Para rodar o código no ESP8266, clique no respectivo ícone, conforme figura abaixo.

Com isso, o código já vai esta rodando no ESP8266, mas ainda é preciso salvar o código dentro do ESP8266 e, para isso, é necessário parar a execução, clicando no ícone conforme figura abaixo.

Agora, com a execução parada, clique em Arquivo e, depois, em Salvar. Vai abrir uma janela perguntando onde deseja salvar o código. Vamos escolher “dispositivo MicroPython” .

Salve o arquivo com o nome main.py

Com isso o código estará salvo dentro do ESP8266 e tudo funcionando.


Comparativo de Tempo de Carregamento - Python vs Linguagem C

No primeiro vídeo, pode-se ver que o tempo de carregamento na linguagem C é de, aproximadamente, 40 segundos. O tempo de carregamento em Python, no segundo vídeo, é instantâneo.

Vídeo com carregamento em linguagem C

Vídeo com carregamento em Python


Conclusão

Enfim, agora, com o ESP8266 configurado e rodando Python, já podemos aproveitar ao máximo o poder que essa linguagem tem a nos oferecer, observando sua filosofia:

Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Linear é melhor do que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para quebrar as regras.
Ainda que praticidade vença a pureza.
Erros nunca devem passar silenciosamente.
A menos que sejam explicitamente silenciados.
Diante da ambiguidade, recuse a tentação de adivinhar.
Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo.
Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês.
Agora é melhor que nunca.
Embora nunca, às vezes, ser melhor do que agora *mesmo*.
Se a implementação é difícil de explicar, é uma má ideia.
Se a implementação é fácil de explicar, pode ser uma boa ideia.
Namespaces são uma grande ideia — vamos fazer mais destes!

Até a próxima!!!


Sobre o Autor


André Calazans

Programador, Graduando em Ciência da Computação, Técnico em Eletrônica, Eletricista. Onde tiver um Elétron eu vou querer saber porque ele está ali.


Eletrogate

17 de novembro de 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!