Platform IO com Seeed Studio XIAO ESP32-C5

Introdução ao PlatformIO
PlatformIO é um ecossistema de desenvolvimento poderoso e altamente extensível, projetado para sistemas embarcados. Ele integra de forma transparente o suporte a uma vasta gama de placas de desenvolvimento e microcontroladores, oferecendo flexibilidade incomparável. O que diferencia o PlatformIO é sua notável escalabilidade: mesmo que sua placa específica não seja suportada nativamente, sua arquitetura permite definições de placas personalizadas de forma simples.
De forma crucial, o PlatformIO faz a ponte para desenvolvedores familiarizados com Arduino, permitindo compilar e fazer deploy de código no estilo Arduino simplesmente incluindo as bibliotecas relevantes.
Usar PlatformIO para XIAO ESP32-C5
Em seguida, faremos o desenvolvimento para o XIAO ESP32-C5 com base no PlatformIO, ajudando você a explorar o fluxo de trabalho de desenvolvimento com PlatformIO.
Preparação de hardware
Você precisa preparar um XIAO ESP32-C5 com antecedência.
| Seeed Studio XIAO ESP32-C5 |
|---|
![]() |
Baixar o VS Code
Baixe o VS Code de acordo com o sistema que você está usando

Instalar o PlatformIO
Abra o VSCode, clique em Extensões, depois pesquise por PlatformIO e selecione para instalar. Após a conclusão da instalação, reinicie o VSCode.

Instalar o pacote de plataforma platform-seeedboards
As placas da série Seeed Studio XIAO usam uma plataforma PlatformIO personalizada, portanto você precisa instalar manualmente o pacote de plataforma correspondente.
- Execute o seguinte comando para uma instalação nova:
pio pkg install -g -p "https://github.com/Seeed-Studio/platform-seeedboards.git"

- Se você já usou placas da série Seeed Studio XIAO no PlatformIO, execute o comando abaixo para atualizar:
# for Windows
pio pkg update -g -p "https://github.com/Seeed-Studio/platform-seeedboards.git"
# for macOS/Linux
pio pkg uninstall -g -p "SeeedStudio" && pio pkg install -g -p "SeeedStudio=https://github.com/Seeed-Studio/platform-seeedboards.git" --force
Se você quiser usar um projeto PlatformIO existente, substitua o conteúdo de platformio.ini como segue:
[env:seeed-xiao-esp32-c5]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
framework = arduino
board = seeed-xiao-esp32-c5
monitor_speed = 115200
Novo projeto
- Abra a interface PIO Home e selecione
New Project

- Name: Dê um nome ao seu projeto
- Board: Selecione Seeed Studio XIAO ESP32-C5
- Framework: Selecione Ardunio
- Location: O caminho dos arquivos do projeto pode ser definido como um caminho personalizado ou você pode selecionar o caminho padrão.
- Clique em Finish e aguarde a conclusão da criação. Em seguida, abra o arquivo do projeto no workspace.

Exemplo de piscar LED
Neste exemplo de piscar LED, vamos guiá-lo na compilação e upload de arquivos usando o PlatformIO.
Passo 1. Copie o código de exemplo
#include <Arduino.h>
void setup()
{
// put your setup code here, to run once:
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
}
void loop()
{
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN, LOW);
Serial.print("LED ON \n");
delay(1000);
digitalWrite(LED_BUILTIN, HIGH);
Serial.print("LED OFF \n");
delay(1000);
}
Passo 2. Compile o projeto
Clique no ícone √ na barra de status na parte inferior do VS Code para compilar (Build).

Se a compilação for bem-sucedida, será exibido como mostrado na figura.

Passo 3. Upload
Clique no ícone → na barra de status na parte inferior do VS Code para fazer o upload.

Passo 4. Verificar o efeito do programa
Abra o Serial Monitor como mostrado na figura abaixo. Ele imprimirá o status ligado/desligado do LED em intervalos de 1 segundo.

O LED piscará no mesmo intervalo de 1 segundo.

Exemplo de conexão Wi-Fi de 5 GHz
O XIAO ESP-C5 suporta Wi-Fi 6 de banda dupla 2,4 GHz e 5 GHz. Este exemplo demonstrará o efeito de conectar a uma rede Wi-Fi de 5 GHz.
Copie o código a seguir para o seu projeto PlatformIO.
Código de referência para conexão WiFi
#include <Arduino.h>
#include <WiFi.h>
// ----------------------------------------------------------------
// Modify your WiFi SSID and Password here
// ----------------------------------------------------------------
const char* ssid = "YOUR_WIFI_SSID"; // e.g., "MyHomeWiFi"
const char* password = "YOUR_WIFI_PASSWORD"; // e.g., "12345678"
void setup() {
// Initialize serial communication at 115200 baud
Serial.begin(115200);
delay(5000); // Wait for serial to stabilize
Serial.println("\nStarting ESP32 WiFi Connection Demo...");
// 1. Set WiFi mode to Station (connect to a router as a client)
WiFi.mode(WIFI_STA);
// 2. Start connection
Serial.printf("Connecting to SSID: %s ", ssid);
WiFi.begin(ssid, password);
// 3. Wait for connection to be established
// This loop waits until the status becomes WL_CONNECTED
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// ----------------------------------------------------------------
// Connection successful, print detailed information
// ----------------------------------------------------------------
Serial.println("\n\n---------------------------------------");
Serial.println("WiFi Connected Successfully!");
Serial.println("---------------------------------------");
// Print IP Address
Serial.print("IPv4 Address: ");
Serial.println(WiFi.localIP());
// Print Signal Strength (RSSI)
// Unit is dBm, usually between -30 (Excellent) and -90 (Unusable)
long rssi = WiFi.RSSI();
Serial.print("Signal (RSSI): ");
Serial.print(rssi);
Serial.println(" dBm");
// Simple signal quality check based on RSSI value
Serial.print("Signal Quality: ");
if(rssi > -50) Serial.println("Excellent");
else if(rssi > -60) Serial.println("Good");
else if(rssi > -70) Serial.println("Fair");
else if(rssi > -80) Serial.println("Weak");
else Serial.println("Unstable/Very Poor");
// Print MAC Address (Hardware ID)
Serial.print("MAC Address: ");
Serial.println(WiFi.macAddress());
// Print Gateway IP
Serial.print("Gateway IP: ");
Serial.println(WiFi.gatewayIP());
Serial.println("---------------------------------------");
}
void loop() {
// In the main loop, we can periodically check the connection status
// If the connection is lost, attempt to reconnect
if (WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi Connection Lost! Reconnecting...");
WiFi.disconnect();
WiFi.reconnect();
delay(5000); // Wait a bit before checking again to avoid spamming
}
// Your other application logic goes here
// ...
delay(10000); // Loop every 10 seconds
}
Compile (Build) e faça o upload do código
Quando o XIAO ESP32-C5 estiver conectado ao WiFi, o Serial Monitor imprimirá informações como a intensidade do sinal da rede WiFi conectada.
Também é possível ver claramente que o XIAO ESP32-C5 tem uma forte capacidade de conexão a redes Wi-Fi de 5 GHz.


Seguindo os dois exemplos acima, você já deve ter dominado as operações básicas de desenvolvimento do PlatformIO. Estamos ansiosos para ver você criar projetos ainda mais interessantes com o XIAO ESP32-C5!
Suporte Técnico e Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.
