Manual

do

Maker

.

com

Programar para ESP8266 com MicroPython

Programar para ESP8266 com MicroPython

Por mais incrível e simples que seja programar  para  ESP8266 com MicroPython, é difícil que seja adotado sem uma boa base de conhecimento prévio para atingir seus objetivos. Para abrir os horizontes, resolvi escrever mais a respeito do MicroPython, de forma que você venha a adotá-lo com mais segurança e assim atendo aos pedidos sobre diversos temas relacionados ao MicroPython, cada um em seu tempo!

ESP8266 com MicroPython

nesse post aqui mostrei pela terceira vez como montar um SDK bonitinho pra compilar seu próprio firmware. Nesse mesmo último artigo, disponibilizei uma versão do firmware que compilei, de modo que você poderá baixá-lo sem ônus (não confundir "ô" com "â") e assim pular diretamente para o desenvolvimento.

Processo de boot

O primeiro script executado durante o boot é o _boot.py, que monta o sistema de arquivos na flashROM ou faz o primeiro setup para criar o sistema de arquivos. Nesse ponto não há customização.

Tão logo o sistema de arquivos é montado script boot.py é executado dele. Esse script levanta o WebREPL para manipular conexões entrantes. Esse arquivo já é customizável, mas se você não tem absoluta certeza ou intimidade com a linguagem e o processo, deixe-o intocado.

O último passo do processo de boot é a execução do arquivo main.py, que é executado a partir do sistema de arquivos, caso esse arquivo exista. Não é uma boa prática escrever código dentro dele, mas chamadas para outros scripts que você crie no sistema de arquivos são sim bem-vindos. Mas não logo de cara; primeiro teste na linha de comando, depois escreva seu arquivo e por fim, garantida sua funcionalidade, adicione-o ao main.py. Se você fizer um script que entre em loop infinito, você perderá o controle do sistema e ai, só fazendo o flashing outra vez. É muito parecido com o processo de programação lua para o NodeMCU, que escrevi nesse outro artigo.

A última dica dessa página da documentação é que o overflow do RTC interno do ESP8266 acontece após 7:45h. Se você precisar computar tempos maiores, crie uma função/método para acumular horas e assim se livrar do estouro do buffer.

WiFi

Seu modo inicial de operação é AP. Não sei porque cargas d'água não apareceu nem como AP, nem como STA. De qualquer modo, fiz a conexão serial utilizando o GTKTerm à 115200 em /dev/ttyUSB0 e fiz a configuração de rede:

wifi-01.webp

Coloquei-o como station, mas ainda dá pra configurá-lo também como AP:

wifi-02.webp

Após configurar um nome AP, ele passou a ser detectável.

wifi-03.webp

Conforme a documentação, a primeira senha (se você conectar diretamente ao modo AP) é micropythoN (com N maiúsculo).

REPL Serial Ou Web?

O MicroPython oferece tanto a conexão serial ao console quanto uma conexão ao console pelo browser, usando REPL. Com isso, será fácil transferir arquivos para ele, de forma que você poderá programar tanto quanto possível em seu notebook e depois apenas transferir o programa!

O client REPL você pode baixar desse link. Seu uso é extremamente simples:

./webrepl_cli.py --help
webrepl_cli.py - Perform remote file operations using MicroPython WebREPL protocol
Arguments:
  <host>:<remote_file> <local_file> - Copy remote file to local file
  <local_file> <host>:<remote_file> - Copy local file to remote file
Examples:
  webrepl_cli.py script.py 192.168.4.1:/another_name.py
  webrepl_cli.py script.py 192.168.4.1:/app/
  webrepl_cli.py 192.168.4.1:/app/script.py .

No  MicroPython, simplesmente digite previamente:

import webrepl
webrepl.start()

Versões estáveis já tem esse serviço iniciado por padrão. De qualquer modo, a execução desse comando deve retornar algo como:

WebREPL daemon started on ws://192.168.4.1:8266
WebREPL daemon started on ws://0.0.0.0:8266
Started webrepl in setup mode

Mas pela primeira vez é bom que se faça o login nesse link, para trocar a senha. Troque o IP , caso esteja utilizando o modo station.

Como você pode ver no screenshot abaixo, eu tive que iniciar o serviço WEB_REPL manualmente, antes disso não foi possível transferir arquivos, portanto a inicialização não está por padrão.

web_repl0.webp

Transferi um arquivo criado para ser apagado, apenas para testar o protocolo, por isso nomeei como 'lixo.py', deixando apenas um "print('ok')" dentro dele:

lixo_py.webp

E essa é toda a informação que você precisa pra começar a brincar com o MicroPython. Toda e qualquer referência você pode consultar na documentação oficial nesse link e tutoriais você encontrará sempre por aqui, Manual do Maker!

Adquira o ESP8266 com nosso parceiro Fulltronic através desse link e divirta-se com os tutoriais.

Inscreva-se no nosso canal Manual do Maker Brasil no YouTube.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.