El ESP32 es actualmente una serie de microcontroladores creados y desarrollados por Espressif Systems, una compañañia de China situada en Shangai. Las siguientes características son las principales razones por las que la gente elige el ESP32:
Procesador de doble núcleo
El ESP32 está equipado con un microprocesador Tensilica Xtensa® Dual-Core LX6 de 32 bits que funciona a una frecuencia de reloj ajustable de 80 a 240 MHz y funciona hasta 600 DMIPS (Dhrystone Million Instructions Per Second).
Consumo de energía ultrabajo
Con sus múltiples modos de energía y escalado dinámico de potencia, ESP32 logra un consumo de energía ultra bajo, lo que lo hace ideal para su uso en dispositivos móviles, dispositivos electrónicos portátiles y aplicaciones de IoT.
Capacidades Wi-Fi
El ESP32 incorpora un transceptor Wi-Fi 802.11b/g/n HT40, lo que le permite conectarse a una red Wi-Fi para acceder a Internet (Station Mode) o crear su propia red inalámbrica Wi-Fi (Soft Access point mode) a la que pueden conectarse otros dispositivos.
Capacidades Bluetooth Modo Dual
El ESP32 es compatible con Bluetooth 4.0 (BLE/Bluetooth Smart), así como con Bluetooth Classic (BT), lo que lo hace adecuado para una amplia gama de aplicaciones de IoT.
Amplio conjunto de periféricos
El ESP32 incluye una gran cantidad de periféricos integrados, como táctiles capacitivos, ABC, DAC, UART, SPI, I2C, PWM y mucho más.
Muchas plataformas de desarollo
Hay varias plataformas de desarrollo disponibles para programar el ESP32. Puedes usar el IDE de Arduino, MicroPython, Espruino, Espressif SDK o una de las plataformas listadas en WikiPedia.
Diseño Robusto
El ESP32 puede funcionar de forma fiable en entornos industriales con temperaturas de funcionamiento que oscilan entre -40 °C y +125 °C.
Bajo costo
Es uno de los microcontroladores baratos, con precios a partir de 6 dólares; Esto los hace accesibles a un público amplio.
Placas de desarrollo ESP32
Para comenzar con ESP32, tu necesitarás una buena placa de desarrollo que incluya todos los componenetes adicionales. Hay mucha variedad de placas de desarrollo en el mercado. Pese a que todas tienen una función similar, algunas de estas placas pueden adaptarse mejor a ciertos proyectos específicos que otras.
Las siguientes son algunas de las diferentes placas ESP32 con las que puedes probar
ESP32 DevKit V1
Debido a su inmensa popularidad, esta es la mejor tabla para principiantes. Viene con todo lo que necesita para comenzar con ESP32. Y esto es lo que usaremos para nuestros experimentos.
ESP32 OLED Kit
En comparación con la placa anterior, esta incluye una pantalla OLED, lo que la convierte en una buena adición para las aplicaciones de Internet de las cosas. Además, cuenta con un conector u.FL para una antena externa y un conector de batería lipo para crear proyectos que funcionan con baterías.
ESP32-CAM
La cámara OV2640 de 2MP incorporada y la ranura para tarjetas microSD hacen del ESP32-CAM una de las placas más interesantes disponibles; es ideal para proyectos de IoT que requieren una cámara con funciones avanzadas como seguimiento y reconocimiento de imágenes.
ESP32 SIM800L TTGO T-Call
¿No tienes WiFi? No hay problema. La tarjeta ESP32 SIM800L TTGO T-Call le permite conectarse a Internet a través de un plan de datos de tarjeta SIM y enviar información a la nube, sin necesidad de Wi-Fi.
M5Stack
M5Stack es un kit de herramientas de desarrollo de productos modulares apilables basado en ESP32. El ecosistema M5 incluye un controlador principal y módulos adicionales que se pueden apilar (similares a los shields de Arduino) para ampliar la funcionalidad de los proyectos.
El ESP32 es actualmente una serie de microcontroladores creados y desarrollados por Espressif Systems, una compañia de China situada en Shangai. Las siguientes características son las principales razones por las que la gente elige el ESP32:
Procesador de doble núcleo
El ESP32 está equipado con un microprocesador Tensilica Xtensa® Dual-Core LX6 de 32 bits que funciona a una frecuencia de reloj ajustable de 80 a 240 MHz y funciona hasta 600 DMIPS (Dhrystone Million Instructions Per Second).
Consumo de energía ultrabajo
Con sus múltiples modos de energía y escalado dinámico de potencia, ESP32 logra un consumo de energía ultra bajo, lo que lo hace ideal para su uso en dispositivos móviles, dispositivos electrónicos portátiles y aplicaciones de IoT.
Capacidades Wi-Fi
El ESP32 incorpora un transceptor Wi-Fi 802.11b/g/n HT40, lo que le permite conectarse a una red Wi-Fi para acceder a Internet (Station Mode) o crear su propia red inalámbrica Wi-Fi (Soft Access point mode) a la que pueden conectarse otros dispositivos.
Capacidades Bluetooth Modo Dual
El ESP32 es compatible con Bluetooth 4.0 (BLE/Bluetooth Smart), así como con Bluetooth Classic (BT), lo que lo hace adecuado para una amplia gama de aplicaciones de IoT.
Amplio conjunto de periféricos
El ESP32 incluye una gran cantidad de periféricos integrados, como táctiles capacitivos, ABC, DAC, UART, SPI, I2C, PWM y mucho más.
Muchas plataformas de desarollo
Hay varias plataformas de desarrollo disponibles para programar el ESP32. Puedes usar el IDE de Arduino, MicroPython, Espruino, Espressif SDK o una de las plataformas listadas en WikiPedia.
Diseño Robusto
El ESP32 puede funcionar de forma fiable en entornos industriales con temperaturas de funcionamiento que oscilan entre -40 °C y +125 °C.
Bajo costo
Es uno de los microcontroladores baratos, con precios a partir de 6 dólares; Esto los hace accesibles a un público amplio.
Placas de desarrollo ESP32
Para comenzar con ESP32, tu necesitarás una buena placa de desarrollo que incluya todos los componenetes adicionales. Hay mucha variedad de placas de desarrollo en el mercado. Pese a que todas tienen una función similar, algunas de estas placas pueden adaptarse mejor a ciertos proyectos específicos que otras.
Las siguientes son algunas de las diferentes placas ESP32 con las que puedes probar
ESP32 DevKit V1
Debido a su inmensa popularidad, esta es la mejor tabla para principiantes. Viene con todo lo que necesita para comenzar con ESP32. Y esto es lo que usaremos para nuestros experimentos.
ESP32 OLED Kit
En comparación con la placa anterior, esta incluye una pantalla OLED, lo que la convierte en una buena adición para las aplicaciones de Internet de las cosas. Además, cuenta con un conector u.FL para una antena externa y un conector de batería lipo para crear proyectos que funcionan con baterías.
ESP32-CAM
La cámara OV2640 de 2MP incorporada y la ranura para tarjetas microSD hacen del ESP32-CAM una de las placas más interesantes disponibles; es ideal para proyectos de IoT que requieren una cámara con funciones avanzadas como seguimiento y reconocimiento de imágenes.
ESP32 SIM800L TTGO T-Call
¿No tienes WiFi? No hay problema. La tarjeta ESP32 SIM800L TTGO T-Call le permite conectarse a Internet a través de un plan de datos de tarjeta SIM y enviar información a la nube, sin necesidad de Wi-Fi.
M5Stack
M5Stack es un kit de herramientas de desarrollo de productos modulares apilables basado en ESP32. El ecosistema M5 incluye un controlador principal y módulos adicionales que se pueden apilar (similares a los shields de Arduino) para ampliar la funcionalidad de los proyectos.
Descripción del hardware de la placa DevKit V1ESP32
Cuando se trata de placas de desarrollo ESP32, el ESP32 DevKit v1 es, con mucho, la opción más utilizada. Esto es lo que usaremos en este tutorial. No te preocupes si tienes una tarjeta diferente; La información de esta página debería seguir siendo útil.
Profundicemos en la descripción general del hardware de la placa ESP32 DevKit v1.
Módulo ESP-WROOM-32
Esta placa de desarrollo está equipada con el módulo ESP-WROOM-32, que contiene el microprocesador Tensilica Xtensa Dual-Core LX6 de 32 bits. Este procesador es similar al utilizado en el ESP8266, pero tiene dos núcleos de CPU (que se pueden controlar individualmente), funciona a una frecuencia de reloj ajustable de 80 a 240 MHz y puede funcionar hasta 600 DMIPS (Dhrystone millones de instrucciones por segundo).
ESP-WROOM-32 Chip
-
- Xtensa Dual-Core 32-bit LX6
- Frecuencia de reloj de hasta 240 MHz.
- SRAM interna de 520 kB
- Memoria flash externa de 4 MB
- Transceptor Wi-Fi 802.11b/g/n
- Bluetooth 4.2/BLE
También hay 448 KB de ROM, 520 KB de SRAM y 4 MB de memoria Flash (para el almacenamiento de programas y datos), que es suficiente para manejar las largas cadenas que componen las páginas web o los datos JSON/XML.
El ESP32 incorpora un transceptor Wi-Fi 802.11b/g/n HT40, lo que le permite conectarse a una red Wi-Fi para acceder a Internet o crear su propia red inalámbrica Wi-Fi a la que pueden conectarse otros dispositivos.
El ESP32 también es compatible con WiFi Direct, que es una buena opción para conexiones punto a punto que no requieren un punto de acceso. WiFi Direct es más fácil de configurar y tiene velocidades de transferencia de datos mucho más rápidas que Bluetooth.
El chip es compatible con Bluetooth 4.0 (BLE/Bluetooth Smart) y Bluetooth Classic (BT), lo que lo hace aún más versátil.
Alimentación
Debido a que el rango de voltaje de funcionamiento del ESP32 es de 2.2V a 3.6V, la placa incluye un regulador de voltaje LDO para mantener el voltaje estable a 3.3V. Puede proporcionar de forma fiable hasta 600 mA, lo que debería ser suficiente incluso cuando el ESP32 está consumiendo su corriente máxima durante las transmisiones de RF.
Requisito de energía
-
- Voltaje de funcionamiento: 2,2 V a 3,6 V
- Regulador integrado de 3,3 V y 600 mA
- 5 μA durante el modo de reposo
- 250 mA durante las transmisiones de RF
La salida del regulador de 3,3 V se divide en el pin del cabezal etiquetado como 3V3. Este pin se puede utilizar para alimentar circuitos externos.
La placa de desarrollo ESP32 suele estar alimentada por el conector USB MicroB integrado. Alternativamente, si tiene una fuente de alimentación regulada de 5 V, puede usar el pin VIN para alimentar el ESP32 y sus periféricos directamente.
Periféricos y E/S
Aunque el ESP32 tiene 48 pines GPIO en total, solo 25 de ellos están divididos en cabezales de pines. A estos pines se les puede asignar una variedad de tareas periféricas, que incluyen:
- 15 canales ADC: 15 canales de ADC SAR de 12 bits con rangos seleccionables de 0-1 V, 0-1,4 V, 0-2 V o 0-4 V
- 2 interfaces UART – 2 interfaces UART con control de flujo y soporte IrDA
- 25 salidas PWM: 25 pines PWM para controlar cosas como la velocidad del motor o el brillo del LED.
- 2 canales DAC: dos DAC de 8 bits para generar voltajes analógicos verdaderos
- Interfaz SPI, I2C e I2S: tres interfaces SPI y una I2C para conectar varios sensores y periféricos, así como dos interfaces I2S para agregar sonido a su proyecto.
- 9 almohadillas táctiles: 9 GPIO con detección táctil capacitiva.
Multiplexed I/Os
-
- 15 canales ADC
- 2 interfaces UART
- 25 PWMs
- 2 canales DAC
- Interfaz SPI, I2C e I2S
- 9 almohadillas táctiles
Gracias a la función de ™multiplexación de pines del ESP32, que permite que varios periféricos compartan un solo pin GPIO. Por ejemplo, un solo pin GPIO puede actuar como entrada ADC, salida DAC o panel táctil.
GPIO de solo entrada
Los pines GPIO34, GPIO35, GPIO36(VP) y GPIO39(VN) no se pueden configurar como salidas. Se pueden utilizar como entradas digitales o analógicas, o para otros fines. También carecen de resistencias internas de tracción hacia arriba y hacia abajo, a diferencia de los otros pines GPIO.
Interruptores integrados e indicadores LED
Hay dos botones en la placa de desarrollo ESP32. El botón de reinicio, etiquetado como EN, se utiliza para reiniciar el chip ESP32. El otro botón es el botón de arranque, que se utiliza para descargar nuevo software o programas.
Interruptores e indicadores
-
- ES – Reiniciar el chip ESP32
- Arranque – Descargar nuevos programas
- LED rojo – Indicador de encendido
- LED azul: programable por el usuario
La placa también incluye dos indicadores LED. El LED rojo indica que la placa está encendida, mientras que el LED azul es programable por el usuario y está conectado al pin D2 de ™la placa.
Comunicación en serie
La placa incluye el controlador de puente USB a UART CP2102 de Silicon Labs, que convierte señales USB a serial y le permite programar el chip ESP32.
Comunicación en serie
-
- CP2102 Convertidor de USB a UART
- Velocidad de comunicación de 5 Mbps
- Compatibilidad con IrDA
FI Pinout de la placa de desarrollo ESP32
La placa de desarrollo ESP32 DevKit V1 tiene 30 pines en total. Para mayor comodidad, los pines con una funcionalidad similar se agrupan. La distribución de pines es la siguiente:

