ESP8266 e ESP32: mudanças entre as edições
Linha 28: | Linha 28: | ||
'''Pinagem''': | '''Pinagem''': | ||
[[Arquivo:D1_ESP8266_pinagem.png| | [[Arquivo:D1_ESP8266_pinagem.png|500px]] | ||
=== Módulo Node MCU baseado no ESP8266 === | === Módulo Node MCU baseado no ESP8266 === |
Edição das 19h36min de 8 de novembro de 2021
ESP8266
O ESP8266 é um microcontrolador que possui uma interface WiFi, com suporte as redes 802.11 b/g/n, pilha TCP/IP integrada, CPU 32 bits e interfaces serial e SPI.
Um versão mais moderna é o ESP32, que além do módulo de comunicação WiFi, possui processador Dual Core, Bluetooth e vários sensores embutidos.
- Prototipagem
- Para prototipagem com o ESP8266 é necessário realizar conexões com hardware, uma vez que o espaçamento de sua pinagem não é compatível com o padrão utilizado em matrizes de contato.
- A comunicação com o módulo deve ser realizada via interface serial através dos pinos RX e TX. Caso seja necessário comunicação com módulos que trabalhem com níveis lógicos de 0V e 5V, como o Arduíno ou portas USB, é necessário utilizar adaptadores de tensão.
- Projeto ESP8266 no GitHub
- https://github.com/esp8266/Arduino
- Random Nerd Tutorials
- Getting Started with ESP8266 WiFi: https://randomnerdtutorials.com/projects-esp8266/
Módulo Wemos D1 Mini Pro Wifi ESP8266
O módulo Wemos D1 Mini Pro é uma placa indicada para utilização em projetos de Internet das Coisas que conta com o microcontrolador ESP8266, com 16MB de memória flash e interface WiFi.
Características:
- 9 pinos digitais de entrada/saída digitais (com PWM) (níveis lógicos 0V e 3,3V)
- 2 pinos TX/RX para comunicação serial
- 1 pino de entrada analógico (máximo 3.2V)
- pinos I2C e one-wire
- Conector micro-USB para alimentação e comunicação serial com computador
Pinagem:
Módulo Node MCU baseado no ESP8266
O Módulo Node MCU é uma placa de prototipagem com um ESP8266 embutido. Este módulo apresenta pinagem compatível com matrizes de contado facilitando a prototipagem, interface USB e adaptador para permitir a comunicação serial com o módulo e regulador de tensão de 3,3V que permite obter alimentação para a placa diretamente de conectores USB.
- Pinagem do NodeMCU ESP8266
- Instalação da placa do NodeMCU 1.0 ESP 12E na IDE do Arduino
- IDE -> Arquivo -> Preferências
- URLs Adicionais para Gerenciadores de Placa: http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Ferramentas -> Gerenciadores de Placa -> Instalar ESP8266
- Atenção para a velocidade da upload em Upload Speed, o ESP8266 12E funciona melhor com a velocidade de 115200.
- Ao iniciar a serial no setup, deve-se ater também para a velocidade ser a mesma da opção de Upload para o correto funcionamento.
Materiais sobre ESP8266 e NodeMCU
- ESP8266 NodeMCU Projects, Tutorials and Guides with Arduino IDE: https://randomnerdtutorials.com/projects-esp8266/
- Laboratório de Garagem. Programando o módulo ESP8266 pela IDE do Arduino: http://labdegaragem.com/profiles/blogs/tutorial-esp8266-programando-com-a-ide-do-arduino
- FelipeFlop. Como programar o NodeMCU com IDE Arduino. https://www.filipeflop.com/blog/programar-nodemcu-com-ide-arduino/
- Robocore. Como programar o NodeMCU com Arduino IDE. https://www.robocore.net/tutorials/162
ESP32
O ESP8266 é um microcontrolador que possui processador Dual Core, interface WiFi, Bluetooth e vários sensores embutidos..
- Modulo ESP32
- Projeto ESP32 no GitHub
- https://github.com/espressif/arduino-esp32
- Instalação da placa do ESP32 com a IDE do Arduino
- IDE -> Arquivo -> Preferências
- URLs Adicionais para Gerenciadores de Placa: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Ferramentas -> Gerenciadores de Placa -> Instalar ESP32
- Selecionar placa ESP32 Dev Module
ESP32: Exemplos
- Wifi
- Exemplo pronto da biblioteca padrão do Arduino: Arquivo -> Exemplos -> Wifi -> SimpleWifiServer:
- Configurar apenas ssid e passwd da rede Wifi;
- Identificar via terminal serial o endereço IP recebido pelo ESP32;
- Será possível controlar led (gpio 5, ou outro) via nagerador Web.
- Bluetooth
- Exemplo pronto da biblioteca padrão do Arduino: Arquivo -> Exemplos -> BluetoothSerial -> SerialToSerialBT:
- Exemplo de interação bluetooth entre ESP32 e Android Serial Bluetooth Terminal.
- Carregar código no ESP32;
- Instalar aplicativo Serial Bluetooth Terminal no Android;
- Parear o ESP32 com o Android;
- Trocar mensagens seriais entre o terminal do ESP32 e o aplicativo Serial Bluetooth Terminal
- Bluetooth Low Energy - BLE
- Ver detalhes do BLE: https://randomnerdtutorials.com/esp32-bluetooth-low-energy-ble-arduino-ide/.
- Biblioteca: https://github.com/nkolban/ESP32_BLE_Arduino
- Exemplo pronto Arquivo -> Exemplos -> ESP BLE Arduino -> BLEserver;
- Instalar aplicativo BLE Terminal no Android;
- Conectar ao dispositivo.
Materiais sobre o ESP32 NodeMCU
- ESP32 Projects, Tutorials and Guides with Arduino IDE: https://randomnerdtutorials.com/projects-esp32/
- Conhecendo o ESP32 - Curto Circuito: https://www.curtocircuito.com.br/blog/conhecendo-esp32
- ESP32 conectando-se a uma rede WiFi: https://www.usinainfo.com.br/blog/esp32-wifi-comunicacao-com-a-internet/
Programando ESP32 com MicroPython
MicroPython é uma implementação do Python 3 targeted para microcontroladores. Foi desenvolvido para a placa pyboard, mas pode ser utilizado em outros microcontroladores como o ESP8266 e ESP32. [1] [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
Usar o MicroPython é uma excelente maneira de tirar o máximo proveito da placa ESP32.
- Instalação do firmware no ESP32
- [3]
Download firmware para ESP32 no site: https://micropython.org/download/esp32/.
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:
esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash
- Pressionar o botão boot/flash antes de executar o comando.
Instalar novo firmware:
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x1000 esp32-idf4-20200902-v1.13.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
- Conceitos básicos: https://randomnerdtutorials.com/micropython-programming-basics-esp32-esp8266/
- Pinout: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
- 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
- Tutorial
- [4]
- 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.
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"
Heltec ESP32 Wifi Lora
Materiais sobre Heltec ESP32
- How to use the Heltec OLED display on the ESP32: https://www.sabulo.com/sb/esp32-development-board/how-to-use-the-heltec-oled-display-on-the-esp32/
Evandro.cantu (discussão) 15h25min de 20 de outubro de 2020 (-03)
- ↑ https://docs.micropython.org/en/latest/esp32/tutorial/intro.html#
- ↑ https://randomnerdtutorials.com/getting-started-micropython-esp32-esp8266/
- ↑ https://randomnerdtutorials.com/flashing-micropython-firmware-esptool-py-esp32-esp8266/
- ↑ https://randomnerdtutorials.com/micropython-mqtt-esp32-esp8266/