Skip to Content

Começar com XIAO ESP32-S3-Plus e Arduino IDE

Começar com XIAO ESP32-S3-Plus e Arduino IDE

O XIAO ESP32-S3-Plus é uma placa microcontroladora compacta e potente, projetada para projetos avançados de sistemas embutidos e IoT. Baseia-se no processador dual-core ESP32-S3, com velocidade de até 240 MHz. A placa inclui conectividade Wi-Fi e Bluetooth Low Energy integradas para aplicações sem fios.

Comparado com o XIAO ESP32-S3, mantém o formato compacto, mas adiciona mais memória e capacidades de I/O. A versão Plus apresenta 16 MB de flash, 8 MB de PSRAM e 20 pinos GPIO.

A placa suporta múltiplas interfaces como UART, I2C, SPI e I2S. Inclui também carregamento de bateria integrado e modos de baixo consumo para operação eficiente em energia.

Neste tutorial, aprenderá como programar o XIAO ESP32-S3-Plus usando o Arduino IDE.

Onde Comprar

Pode adquirir o XIAO ESP32-S3-Plus na Seeed Studio. Também precisará de um cabo USB-C, caso ainda não tenha um. Um pequeno dissipador de calor pode ser necessário se executar cálculos intensivos na placa.

XIAO ESP32-S3-Plus

Cabo USB C

Pequeno dissipador de calor 9×9 mm

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Características da placa XIAO ESP32-S3 Plus

O XIAO ESP32-S3-Plus baseia-se no microcontrolador ESP32-S3R8. Utiliza uma CPU dual-core Xtensa LX7 com frequência até 240 MHz. A imagem abaixo mostra a frente e o verso da placa.

Front and Back of XIAO ESP32-S3-Plus board
Frente e verso da placa XIAO ESP32-S3-Plus

O processador é de 32 bits e foi desenhado para cargas de trabalho embutidas e IoT. Suporta instruções vetoriais que melhoram o desempenho em processamento de sinais e tarefas de IA.

A placa é compatível com frameworks de desenvolvimento comuns. Suporta Arduino, MicroPython e ESP-IDF.

Configuração de Memória

A versão Plus oferece uma configuração de memória maior comparada ao modelo padrão. Inclui 16 MB de memória flash externa e 8 MB de PSRAM para gestão dinâmica de dados.

Esta combinação permite aplicações mais complexas, suportando buffering, processamento de imagens e cargas de trabalho de IA na borda.

Conectividade Sem Fios

A placa integra um subsistema Wi-Fi completo a 2.4 GHz. Suporta também Bluetooth Low Energy 5.0 e Bluetooth Mesh. Uma antena externa pode ser ligada via interface U.FL, melhorando o alcance e a estabilidade do sinal em designs embutidos. A foto abaixo mostra a antena ao lado da placa XIAO ESP32-S3-Plus:

XIAO ESP32-S3-Plus with external Antenna
XIAO ESP32-S3-Plus com antena externa

GPIO e Interfaces

O XIAO ESP32-S3-Plus oferece um conjunto alargado de pinos GPIO, até 20 GPIOs. Pinos adicionais estão disponíveis através de pads castellados na parte traseira da placa. A imagem seguinte mostra o pinout do XIAO ESP32-S3-Plus:

Pinout do XIAO ESP32-S3-Plus (source)

A placa suporta múltiplas interfaces de comunicação. Inclui duas interfaces UART, uma I2C, uma I2S e duas SPI. Também fornece entradas analógicas através de canais ADC.

Inclui um conector B2B para placas de expansão. Note que o conector B2B do XIAO ESP32-S3-Plus é compatível com a Wio-SX1262 placa de expansão, mas não com a placa de sensor de câmara Plug-in.

B2B connector of XIAO ESP32-S3-Plus
Conector B2B do XIAO ESP32-S3-Plus

Gestão de Energia

A placa suporta entrada de energia USB Type-C a 5 V. Também suporta entrada direta de bateria para células Li-ion ou LiPo. Inclui circuito integrado de carregamento de bateria com corrente de carga até 100 mA. A bateria deve ser ligada via pads de solda na parte traseira da placa:

Battery solder pads of XIAO ESP32-S3-Plus
Pads de solda para bateria do XIAO ESP32-S3-Plus

