# ESP32

ESP32 é uma série de microcontroladores de baixo custo e baixo consumo de energia. Também é um sistema-em-um-chip com microcontrolador integrado, Wi-Fi e Bluetooth. A série ESP32 emprega um microprocessador Tensilica Xtensa LX6 com duas variações dual-core e single-core e inclui uma antena integrada RF tipo balun, amplificador de potência, receptor de baixo ruído amplificado, filtros, gerenciamento de energia dos módulos. ESP32 foi criado e desenvolvido por Espressif Sistemas, uma empresa Chinesa com sede em Xangai e é fabricado pela TSMC usando seus processo de fabricação de 40 nm. Ele é um sucessor do microcontrolador ESP8266.

## Recursos

As Características do ESP32 são as seguintes:
* Processadores:
** CPU: Xtensa dual-core (ou single-core) de 32 bits LX6 microprocessador, operando em 160 ou 240 MHz e realizar até 600 DMIPS
** Ultra baixa potência (ULP) co-processador
* Memória: 520 KB SRAM
* Conectividade sem fio:
** Wi-Fi: 802.11 b/g/n
** Bluetooth: v4.2 BR/EDR e BLE
* Interfaces para periféricos:
** 12-bit SAR ADC até 18 canais
** 2 × 8-bit DACs
** 10 × Sensores de toque (GPIOs de detecção capacitiva)
** Sensor de temperatura
** 4 × SPI
** 2 × Interfaces I²S
** 2 × Interfaces I²C
** 3 × UART
** Controladores de host SD/SDIO/CE-ATA/MMC/eMMC
** Controlador escravo SDIO/SPI
** Interface Ethernet MAC da com DMA dedicado e Suporte Protocolo IEEE 1588 com Tempo Preciso
** Barramento CAN 2.0
** Controlador remoto infravermelho (TX/RX, até 8 canais)
** Motor PWM
** LED PWM (até 16 canais)
** Sensor de efeito Hall
** Pré-amplificador analógico de ultra baixa potência
* Segurança:
** Padrão IEEE 802.11 recursos de segurança para todas as edições, incluindo WFA, WPA/WPA2 e WAPI
** Boot seguro
** Criptografia de Flash
** 1024-bit OTP, até 768 bits para os clientes
** Criptografia de hardware de aceleração: AES, SHA-2, RSA, criptografia de curva elíptica (ECC), gerador de número aleatório (RNG)
* Gerenciamento de energia:
** Regulador de baixa eliminação interno
** Domínio Individual de energia para o RTC
** 5uA de consumo no sono profundo.
** Acordar através de interrupções no GPIO, timer, atraves de medições no ADC ou pelo sensor de interrupção de toque capacitivo.

## Chip de encapsulamento QFN e o módulo

ESP32 é alojado em um encapsulamento do tipo Quad-Flat No-leads (QFN) que possui diversos tamanhos, com 49 pinos. Especificamente são 48 pinos para ligações ao longo da laterais do encapsulamento e um grande contato térmico (ligado ao terra) na parte inferior.

### Chips

O ESP32 é um sistema em um chip de circuito integrado e é encapsulado com as dimensões de 6 mm × 6 mm e 5 mm x 5 mm de tamanho em encapsulamentos tipo QFN
| Identificador | Núcleos de processador | Memória flash integrada (MiB) | Tamanho do pacote | Descrição |
| ESP31B | 2 | 0 | 6×6 mm$^2$ | Pré-lançamento SoC usado para testes beta; não está mais disponível. |
| ESP32-D0WDQ6 | 2 | 0 | 6×6 mm$^2$ | Produção inicial de lançamento chip da série ESP32. |
| ESP32‑D0WD | 2 | 0 | 5×5 mm$^2$ | Físico menor variação de encapsulamento e semelhante ao ESP32-D0WDQ6. |
| ESP32‑D2WD | 2 | 2 | 5×5 mm$^2$ | 2 MB (16 Mbit) memória flash integrada com variação. |
| ESP32‑S0WD | 1 | 0 | 5×5 mm$^2$ | Variação com Processador Single-core. |

### Módulo

O placa do módulo ESP32-PICO-D4 Circuito integrado combina um chip ESP32 de silício, oscilador de cristal, chip Flash de memória,capacitores de filtro e trilhas correspondentes para RF em um único encapsulamento QFN de 7 mm × 7 mm.
| Identificador | Núcleos de processador | Memória flash integrada (MiB) | Tamanho do pacote | Descrição |
| ESP32-PICO-D4 | 2 | 4 | 7×7 mm$^2$ | Inclui chip ESP32 de silício, oscilador de cristal, chip Flash de memória,capacitores de filtro e trilhas correspondentes para RF. |

