, ,
Vimos que o NodeMCU ESP8266 é facilmente programável utilizando a IDE Arduino. Veremos como programá-lo com o MicroPython. O objectivo de utilizar Python para programar um ESP8266 é utilizá-lo em todo o seu potencial.
Antes de seguir este tutorial, deve primeiro instalar o Python 3.
Neste tutorial veremos como configurar o ESP8266 e como utilizar um terminal para testar os comandos Python. Finalmente, veremos dois métodos para carregar e executar scripts Python no microcontrolador.
Introdução de MicroPython
MicroPython é uma implementação de Python 3 criada para trabalhar no ambiente do microcontrolador e os seus constrangimentos. Tem um subconjunto de bibliotecas Python, bem como bibliotecas para interface com hardware de baixo nível e interfaces de rede. (ex: Wifi)
Cartões de apoio ao MicroPython:
- Placas ESP32 (por exemplo, NodeMCU ESP32)
- PyBoard
- Micro:Bit
- Teensy 3.X
- WiPy – Pycom
Instalar o firmware no ESP8266
Para utilizar MicroPython, vamos apagar a memória flash do ESP8266 e instalar o firmware. Para tal, utilizaremos a ferramenta esptool (.py ou .exe dependendo do que se pretende utilizar)
- Instalar esptool.py
python3 -m pip install esptool
ou esptool.exe (disponível ao instalar o pacote esp no Arduino IDE)
python3 -m esptool --port COM9 erase_flash
![nodemcu-esp8266-erase-flash-esptool.py Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/nodemcu-esp8266-erase-flash-esptool.py.jpg)
- Descarregue o firmware, e introduza a seguinte linha de código (Atenção: o nome da porta e o endereço do ficheiro podem ser diferentes dos seus)
python3 -m esptool --port COM9 --baud 460800 write_flash --flash_size=detect 0 C:\Users\ADMIN\Downloads\esp8266-20210202-v1.14.bin
![nodemcu-esp8266-load-firmware-esptoolpy Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/nodemcu-esp8266-load-firmware-esptoolpy.jpg)
A fim de comunicar e programar o ESP com MicroPython, precisamos de instalar um terminal. Aqui veremos a utilização de PuTTy e TeraTerm.
Instalar o Terminal TeraTerm no Windows
Descarregar e instalar o TeraTerm
Abrir o TeraTerm e seleccionar a porta de série correspondente ao microcontrolador.
![nodemcu-esp32-teraterm-conf Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/nodemcu-esp32-teraterm-conf.jpg)
Em seguida, configure a comunicação de série em Configuração> Porta de série …
![nodemcu-esp32-teraterm-baudrate Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/nodemcu-esp32-teraterm-baudrate.jpg)
Pode agora utilizar o terminal para introduzir comandos Python e executá-los no ESP8266
![nodemcu-esp8266-teraterm-hello Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/nodemcu-esp8266-teraterm-hello.jpg)
Instalação do terminal PuTTy
Descarregar e instalar PuTTy
Abrir Putty e seleccionar a porta de série correspondente ao microcontrolador.
![terminal-putty Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/terminal-putty.jpg)
![terminal-putty-serial-configuration Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/terminal-putty-serial-configuration.jpg)
![terminal-putty-esp8266-serial-configuration Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/terminal-putty-esp8266-serial-configuration.jpg)
Pode agora utilizar o terminal para introduzir comandos Python e executá-los no ESP8266
![terminal-putty-hello-esp8266 Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/terminal-putty-hello-esp8266.jpg)
Os terminais PuTTy e TeraTerm são ambas boas opções para testar alguns comandos Python, mas não para criar um programa completo.
Crie um script Python e carregue-o com ampy
Vamos escrever algum código simples para testar o carregamento de código para o 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 boot.py é executado em primeiro lugar e, em seguida, o main.py é executado sucessivamente. Se pretender criar um script que seja executado no arranque, deve chamar-lhe main ou executá-lo em main. Se não quiser que seja executado no arranque, chame-lhe outra coisa.
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)
Instalaremos então uma ampola que nos permitirá carregar um ficheiro no microcontrolador.
python3 -m pip install adafruit-ampy
Uma vez instalada a ampy, pode utilizá-la num prompt de comando com a função “put” para carregar um ficheiro, especificando o seu caminho e nome.
ampy -d 0.5 --port COM9 put \main.py
![micropython-ampy-put-script Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/micropython-ampy-put-script.jpg)
Se ligar ao ESP8266 com um terminal, verá o programa a correr (pode parar o script com Ctrl+C)
![nodemcu-esp8266-teraterm-main Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/nodemcu-esp8266-teraterm-main.jpg)
O guião main.py será executado em cada reinicialização. Para o remover, introduza o seguinte comando no terminal
import os
os.remove('main.py')
Usando a uPyCraft IDE
Quando se desenvolve código e é necessário testá-lo, é complicado passar pelo prompt de comando para carregá-lo de cada vez. Existe uma IDE para Python, semelhante à IDE Arduino: uPyCraft, que pode ser utilizada como editor e como terminal para interface com o microcontrolador.
- Descarregar e abrir uPyCraft
![upycraft Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/upycraft.jpg)
- Em Tools>Serial, seleccione a porta série utilizada pelo microcontrolador
![upycraft-serial-configuration Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/upycraft-serial-configuration.jpg)
- Dans Tools>Serial, sélectionnez le port série utilisé par le microcontrôleur
![upycraft-serial-port-select Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/upycraft-serial-port-select.jpg)
Assim que o microcontrolador estiver ligado à interface, pode utilizar a consola como um terminal
![upycraft-console-terminal Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/upycraft-console-terminal.jpg)
Pode também criar e editar um ficheiro contendo o guião Python. Depois de ter escrito o código, pode carregá-lo e executá-lo premindo F5. Para validar o carregamento do código, poderá ser necessário premir o botão reset no quadro. Pode parar o código premindo Ctrl+C na consola.
![upycraft-esp8266-remove-file Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/upycraft-esp8266-remove-file.jpg)
N.B.: Pode reiniciar o código sem fazer um reset, introduzindo o comando
exec(open('main.py').read(), globals())
Apagar o ficheiro
Se não quiser que o script seja accionado no reinício, tem de apagar o código main.py utilizando o comando num terminal ou no IDE
os.remove('main.py')
![nodemcu-esp8266-teraterm-main Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/nodemcu-esp8266-teraterm-main.jpg)
![upycraft-esp8266-remove-file Programar um ESP8266 com MicroPython](https://www.aranacorp.com/wp-content/uploads/upycraft-esp8266-remove-file.jpg)
Repor para a configuração padrão
Para programar o microcontrolador com o IDE Arduino, é necessário apagar o ficheiro main.py, se existir, e carregar um código Arduino. Isto irá recarregar o bootloader na memória flash.
Para voltar a utilizar o MicroPython, terá de apagar a memória flash e carregar o firmware.