Compatibilidad con Arduino IDE
Compatibilidad con Arduino IDE
Descripción General
Sección titulada «Descripción General»Esta sección presenta el Arduino IDE como entorno de desarrollo para ESP32. Al finalizar esta sección, podrás:
- Instalar y configurar el paquete de soporte de placas ESP32 en Arduino IDE
- Gestionar librerías para el desarrollo con ESP32
- Escribir, compilar y cargar un sketch básico de ESP32
Requisitos Previos
Sección titulada «Requisitos Previos»- Una instalación de Arduino IDE (se recomienda la versión 2.x)
- Una placa de desarrollo ESP32 y cable USB
- El controlador USB-UART instalado (CP2102 o CH340)
Conceptos Clave
Sección titulada «Conceptos Clave»Arduino IDE y ESP32
Sección titulada «Arduino IDE y ESP32»El Arduino IDE es el entorno de desarrollo más accesible para ESP32. Abstrae la configuración compleja de la cadena de herramientas, permitiendo que los desarrolladores se concentren en la lógica de la aplicación. El ESP32 Arduino Core (mantenido por Espressif) proporciona compatibilidad API completa.
Cómo Funciona el Arduino IDE con ESP32:
- Escribes un sketch (archivo
.ino) con las funcionessetup()yloop() - El IDE compila el sketch usando la cadena de herramientas del ESP32 (XTensa GCC)
- El binario compilado se carga en el ESP32 mediante el gestor de arranque serial
- El ESP32 ejecuta el firmware al reiniciarse
Características del ESP32 Arduino Core
Sección titulada «Características del ESP32 Arduino Core»- API completa de Wi-Fi y Bluetooth (análoga a la librería Ethernet estándar de Arduino)
- API de periféricos: GPIO, ADC, DAC, I2C, SPI, UART, PWM (LEDC), I2S
- Gestión de tareas FreeRTOS (planificador subyacente)
- Soporte de actualizaciones OTA (Over-the-Air)
- Sueño profundo y gestión de energía
- Soporte de sistema de archivos (SPIFFS, LittleFS)
Pasos de Implementación
Sección titulada «Pasos de Implementación»Paso 1: Instalar el Soporte de Placas ESP32
Sección titulada «Paso 1: Instalar el Soporte de Placas ESP32»Arduino IDE 2.x (Recomendado)
- Abre Arduino IDE
- Ve a File > Preferences (o Arduino IDE > Settings en macOS)
- En el campo “Additional Boards Manager URLs”, agrega:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Haz clic en OK
- Ve a Tools > Board > Boards Manager
- Busca “ESP32”
- Encuentra esp32 by Espressif Systems
- Haz clic en Install (la instalación es de ~500 MB y toma varios minutos)
Arduino IDE 1.8.x (Legado)
Los pasos son idénticos. Ten en cuenta que el IDE 1.8.x puede tener tiempos de compilación más lentos.
Paso 2: Seleccionar Tu Placa
Sección titulada «Paso 2: Seleccionar Tu Placa»- Ve a Tools > Board > ESP32 Arduino
- Selecciona la variante de tu placa:
- Para DevKit estándar: ESP32 Dev Module
- Para NodeMCU-32S: NodeMCU-32S
- Para M5Stack Core2: M5Stack-Core2
- Para XIAO ESP32-C3: XIAO_ESP32C3
- Para ESP32-CAM: AI Thinker ESP32-CAM
- Selecciona el puerto correcto en Tools > Port
- Verifica la velocidad de carga: Tools > Upload Speed > 921600 (o 115200 si es inestable)
Paso 3: Instalar las Librerías Requeridas
Sección titulada «Paso 3: Instalar las Librerías Requeridas»Librerías comunes de ESP32 y su instalación:
| Librería | Propósito | Método de Instalación |
|---|---|---|
| PubSubClient | Cliente MQTT | Gestor de librerías: “PubSubClient by Nick O’Leary” |
| ArduinoJson | Análisis/creación de JSON | Gestor de librerías: “ArduinoJson by Benoit Blanchon” |
| DHT sensor library | DHT11/DHT22 | Gestor de librerías: “DHT sensor library by Adafruit” |
| Adafruit Unified Sensor | Abstracción de sensores | Gestor de librerías: “Adafruit Unified Sensor” |
| U8g2 | Pantalla OLED | Gestor de librerías: “U8g2 by Oliver Kraus” |
| WiFiManager | Portal de configuración Wi-Fi | Gestor de librerías: “WiFiManager by tzapu” |
Para instalar mediante el Gestor de Librerías:
- Ve a Tools > Manage Libraries (o Ctrl+Shift+I)
- Busca el nombre de la librería
- Haz clic en Install
Paso 4: Escribir y Cargar un Sketch de Prueba
Sección titulada «Paso 4: Escribir y Cargar un Sketch de Prueba»Crea un nuevo sketch (File > New) e ingresa:
#include <WiFi.h>
const char* ssid = "YourWiFiSSID";const char* password = "YourWiFiPassword";
void setup() { Serial.begin(115200); delay(1000);
Serial.println("ESP32 Test Sketch"); Serial.print("Connecting to Wi-Fi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
Serial.println(); Serial.print("Connected! IP address: "); Serial.println(WiFi.localIP());}
void loop() { Serial.print("Uptime: "); Serial.print(millis() / 1000); Serial.println(" seconds"); delay(5000);}Pasos de Carga:
- Conecta el ESP32 por USB
- Selecciona la placa y el puerto correctos (Tools > Board, Tools > Port)
- Pon el ESP32 en modo de grabación:
- Mantén presionado el botón BOOT
- Presiona y suelta el botón EN (reset)
- Suelta el botón BOOT (Algunas placas más nuevas se reinician automáticamente y no requieren este paso)
- Haz clic en el botón Upload (flecha derecha) o presiona Ctrl+U
- Espera “Connecting…” y luego la barra de progreso de carga
- Después de “Done uploading”, abre el Monitor Serial (Tools > Serial Monitor, 115200 baudios)
- Presiona el botón EN para reiniciar el ESP32 y observa la salida
Paso 5: Verificar el Resultado
Sección titulada «Paso 5: Verificar el Resultado»Salida esperada del Monitor Serial:
ESP32 Test SketchConnecting to Wi-Fi............Connected! IP address: 192.168.1.100Uptime: 1 secondsUptime: 6 secondsUptime: 11 secondsVerificación
Sección titulada «Verificación»- La placa ESP32 aparece en el Gestor de Placas después de la instalación
- La placa seleccionada coincide con el hardware físico
- El puerto USB se detecta y se puede seleccionar
- El sketch compila sin errores
- La carga se completa al 100%
- El Monitor Serial muestra la salida esperada
- La conexión Wi-Fi es exitosa con la dirección IP correcta
Solución de Problemas
Sección titulada «Solución de Problemas»”Failed to connect to ESP32: Timed out” durante la carga
Sección titulada «”Failed to connect to ESP32: Timed out” durante la carga»Causas:
- El ESP32 no está en modo de grabación/descarga
- Puerto incorrecto seleccionado
- El cable USB es solo de carga (sin líneas de datos)
Soluciones:
- Mantén presionado BOOT, presiona EN, suelta BOOT, e intenta cargar de nuevo
- Verifica que el puerto COM correcto esté seleccionado
- Prueba con un cable USB diferente (preferiblemente uno que se sepa que funciona para datos)
- Reduce la velocidad de carga a 115200 baudios
”A fatal error occurred: MD5 of file does not match data in flash”
Sección titulada «”A fatal error occurred: MD5 of file does not match data in flash”»Causas:
- Conexión serial inestable
- Fluctuaciones de energía durante la carga
Soluciones:
- Usa un cable USB más corto
- Reduce la velocidad de carga a 115200
- Alimenta el ESP32 mediante una fuente externa de 5V en lugar de USB
Librería no encontrada después de la instalación
Sección titulada «Librería no encontrada después de la instalación»Causas:
- El Gestor de Librerías no instaló correctamente
- La librería no es compatible con ESP32
Soluciones:
- Reinicia el Arduino IDE
- Verifica que la librería aparezca en Sketch > Include Library > Manage Libraries
- Instala la librería manualmente descargándola de GitHub y colocándola en la carpeta
libraries
Errores de compilación específicos de ESP32
Sección titulada «Errores de compilación específicos de ESP32»Causas comunes:
- Usar código específico de AVR (p. ej.,
avr/pgmspace.h) en ESP32 - Falta el paquete de placas ESP32
Soluciones:
- Busca código específico de arquitectura y reemplázalo con equivalentes de ESP32
- Reinstala el paquete de soporte de placas ESP32
- Actualiza el Arduino IDE a la última versión
Buenas Prácticas
Sección titulada «Buenas Prácticas»- Usa Arduino IDE 2.x: Tiene un editor moderno, compilación más rápida y trazador serial integrado
- Mantén las versiones de librerías: Anota las versiones de las librerías para compilaciones reproducibles
- Verifica la Selección de Placa: Una selección de placa incorrecta puede causar errores de compilación o mapeo de pines incorrecto
- Mantén Actualizado el ESP32 Core: Espressif publica actualizaciones frecuentes; revisa si hay actualizaciones en el Gestor de Placas cada pocos meses
- Usa un puerto USB dedicado: Evita concentradores USB para una comunicación estable, especialmente durante la carga
Resumen
Sección titulada «Resumen»- Arduino IDE requiere el paquete de soporte de placas ESP32 (agregar mediante la URL del Gestor de Placas)
- La selección de placa debe coincidir con el hardware físico para un mapeo de pines correcto
- Las librerías se instalan mediante el Gestor de Librerías (PubSubClient, ArduinoJson, etc.)
- La carga requiere que el ESP32 esté en modo de grabación (mantener BOOT, presionar EN)
- Se recomienda Arduino IDE 2.x sobre 1.8.x por mejor rendimiento
Referencias
Sección titulada «Referencias»Ofrecemos servicios ODM de ESP32, del diseño a la fabricación. Del prototipo a la producción: el equipo detrás de este tutorial puede construirlo contigo.
Hablemos →