Programar ESP32 com a IDE Arduino – Tutorial Completo

Uma das maneiras mais fáceis para programar ESP32 é com a IDE Arduino. IDE é a abreviação de Integrated Development Environment que, em português, podemos traduzir para Ambiente de Desenvolvimento Integrado. Ela tem esse nome por ser um software que comporta diversas ferramentas úteis ao programador na hora de desenvolver o seu código. Nesse artigo, exploraremos as principais ferramentas e como elas podem nos ajudar a sermos eficientes durante nossa rotina de programação.

 

Download da IDE do Arduino

Inicialmente, devemos acessar o site arduino.cc, home page da Arduino. Vá até o menu software e clique em downloads.

Página Inicial Site Oficial Arduino

Página Inicial Site Oficial Arduino

 

Podemos visualizar diversas opções de download da IDE. Encontramos também o Arduino Web Editor, que é um editor de código online baseado em serviços da nuvem. Porém, esse editor ainda não nos oferece suporte para programar ESP32. Em seguida, encontramos o menu de escolha para download da IDE. Oferecida para diversos sistemas operacionais (Windows, Mac OS X e Linux), versões de 32 bits e 64 bits, além de também ser possível fazer o download em formatos diferentes, como um zip do software ou um instalador executável. A opção mais viável para nós é a “Windows ZIP file for non admin install”.

Página de Download Arduino

Página de Download Arduino

 

Após clicar na opção do windows, você será redirecionado para a tela de contribuição ao projeto Arduino. Caso escolha não contribuir, basta clicar em Just Download.

Página de Contribuição Opcional

Página de Contribuição Opcional

 

Em seguida, o download do arquivo irá começar.

 

Instalação do Arduino IDE

Após ser baixada, acesse a pasta de Downloads do seu navegador e abra o arquivo do arduino. A seguinte tela de instalação irá aparecer:

Tela de Instalação do Programa Arduino IDE

Tela de Instalação do Programa Arduino IDE

 

Nela, clique em ‘I Agree’, para aceitar os termos. Na sequência, aparacerão os componentes a serem instalados, conforme figura abaixo. Clique em ‘Next’ para prosseguir.

Tela de Instalação do Programa Arduino IDE - Passo 2

Tela de Instalação do Programa Arduino IDE – Passo 2

 

O local padrão de instalação é em “C:\Program Files (x86)\Arduino”. Normalmente também é criado uma pasta em “C:\Users\<username>\Documents\Arduino”. Mas caso ela não tenha sido criada, você mesmo pode criar uma e nomeá-la como Arduino. Nela são armazenados as libraries (bibliotecas de funções) e outros arquivos de configuração adicionais. Clique em ‘Install’ para prosseguir.

Tela de Instalação do Programa Arduino IDE - Passo 3

Tela de Instalação do Programa Arduino IDE – Passo 3

 

O processo de instalação irá, então, iniciar. Aguarde o seu término.

Tela de Instalação do Programa Arduino IDE - Passo 4

Tela de Instalação do Programa Arduino IDE – Passo 4

 

Quando for finalizado, aparecerá a opção ‘Close’ para encerrar. Clique nela e o Arduino estará pronto para ser usado! Ele poderá ser acessado pela área de trabalho ou pelo menu iniciar.

Tela de Instalação do Programa Arduino IDE - Passo 5

Tela de Instalação do Programa Arduino IDE – Passo 5

 

 Na seção seguinte, exploraremos diversos recursos da IDE.

 

Explorando a IDE do Arduino

Em uma primeira vista, percebemos a simplicidade da organização da IDE. A figura abaixo identifica os principais recursos.

Página de Programação IDE Arduino

Página de Programação IDE Arduino

 

  1. Verificar o código. Ao clicar nesse botão, o Arduino ira compilar o código e verificar se há erros de programação;
  2. Upload do código para a placa;
  3. Nova página para escrever um código;
  4. Abrir um código salvo no computador;
  5. Salvar o código atualmente aberto;
  6. Monitor Serial;
  7. Menu de funções relativas às abas;
  8. Área do código (parte branca);
  9. Área feedback quanto a compilação do código.

O monitor serial é o recurso que nos permite receber dados da placa e visualizá-los. Podemos fazer isso através do conjunto de funções da biblioteca Serial. Para usá-la no código, basta inicializarmos ela dentro do void setup e fazer uma chamada a ela no void loop. Exemplifico essa estrutura no código abaixo.