## Placas de circuito impresso
### Modulo de Placa de Montagem em Superfície

O ESP32 é um modulo para placa de circuito impresso baseada em montagem em superficie onde é inserido diretamente o ESP32 SoC e são projetados para serem facilmente integradas em outras placas de circuito. O modulo possui uma antena tipo F-invertido projetada no PCI em uma trilha serpenteada. Abaixo está uma lista com os diversos tipos antenas utilizadas nos módulos anteriores. Além da memória flash, alguns módulos incluem pseudostatic RAM (pSRAM).
| Fornecedor | Nome | Antena | Memória Flash(MiB) | pSRAM (MiB) | Descrição |
| Espressif | ESP-WROOM-03 | Trilha em PCB | 4 | 0 | Descontinuada. Distribuição limitada, módulo de pré-produção criado pela Espressif para fins de testes beta; este módulo utilizou o ESP31B, o chip de teste beta da série ESP32. FCC Part 15.247 tested (FCC ID: 2AC7Z-ESP32). |
| Espressif | ESP-WROOM-32 | Trilha em PCB | 4 | 0 | Primeira placa do módulo ESP32 publicamente disponível e criada pela Espressif. FCC Part 15.247 tested (FCC ID: 2AC7Z-ESPWROOM32). Baseado no chip ESP32-D0WDQ6. |
| Espressif | ESP-WROOM-32D | Trilha em PCB | 4 | 0 | Revisão do módulo ESP-WROOM-32 que utiliza um chip ESP32-D0WD em vez de um chip ESP32-D0WDQ6. |
| Espressif | ESP32-WROOM-32U | Conector U.FL | 4 | 0 | Alternativa para o módulo ESP-WROOM-32D que possui um conector U.FL para antena externa em vez de uma antena de trilha em PCB. |
| Espressif | ESP32-WROVER | Trilha em PCB | 4 | 4 | Placa de módulo ESP32 com 4 MiB pSRAM criado por Espressif. Parte 15.247 do FCC testada (FCC ID 2AC7Z-ESP32WROVER). Usa o oscilador de cristal de 40 MHz. Não inclui o conector U.FL. Baseado no chip ESP32-D0WDQ6. |
| Espressif | ESP32-WROVER-I | Conector U.FL, Trilha em PCB | 4 | 4 | Variação do módulo ESP32-WROVER configurado para usar um conector on-board compatível com U.FL. Antena de trilha em PCB não conectada por padrão. |
| Ai-Thinker | ESP-32S | Trilha em PCB | 4 | 0 | Módulo ESP32 baseado no fator de forma do módulo Espressif ESP-WROOM-32. O módulo ESP-32S substituiu o módulo ESP3212 não lançado. |
| AnalogLamb | ESP-32S-ALB | Trilha em PCB | 4 | 0 | Clone do módulo ESP-32S (face inferior compatível com ESP-WROOM-32). Visto com um revestimento de máscara de solda verde. |
| AnalogLamb | ALB-WROOM | Trilha em PCB | 16 | 0 | Variação do ESP-32S-ALB com 16 MiB de memória flash. |
| AnalogLamb | ALB32-WROVER | Trilha em PCB | 4 | 4 | Placa do módulo ESP32 com 4 MiB pSRAM com o mesmo tamanho que o módulo ESP-WROOM-32. |
| DFRobot | ESP-WROOM-32 | Trilha em PCB | 4 | 0 | Placa de módulo semelhante à ESP-WROOM-32 da Espressif Systems, mas não é certificada pela FCC e usa um oscilador de cristal de 26 MHz ou 32 kHz. |
| eBox & Widora | ESP32-Bit | Cerâmico, Conector U.FL | 4 | 0 | O módulo tem uma antena de cerâmica e um conector de antena U.FL. Este módulo tem uma pegada diferente dos módulos ESP-WROOM-32/ESP-32S. |
| Goouuu Tech | ESP-32F | Trilha em PCB | 4 | 0 | Placa de módulo semelhante à ESP-WROOM-32 da Espressif Systems. Certificado pela FCC (ID 2 AM77-ESP-32F). |
| IntoRobot | W32 | Trilha em PCB | 4 | 0 | Módulo similar em aparência ao ESP-WROOM-32 de Espressif, mas a pinagem da face de baixo difere. |
| IntoRobot | W33 | Cerâmico, Conector U.FL | 4 | 0 | Difere do módulo IntoRobot W32 em sua configuração de antena. |
| ITEAD | PSH-C32 | Trilha em PCB | 1 | 0 | Módulo tem memória flash onboard excepcionalmente pequena. Além disso, a face de baixo é única e difere de todos os outros módulos ESP32. |
| Pycom | W01 | (Não Inclusa.) | 8 | 4 | Versão do módulo OEM do WiPy 2.0. Suporta Wi-Fi e Bluetooth. ID 2AJMTWIPY01R da FCC. |
| Pycom | L01 | (Não Inclusa.) | 8 | 4 | Versão do módulo OEM do LoPy. Suporta Wi-Fi, Bluetooth e LoRa. FCC ID 2AJMTLOPY01R. |
| Pycom | L04 | (Não Inclusa.) | 8 | 4 | Versão do módulo OEM do LoPy4. Suporta Wi-Fi, Bluetooth, LoRa e Sigfox. |
| Pycom | S01 | (Não Inclusa.) | 8 | 4 | Descontinuada. Versão do módulo OEM do SiPy. Wi-Fi suportado, Bluetooth e Sigfox (14 dBm e 22 dBm). |
| Pycom | G01 | (Não Inclusa.) | 8 | 4 | Versão do módulo OEM do GPy. Suporta Celular LTE-CAT M1/NB1, Wi-Fi e Bluetooth. |
| u-blox | NINA-W131 | (Não Inclusa.) | 2 | 0 | Pertence à série de módulos Wi-Fi NINA-W13 da u-blox. |
| u-blox | NINA-W132 | PIFA | 2 | 0 | Pertence à série de módulos Wi-Fi NINA-W13 da u-blox. A bordo da antena F invertida (PIFA) é moldada (cortada e dobrada) em metal, e não é mais uma trilha em PCB. |

