30 novembro 2017

Como programar o módulo ESP32 com IDE Arduino

Praticamente todo mundo já ouviu falar do ESP8266, um chip voltado para aplicações envolvendo  rede wifi. Os módulos que usam o ESP8266 se popularizaram rapidamente e hoje temos vários modelos como o NodeMCU, ESP-01, ESP-07 e por aí vai. Hoje vamos ver como programar o sucessor do ESP8266, o módulo ESP32 (abaixo).


Veremos abaixo que o ESP32 é um módulo poderoso, possuindo wifi e bluetooth embutidos. Como o ESP8266, deve ganhar muitas variações, e já existem no mercado módulos ESP32 com display oled embutido, por exemplo. Pela sua capacidade, podemos esperar muitas novidades em breve.

O módulo ESP32


O ESP32 é um componente de baixo custo e alta performance, que se caracteriza por ser um SOC (System on a Chip) contendo microcontrolador, wifi e bluetooth BLE integrados. O ESP32 foi desenvolvido pela Espressif Systems e tem configurações bem interessantes:

  • CPU: Microprocessador Xtensa dual-core (or single-core) 32-bit LX6 microprocessor, operating at 160 or 240 MHz and performing at up to 600 DMIPS
  • Ultra low power (ULP) co-processor
  • Memory: 520 KiB SRAM
  • Wi-Fi: 802.11 b/g/n/e/i
  • Bluetooth: v4.2 BR/EDR and BLE
  • 12-bit SAR ADC up to 18 channels
  • 2 × 8-bit DACs
  • 4 × SPI
  • 2 × I2S interfaces
  • 2 × I2C interfaces
  • 3 × UART
  • Wake up from GPIO interrupt, timer, ADC measurements, capacitive touch sensor interrupt

E esses são só alguns dados. Uma lista completa das características do ESP32 você encontra no datasheet do componente.

Falando especificamente do módulo ESP32, este que vamos usar é semelhante (fisicamente) ao já conhecido ESP8266 NodeMCU ESP-12, um módulo muito popular da linha ESP8266.

Como o NodeMCU, o módulo ESP32 tem um conector micro USB para alimentação e programação, botões RST e BOOT, além de um regulador de tensão. A memória é de 4MB e no módulo que estou testando o conversor serial USB-TTL é o CP2102.

Programando o ESP32 com IDE Arduino


Vamos testar o ESP32 executando o famoso "blink led" (piscar o led, em bom português). O programa em si é o que menos importa, já que configurar a IDE  do Arduino para programar o ESP32 requer uma certa dose de atenção para não fazermos coisa errada.

Vamos então aos passos, lembrando que estou usando o Windows 10 nesse tutorial.

1 - Instale a IDE do Arduino (se você já não tem, pode encontrá-la no site oficial do Arduino)

2 - Faça o download do Git neste link e em seguida instale o programa (não alterei nenhuma opção durante a instalação, deixei tudo no padrão sugerido pelo instalador). Ao final, selecione a opção Launch Git Bash e clique em Finish:

GIT Setup

3 - Será então exibida a seguinte janela. Nela, digite o comando "git gui" e pressione ENTER:

GIT bash

4 - Na janela Git GUI, selecione Clone Existing Repository:

GIT Gui

5 - Na janela seguinte, preencha os campos Source Location e Target Directory:

Source Location: https://github.com/espressif/arduino-esp32.git

O campo Target Directory pode variar, dependendo de como foi configurada a sua IDE, mas geralmente a pasta é C:\users\[usuario]\Documents\Arduino. Você pode encontrar essa informação dentro da IDE do Arduino, no menu Arquivo => Preferências:

IDE Arduino - Preferencias

O campo Target Directory é formado pelo caminho mostrado em "Local do Sketchbook" mais \hardware\espressif\esp32. No meu caso então, o campo ficou assim:

Target Directory: C:\Users\Adilson\Documents\Arduino\hardware\espressif\esp32

Git Clone Repository

Após preencher os campos, clique em Clone e aguarde o download e instalação dos arquivos.

6 - Vá até a pasta [Local do Sketchbook]\hardware\espressif\esp32\tools e execute o arquivo get.exe:

Pasta ESP32 Tools
Aguarde o download e descompactação dos arquivos:

Get.exe final

7 - Ao término do processo, você deve ter os arquivos abaixo na pasta:

Pasta atualizada

8 - Hora de conectar o módulo ESP32 na porta USB e aguardar a instalação dos drivers. No meu computador, pelo gerenciador de dispositivos vejo que foi adicionado um dispositivo chamado Silicon Labs CP210x USB to UART Bridge na porta COM6:

Device Manager ESP32 at COM6

Se precisar dos drivers para o CP2102, recomendo este link.

9 - Inicie a IDE do Arduino e no menu Ferramentas => Placa selecione ESP32 Dev Module:

IDE Arduino - ESP32 Dev Module

10 - Ainda no menu Ferramentas, selecione a porta COM do módulo. No meu caso, a porta COM6.

11 - Carregue o programa exemplo "blink" na IDE do Arduino, alterando a porta de LED_BUILTIN para a porta 5. O blink está no menu Arquivo => Exemplos => Basics. Seu programa vai ficar assim:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
void setup()
{
  pinMode(5, OUTPUT);
}

void loop()
{
  digitalWrite(5, HIGH);
  delay(1000);
  digitalWrite(5, LOW);
  delay(1000);
}

12 - Conecte um led na porta 5 do módulo ESP32 (coloque a perna mais comprida do led na porta 5 e a perna mais curta na porta GND)

Circuito módulo ESP32 e led

13 - Transfira o programa para o ESP32. Alguns tutoriais dizem para pressionar o botão BOOT durante o carregamento do programa, mas no módulo que estou usando não foi necessário. Em alguns instantes, o led conectado ao ESP32 será acionado em intervalos de 1 segundo.

Aguarde pois em breve teremos outros posts sobre o ESP32.

2 comentários:

  1. Alguém sabe informar se o ESP 32 consegue trabalhar ao mesmo tempo com Bluetooth e Wi-Fi ativos ?

    ResponderExcluir
    Respostas
    1. Oi Luís,

      Muito interessante a sua pergunta. Aparentemente funciona sim. Dê uma olhada neste link, por favor:

      https://www.esp32.com/viewtopic.php?t=847

      Abraço!

      Adilson

      Excluir