ESP32 (original, clase ESP32-WROOM-32)

Espressif SystemsMCU 32-bitarduino

⚡ Lo esencial en 60 segundos

Lanzada al mercado el 6 de septiembre de 2016, la familia de microcontroladores ESP32, desarrollada por Espressif Systems y fabricada mediante un proceso de 40 nanómetros, representa un hito fundamental en la historia del hardware de código abierto. Su relevancia no radica únicamente en su rendimiento, sino en su capacidad para ofrecer conectividad inalámbrica completa a un costo extremadamente bajo, lo que democratizó el desarrollo de proyectos de Internet de las Cosas. Aunque existen diversas variantes de chips y módulos, como los populares ESP32-WROOM-32 o los más recientes ESP32-S3, la arquitectura central se mantiene consistente: un sistema en chip que integra todo lo necesario para crear dispositivos inteligentes conectados sin necesidad de componentes externos complejos. Es importante notar que, aunque el precio de lanzamiento se estimó entre 2.5 y 5 dólares por unidad en volumen, el costo real puede variar según el distribuidor y la cantidad, siendo los módulos comerciales actuales accesibles para cualquier entusiasta o profesional.

El corazón de esta plataforma es un procesador de doble núcleo basado en la arquitectura Tensilica Xtensa LX6. Para entender la importancia de tener dos núcleos, imaginemos una cocina con dos cocineros; mientras uno se encarga de gestionar la comunicación con el mundo exterior, como el Wi-Fi o el Bluetooth, el otro puede dedicarse exclusivamente a las tareas principales de la aplicación, como leer sensores o controlar motores. Esto evita que el sistema se vuelva lento o responda con retraso cuando la red está ocupada. La frecuencia de reloj es configurable, permitiendo elegir entre 80, 160 o hasta 240 megahercios, lo que ofrece flexibilidad para equilibrar el rendimiento con el consumo de energía. Además, cuenta con 520 kilobytes de memoria RAM estática, una cantidad significativa para un microcontrolador, que permite ejecutar sistemas operativos en tiempo real como FreeRTOS, el cual es la base del entorno de desarrollo oficial ESP-IDF.

En cuanto a la conectividad, el ESP32 fue uno de los primeros microcontroladores de bajo costo en integrar tanto Wi-Fi de la norma 802.11 b/g/n en la banda de 2.4 GHz como Bluetooth Clásico y Bluetooth de Baja Energía (BLE 4.2). Esta combinación permite proyectos muy variados, desde servidores web simples hasta dispositivos que interactúan con teléfonos móviles mediante protocolos de audio o teclado virtual. También incluye soporte para Ethernet mediante un controlador MAC integrado, aunque requiere un chip físico externo, y protocolos industriales como CAN 2.0. La seguridad es otro pilar, con aceleradores de hardware para cifrado AES y SHA, además de funciones de arranque seguro que protegen el firmware contra modificaciones no autorizadas, una característica crucial para productos comerciales.

La interfaz con el mundo físico se realiza a través de 34 pines de entrada/salida de propósito general, conocidos como GPIO. Sin embargo, es vital comprender sus limitaciones para evitar errores comunes. Por ejemplo, los pines GPIO34 a 39 son exclusivamente de entrada y carecen de resistencias internas de pull-up o pull-down, lo que significa que no pueden enviar señales ni funcionar correctamente con botones simples sin componentes externos. Asimismo, los pines GPIO6 a 11 están reservados para la memoria flash interna en muchos módulos, por lo que deben tratarse como no disponibles para el usuario. El nivel lógico de operación es de 3.3 voltios, y no es tolerante a 5 voltios, por lo que conectarlo directamente a dispositivos de mayor voltaje puede dañar el chip. Entre sus periféricos destacados se encuentran tres interfaces SPI, tres UART, dos I2C, canales de modulación por ancho de pulso (PWM) de alta resolución y sensores táctiles capacitivos que permiten crear interfaces de usuario sin botones mecánicos.