Pines de alimentación Hay dos pines de alimentación: el pin VIN y el pin 3V3. El pin VIN se puede utilizar para alimentar directamente el ESP32 y sus periféricos, si tienes una fuente de alimentación regulada de 5 V. El pin 3V3 es la salida del regulador de voltaje integrado; puedes obtener hasta 600 mA de él.
GND Es el pin de tierra.
Pines GPIO La placa de desarrollo ESP32 tiene 25 pines GPIO a los que se les pueden asignar diferentes funciones programando los registros apropiados. Hay varios tipos de GPIO: solo digitales, , habilitados para analógicos, habilitados para táctil capacitivo, etc. Los GPIO habilitados para analógicos y los GPIO habilitados para táctil capacitivo se pueden configurar como GPIO digitales. Todos los GPIO se pueden configurar como interrupciones .
Canales ADC El ESP32 integra dos conversores analógicos SAR de 12 bits y admite mediciones en 15 canales (pines habilitados para señales analógicas). Algunos de estos pines se pueden utilizar para construir un amplificador de ganancia programable para medir pequeñas señales analógicas. Además, el ESP32 está diseñado para medir voltajes mientras está en modo de suspensión.
Canales DAC El ESP32 incluye dos canales DAC de 8 bits para convertir señales digitales en voltajes analógicos reales. Puede utilizarse como un “potenciómetro digital” para controlar dispositivos analógicos.
Superficie táctil La placa tiene 9 entradas y salidas GPIO con detección táctil capacitiva. Cuando una carga capacitiva (como un dedo humano) se encuentra cerca de la entrada y salida GPIO, el ESP32 detecta el cambio en la capacitancia.
Pines SPI El ESP32 tiene tres SPI (SPI, HSPI y VSPI) en modo esclavo y maestro. Estos SPI también admiten las funciones SPI de uso general que se enumeran a continuación:
- 4 modos de temporización de la transferencia de formato SPI
- Hasta 80 MHz y los relojes divididos de 80 MHz
- FIFO de hasta 64 bytes
Solo VSPI y HSPI son interfaces SPI utilizables, y el tercer bus SPI lo utiliza el chip de memoria flash integrado. Los pines VSPI se utilizan comúnmente en las bibliotecas estándar.
Pines I2C El ESP32 tiene un único bus I2C que permite conectar hasta 112 sensores y periféricos. Los pines SDA y SCL están asignados, por defecto, a GPIO21 y GPIO22, respectivamente. Sin embargo, puedes aplicar el protocolo I2C en cualquier pin GPIO con un wire.begin(SDA, SCL)comando.
Pines UART La placa de desarrollo ESP32 tiene dos interfaces UART, UART0 y UART2, que admiten comunicación asincrónica (RS232 y RS485) e IrDA a hasta 5 Mbps. UART proporciona administración de hardware de las señales CTS y RTS y también control de flujo de software (XON y XOFF).
~Pines PWM La placa tiene 25 canales (casi todos pines GPIO) de pines PWM controlados por un controlador PWM. La salida PWM se puede utilizar para controlar motores digitales y LED. El controlador PWM consta de los temporizadores PWM y el operador PWM. Cada temporizador proporciona temporización en forma sincrónica o independiente, y cada operador PWM genera la forma de onda para un canal PWM.
ES Pin se utiliza para habilitar el ESP32. Cuando se pone en ALTO, el chip se habilita; cuando se pone en BAJO, el chip funciona a baja potencia.
Plataformas de desarrollo ESP32
Hay varias plataformas de desarrollo disponibles para programar el ESP32.
Puede optar por Espruino (SDK de JavaScript y firmware que emula de cerca Node.js), Mongoose OS (un sistema operativo para dispositivos IoT recomendado por Espressif Systems y Google Cloud IoT), MicroPython (implementación de Python 3 para microcontroladores), un SDK proporcionado por Espressif, o una de las plataformas enumeradas en WiKiPedia.
Afortunadamente, la increíble comunidad de ESP32 recientemente llevó la selección del IDE un paso más allá al crear un complemento de Arduino.Si recién está comenzando con el ESP32, le recomendamos que comience con este entorno, que cubriremos en este tutorial. Para obtener más información, visita el repositorio de GitHub de ESP32 Arduino.
Instalación del núcleo ESP32 Arduino
El primer paso para instalar el núcleo ESP32 de Arduino es tener la última versión del IDE de Arduino (Arduino 1.8.5 o superior) instalada en su computadora. Si aún no lo has hecho, te recomendamos que lo hagas de inmediato.
Encuentra la última versión del IDE Arduino en este link
A continuación, inicia el IDE de Arduino y ve a Archivo(File) > preferencias(preferences).

