, ,
Vimos que o ESP8266 NodeMCU é facilmente programável usando o IDE Arduino. Agora vamos ver como programá-lo usando o MicroPython. A vantagem de utilizar Python para programar um ESP8266 é que pode utilizá-lo em todo o seu potencial.
Antes de seguir este tutorial, é necessário instalar o Python 3.
Neste tutorial, veremos como configurar o ESP8266 e como usar um terminal para testar comandos Python. Finalmente, veremos dois métodos para carregar e executar scripts Python no microcontrolador.
Apresentando o MicroPython
O MicroPython é uma implementação do Python 3 concebida para funcionar no ambiente do microcontrolador e nas suas limitações. Tem um subconjunto das bibliotecas Python, bem como bibliotecas para interface com hardware de baixo nível e interfaces de rede. (por exemplo, Wifi)
Cartões que suportam MicroPython:
- Placas ESP32 (por exemplo, NodeMCU ESP32)
- PyBoard
- Micro:Bit
- Teensy 3.X
- WiPy – Pycom
Instalar o firmware no ESP8266
Para usar o MicroPython, vamos apagar a memória flash do ESP8266 e instalar o firmware. Para o fazer, vamos utilizar a ferramenta esptool (.py ou .exe, consoante o que pretenderes utilizar)
- Instalar esptool.py
python3 -m pip install esptool
ou esptool.exe (disponível quando instala o pacote esp no Arduino IDE)
- Apagar a memória flash (Nota: o nome da porta pode não ser o mesmo que o seu)
python3 -m esptool --port COM9 erase_flash

- Descargue el firmware e introduzca la siguiente línea de código (Atención: el nombre del puerto y la dirección del archivo pueden ser diferentes de los suyos)
python3 -m esptool --port COM9 --baud 460800 write_flash --flash_size=detect 0 C:\Users\ADMIN\Downloads\esp8266-20210202-v1.14.bin

Para podermos comunicar e programar o ESP com MicroPython, precisamos de instalar um terminal. Aqui veremos o uso do PuTTy e do TeraTerm.
Instalando o terminal TeraTerm no Windows
Descarregar e instalar o TeraTerm
Abra o TeraTerm e seleccione a porta série correspondente ao microcontrolador.

Em seguida, configure a comunicação de série em Configuração> Porta de série …

Pode agora utilizar o terminal para introduzir comandos Python e executá-los no ESP8266.

Instalando o terminal PuTTy
Descarregar e instalar o PuTTy
Abra o Putty e seleccione a porta série correspondente ao microcontrolador.

Em seguida, configure a comunicação série. Para poder comunicar com o ESP8266, é necessário seleccionar None (Nenhum) em Flow control (Controlo de fluxo) em Serial


Pode agora utilizar o terminal para introduzir comandos Python e executá-los no ESP8266.

Os terminais PuTTy e TeraTerm são duas boas opções para testar alguns comandos Python, mas não para criar um programa completo.
Criar um script Python e descarregá-lo com ampy
Vamos escrever algum código simples para testar o carregamento de código no ESP8266. Há dois ficheiros que são tratados de forma diferente pelo ESP8266: boot.py e main.py. Por defeito, apenas o ficheiro boot.py está presente. O ficheiro boot.py é executado primeiro e, em seguida, o ficheiro main.py é executado por sua vez. Se quiser criar um script que seja executado no arranque, tem de lhe chamar main ou executá-lo em main. Se não quiser que ele seja executado na inicialização, chame-o de outra forma.
import sys import time def main(): print("Program is running ") time.sleep(0.5) if __name__=="__main__": print("{} initialized".format(sys.platform)) while(1): try: main() except KeyboardInterrupt: print("Program stopped") sys.exit(0)
Em seguida, instalaremos o ampy, que nos permitirá carregar um ficheiro no microcontrolador.
python3 -m pip install adafruit-ampy
Uma vez instalado o ampy, pode utilizá-lo numa linha de comandos com a função ‘put’ para carregar um ficheiro especificando o seu caminho e nome.
ampy -d 0.5 --port COM9 put \main.py

Nota: Se receberes o erro “ampy.pyboard.PyboardError: could not enter raw repl”, podes aumentar o atraso para 1 ou 2 (ou seja, “-d 1” ou “-d 2”).
Se se ligar ao ESP8266 com um terminal, verá o programa em execução (pode parar o script premindo Ctrl+C).

O script main.py será executado sempre que for reiniciado. Para o eliminar, introduza o seguinte comando no terminal
import os
os.remove('main.py')
Utilizar o IDE do uPyCraft
Quando se está a desenvolver código e é necessário testá-lo, é complicado passar pela linha de comandos para o carregar de cada vez que se tenta. Existe um IDE para Python, semelhante ao IDE do Arduino: uPyCraft, que pode ser usado como editor e como terminal para interagir com o microcontrolador.
- Transferir e abrir uPyCraft

- Em Tools> Preferences, verifique a configuração da porta serial

- Em Tools>Serial, seleccione a porta série utilizada pelo microcontrolador

Quando o microcontrolador estiver ligado à interface, pode utilizar a consola como um terminal.

Também pode criar e editar um ficheiro que contenha o script Python. Depois de ter escrito o código, pode carregá-lo e executá-lo premindo F5. Para confirmar que o código foi carregado, pode ser necessário premir o botão de reinicialização na placa. Pode parar o código premindo Ctrl+C na consola.

N.B.: É possível reiniciar o código sem fazer um reset, introduzindo o comando
exec(open('main.py').read(), globals())
Eliminar o ficheiro
Se não quiser que o script seja activado ao reiniciar, tem de eliminar o código main.py utilizando o comando num terminal ou no IDE
os.remove('main.py')


Repor a configuração de origem
Para programar o microcontrolador com o IDE Arduino, é necessário apagar o ficheiro main.py, se existir, e carregar o código Arduino. Isto irá recarregar o bootloader na memória flash.
Para voltar a utilizar o MicroPython, é necessário apagar a memória flash e carregar o firmware.