O ESP32-C3 SuperMini é uma placa de desenvolvimento pequena, barata e interessante, mas a documentação é um pouco escassa e difícil de encontrar. Neste tutorial, vais aprender como começar a usar esta placa.
Especificamente, vais aprender como instalar o core ESP32 para poderes programar a placa via Arduino IDE. Também vamos analisar o pinout mais de perto e vou dar-te alguns circuitos e códigos de exemplo para experimentares.
Peças Necessárias
Podes adquirir a placa ESP32-C3 SuperMini na AliExpress ou uma placa muito semelhante na Amazon, onde é chamada “ESP32-C3 Mini”. No entanto, a placa da Amazon tem um LED RGB, enquanto a da AliExpress tem apenas um LED vermelho e um LED azul. Coloquei os links de ambas abaixo. Também vais precisar de um cabo USB-C e uma breadboard com alguns fios Dupont para experimentares.

ESP32-C3 SuperMini

ESP32-C3 Mini

Cabo USB C

Conjunto de Fios Dupont

Breadboard
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 do ESP32-C3 SuperMini
O ESP32-C3 SuperMini é uma placa de desenvolvimento pequena (22,52x18mm) para IoT, baseada no Espressif ESP32-C3. Contém um processador RISC-V de 32 bits, núcleo único, com até 160 MHz e vem com 400KB SRAM, 384KB ROM e uma flash integrada de 4M. O consumo de energia é bastante baixo, com 43µA em modo deep sleep.
A placa suporta protocolos WiFi 802.11b/g/n a 2,4GHz com modos Station, SoftAP, SoftAP+Station e modo misto, além de Bluetooth 5.0.
Quanto às entradas/saídas, a placa oferece 1 x I2C, 1 x SPI, 2 x UART, 11 x GPIO (PWM) e 4 x ADC. A imagem abaixo mostra a frente e o verso da placa:

Podes notar que a placa tem um botão BOOT e um botão RST. Ao lado do botão de reset há um LED vermelho de alimentação e ao lado do botão do bootloader há um LED azul programável ligado ao GPIO 8.
Pinout
A imagem seguinte mostra o pinout da placa, com as interfaces POWER, GPIO, I2C e SPI assinaladas:

A alimentação é feita via USB-C ou fornecendo 3,3-6V no pino 5V e terra no pino GND. B Mas não ligues USB-C e 5V ao mesmo tempo! Também nota que a placa usa lógica de 3,3V.
Instalação do Core ESP32
Se este é o teu primeiro projeto com uma placa da série ESP32, precisarás de instalar o core ESP32 primeiro. Se já tens placas ESP32 instaladas no teu Arduino IDE, podes saltar esta secção.
Começa por abrir o diálogo de Preferências selecionando “Preferences…” no menu “File”. Isto abrirá o diálogo de Preferências mostrado abaixo.
Na aba Settings encontrarás uma caixa de edição na parte inferior do diálogo rotulada “Additional boards manager URLs“:

Neste campo de entrada copia o seguinte URL:
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json
Isto vai informar o Arduino IDE onde encontrar as bibliotecas do core ESP32. A seguir vamos instalar as bibliotecas do core ESP32 usando o Boards Manager.
Abre o Boards Manager via “Tools -> Boards -> Board Manager”. Vais ver o Boards Manager aparecer na barra lateral esquerda. Escreve “ESP32” no campo de pesquisa no topo e deverás ver dois tipos de placas ESP32; as “Arduino ESP32 Boards” e as placas “esp32 by Espressif”. Queremos as bibliotecas esp32 by Espressif. Clica no botão INSTALL e espera até o download e instalação estarem completos.

Selecionar a placa ESP32C3 Dev Module
Finalmente, precisamos de selecionar uma placa ESP32. No caso do ESP32-C3 SuperMini, escolhemos a genérica “ESP32C3 Dev Module”. Para isso, clica no menu suspenso e depois em “Select other board and port…”:

Isto abrirá um diálogo onde podes escrever “esp32c3” na barra de pesquisa. Vais ver a placa “ESP32C3 Dev Module” em Boards. Clica nela e no porto COM para ativá-la e depois clica OK:

Alternativamente, podes também selecionar a mais recente “Nologo ESP32C3 Super Mini“, se estiver disponível. Podes ver na captura de ecrã acima (2 linhas abaixo do ESP32C3 Dev Module).
Nota que precisas de ligar a placa via cabo USB ao computador antes de poderes selecionar uma porta COM.
Ativar Comunicação Serial
Para permitir comunicação serial com o ESP32-C3 SuperMini, certifica-te que “USB CDC On Boot” está ativado. Encontras esta configuração em “Tools -> USB CDC On Boot”:

