ESP32 com MicroPython: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(15 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Programando ESP32 com MicroPython=
=Programando ESP8266 ou ESP32 com MicroPython=


'''[https://micropython.org/ MicroPython]''' é uma implementação do '''Python 3''' voltada para '''microcontroladores'''. Foi desenvolvido para a placa '''pyboard''', mas pode ser utilizado em outros microcontroladores como o ESP32. <ref>https://docs.micropython.org/en/latest/esp32/tutorial/intro.html#</ref> <ref>https://randomnerdtutorials.com/getting-started-micropython-esp32-esp8266/</ref>
'''[https://micropython.org/ MicroPython]''' é uma implementação do '''Python 3''' voltada para '''microcontroladores'''. Foi desenvolvido para a placa '''pyboard''', mas pode ser utilizado em outros microcontroladores como o '''ESP8266'''<ref>https://docs.micropython.org/en/latest/esp8266/quickref.html</ref> e '''ESP32'''<ref>https://docs.micropython.org/en/latest/esp32/quickref.html</ref>.


[[Arquivo:pyboard.jpg|200px]]
[[Arquivo:pyboard.jpg|200px]]
Linha 15: Linha 15:
  sudo pip3 install thonny
  sudo pip3 install thonny


==MicroPython no ESP32==
==MicroPython no ESP32 e ESP8266==


Usar o '''MicroPython''' é uma excelente maneira de tirar o máximo proveito da placa '''ESP32'''.  
Usar o '''MicroPython''' é uma excelente maneira de tirar o máximo proveito da placa '''ESP32''' e '''ESP8266'''.  


===Instalação do firmware no ESP32===
===Instalação do firmware no ESP32 e ESP8266===
Referência: <ref>https://randomnerdtutorials.com/flashing-micropython-firmware-esptool-py-esp32-esp8266/</ref>
Referência: <ref>https://docs.micropython.org/en/latest/esp32/tutorial/intro.html#</ref>


;Download firmware para ESP32: Site: https://micropython.org/download/esp32/
;Download firmware:
:Escolher a última versão: v1.18 (2022-01-17) .bin (latest)
*ESP32: https://micropython.org/download/esp32/
*ESP8266: https://micropython.org/download/esp8266/
*:Escolher a última versão: v1.18 (2022-01-17) .bin (latest)


;Instalar esptool:
;Instalar esptool:
Linha 31: Linha 33:


;Apagar o firmware anterior:
;Apagar o firmware anterior:
*ESP32:
  esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
  esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
:Pressionar o botão '''boot/flash''' antes de executar o comando.
:Pressionar o botão '''boot/flash''' antes de executar o comando.
*ESP8266:
esptool.py --chip esp8266 --port /dev/ttyUSB0 erase_flash


;Instalar novo firmware:
;Instalar novo firmware:
*ESP32:
  esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-20220117-v1.18.bin
  esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-20220117-v1.18.bin
*ESP8266:
esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp8266-20220117-v1.18.bin


===Programando ESP32 com Thonny===
==Programando ESP32 com Thonny==


Setar no Thonny a placa ESP32 em uso:
Setar no Thonny a placa ESP32 em uso:
Linha 58: Linha 66:
</syntaxhighlight>
</syntaxhighlight>


;Guia de programação MicroPython para ESP32:
==Guia de programação MicroPython para ESP32==
*Conceitos básicos: https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266/
*Conceitos básicos: https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266/
*Pinout: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
*Entradas e saídas digitais: https://randomnerdtutorials.com/esp32-esp8266-digital-inputs-digital-outputs-micropython/
*Interação com pinos GPIO: https://randomnerdtutorials.com/micropython-gpios-esp32-esp8266/
*Interação com pinos GPIO: https://randomnerdtutorials.com/micropython-gpios-esp32-esp8266/
*Entradas e saídas: https://randomnerdtutorials.com/esp32-esp8266-digital-inputs-digital-outputs-micropython/


===MQTT ESP32 com MicroPython===
==MQTT ESP32 com MicroPython==


;Tutorial: <ref>https://randomnerdtutorials.com/micropython-mqtt-esp32-esp8266/</ref>
;Tutorial: MicroPython with MQTT on ESP32/ESP8266: https://randomnerdtutorials.com/micropython-mqtt-esp32-esp8266/
:Este tutorial mostra a interação entre dois ESP32.  
:Este tutorial mostra a interação entre dois '''ESP32'''.  
:Entretanto, pode-se utilizar apenas um ESP32 e utilizar os clientes '''mosquitto_pub''' e '''mosquitto_sub''' para interagir com o ESP32.
:Entretanto, pode-se utilizar apenas um '''ESP32''' e utilizar os clientes '''mosquitto_pub''' e '''mosquitto_sub''' para interagir com o ESP32.


1) Carregar a biblioteca '''umqttsimple.py''' e salvar no dispositivo:
;Procedimentos:
#Carregar a biblioteca '''umqttsimple.py''' e salvar no dispositivo:
#:https://raw.githubusercontent.com/RuiSantosdotme/ESP-MicroPython/master/code/MQTT/umqttsimple.py
#Carregar '''boot.py'''  e ajustar os parâmetros de configuração do Wifi e broker e em seguida salvar no dispositivo.
#Carregar '''main.py''' e executar.


