Programar para ESP8266 com MicroPython

esp8266 Fulltronic
esp8266 Fulltronic

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:

Configurando WiFi no ESP8266 com MicroPython
Configurando WiFi no ESP8266 com MicroPython

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

Configurando modo AP+STA no ESP8266 com MicroPython
Configurando modo AP+STA no ESP8266 com MicroPython

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

AP name
AP name

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:

No  MicroPython, simplesmente digite previamente:

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 REPL
web REPL

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:

hello world
hello world

 

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, Do bit Ao Byte!

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

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/

Próximo post a caminho!

Agregador de Links - Loucuras da Net

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.