Se esta configuração estiver desativada, o Monitor Serial não funcionará, por exemplo!
Se tiveres problemas a gravar o SuperMini, pressiona e mantém pressionado o botão BOOT, depois
pressiona o botão RESET, solta o botão RESET e depois solta o botão BOOT. Isso coloca o SuperMini em modo de download. Normalmente, isto não é necessário.
De forma semelhante, se o programa gravado não correr após o download, pressiona e solta o botão RESET. Novamente, normalmente não é necessário.
Exemplos
Nesta secção encontrarás alguns exemplos de código para testar o teu SuperMini:
Exemplo de Código: Blink
O exemplo seguinte é o clássico programa Blink que vai piscar o LED azul onboard do SuperMini, que está ligado ao GPIO 8:
#define LED 8 // Blue LED
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, LOW);
delay(1000);
digitalWrite(LED, HIGH);
delay(1000);
}
Exemplo de Código: Scan Wi-Fi
Este exemplo do Manual mostra como escanear a tua rede Wi-Fi local:
#include "WiFi.h"
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
}
void loop() {
Serial.println("scan start");
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i) {
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*");
}
delay(10);
}
Serial.println("");
delay(5000);
}
Exemplo de Código: OLED via I2C
A interface I2C do SuperMini está nos pinos 8 (SDA) e 9 (SCL). A imagem abaixo mostra como ligar um display OLED, por exemplo:

e aqui está o código para testar a ligação e o OLED. Simplesmente escreve o texto “make” no display. Nota que vais precisar de instalar a Adafruit_SSD1306 library.
#include "Adafruit_SSD1306.h"
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
void setup() {
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
oled.setTextSize(4);
oled.setTextColor(WHITE);
}
void loop() {
oled.clearDisplay();
oled.setCursor(20, 16);
oled.print("make");
oled.display();
delay(1000);
}
Se quiseres ligar um LCD em vez disso, dá uma vista de olhos no tutorial How to synchronize ESP32 clock with SNTP server, que também aproveita a capacidade Wi-Fi do SuperMini.
Exemplo de Código: E-Paper Display via SPI
Como exemplo final, vamos controlar um E-Paper Display via a interface SPI do SuperMini. O diagrama de ligação abaixo mostra como ligar um 4.2″ e-Paper Display aos pinos SPI:

Abaixo uma tabela com todas as ligações para conveniência. Nota que podes alimentar o display com 3,3V ou 5V, mas as linhas de dados SPI devem ser 3,3V! Para maior segurança, usa 3,3V para a alimentação.
| Display e-Paper | ESP32-C3 SuperMini |
|---|---|
| CS/SS | 7 |
| SCL/SCK | 4 |
| SDA/DIN/MOSI | 6 |
| BUSY | 1 |
| RES/RST | 2 |
| DC | 0 |
| VCC | 3.3V |
| GND | G |
Os pinos SPI de hardware para o SuperMini são 5 (MISO), 6 (MOSI), 7 (CS/SS) e 4 (SCK/SCL). Os outros pinos são livres para escolher.
Antes de poderes desenhar no display e-Paper, precisarás de instalar duas bibliotecas. A Adafruit_GFX biblioteca gráfica, que fornece um conjunto comum de primitivas gráficas (texto, pontos, linhas, círculos, etc.). E a GxEPD2 biblioteca, que fornece o software driver gráfico para o E-Paper Display.
O exemplo de código seguinte usa estas bibliotecas para imprimir o texto “Makerguides” no display:
#include "GxEPD2_BW.h"
// hardware SPI
// #define MISO 5
// #define MOSI 6
// #define SCK 4
#define CS 7
#define DC 0
#define RST 2
#define BUSY 1
GxEPD2_BW<GxEPD2_420_GDEY042T81, GxEPD2_420_GDEY042T81::HEIGHT>
epd(GxEPD2_420_GDEY042T81(CS, DC, RST, BUSY));
void setup() {
epd.init(115200, true, 50, false);
epd.setRotation(1);
epd.setTextColor(GxEPD_BLACK);
epd.setTextSize(2);
epd.setFullWindow();
epd.fillScreen(GxEPD_WHITE);
epd.setCursor(90, 190);
epd.print("Makerguides");
epd.display();
epd.hibernate();
}
void loop() {}
Se quiseres implementar algo mais interessante, dá uma vista de olhos nos tutoriais Monthly Calendar on E-Paper Display e Analog Clock on e-Paper Display.
Conclusões
Neste post aprendeste como usar o ESP32-C3 SuperMini. O SuperMini é ótimo para projetos IoT que requerem uma pegada pequena mas também Wi-Fi ou Bluetooth. Devido ao baixo consumo em deep sleep, é também uma boa placa para projetos alimentados por bateria. A sua maior desvantagem é o número comparativamente pequeno de pinos GPIO.
Boas experiências ; )
Esquemas
As próximas secções mostram os esquemas para alimentação, botões e LEDs, e o microcontrolador da placa ESP32-C3 SuperMini.
Alimentação

Microcontrolador

Botões e LEDs

Pin Headers


