Skip to Content

Placa ESP32-C3 SuperMini

Placa ESP32-C3 SuperMini

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

Dupont wire set

Conjunto de Fios Dupont

Half_breadboard56a

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:

Front and Back of ESP32-C3 SuperMini board
Frente e verso da placa ESP32-C3 SuperMini

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:

Pinout of ESP32-C3 SuperMini
Pinout do ESP32-C3 SuperMini (source)

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.

Install ESP32 Core libraries
Instalar bibliotecas do Core ESP32

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…”:

Drop-down Menu for Board Selection
Menu suspenso para seleção da placa

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:

Board Selection Dialog with ESP32C3 Dev Module
Diálogo de seleção de placa com ESP32C3 Dev Module

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”:

Enabling USB CDC On Boot
Ativar 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:

Ligação do OLED ao SuperMini via I2C

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:

Connecting e-Paper to SuperMini via SPI
Ligação do e-Paper ao SuperMini via 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-PaperESP32-C3 SuperMini
CS/SS7
SCL/SCK4
SDA/DIN/MOSI6
BUSY1
RES/RST2
DC0
VCC3.3V
GNDG

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

Schematics for Power Supply
Esquemas para Alimentação

Microcontrolador

Schematics for Microcontroller
Esquemas para Microcontrolador

Botões e LEDs

Schematics for Buttons and LEDs
Esquemas para Botões e LEDs

Pin Headers

Schematics for Pin Headers
Esquemas para Pin Headers