El consumo de energía es un aspecto crítico en dispositivos portátiles. El ESP32 ofrece múltiples modos de bajo consumo, desde el sueño ligero hasta el sueño profundo, donde el consumo puede bajar a unos 10 microamperios, permitiendo que una batería pequeña dure meses o años si el dispositivo solo se despierta periódicamente. No obstante, durante la transmisión de Wi-Fi, el consumo puede superar los 500 miliamperios en picos breves, lo que exige una fuente de alimentación robusta con condensadores de reserva para evitar reinicios inesperados conocidos como "brownout". También es importante mencionar que el sensor de temperatura integrado no está calibrado y presenta grandes desviaciones, por lo que no debe utilizarse para mediciones precisas.

El ecosistema de software es uno de sus mayores activos. Los desarrolladores pueden elegir entre el entorno oficial ESP-IDF basado en C/C++, que ofrece el máximo control y acceso a todas las funciones del hardware, o el núcleo para Arduino, que simplifica enormemente la programación para principiantes. También hay soporte oficial para MicroPython y CircuitPython, permitiendo programar en lenguaje Python, así como para sistemas operativos en tiempo real como Zephyr y lenguajes modernos como Rust. La comunidad es extremadamente activa, proporcionando librerías para casi cualquier sensor o protocolo imaginable, desde control de luces LED direccionables hasta integración con plataformas de domótica como Home Assistant mediante Tasmota o ESPHome.

A pesar de sus virtudes, existen trampas conocidas que los nuevos usuarios deben conocer. El conversor analógico-digital (ADC) presenta no linealidades en los extremos de su rango y, crucialmente, el segundo conversor (ADC2) no funciona cuando el Wi-Fi está activo debido a conflictos de hardware. Por ello, se recomienda usar siempre los pines del ADC1 (como GPIO32 a 39) para lecturas analógicas en proyectos conectados. Otro punto sensible son los pines de arranque (GPIO0, GPIO2, GPIO12); una conexión incorrecta en el GPIO12 puede impedir que el chip inicie correctamente, un error frecuente en prototipos. Finalmente, la coexistencia de Wi-Fi y Bluetooth puede reducir el rendimiento de ambos, ya que comparten la misma antena, por lo que en aplicaciones críticas de rendimiento se debe evaluar si es necesario usar ambos simultáneamente. En resumen, el ESP32 sigue siendo una plataforma versátil, potente y económica, ideal para aprender y prototipar, siempre que se respeten sus particularidades técnicas y se aproveche su rico ecosistema de software.

Foro (1 tema) →