A velocidade especificada dentro do Serial.begin pode ser alterada. Lembrando-se que você deve selecionar dentro da janela do monitor serial a mesma velocidade que foi informada no código.

O gerenciador de abas permite que seja criado uma “página extra” de código dentro do projeto que você está desenvolvendo. É muito útil em projetos extensos, onde há muitas funções personalizadas. Separar essas funções do código principal ajuda a deixar o código mais organizado e compreensível. Veja o exemplo ilustrado na figura abaixo.

Há o arquivo principal cujo nome é “A”. Nele se encontra o código que contém as funções essenciais, void setup e void loop. Já no outro arquivo, cujo nome é “B”, há a declaração e implementação de uma função simples, que multiplica dois números. Perceba como é usado no arquivo A a função do arquivo B. Isso permite deixar o código mais limpo e organizado. Note que quando você salvar o projeto irão aparecer os dois arquivos na pasta.

Em seguida, temos a área de escrita de código. Não muito o que falar sobre ela, exceto um detalhe que pode ser muito útil durante o desenvolvimento – o números de linhas. Para mostrar-los, acesse o menu Arquivo > Preferências e deixe a opção “Mostrar números de linhas” selecionada. Isso ajuda a localizar rapidamente a linha que contenha um possível erro mostrado pelo log de erros/avisos. Por fim, no canto inferior direito podemos visualizar a placa que está selecionada na IDE.

 

Botões de ação

Identificado na figura de 1 a 5, da esquerda para direita, os botões servem para:

  1. Verificar se existem erros de sintaxe, como caracteres indevidamente posicionados e de semântica, como divisão de zero por zero. Erros assim irão gerar um log seguido da identificação da linha a qual foi encontrado o problema.
  2. Fazer o upload do código para a placa selecionada. A IDE fará uma verificação idêntica ao botão anterior. Caso não gere erros, o código será transmitido para a placa. Caso haja erros, os mesmos serão exibidos do log da IDE. Geralmente erros nessa etapa se referem à seleção da placa errada ou da porta de comunicação errada (connection timed out).
  3. Gerar um novo arquivo de código. (CTRL+N)
  4. Abrir um arquivo. (CTRL+O)
  5. Salvar o atual arquivo de código. (CTRL+S)

 

Menu Arquivo

Nesse menu podem ser executadas as 3 últimas funções que estão na lista anterior, além de nos permitir acessar outras ferramentas. Uma delas é o submenu ‘Exemplos’: uma coleção de códigos prontos para serem transmitidos para a placa alvo. Alguns exigem também a montagem de um circuito eletrônico específico para o projeto.

Cada vez que é instalado uma nova biblioteca, a lista de Exemplos é atualizado para verificar se essa biblioteca possui um código de teste. Caso possua, ele será listado nesse submenu.

Outra ferramente útil é o Sketchbook. Ele é um atalho para a pasta ‘C:\Users\<username>\Documents\Arduino’. Ou seja, caso você salve seus projetos nesse diretório, você poderá acessá-los diretamente nesse submenu.

No menu de Preferências, podem ser acessadas diversas opções de personalização. Uma que considero muito útil é a de mostrar o número de linhas, já comentada anteriormente. Outras opções relevantes são a mudança do local do Sketchbook, o tamanho da fonte do editor e, por fim, incluir URLs Adicionais, que veremos no decorrer desse artigo.

ESP32

As placas de desenvolvimento baseadas no módulo ESP32 são poderosos microcontroladores cada vez mais usados para fins acadêmicos e industriais, especialmente na Internet das Coisas. Sua grande quantidade de pinos, aliado as conexões bluetooth e WiFi o tornam um forte concorrente ao popular Arduino. Nesse artigo, utilizaremos o modelo NodeMCU ESP-32S de 30 pinos. A figura abaixo ilustra os seus pinos.

Pinagem ESP32

Pinagem ESP32

 

Dentro de suas principais características de hardware, podem-se destacar:

  • Microprocessador: Tensilica Xtensa 32-bit LX6
  • Clock: até 240MHz
  • SRAM: 520KB
  • Memória flash externa: 32Mb (4 megabytes)
  • Portas GPIO: 25
  •  Suporte a redes WiFi: 802.11 b/g/n (2,4 a 2,5GHz)
  • Segurança: WPA/WPA2/WPA2-Enterprise/WPS
  • Criptografia: AES/RSA/ECC/SHA
  • Modo de operação: Station / SoftAP / SoftAP + Station/ P2P
  • Bluetooth: v4.2 BR / EDR e BLE (Bluetooth Low Energy)

