Neste tutorial, vais aprender como começar a usar a placa LILIGO T-Camera S3.
A LILYGO T-Camera S3 é uma placa de desenvolvimento compacta baseada no microcontrolador dual-core ESP32-S3 FN16R8, equipada com um módulo de câmara OV2640, 8 MB de PSRAM e 16 MB de memória flash.
Neste artigo, vamos passar pelos passos essenciais de configuração, como instalar as bibliotecas, o core do ESP32 e preparar o código para um servidor web que transmite vídeo via Wi-Fi da T-Camera S3 para o teu navegador.
Peças Necessárias
Vais precisar de uma T-Camera S3 e de um cabo USB-C para programar a placa e testar os exemplos de código. Os links seguintes mostram onde os podes adquirir.

LILYGO T-Camera S3

Cabo USB C
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.
Hardware da T-Camera S3
A LILYGO T-Camera S3 é uma placa de desenvolvimento que usa o microcontrolador dual-core ESP32‑S3FN16R8. Este SoC funciona até 240 MHz e inclui suporte a extensões vetoriais, tornando-o adequado para tarefas de machine learning e visão computacional. A placa incorpora 8 MB de PSRAM e 16 MB de memória flash, permitindo armazenar modelos, imagens ou dados de registo.

Componentes
Para captura de imagem, a placa integra um módulo de câmara OV2640 de 2 megapixels (com resolução UXGA 1622×1200) como padrão; existe também uma versão opcional de 5 megapixels. Inclui um pequeno ecrã OLED monocromático (0,96 polegadas, 128×64 pixels) controlado por SSD1306 via I²C, oferecendo uma interface visual simples ou display de estado. No áudio, tem um microfone integrado e um sensor de movimento PIR para deteção básica de movimento.
Conectividade
A conectividade é assegurada pelo WiFi integrado de 2.4 GHz (802.11 b/g/n) e Bluetooth 5 (LE) do ESP32-S3, permitindo comunicação sem fios e acesso remoto. Uma porta USB-C fornece alimentação e acesso para programação/debug. Um conector JST de 5 pinos oferece acesso adicional a I/O como GPIO, UART, 3.3 V/5 V e terra. As dimensões da placa são aproximadamente 69 × 28 × 18.5 mm. A imagem abaixo mostra o pinout da placa:

Alimentação
A gestão de energia inclui suporte para alimentação via USB e um conector JST-GH para bateria Li-Po de célula única, tornando a placa adequada para projetos portáteis. A placa também tem um botão de boot e um botão de energia.
Especificações Técnicas
A tabela seguinte resume as especificações técnicas da placa LILYGO T-Camera S3:
| Parâmetro | Especificação |
|---|---|
| Microcontrolador | ESP32-S3FN16R8 dual-core (Tensilica LX7, até 240 MHz) |
| PSRAM | 8 MB |
| Memória Flash | 16 MB |
| Módulo de Câmara | OV2640 (2 MP, UXGA 1622×1200) padrão; variante opcional de 5 MP |
| Ecrã | OLED 0.96″, 128×64 pixels, SSD1306 via I²C |
| Conectividade Sem Fios | WiFi 2.4 GHz 802.11 b/g/n; Bluetooth 5.0 LE |
| Sensor de Movimento | PIR (infravermelho passivo) |
| Entrada de Áudio | Microfone integrado |
| Alimentação e Carregamento | Porta USB-C; conector JST-GH para bateria Li-Po |
| Dimensões da Placa | Aprox. 69 × 28 × 18.5 mm (placa); 75 × 35 × 12 mm (com caixa) |
| Interfaces de Programação e I/O | USB-C para programação |
Instalação das Bibliotecas
Nesta secção vamos instalar as bibliotecas necessárias para compilar código para a placa T-Camera S3. Vai ao repositório LILYGO no github para o display em LilyGo-Cam-ESP32S3. Clica no botão verde “<> Code” e depois em “Download ZIP” para descarregar o repositório como um ficheiro ZIP:

De seguida, descompacta o ficheiro ZIP para extrair o seu conteúdo. Deverás ver os seguintes ficheiros na pasta descompactada chamada “LilyGo-Cam-ESP32S-master”:

Precisamos copiar o conteúdo da pasta “lib” para a pasta “libraries” do Arduino IDE. No Windows, a pasta “libraries” normalmente está localizada em:
C:\Users\<username>\OneDrive\Documents\Arduino\libraries
Como esta pasta já contém bibliotecas instaladas, recomendo que a renomes temporariamente, por exemplo para “_libraries”, e crias uma nova pasta chamada “libraries”. Assim evitas conflitos com as bibliotecas já instaladas e não as perdes. Depois podes facilmente reverter esta alteração. A imagem abaixo mostra como deve ficar a tua pasta “Arduino” com as bibliotecas:

De seguida, copiamos os ficheiros da pasta “lib” para a nova pasta “libraries” como mostrado abaixo:

Isto completa a instalação das bibliotecas necessárias (AceButton, ESP32QRCodeReader, U8g2, XPowersLib). Na próxima secção vamos instalar o core do ESP32.
Instalação do core ESP32
Além das bibliotecas, precisamos também de instalar uma versão específica do core ESP32. O github repo para a T-Camera S3 indica que a Versão 2.0.17 deve ser usada. Parece que a versão atual (3.3.x) não é suportada (em novembro de 2025) e o código não compila – embora eu não tenha testado isso.
Fazer downgrade da versão do ESP32 é fácil. Abre o BOARDS MANAGER, escreve “ESP32” para filtrar as placas ESP32 e depois seleciona Versão 2.0.17 para o esp32 da Espressif Systems. A imagem abaixo mostra como fica após fazer downgrade do core ESP32:

