Como Programar ESP32 com VS Code e PlatformIO 4

A IDE do Arduino é bem minimalista mas cumpre seu papel da melhor forma. Através dela, os iniciantes do mundo maker e Arduino, podem dar os seus primeiros passos na programação e eletrônica. Além de ser possível programar a placa Arduino UNO através da IDE, é possível instalar outras plataformas como o ESP32. Apesar da IDE Arduino ser a melhor ferramenta de entrada para um iniciante, já existem outras ferramentas que facilitam o desenvolvimento para pessoas mais experientes como é o caso do editor VS Code e do PlatformIO, trazendo, por exemplo, a facilidade de autocompletar código (code completion).

Neste tutorial irei explicar como programar ESP32 com VS Code e PlatformIO.

O que é o Visual Studio Code?

O Visual Studio Code, ou VS Code, é um editor de texto e código desenvolvido pela Microsoft. É gratuito e está disponível para várias plataformas como Windows, Mac e Linux. O que o torna muito poderoso é a possibilidade de instalar extensões que trazem inúmeras funcionalidades para o editor como possibilidade de autocompletar código e gerenciamento de versões de software com Git diretamente do editor.

O VS Code é amplamente utilizado por desenvolvedores Web, Fullstack, Front e Backend, Python e agora vem sendo bastante adotado por desenvolvedores de software de sistemas embarcados e de IoT.

VS Code Download

A partir do momento que você souber como programar ESP32 com VS Code e PlatformIO, sua produtividade pode aumentar bastante.

O que é o PlatformIO?

PlatformIO é um conjunto de ferramentas para desenvolvimento de sistemas embarcados em C/C++. Começou como uma plataforma onde era necessário pagar para se ter todas as funcionalidades mas em junho de 2019 foi anunciado open source e com todas as funcionalidades gratuitas. O PlatformIO é mais comumente utilizado na forma de extensão para o VS Code. Veremos mais à frente que possui todas as funcionalidades da IDE Arduino como upload e execução de código e algumas outras.

PlatformIO início

Podemos ver indicado no site do PlatformIO, que o ecossistema suporta 20 frameworks. Para ESP32 temos os frameworks mais comuns Arduino e ESP-IDF. Veja toda a lista de frameworks aqui. Também podemos trabalhar com 778 placas diferentes! Além dos diversos exemplos e bibliotecas disponíveis.

Instalando o VS Code

Para instalação do VS Code basta ir até o site oficial do mesmo e baixar para sua plataforma (Windows, Linux ou Mac) e prosseguir normalmente com a instalação.

Instalando a extensão PlatformIO para VS Code

O VS Code possui uma seção onde é possível instalar extensões. Existem extensões oficiais e outras desenvolvidas por outros desenvolvedores. Até você pode desenvolver sua extensão.

Assim que o VS Code for instalado, clique na seção extensões e pesquise por “platformio”. Selecione a extensão do PlatformIO e clique no pequeno botão verde instalar.

PlatformIO no VS Code

Após a instalação, veja que agora o VS Code tem um ícone do PlatformIO à esquerda.

Ícone PlatformIO

Criando um novo projeto para ESP32

Com tudo instalado podemos mostrar como programar ESP32 com VS Code e PlatformIO criando um novo projeto. Para isso clique no ícone do PlatformIO criado à esquerda e então clique em “PIO Home” e depois em “Open”.

Abrindo PlatformIO no VS Code

Na janela Home do PlatoformIO, clique em “New Project”, dê um nome para seu projeto, escolha a placa “Espressif ESP32 Dev Module” e “Framework Arduino”.

Novo projeto PlatformIO no VS Code

Dados do projeto PlatformIO no VS Code

Clique em “Finish” para finalizar a criação do novo projeto.

Com isso foi criada uma estrutura de projeto contendo as pastas e arquivos necessários.

Estrutura projeto PlatformIO no VS Code