### Desenvolvimento e outras placas

Desenvolvimento & placas break-out extensoras que pode adicionar mais funcionalidades ao ESP32, os módulos de placas torna o ESP32 mais fácil de usar, para fins de desenvolvimento (especialmente com Protoboards).
| Fornecedor | Nome | Módulo de montagem em superfície utilizado | Descrição |
| Espressif | ESP_Module_Testboard | ESP-WROOM-03 | Placa de break-out incluída com os módulos beta do ESP-WROOM-03. |
| Espressif | ESP32_Demo Board_V2 | ESP-WROOM-32 | Placa de desenvolvimento e demonstração criada pela Espressif. |
| Espressif | ESP32-DevKitC | ESP-WROOM-32 | Placa de desenvolvimento compacta criada pela Espressif. A serigrafia no PCB lê "Core Board". |
| Espressif | ESP-WROVER-KIT | ESP-WROOM-32 ou ESP32-WROVER | Grande placa de desenvolvimento criada pela Espressif. Anteriormente chamado ESP32-DevKitJ. |
| Espressif | ESP32-PICO-KIT | ESP32-PICO-D4 | Placa de desenvolvimento pequena criada pela Espressif. FCC ID 2AC7Z-ESP32PICOKIT. |
| Adafruit | HUZZAH32 | ESP-WROOM-32 | Também conhecido como "ESP32 Feather Board", o HUZZAH32 é um módulo/placa de desenvolvimento compacto que é compatível com a família de produtos Adafruit Feather. |
| Ai-Thinker | NodeMCU-32S | ESP-32S | Placa de desenvolvimento semelhante ao NodeMCU. |
| AnalogLamb | ESP32 Development Board | ESP-32S-ALB ou ALB-WROOM | Placa de desenvolvimento similar ao ESP32-DevKitC da Espressif com uma conexão USB/serial CP2102. O ESP-32S-ALB tem uma variação de 4 MiB; O modulo ALB-WROOM tem uma variação de 16 MiB. |
| AnalogLamb | Maple ESP32 | ESP-32S-ALB | Placa de desenvolvimento com conexões no estilo Arduino e interface USB/serial CP2104. |
| April Brother | ESPea32 | † | Placa de desenvolvimento com área de rebaixamento que pode ser opcionalmente cortada. |
| EzSBC | ESP32-01 Breakout and Development Board | ESP-WROOM-32 | Placa de desenvolvimento repleta de recursos com dois LEDs de três cores e encaixa em uma Protoboard. |
| Gravitech & MakerAsia | Nano32 | † | Placa de desenvolvimento que incorpora diretamente o chip ESP32. |
| HydraBus | HydraESP32 | ESP-WROOM-32 ou ESP-32S | HydraESP32 HydraBus v1.1 Rev1 placa de shield/breakout para ESP-WROOM-32 ou ESP-32S. Este shield pode ser usado com ou sem uma placa HydraBus. |
| Noduino | Quantum | † | Placa de desenvolvimento estilo Arduino que incorpora diretamente o chip ESP32. |
| Pycom | WiPy | † | MicroPython programável Wi-Fi e Bluetooth IoT plataforma de desenvolvimento com um alcance Wi-Fi de 1 km. As versões WiPy 2.0 e 3.0 usam o ESP32. |
| Pycom | LoPy | † | Placa Pycom de rede tripla com LoRa, Wi-Fi (faixa de 1 km) e BLE. |
| Pycom | LoPy4 | ? | Rede quádrupla da Pycom com LoRa, Sigfox, Wi-Fi (alcance de 1 km) e BLE. |
| Pycom | SiPy | † | Placa Pycom de rede tripla com Sigfox, Wi-Fi (faixa de 1 km) e BLE. |
| Pycom | GPy | † | Placa Pycom de rede tripla com LTE-M, Wi-Fi (faixa de 1 km) e BLE. |
| Pycom | FiPy | † | Placa de rede quíntupla da Pycom com LTE-M, LoRa, Sigfox, Wi-Fi (faixa de 1 km) e BLE. |
| SparkFun | ESP32 Thing | † | Placa de desenvolvimento compacta com interface USB/serial FTDI FT231x e carregador LiPo integrado. |
| SunDUINO | ESP32 MiniBoard | ESP-WROOM-32 | Breakout compatível com o Espressif ESP32-DevKitC. Falta na placa USB-UART. |
| SunDUINO | ESP32 SunDUINO | ESP-WROOM-32 ou ESP-32S | Placa de desenvolvimento no estilo Arduino. Falta na placa USB-UART. |
| Watterott | ESP-WROOM32-Breakout | ESP-WROOM-32 | Breakout que é compatível com o Espressif ESP32-DevKitC. |
| WEMOS | LOLIN32 | ESP-WROOM-32 |
| WEMOS | LOLIN32 Lite | † |
| WEMOS | LOLIN32 Pro | ESP32-WROVER | Tem slot para cartão MicroSD (suporta o modo SD e SPI) |
| Widora | Air | † | Placa de desenvolvimento compacta ESP32. |
† ESP32 SoC incorporada diretamente na placa de desenvolvimento; nenhum módulo de placa utilizada.