Completa el campo “ URL adicionales del administrador de placas ” con el link más abajo. Esto incluirá soporte para placas ESP32 y ESP8266.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.jsonLuego, haga clic en el botón “Aceptar”(ok).

Ahora navega hasta Tools > Board > Boards Manager…

Filtra tu búsqueda introduciendo “esp32”. Busca ESP32 de Espressif Systems. Haz clic en esa entrada y, a continuación, elije Instalar.

Después de la instalación, reinicie su IDE de Arduino y navegue hasta Tools > Board para asegurarse de que tiene placas ESP32 disponibles.

Ahora selecciona tu placa en el menú Tools > Board (en nuestro caso, es la DOIT ESP32 DEVKIT V1). Si no estás seguro de qué placa tienes, selecciona ESP32 Dev Module.

Finalmente, conecta la placa ESP32 a tu computadora y selecciona el Puerto (si el puerto COM no aparece en su IDE de Arduino, deberás instalar los drivers VCP CP210x USB to UART Bridge):

¡Eso es todo! Ahora puedes comenzar a escribir código para tu ESP32 en el IDE de Arduino.
Debes asegurarte de tener siempre instalada la versión más reciente del núcleo ESP32 Arduino.
Solo tienes que ir a Tools > Board > Board Manager…, buscar ESP32 y verificar la versión que tienes instalada. Si hay una versión más reciente disponible, debes instalarla.
Sketch de ejemplo
El núcleo ESP32 Arduino incluye varios sketches de ejemplo. Para acceder a los sketches de ejemplo, ve a File > Examples > ESP32.
Verás una selección de sketches de ejemplo. Puede elegir cualquiera de ellos para cargar el sketch en tu IDE y comenzar a experimentar con él.