O XIAO ESP32-S3-Plus oferece múltiplos modos de energia, incluindo ativo, modem sleep, light sleep e deep sleep. A corrente em deep sleep pode atingir valores na ordem dos microamperes, permitindo designs de baixo consumo.

Características Físicas

A placa segue o formato padrão XIAO, medindo 21 x 17.8 x 5 mm. Usa espaçamento de pinos de 2.54 mm para a maioria dos GPIOs, compatível com breadboards. Existem ainda 9 GPIOs adicionais com espaçamento de 1.27 mm em pads SMD castellados e a parte traseira inclui pads para depuração.

Dimensions of XIAO ESP32-S3-Plus
Dimensões do XIAO ESP32-S3-Plus

O layout inclui um botão de reset e um botão de boot. Também possui LEDs de estado para controlo do utilizador e indicação de carregamento da bateria.

Especificações Técnicas

A tabela seguinte resume as características técnicas do XIAO ESP32-S3-Plus:

Parâmetro Especificação
Microcontrolador ESP32-S3R8, Xtensa LX7 dual-core, 32-bit
Frequência da CPU Até 240 MHz
Conectividade Sem Fios Wi-Fi 2.4 GHz, Bluetooth 5.0, Bluetooth Mesh
Memória Flash 16 MB flash externa
PSRAM 8 MB
GPIO Até 20 GPIOs (incluindo pads traseiros adicionais)
Entradas Analógicas Até 9 canais ADC
Interfaces de Comunicação 2× UART, 1× I2C, 1× I2S, 2× SPI
Interface USB USB Type-C para alimentação e programação
Tensão de Operação 5 V (USB), ~3.7–4.2 V (bateria)
Suporte a Bateria Li-ion / LiPo com carregamento integrado
Corrente de Carregamento Até 100 mA
Consumo de Energia (Wi-Fi ativo) ~81 mA
Consumo de Energia (Deep Sleep) ~33 µA
Modos de Energia Ativo, modem sleep, light sleep, deep sleep
Dimensões 21 × 17.8 mm
Temperatura de Operação -40 °C a 65 °C
Características Adicionais Conector B2B, botão de reset, botão de boot, LEDs de estado

Instalar ESP32 Core

Se quiser usar o Arduino IDE para programar a placa, primeiro precisa instalar o ESP32 Core para ativar o suporte a placas ESP32 no Arduino IDE. Abra o seu  Arduino IDE  e siga os passos indicados abaixo. Se tiver problemas, pode encontrar instruções mais detalhadas no nosso tutorial Install ESP32 core in Arduino IDE.

URLs adicionais para o gestor de placas

Primeiro abra o diálogo de Preferências selecionando “Preferences…” no menu “File”:

Open Preferences Dialog
Abrir diálogo de Preferências

Isto abrirá o diálogo de Preferências mostrado abaixo. Na aba Settings encontrará uma caixa de edição na parte inferior do diálogo rotulada “Additional boards manager URLs”:

Neste campo copie a seguinte URL: “https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json

Isto permitirá ao Arduino IDE saber onde encontrar as bibliotecas do core ESP32. A seguir, vamos instalar as bibliotecas do core ESP32 usando o Boards Manager.

Boards Manager

Abra o BOARDS MANAGER clicando no ícone da placa na barra lateral do Arduino IDE:

Board icon in Sidebar
Ícone da placa na barra lateral

Verá o BOARDS MANAGER aparecer à direita da barra lateral. Digite “ESP32” no campo de pesquisa no topo e deverá ver dois tipos de placas ESP32; as “Arduino ESP32 Boards” e as placas “esp32 by Espressif”. Queremos as bibliotecas esp32 da Espressif. Clique no botão INSTALL e aguarde até a instalação terminar.

Install ESP32 Core libraries
Instalar bibliotecas do ESP32 Core

Depois de instalado, o seu Boards Manager deverá parecer com isto, embora a versão (aqui 3.3.7) possa ser diferente.

ESP32 core installed
Core ESP32 instalado

No passo seguinte, mostro como selecionar a placa ESP32 para o XIAO ESP32-S3-Plus.

Selecionar placa XIAO_ESP32S3_PLUS

Pode selecionar uma placa no menu suspenso sob a barra de menus: no exemplo abaixo está selecionada a placa Arduino Uno, por exemplo:

Bord selector
Seletor de placa