## Programação

Linguagens de programação, estruturas, plataformas e ambientes utilizados para programação do ESP32:
* IDE Arduino com o Núcleo ESP32 para Arduino.
* Espressif IoT Development Framework – Oficial Espressif framework de desenvolvimento para ESP32.
* Espruino – JavaScript SDK e firmware de perto emulando Node.js.
* Lua RTOS para ESP32
* Mongoose OS – Um sistema operacional para produtos conectados em microcontroladores; programável com JavaScript ou C. Uma plataforma recomendada pela Espressif Sistemas, AWS IoT, e o Google Cloud IoT.
* mruby para o ESP32
* PlatformIO Ecossistema e IDE
* Pymakr IDE IDE projetado para uso com dispositivos Pycom; lida com atualizações de firmware e inclui console MicroPython REPL.
* Simba Plataforma De Programação Incorporada.
* Whitecat Ecossistema Blockly Web com IDE
* MicroPython
* Zerynth – Python para IoT e microcontroladores, incluindo o ESP32.

## Recepção e uso

Uso comercial e na industrial com o ESP32:

### Uso em dispositivos comerciais

* O Alibaba Group's IoT LED, pulseira, utilizado pelos participantes do grupo de 2017 encontro anual. Cada pulseira operado como um "pixel", recebendo comandos para a coordenação do DIODO emissor de luz de controle, o que permitiu a formação de um "Painel de mensagem Wi-fi" utilizando o publico.
* DingTalk M1, um sistema de acompanhamento biométrico de frequência.
* LIFX Mini, uma série de dispositivos remotamente controláveis, baseada em lampadas de LED.
* Pium, um perfume para o lar e dispositivo de aromaterapia.

### Uso em dispositivos industriais

* TECHBASE Moduino X série X1 e X2 utiliza módulos ESP32-WROVER baseado em computadores para automação industrial e de acompanhamento, de apoio entradas/saídas digitais, entradas analógicas, e várias interfaces de rede.

## Veja também

* ESP8266
* NodeMCU
* Microcontrolador
* Internet das coisas