Ejemplo básico: Blink
Para asegurarnos de que todo está configurado correctamente, subiremos el sketch más básico de todos: ¡Blink!
Esta prueba utiliza el LED incluido en la placa. Como se mencionó anteriormente en este tutorial, el pin D2 de la placa está conectado al LED azul integrado y es programable por el usuario.
int ledPin = 2;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() { digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
Cuando se cargue el código, el LED comenzará a parpadear. Para que tu ESP32 cargue el sketch, es posible que debas presionar el botón EN.

Solución de problemas
Algunas placas ESP32 entran en modo flash (programación) automáticamente y el código se carga correctamente, mientras que otras no, y es posible que reciba el error “Se produjo un error fatal: No se pudo conectar a ESP32” Se agotó el tiempo de espera del encabezado del paquete:

Este es un problema común e indica que su ESP32 no está en modo flash o carga. Puedes resolver este problema siguiendo los pasos que se describen a continuación.
- Manten presionado el botón BOOT de tu placa ESP32.
- Presiona el botón Cargar en el IDE de Arduino para cargar un nuevo sketch.
- Suelta el botón BOOT cuando aparezca el mensaje Escritura a 0x00001000 (100%) en el registro del IDE de Arduino después de conectarse.
- Ahora deberías ver el mensaje “Terminado de cargar”.
Eso es todo. Ahora, presiona el botón EN para reiniciar el ESP32 y ejecutar el sketch recién cargado.
¡Recuerda! Tendrás que repetir esa secuencia de botones cada vez que quieras subir un nuevo sketch.
Traducido desde: Getting Started With ESP32: A Beginner’s Guide (lastminuteengineers.com)
Preguntas frecuentes
¿Qué es el ESP32?
El ESP32 es una serie de microcontroladores creados y desarrollados por Espressif Systems, una compañía china con sede en Shanghái. Combina procesamiento de doble núcleo, conectividad inalámbrica y un amplio conjunto de periféricos, lo que lo ha vuelto muy popular en proyectos de IoT.
¿Qué procesador tiene el ESP32?
Está equipado con un microprocesador Tensilica Xtensa Dual-Core LX6 de 32 bits, con frecuencia de reloj ajustable entre 80 y 240 MHz, y alcanza hasta 600 DMIPS (Dhrystone Million Instructions Per Second).
¿El ESP32 tiene Wi-Fi y Bluetooth?
Sí, ambos. Incorpora un transceptor Wi-Fi 802.11b/g/n HT40 que le permite conectarse a una red existente (Station Mode) o crear su propia red (Soft Access Point). Además es compatible con Bluetooth 4.0 (BLE) y con Bluetooth Classic, lo que se conoce como modo dual.
¿Con qué se puede programar el ESP32?
Hay varias plataformas disponibles: el IDE de Arduino, MicroPython, Espruino y el SDK de Espressif, entre otras. Esa variedad permite elegir el entorno según la experiencia previa y el tipo de proyecto.
¿Qué periféricos incluye el ESP32?
Incluye una gran cantidad de periféricos integrados, entre ellos sensores táctiles capacitivos, ADC, DAC, UART, SPI, I2C y PWM. Esta dotación permite conectar la mayoría de los sensores y actuadores sin hardware adicional.
¿En qué rango de temperatura funciona el ESP32?
Puede funcionar de forma fiable en entornos industriales, con temperaturas de operación que van desde -40 °C hasta +125 °C. Ese diseño robusto lo hace apto para aplicaciones fuera del ambiente controlado de un escritorio.
¿Por qué el ESP32 es bueno para proyectos con batería?
Por su consumo ultrabajo. Gracias a sus múltiples modos de energía y al escalado dinámico de potencia, el ESP32 logra un consumo muy reducido, lo que lo hace ideal para dispositivos móviles, electrónica portátil y aplicaciones de IoT alimentadas por batería.
Aprende esto en un curso
Si prefieres verlo en vivo y con alguien que resuelva tus dudas, estos cursos presenciales de MCI Educación cubren el tema de este tutorial:
- IoT con ESP32 desde cero: Conecta y controla dispositivos inteligentes — nivel avanzado, 12 horas presenciales en Santiago
- Arduino en profundidad: Sensores y actuadores para proyectos reales — nivel intermedio, 12 horas presenciales en Santiago