Clicando no nome da placa atualmente selecionada (Arduino Uno), abrirá o diálogo de seleção de placa. No campo de pesquisa digite “xiao s3” e selecione “XIAO_ESP32S3_PLUS” como mostrado abaixo:

Selecionar XIAO_ESP32S3_PLUS no Board Manager

Se a placa estiver ligada ao seu PC via USB, também poderá selecionar a porta COM. Na captura de ecrã acima é COM9, mas no seu caso pode ser outra porta COM.

Exemplos de Código

Nesta secção, fornecerei alguns exemplos de código para experimentar as principais funcionalidades do XIAO ESP32-S3-Plus.

Piscar LED integrado

Começamos com o exemplo comum Blink. Este alterna o LED integrado ligado e desligado durante um segundo. O LED integrado do XIAO ESP32-S3-Plus está ligado ao GPIO21, mas é invertido. LOW significa LED ligado e HIGH significa LED desligado. Pode ver isto no exemplo de código abaixo:

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  Serial.println("Off");
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);     
  Serial.println("On");                 
  digitalWrite(LED_BUILTIN, LOW);   
  delay(1000);                      
}

Ler & Escrever GPIO

Nos exemplos muito curtos seguintes, lemos e escrevemos GPIO. Para especificar pinos no código pode usar o número GPIO x ou o número Dx. Por exemplo, segundo o pinout, D3 ou GPIO4 identificam o mesmo pino e no seu código pode usar qualquer um dos dois. Os dois exemplos de código seguintes são idênticos em função e definem GPIO4 para HIGH:

digitalWrite(D3, HIGH);  // D3 == GPIO4
digitalWrite(4, HIGH);  // D3 == GPIO4

Se quiser ler sinais analógicos pode usar as constantes pré-definidas Ax. Por exemplo, o código seguinte lê uma entrada analógica de A3, que é o mesmo que o pino GPIO4:

int val = analogRead(A3);  // A3 == GPIO4
int val = analogRead(4);  // A3 == GPIO4

Os valores analógicos variam de 0 a 4095, o que equivale a uma tensão na entrada entre 0 e 3.3V.

Entrada Touch

Este exemplo demonstra como usar os pinos de toque capacitivo do XIAO ESP32-S3-Plus para detetar entradas de toque. Se tocar no primeiro pino (D0) da placa, o LED integrado acenderá. Pode ser necessário ajustar o limiar de deteção.

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  int value = touchRead(T1);
  Serial.println(value);

  if (value > 30000) { 
    digitalWrite(LED_BUILTIN, LOW);
  } else {
    digitalWrite(LED_BUILTIN, HIGH);
  }

  delay(200);
}

Wi-Fi

O exemplo seguinte mostra como ligar o XIAO ESP32-S3-Plus a uma rede Wi-Fi. Isto funciona sem antena externa, se estiver perto do router Wi-Fi. Mas para melhor alcance deve instalar a antena.

#include <WiFi.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\nConnected");
  Serial.println(WiFi.localIP());
}

void loop() {
}

Bluetooth

Este último exemplo demonstra como criar um servidor Bluetooth Low Energy (BLE) simples.

#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>

void setup() {
  Serial.begin(115200);

  BLEDevice::init("XIAO-ESP32-S3");
  BLEServer *pServer = BLEDevice::createServer();
  BLEDevice::getAdvertising()->start();

  Serial.println("BLE server started");
}

void loop() {
}

Pode verificar se o servidor está ativo usando um scanner BLE no seu telemóvel. Opções comuns são o nRF Connect ou o LightBlue. Se iniciar uma pesquisa, verá “XIAO-ESP32-S3” aparecer.

Conclusões

Este artigo mostrou como começar com o Seeed Studio XIAO ESP32-S3-Plus. A Seeed Studio fornece informações adicionais no seu Wiki.

Comparado com o XIAO ESP32-S3, o XIAO ESP32-S3-Plus tem mais Flash e pinos GPIO. No entanto, não tem o microfone do XIAO MG24 Sense nem a câmara (e microfone) do XIAO-ESP32-S3-Sense. Se quiser gravar áudio ou transmitir vídeo, essas placas são uma melhor escolha. Mas se precisar de mais memória ou I/O, opte pelo XIAO ESP32-S3-Plus.

Se tiver alguma dúvida, sinta-se à vontade para deixar nos comentários.

Boas experiências a criar 😉