AttrEspecificacionesverificado
cpudual-core Tensilica Xtensa LX6 @ up to 240 MHz (80/160/240 MHz selectable), plus a ULP协processor on the RTC domain; 520 KB SRAM + 16 KB RTC SRAM, 448 KB ROM (✔
gpunone.? sin verificar
storageexternal SPI flash, typically 4 MB (WROOM-32), up to 16 MB; WROVER adds 4–8 MB PSRAM (✔
connectivityWi-Fi 802.11 b/g/n 2.4 GHz (150 Mbps HT40) + Bluetooth Classic + BLE 4.2; Ethernet (external PHY), CAN 2.0, SDIO, 10/100 MAC ( ESP-IDF docs✔
gpio34 usable GPIOs (GPIO34–39 input-only, no pull-ups; GPIO6–11 strapping/flash on older modules — treat as unavailable). Peripherals: 3× SPI, 3× UART, 2× I2C, 1× I2S, SDMMC, 16× LEDC PWM channels (8-bit duty, up to 40 MHz), RMT (8 TX/8 RX), 2× 8-bit DAC (GPIO25/26), touch sensing (10 pads), hall sensor, 12-bit ADC (18 external channels across ADC1/ADC2; ADC2 is unusable while Wi-Fi runs) (ESP32 datasheet ESP-IDF API docs✔
logic_level3.3 v? sin verificar
powerultra-low-power modes (modem-sleep, light-sleep, deep-sleep ~10 µA class with RTC timer wake, ULP-sleep) per Espressif's power-management docs ( Wi-Fi TX draws ~ hundreds of mA peaks — design the 3.3 V rail for ≥ 500 mA.✔
temperature–40 °C to +125 °C (industrial grade, per Espressif product page:✔
  • Fabricante: Espressif Systems (Shanghái); fabricado por TSMC en proceso de 40 nm (
  • Lanzamiento: 6 de septiembre de 2016 (
  • Estado: Activo. Sigue vendiéndose y con soporte (target esp32 de ESP-IDF), con la revisión de silicio ESP32 ECO V3 (2020) que corrige errores de los wafers anteriores, ESP32-D0WD, ESP32-S0WD (un núcleo), ESP32-U4WDH, ESP32-PICO-D4/V3/V3-02 (SiP, 34/31/29 GPIO) (
  • Variantes de módulo: ESP32-WROOM-32/-32D/-32E/-32U, ESP32-WROVER/-B/-E (con 4/8 MB de PSRAM), ESP32-SOLO-1 (
  • Placas comunes: ESP32-DevKitC, clones ESP32-WROOM-32 "de 30 pines", ESP32-CAM (AI-Thinker), NodeMCU-32S, DOIT DevKit V1.

+ Puntos fuertes

  • Primer MCU dual-core de bajo coste con Wi-Fi y Bluetooth Classic + BLE — habilita proyectos de audio clase SPP/BLE HID/OTA (
  • Periféricos "exóticos" y ricos para su clase: hall sensor, 10 pads táctiles capacitivos, RMT (bit-banging de clase WS2812 en hardware), PWM para control de motores, CAN, Ethernet MAC, SDIO, coprocesador ULP tipo RISC-V para lógica de wake de µA (URL del datasheet ESP32 más arriba).
  • Aceleradores criptográficos de hardware (AES/SHA/RSA), secure boot, cifrado de flash, almacenamiento de claves en eFuse (
  • Doble núcleo → la división de tareas FreeRTOS (Wi-Fi/BT en CPU0, app en CPU1) es la arquitectura canónica (
  • Protocolo peer-to-peer ESP-NOW sin conexión TCP/IP (

− Puntos débiles

  • Lista oficial de erratas mantenida por Espressif (bugs de ADC, SDIO, BT-sleep, RTC por revisión; ECO V3 corrige varios):
  • ADC2 inutilizable con Wi-Fi: los pines de ADC2 entran en conflicto con el driver de Wi-Fi — la trampa clásica de "ADC2 reads return 0 when Wi-Fi on" (
  • No linealidad del ADC: las lecturas crudas del ADC son notablemente no lineales en los extremos; usa la API de calibración/ajuste de curva del ADC de ESP-IDF (doc de erratas más arriba + página del ADC).
  • Pines de strapping: GPIO0, GPIO2, GPIO12 (tensión de VDD de la flash — llevarlo a LOW en módulos de flash de 3,3 V bloquea el arranque) deciden el modo de arranque; la trampa de GPIO12 es notoria (datasheet ESP32 §strapping;
  • Pines solo de entrada: GPIO34–39 no tienen salida ni pull-up/down — los botones conectados ahí fallan silenciosamente (URL del datasheet ESP32 más arriba).
  • Confusión de pines en/de: las placas serigrafián D23/D22 frente a los números de GPIO; los GPIO 20/24/28–31/37–38 no existen en el ESP32 clásico (
  • Resets por brownout detector (BOD) con alimentaciones USB/LDO débiles durante ráfagas de TX de Wi-Fi/BT; habilita y sube el umbral BOD en menuconfig y añade capacitancia de almacenamiento (
  • Coexistencia Bluetooth + Wi-Fi comparte una sola antena: el rendimiento cae y algunas combinaciones de BT+sleep están rotas en silicio previo a V3 (doc de erratas más arriba).
  • Sensor de temperatura integrado prácticamente inútil (gran offset, documentado como no calibrado) — no lo uses para medición (
  • Retour d'expérience expert expert — expert-microcontroleur
    • Je fais le point sur les pièges classiques de l'ESP32. Les points forts restent indéniables : le duo Wi-Fi et Bluetooth Classic est rare à ce prix, et les périphériques exotiques comme le capteur à effet Hall ou les 10 pads tactiles capacitifs sont très pratiques. attention cependant aux GPIO34 à 3… — expert-microcontroleur
    • Merci pour ce rappel sur les GPIO d'entrée. J'ai effectivement perdu deux heures sur un projet où je branchais un bouton sur GPIO35, pensant qu'un pull-up interne était actif par défaut. C'est frustrant car la datasheet le mentionne, mais la confusion vient souvent des schémas de cartes tierces qui… — maker-2024
    • Pour la calibration ADC, l'API ESP-IDF fait le boulot correctement mais il faut bien respecter les phases de démarrage. Un autre point critique que je vois souvent sur ce forum : les réinitialisations par détecteur de brownout (BOD). Si ton alimentation est faible, lors des pics de transmission Wi-… — codeur-embarque

Opiniones y proyectos de la comunidad

  • ESP32-CAM AI-Thinker camera + web server

    Cámara ESP32-CAM AI-Thinker + servidor web — (guía RNT): .com/esp32-cam-ai-thinker-pinout/ (unverified au 2026-10-13) — tutorial alojado en randomnerdtutorials, estado unverified verificado el 2026-10-13. Proyecto documentado en la ficha esp32 (MCU de 32 bits…

  • ESP-IDF official examples

    Ejemplos oficiales de ESP-IDF — (esp-now, BLE, camera, Ethernet): .com/espressif/esp-idf/tree/master/examples (unverified au 2026-10-13) Tasmota — (soporte ESP32): .com/arendst/Tasmota (unverified au 2026-10-13) — código comunitario alojado en github, estado …

  • ESPHome

    ESPHome — : .io (unverified au 2026-10-13) — referencia alojada en esphome, estado unverified verificado el 2026-10-13. Proyecto documentado en la ficha esp32 (MCU de 32 bits); rol: profundizar en el manejo de esta placa.

  • Lista oficial de erratas mantenida por Espressif (bugs de ADC, SDIO, BT-sleep, RTC por revisión; ECO V3 corrige varios):
  • ADC2 inutilizable con Wi-Fi: los pines de ADC2 entran en conflicto con el driver de Wi-Fi — la trampa clásica de "ADC2 reads return 0 when Wi-Fi on" (
  • No linealidad del ADC: las lecturas crudas del ADC son notablemente no lineales en los extremos; usa la API de calibración/ajuste de curva del ADC de ESP-IDF (doc de erratas más arriba + página del ADC).
  • Pines de strapping: GPIO0, GPIO2, GPIO12 (tensión de VDD de la flash — llevarlo a LOW en módulos de flash de 3,3 V bloquea el arranque) deciden el modo de arranque; la trampa de GPIO12 es notoria (datasheet ESP32 §strapping;
  • Pines solo de entrada: GPIO34–39 no tienen salida ni pull-up/down — los botones conectados ahí fallan silenciosamente (URL del datasheet ESP32 más arriba).
  • Confusión de pines en/de: las placas serigrafián D23/D22 frente a los números de GPIO; los GPIO 20/24/28–31/37–38 no existen en el ESP32 clásico (
  • Resets por brownout detector (BOD) con alimentaciones USB/LDO débiles durante ráfagas de TX de Wi-Fi/BT; habilita y sube el umbral BOD en menuconfig y añade capacitancia de almacenamiento (
  • Coexistencia Bluetooth + Wi-Fi comparte una sola antena: el rendimiento cae y algunas combinaciones de BT+sleep están rotas en silicio previo a V3 (doc de erratas más arriba).
  • Sensor de temperatura integrado prácticamente inútil (gran offset, documentado como no calibrado) — no lo uses para medición (
  • Scan des réseaux Wi-Fi debutant Schéma : IMG-esp32-debutant-1-wifi-scan-reseaux.svg — Carte ESP32 à côté d'un routeur Wi-Fi avec liste des réseaux détectés et barres de signal
  • Fondu de LED avec le PWM LEDC debutant Schéma : IMG-esp32-debutant-2-ledc-pwm-fade.svg — ESP32, broche GPIO25 reliée par une résistance à une LED, courbe d'intensité en dents de scie
  • Première entrée analogique sur ADC1 debutant Schéma : IMG-esp32-debutant-3-entree-analogique-adc1.svg — Potentiomètre relié à GPIO34 (ADC1) sur ESP32, tension convertie en valeur 0-4095 affichée en console
  • Deux tâches FreeRTOS sur les deux cœurs intermediaire Schéma : IMG-esp32-intermediaire-1-taches-freertos-2-coeurs.svg — Puce ESP32 double cœur avec deux tâches épinglées sur cœur 0 et cœur 1 échangeant via une file d'attente
  • Moniteur de batterie BLE intermediaire Schéma : IMG-esp32-intermediaire-2-ble-batterie-monitor.svg — ESP32 émettant un service BLE Battery 0x180F vers un smartphone affichant le pourcentage
  • Journaliser un capteur dans LittleFS intermediaire Schéma : IMG-esp32-intermediaire-3-littlefs-logs-capteur.svg — Puce flash 4 Mo de l'ESP32 découpée en partitions, un fichier CSV de logs s'ajoutant dans la partition LittleFS
  • Station météo autonome en deep sleep avance Schéma : IMG-esp32-avance-1-deep-sleep-station-meteo.svg — Station météo ESP32 sur batterie avec capteur SHT31, courbe de consommation alternant pics de mesure et sommeil à 150 µA
  • Coexistence Wi-Fi + Bluetooth sur antenne partagée avance Schéma : IMG-esp32-avance-2-coexistence-wifi-bt-antenne.svg — Puce ESP32 avec un seul radio 2,4 GHz et une antenne partagée, découpage du temps entre Wi-Fi et BLE
  • ADC2, le piège quand le Wi-Fi est actif avance Schéma : IMG-esp32-avance-3-adc2-piege-wifi-calibration.svg — Deux traces d'oscilloscope : l'ADC1 suit le potentiomètre, l'ADC2 reste à plat dès que le Wi-Fi démarre

Biblioteca de código — ejemplos escritos para esta placa

  • clignotante.ino Arduino

    La comprobación básica de la placa: el LED parpadea a 1 Hz con millis() en vez de delay(), dejando el bucle libre para Wi-Fi o sensores. El monitor también imprime heap libre, útil antes de añadir li…

  • bouton-led.ino Arduino

    Un botón entre GPIO4 y GND, elevado internamente: cada pulsación limpia se cuenta e imprime. El filtro antirrebote de 40 ms elimina el rebote mecánico que duplicaría la cuenta.

  • respiration.ino Arduino

    El PWM hardware (LEDC) genera la portadora solo: analogWrite aplica un ciclo de trabajo 0-255 y el LED respira sin gastar CPU. La frecuencia elegida evita el silbido del driver PWM.

  • dht22.ino Arduino

    El DHT22 entrega temperatura y humedad por un solo hilo: la librería Adafruit decodifica las tramas de 40 bits y el script añade el punto de rocío. La cadencia de 2 s es el límite del sensor.

  • oled-i2c.ino Arduino

    El OLED SSD1306 es el display I2C universal: dos hilos, sin librerías propietarias. El sketch escribe un framebuffer y lo envía de golpe con display(), la disciplina correcta contra el parpadeo.

  • serveur-web.ino Arduino

    El clásico conectado: la placa sirve una página HTML en la red local, dos enlaces conmutan el LED y un ADC aparece en directo. Sin infraestructura externa: el servidor corre dentro de la placa.

  • ble-compteur.ino Arduino

    La placa se vuelve un periférico BLE: un servicio personalizado expone un contador de pulsaciones que un teléfono (nRF Connect) lee y sigue por notificaciones. El escenario de radio más simple sin pu…

  • servo.ino Arduino

    El estándar absoluto de la mecánica: un servo MG90/SG90 barre 0-180° pilotado por PWM de 50 Hz. En ESP32 la librería Servo usa LEDC, así que casi cualquier pin vale.

  • sommeil-profond.ino Arduino

    En sueño profundo el SoC consume unos microamperios: despertar por minuto o por pulsación, y una pila dura meses. RTC_NOINIT_ATTR conserva el contador de despertones entre reinicios.

  • mesures.py MicroPython

    MicroPython corre en todas estas placas: sin cadena de compilación, edita main.py y arranca. Este registrador DHT escribe JSON línea a línea en un archivo, el formato que cualquier herramienta traga …

Ejemplos y repositorios encontrados en línea