Configuração do ESP32-DevKitC V4 (WROOM-32D/U)

ESP32 DevKit V4

Módulo ESP32 com chip CP2102 e 38 pinos

ESP32 DevKit V4

Esquema Módulo ESP32 com chip CP2102 e 38 pinos

O ESP32-WROOM-32U (versão com conector de antena U.FL) montado numa placa com o chip serial CP210x é uma excelente escolha para projetos que exigem maior alcance de sinal e estabilidade de rede[cite: 1].

Nota: Esta placa é ideal para contextos onde a força do sinal Wi-Fi é o foco do projeto.

1. Instalação dos Drivers (CP210x)

Para que o seu computador reconheça a placa, deve descarregar e instalar os drivers VCP (Virtual COM Port) da Silicon Labs:

Drivers CP210x

2. Configuração do Arduino IDE

Para programar o ESP32, adicione os URLs de suporte às placas nas Preferências do Arduino IDE
[File > Preferences ---- Adicional Boards manager URLs]:

http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://dl.espressif.com/dl/package_esp32_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Configuração de URLs no Arduino IDE

No Gestor de Placas (Board Manager), pesquise por "esp32" e instale a versão mais recente da Espressif Systems.

Gestor de Placas Arduino IDE

3. Código de Teste (Blink & Wi-Fi Scanner)

Gestor de Placas Arduino IDE

Este código realiza dois testes essenciais: o piscar do LED (hardware) e o varrimento de redes Wi-Fi (RF/Antena) através do Monitor Serial.

#include "WiFi.h"

// Nota: No ESP32-32U, o LED_BUILTIN geralmente está no GPIO 2.
#define LED_PIN 2 

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

  // Configura Wi-Fi em modo estação
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("--- Teste de Hardware ESP-32U Iniciado ---");
}

void loop() {
  // 1. Teste de LED (Blink)
  Serial.println("LED ON");
  digitalWrite(LED_PIN, HIGH);
  delay(5000);

  Serial.println("LED OFF");
  digitalWrite(LED_PIN, LOW);
  delay(500);

  // 2. Teste de RF (Scanner de Wi-Fi)
  Serial.println("A procurar redes Wi-Fi...");
  int n = WiFi.scanNetworks();
  
  if (n == 0) {
    Serial.println("Nenhuma rede encontrada.");
  } else {
    Serial.printf("%d redes encontradas:\n", n);
    for (int i = 0; i < n; ++i) {
      Serial.printf("%d: %s (%d dBm)\n", i + 1, WiFi.SSID(i).c_str(), WiFi.RSSI(i));
    }
  }
  Serial.println("------------------------------------------");
  delay(4000); 
}