https://raw.githubusercontent.com/RuiSantosdotme/ESP-MicroPython/master/code/MQTT/umqttsimple.py
;ESP32:
 
2) Carregar '''boot.py'''  e ajustar os parâmetros de configuração do Wifi e broker e em seguida salvar no dispositivo.
 
3) Carregar '''main.py''' e executar.
 
ESP32:
*Publica: tópico: "hello"
*Publica: tópico: "hello"
*Subscreve: tópico: "notification"
*Subscreve: tópico: "notification"


Mosquitto Client:
;Mosquitto Client:
*Publica: tópico: "notification"
*Publica: tópico: "notification"
*Subscreve: tópico: "hello"
*Subscreve: tópico: "hello"

Edição atual tal como às 13h25min de 3 de outubro de 2023

Programando ESP8266 ou ESP32 com MicroPython

MicroPython é uma implementação do Python 3 voltada para microcontroladores. Foi desenvolvido para a placa pyboard, mas pode ser utilizado em outros microcontroladores como o ESP8266[1] e ESP32[2].

Instalação do MicroPython

Instalação no Ubuntu 20.04:

sudo apt update
sudo apt install python3 python3-pip python3-tk
sudo apt install micropython
Instalação da IDE Thonny
sudo pip3 install thonny

MicroPython no ESP32 e ESP8266

Usar o MicroPython é uma excelente maneira de tirar o máximo proveito da placa ESP32 e ESP8266.

Instalação do firmware no ESP32 e ESP8266

Referência: [3]

Download firmware
Instalar esptool
pip install esptool
Verificar a porta USB que a placa está conectada
Pode ser verificado com a IDE do Arduíno.
Apagar o firmware anterior
  • ESP32:
esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
Pressionar o botão boot/flash antes de executar o comando.
  • ESP8266:
esptool.py --chip esp8266 --port /dev/ttyUSB0 erase_flash
Instalar novo firmware
  • ESP32:
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-20220117-v1.18.bin
  • ESP8266:
esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp8266-20220117-v1.18.bin

Programando ESP32 com Thonny

Setar no Thonny a placa ESP32 em uso:

Ferramentas -> Opções -> Interpretador -> MicroPython (ESP32)
Teste
Acender/apagar led da placa
>>> from machine import Pin
>>> Pin(2, Pin.OUT).value(1)
>>> Pin(2, Pin.OUT).value(0)
Blink
Piscar led
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
while True:
  led.value(not led.value())
  sleep(0.5)

Guia de programação MicroPython para ESP32

MQTT ESP32 com MicroPython

Tutorial
MicroPython with MQTT on ESP32/ESP8266: https://randomnerdtutorials.com/micropython-mqtt-esp32-esp8266/
Este tutorial mostra a interação entre dois ESP32.
Entretanto, pode-se utilizar apenas um ESP32 e utilizar os clientes mosquitto_pub e mosquitto_sub para interagir com o ESP32.
Procedimentos
  1. Carregar a biblioteca umqttsimple.py e salvar no dispositivo:
    https://raw.githubusercontent.com/RuiSantosdotme/ESP-MicroPython/master/code/MQTT/umqttsimple.py
  2. Carregar boot.py e ajustar os parâmetros de configuração do Wifi e broker e em seguida salvar no dispositivo.
  3. Carregar main.py e executar.
ESP32
  • Publica: tópico: "hello"
  • Subscreve: tópico: "notification"
Mosquitto Client
  • Publica: tópico: "notification"
  • Subscreve: tópico: "hello"

Referências


Evandro.cantu (discussão) 09h12min de 10 de novembro de 2021 (-03)