Como Programar ESP32 com VS Code e PlatformIO

Como estamos apenas dando uma introdução sobre como programar ESP32 com VS Code e PlatformIO, iremos focar em apenas 2 arquivos que são eles main.cpp e platformio.ini.

O arquivo main.cpp nada mais é do que nosso conhecido arquivo Sketch do Arduino. Nele temos as duas funções básicas setup() e loop(). A única diferença é que está incluído a biblioteca Arduino.h para que possamos usar as funções do framework Arduino em nosso programa como delay(), pinMode(), digitalWrite() e etc.

Estrutura do código

Vamos em frente e mostrar como programar ESP32 com VS Code e PlatformIO, programando o clássico pisca LED para ESP32. Se sua placa já tem um LED built-in, você precisa saber em qual GPIO o LED está conectado, ou montar um LED externo.

#include <Arduino.h>

#define LED_PIN 2

void setup() {
 pinMode(LED_PIN, OUTPUT);
}

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

Repare que enquanto você digita o código, as funções podem ser auto completadas. Isso facilita muito e aumenta a produtividade na hora de escrever código.

Auto-complete do VS Code

Build, Run e Monitor

Na seção anterior citamos também o arquivo platformio.ini. É nesse arquivo onde configuramos parâmetros como porta serial, velocidade de upload e etc.

Adicione as seguintes linhas para informar as configurações da porta serial:

monitor_speed = 115200
upload_speed = 921600
upload_port = COM6

Configurações de carregamento

Se você estiver no Windows, verifique o número da porta COM no Gerenciador de Dispositivos. No Linux a porta pode ser verificada com o comando dmesg e será algo como /dev/ttyUSB0.

Para compilar o código (Build), fazer upload e utilizar o monitor serial, existem botões de comando na parte inferior do VS Code.

Atalhos para funções

Clique no botão Build e verifique se a compilação foi um sucesso.

Detalhes do carregamento

Com a placa ESP32 conectada ao computador, clique no botão Upload para gravar o programa pisca LED.

Outras funcionalidades para explorar

Podemos aproveitar ainda mais funções do VS Code e PlatformIO. Uma que acho bem interessante é a possibilidade de versionamento com Git. Assim, você pode ter todos os seus projetos no Github. Também é possível ter uma placa ESP32 configurada e fazer upload do programa remotamente através da internet. Veja mais detalhes dessa funcionalidade aqui.

Conclusão

Neste tutorial aprendemos como programar ESP32 com VS Code e PlatformIO, mostrando algumas vantagens em relação a IDE oficial Arduino. Eu estive usando nos últimos meses a solução do VS Code juntamente com PlatformIO para desenvolvimento de software embarcado tanto no meu trabalho quanto em projetos particulares e tem me atendido de forma muito positiva tornando o desenvolvimento muito mais ágil.

Coloque nos comentários se você também tem usado VS Code e PlatformIO para sistemas embarcados e quais têm sido suas experiências de como programar ESP32 com VS Code e PlatformIO até agora.

Faça seu comentário

Acesse sua conta e participe

4 Comentários

  1. Instalei no Ubuntu e ficou apresentando [erro 13 ] Permission denied ‘/dev/ttyUSB0’
    resolvi com o comando sudo chmod a+rw /dev/ttyUSB0

    1. Olá!

      Obrigado por compartilhar o problema e a solução conosco!

      Abraços!
      Vinícius – Equipe MakerHero

  2. Caso alguém esteja com problemas para instalar o PlataformIO no VS no Windows:
    1. Desinstalar o Python do computador
    2. Abrir o Windows Store e fazer a instalação do Python através da Windows Store
    3. Reiniciar o computador
    4. Abrir VS novamente

    No meu caso resolveu o problema.
    Créditos: https://community.platformio.org/t/failed-to-install-platformio-ide-new/19699

  3. Muito bom o artigo!
    Me iniciou com o VSCODE para esp32!

    Senti falta do debug.