A seguir, iremos configurar a IDE do Arduino para programar a ESP32.

 

Configuração do ESP32 na IDE do Arduino

Para usar e programar ESP32 na IDE do Arduino, precisamos primeiro que ele reconheça os modelos da placa. Para isso, primeiramente devemos ir até as Preferências e colar a URL abaixo no campo de URLs adicionais:

  • https://dl.espressif.com/dl/package_esp32_index.json

 

Com isso, permitimos que a IDE acesse uma pequena “base de dados” no formato .json que contém a configuração de inúmeras placas. Após isso, devemos acessar o menu Ferramentas -> Placa -> Gerenciador de Placas.

Nele, pesquise por ‘esp32′ na caixa de pesquisa. Em seguida, instale a versão mais recente do driver que irá aparecer: “esp32 by Espressif Systems’, conforme ilustrado na figura a seguir:

Feito isso, você deve selecionar a placa “ESP32 Dev Module”, no menu de placas, para programar na ESP.

Por fim, basta você selecionar a porta a qual a ESP está conectada e você estará pronto para enviar códigos para ela!

Projeto Programar ESP32 Controlando Servo Motor

De forma a colocar em prática o que vimos nesse artigo, faremos agora a implementação de um código para o controle de um servomotor através de um potenciômetro. Antes, porém, é necessário instalar a biblioteca “ESP32Servo” na IDE no Arduino.

Para isso, acese o menu Ferramentas > Bibliotecas > digite “ESP32Servo” e aperte a tecla Enter para executar a pesquisa. Instale a biblioteca conforme a imagem abaixo.

 

Em seguida, é hora de montar o circuito! Nesse exemplo, usei a fonte de alimentação PS-1502DD para fornecer a tensão de 6v ao servomotor MG996R. O fio referente ao sinal do servomotor está conectado ao pino D2 da ESP, e o pino D4 está conectado ao sinal do potenciômetro. Importante notar que o sinal GND da fonte é compartilhada com o GND da ESP32. O fio vermelho que conecta a ESP32 com o potenciômetro é de 3.3v de tensão.

Esquemático Projeto ESP32 Controlando Servo Motor

Esquemático Projeto ESP32 Controlando Servo Motor

 

Após a montagem do circuito, hora de programar!

 

Código

Primeiro, vamos incluir a biblioteca de controle do servo motor, que é diferente da biblioteca original para controle de servo utilizada pelo Arduino.  Em seguida, instanciamos um objeto Servo, nomeando-o myservo. Criamos uma varável servoPin e potPin para armazenar a GPIO do servo e do potenciômetro, respectivamente. Em seguida, definimos a resolução máxima da ESP32 (12 bits). Por fim, uma variável val para guardar o valor lido pelo potenciômetro.

Em seguida, no void setup, inicializamos a comunicação Serial para visualizar os dados através do Monitor Serial. Definimos o período para o controle do servo, 50 hertz (padrão na maioria dos servos para hobby) e, por fim, usamos a função attach para definir um servo na GPIO 4, tendo como parâmetros também o intervalo de rotação. Nesse caso, para um servo de 180 graus podemos usar 500us ~ 2400us. Essas informações são necessárias, visto que esse é um controle do tipo PWM.

No void loop, realizamos a leitura do valor do potenciômetro e convertemos esse valor para um valor entre 0 e 180, a ser usado para rotacionar o servomotor. Também definimos um delay de 200ms para que o servo motor tenha tempo suficiente para executar a rotação.

O código completo pode ser visualizado abaixo.

O resultado desse código pode ser visto no video a seguir.

Teste Prático

 

Conclusão

Nesse tutorial de como programar o ESP32, vimos de forma aprofundada como utilizar na IDE Arduino e suas diversas funções para programação. Desenvolvemos um projeto de controle de um servo motor, onde foi realizada a leitura de dados analógicos, conversão desses dados para um sinal PWM a ser executado pelo servo motor. Existem inúmeras possibilidades para a placa de desenvolvimento ESP32 no que tange a sua utilização em projetos tanto de IoT quanto de automação residencial ou até mesmo projetos para estudo.

Conheça toda Linha ESP32 no Site da UsinaInfo.

Categorias
ESP32

Bacharel em Ciência da Computação pela URI – Campus de Santo Ângelo, com experiência no desenvolvimento de pesquisas em Robótica e prototipação de Sistemas Robóticos.
Sem Comentários

Deixe seu Comentário

*

*

Sobre nós

Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

Sugestões

Artigos Relacionados