Super útil e flexível para diversos projetos de IOT.

https://pt.wikipedia.org/wiki/ESP8266

https://docs.espressif.com/projects/esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html

Para usar a IDE do Arduino, usar a velocidade mais baixa para upload.

Funcionalidades

A ESP32 é um microcontrolador poderoso com várias funcionalidades integradas, como Wi-Fi, Bluetooth, diversos pinos de I/O (entrada/saída) e interfaces de comunicação, tornando-a ideal para projetos de Internet das Coisas (IoT). Vou detalhar as principais funcionalidades e as portas da ESP32.

Funcionalidades principais da ESP32

  1. Wi-Fi:

    • A ESP32 possui conectividade Wi-Fi 802.11 b/g/n embutida, permitindo que você conecte a dispositivos de redes locais ou servidores na internet. Ela pode atuar como cliente (station), ponto de acesso (AP) ou ambos (AP + station).
  2. Bluetooth:

    • A ESP32 inclui suporte a Bluetooth 4.2 e BLE (Bluetooth Low Energy). Isso facilita a comunicação com dispositivos móveis, sensores e outros dispositivos habilitados para Bluetooth.
  3. GPIOs (General Purpose Input/Output):

    • A ESP32 oferece uma grande quantidade de pinos GPIO (geralmente entre 30 e 40, dependendo do modelo), que podem ser configurados como entrada, saída ou ambos. Esses pinos podem ser usados para controlar LEDs, motores, relés e ler dados de sensores.
  4. ADC (Conversores Analógico-Digital):

    • A ESP32 tem múltiplos canais ADC que podem converter sinais analógicos em valores digitais. Isso é útil para ler sensores analógicos, como sensores de temperatura, luz ou potenciômetros.
  5. DAC (Conversores Digital-Analógico):

    • A ESP32 também tem DACs que permitem converter sinais digitais em sinais analógicos. Isso é útil para gerar sinais de áudio ou controlar componentes analógicos.
  6. PWM (Pulse Width Modulation):

    • A ESP32 suporta geração de sinais PWM em diversos pinos. O PWM é útil para controle de motores, dimmer de LEDs, ou qualquer aplicação que precise de controle preciso de energia.
  7. I2C (Inter-Integrated Circuit):

    • A ESP32 tem dois barramentos I2C que permitem comunicação com vários dispositivos usando apenas dois pinos (SDA e SCL). Com isso, você pode conectar sensores, displays, e outros dispositivos que utilizem I2C.
  8. SPI (Serial Peripheral Interface):

    • A interface SPI da ESP32 permite comunicação rápida com periféricos como displays, sensores, e módulos de memória, usando mais pinos do que o I2C, mas com taxas de transferência mais rápidas.
  9. UART (Universal Asynchronous Receiver-Transmitter):

    • A ESP32 tem várias portas UART, o que possibilita a comunicação serial com outros dispositivos como módulos GPS, sensores seriais ou comunicação com outro microcontrolador.
  10. CAN (Controller Area Network):

    • A ESP32 também possui suporte para o protocolo CAN, que é comumente usado em sistemas automotivos para comunicação entre componentes eletrônicos.
  11. Capacidade de Multithreading:

    • A ESP32 possui dois núcleos (dual-core), permitindo que diferentes processos rodem simultaneamente (paralelismo), o que aumenta a eficiência em projetos mais complexos.

Principais portas e pinos da ESP32

  1. GPIO:

    • Os pinos GPIO (General Purpose Input/Output) são os pinos de propósito geral da ESP32. Eles podem ser configurados como entradas ou saídas digitais, dependendo da necessidade do projeto.
    • Exemplo: GPIO 2, GPIO 5, GPIO 13, GPIO 23, etc.
    • Atenção: Alguns pinos, como GPIO 6 a 11, estão conectados à memória flash interna da ESP32 e não devem ser usados para I/O.
  2. ADC (Conversor Analógico para Digital):

    • A ESP32 possui até 18 canais ADC, mas a quantidade depende do modelo específico que você está usando.
    • Exemplo: GPIO 32, GPIO 33, GPIO 34, etc.
  3. DAC (Conversor Digital para Analógico):

    • A ESP32 tem 2 canais DAC, que podem gerar saídas de tensão analógica.
    • Exemplo: GPIO 25 (DAC1), GPIO 26 (DAC2).
  4. UART:

    • Existem três interfaces UART na ESP32, e duas delas são normalmente usadas para comunicação serial. A interface UART0 é geralmente usada para comunicação com o computador.
    • Exemplo: GPIO 1 (TX), GPIO 3 (RX) para UART0.
  5. I2C:

    • Pinos padrão para comunicação I2C:
      • SDA (Data): GPIO 21
      • SCL (Clock): GPIO 22
    • Esses pinos podem ser configurados para outros GPIOs, conforme necessário.
  6. SPI:

    • A ESP32 suporta até dois barramentos SPI, sendo o HSPI e VSPI os mais comuns.
    • Pinos padrão para SPI:
      • MOSI: GPIO 23
      • MISO: GPIO 19
      • SCK: GPIO 18
      • CS: GPIO 5 (pode ser alterado)
  7. PWM:

    • A ESP32 tem vários pinos que podem gerar sinais PWM. Qualquer GPIO configurado como saída pode ser usado para PWM, e você pode controlar a frequência e a resolução do sinal.
  8. Capacitive Touch:

    • A ESP32 também tem pinos que podem ser usados como entradas de toque capacitivo, permitindo a criação de interfaces sensíveis ao toque.
    • Exemplo: GPIO 4, GPIO 0, GPIO 2, etc.
  9. Pinos de Alimentação:

    • 3V3: Fornece 3.3V para alimentar componentes externos.
    • GND: Terra (Ground) para completar o circuito.
    • VIN: Entrada de tensão, usada para alimentar a ESP32 com uma fonte de energia externa (tipicamente 5V).

Mapeamento comum de portas (ESP32 DevKit V1):

  • Pinos de alimentação: VIN, 3V3, GND.
  • UART (Serial): GPIO 1 (TX), GPIO 3 (RX).
  • I2C: GPIO 21 (SDA), GPIO 22 (SCL).
  • SPI: GPIO 23 (MOSI), GPIO 19 (MISO), GPIO 18 (SCK), GPIO 5 (CS).
  • PWM: Configurável em praticamente qualquer GPIO.

Considerações importantes

  • GPIO 0 e GPIO 2 são usados para selecionar o modo de boot da ESP32. Eles precisam estar configurados corretamente para evitar problemas ao carregar o código.
  • Alguns pinos, como os de alimentação (3.3V, GND, VIN), são cruciais para conectar componentes externos, enquanto outros, como os ADCs, podem ser usados para sensores analógicos.

Referência de pinos

WROOM32 DEV (32 pinos)

Fonte: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

WROOM32 (36 pinos, padrão)