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.
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.
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.
Após a instalação, veja que agora o VS Code tem um ícone do PlatformIO à esquerda.
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”.
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”.
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.
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.
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.
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
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.
Clique no botão Build e verifique se a compilação foi um sucesso.
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.
Instalei no Ubuntu e ficou apresentando [erro 13 ] Permission denied ‘/dev/ttyUSB0’
resolvi com o comando sudo chmod a+rw /dev/ttyUSB0
Olá!
Obrigado por compartilhar o problema e a solução conosco!
Abraços!
Vinícius – Equipe MakerHero
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
Muito bom o artigo!
Me iniciou com o VSCODE para esp32!
Senti falta do debug.