Agora estamos quase prontos para experimentar a câmara.
Código para Exemplo Mínimo de Câmara
Nesta secção vamos preparar, gravar e executar o código para o Minimal Camera Example que pode ser encontrado na examples folder do repositório github. Como já descarregaste o repositório, tens o código de exemplo no teu computador. Abre a pasta “LilyGo-Cam-ESP32S-master” no teu computador, depois vai a “examples” e abre a pasta “MinimalCameraExample”:

Há algumas coisas que precisamos alterar para conseguir executar o MinimalCameraExample.ino, no entanto.
Renomear Ficheiro Secrets
Primeiro, vamos renomear o ficheiro “secrets.h.example” para “secrets.h”, pois precisamos deste ficheiro para as credenciais WiFi:

Preencher Secrets
Se agora abrires o projeto MinimalCameraExample.ino no Arduino IDE, deverás ver um separador com o ficheiro “secrets.h”.

Clica nele e insere o SSID e a Password da tua rede WiFi. Podes preencher o mesmo SSID e Password três vezes:
// If using station mode, please fill in the wifi ssid and password here, cahnge as per your wireless settings #define WIFI_SSID1 "ssid_from_AP_1" #define WIFI_SSID_PASSWORD1 "your_password_for_AP_1" #define WIFI_SSID2 "ssid_from_AP_2" #define WIFI_SSID_PASSWORD2 "your_password_for_AP_2" #define WIFI_SSID3 "ssid_from_AP_3" #define WIFI_SSID_PASSWORD3 "your_password_for_AP_3"
Selecionar modo WiFi
Finalmente, precisamos fazer duas alterações no ficheiro MinimalCameraExample.ino. Substitui os sinais de menor e maior na inclusão de secrets.h por aspas e define a flag use_ap_mode para false:

Após estas alterações, o início do ficheiro MinimalCameraExample.ino deverá ficar assim:
#include <Arduino.h> #include <WiFi.h> #include <WiFiMulti.h> #include "esp_camera.h" #include "secrets.h" #define XPOWERS_CHIP_AXP2101 #include "XPowersLib.h" #include "utilities.h" void startCameraServer(); XPowersPMU PMU; WiFiMulti wifiMulti; String hostName = "LilyGo-Cam-"; String ipAddress = ""; bool use_ap_mode = false;
Gravar Código na T-Camera S3
Agora estamos quase prontos para gravar o código na T-Camera S3. Seleciona “ESP32S3 Dev Module” como placa e certifica-te que está ligada e reconhecida numa porta COM:

De seguida, no menu “Tools” define os seguintes parâmetros:

Os mais importantes são Flash Size, Partition Scheme e PSRAM. Os outros parâmetros devem estar com as definições por defeito, mas é melhor confirmares. Para imprimir no Monitor Serial, a configuração USB_CDC_ON_BOOT deve estar ativada.
Agora podes gravar o código na tua T-Camera S3 e, com sorte, ver a seguinte informação no Monitor Serial:

Indica que a placa conseguiu ligar-se ao WiFi e qual o endereço IP onde o servidor web da câmara está a correr. As mensagens de erro relativas à partição parecem não causar problemas e podem ser ignoradas.
Abre o teu navegador, insere o endereço IP, por exemplo “192.168.1.111” na barra de endereços e deverá aparecer uma barra lateral com um menu para o servidor web:

Clica em “Start Stream” no fundo desse menu (logo acima de Advanced Settings):

e deverás conseguir ver o stream de vídeo no teu navegador:

Se tudo correu bem, parabéns ; )
Não consigo gravar código na T-Camera S3
Descobri que gravar o código do MinimalCameraExample na T-Camera S3 muitas vezes não funciona. Segurar o botão Boot/Reset, reiniciar a placa, reiniciar o computador – nada resultou.
A gravação começava com sucesso mas antes de chegar a 100% falhava com a mensagem de erro:
Ocorreu um erro de exceção serial: Não é possível configurar a porta, algo correu mal. Mensagem original: PermissionError(13, ‘O dispositivo não reconhece o comando.’, None, 22)
Nota: Este erro vem do pySerial. Provavelmente não é um problema do esptool, mas sim da ligação hardware ou dos drivers.
A boa notícia é que encontrei uma forma de ultrapassar este problema. Basta criares outro projeto Arduino com código mínimo e gravares esse código se encontrares o erro acima:
void setup() {
Serial.begin(115200);
}
void loop() {
delay(1000);
Serial.println("loop");
}
Por alguma razão, isto funciona sempre e depois podes gravar o código maior (MinimalCameraExample) novamente e ele funciona também.
Conclusão
Neste tutorial aprendeste como começar a usar a placa T-Camera S3 da LILYGO. Apenas gravámos e executámos o Minimal Camera Example mas o repositório github tem mais examples que vale a pena explorar.
Note que também temos um tutorial para o novo modelo T-Camera-Plus S3 Getting Started with T-Camera-Plus S3. E se estiveres interessado noutras câmaras e aplicações, dá uma vista de olhos nos seguintes tutoriais:
- Stream Video with ESP32 Camera Pro Kit
- Stream Video with ESP32-CAM
- Stream Video with ESP32-WROVER CAM
- Surveillance Camera with ESP32-CAM
- Object Detection with ESP32-CAM and YOLO
- Train an Object Detection Model with Edge Impulse for ESP32-CAM
Se tiveres alguma dúvida, não hesites em deixar nos comentários.
Boas experiências a criar 😉

