Cómo instalar y configurar PlatformIO para ESP32 en VS Code
**PlatformIO** es la herramienta estándar de la industria para compilar, grabar y depurar sistemas embebidos. Integrado directamente en **VS Code**, elimina las limitaciones de los IDE tradicionales.
platformio.ini para ESP32: ejemplo de configuración
Objetivo ESP32-S3Usa el bloque siguiente en el archivo platformio.ini de tu proyecto para configurar la compilación del ESP32-S3.
| 1 | [env:esp32-s3-devkitc-1] |
| 2 | platform = espressif32 |
| 3 | board = esp32-s3-devkitc-1 |
| 4 | framework = arduino |
| 5 | monitor_speed = 115200 |
Cómo instalar PlatformIO IDE en VS Code
1. Descargar e instalar VS Code
Descarga Visual Studio Code gratis para Windows, Linux o macOS desde el sitio oficial code.visualstudio.com.
2. Instalar la extensión PlatformIO IDE
Abre la pestaña Extensiones (Ctrl+Shift+X), busca PlatformIO IDE y haz clic en Install.
3. Instalar controladores USB-UART (CH340, CP2102, FTDI)
Asegúrate de que los controladores del puente USB-UART (CH340, CP2102 o FTDI) de tu placa estén instalados en el sistema operativo.
Esta página resume la instalación. Para el recorrido completo, con las pantallas de VS Code paso a paso hasta que parpadee el LED, sigue el tutorial de primeros pasos con ESP32 en VS Code. Para la placa con pantalla, usando el terminal, consulta los primeros pasos con ESP32-C3 y LCD de 1,44".
Estructura de carpetas de un proyecto PlatformIO ESP32
Contiene el código fuente principal (main.cpp o archivos .c/.cpp auxiliares).
Carpeta para archivos de cabecera y definiciones de prototipos (.h / .hpp).
Almacena bibliotecas locales personalizadas específicas del proyecto que no están en el gestor global.
Espacio para pruebas unitarias automatizadas usando Unity Framework.
Arduino Framework o ESP-IDF: ¿cuál usar en ESP32?
| Recurso | Arduino Framework | ESP-IDF (Native Espressif) |
|---|---|---|
| Curva de aprendizaje | Fácil / Prototipado rápido | Intermedia / Avanzada |
| Control del hardware | Abstraído mediante funciones amigables | Acceso directo a registros y API de bajo nivel |
| Consumo de memoria flash | Medio (incluye el runtime de Arduino) | Mínimo / Totalmente optimizado |
| Compatibilidad con FreeRTOS | Disponible en segundo plano | Nativo / Integración perfecta con tareas |
Monitor serie de PlatformIO (pio device monitor)
Abre el terminal serie con el atajo de la barra inferior de VS Code o desde el terminal:
pio device monitor -b 115200Carga de firmware en ESP32 (pio run -t upload)
Graba el archivo compilado directamente en la flash del ESP32 mediante el cable USB:
pio run --target uploadAñadir bibliotecas con lib_deps en platformio.ini
Añade dependencias a platformio.ini usando la directiva lib_deps.
Comandos pio en el terminal: compilar, grabar y monitorizar el ESP32
Cada acción de la interfaz gráfica de PlatformIO tiene un equivalente en la CLI. Usar pio directamente en el terminal integrado de VS Code es más rápido y es la única vía cuando automatizas builds en scripts o pipelines de CI.
| 1 | pio run # compila el firmware |
| 2 | pio run -t upload # graba en la flash del ESP32 |
| 3 | pio device monitor -b 115200 |
| 4 | pio device list # lista los puertos serie |
| 5 | pio run -t clean # limpia los artefactos de build |
| Comando | Qué hace |
|---|---|
| pio run | Compila el proyecto para el entorno definido en platformio.ini. |
| pio run -t upload | Compila y graba el firmware en la flash del ESP32 mediante USB. |
| pio device monitor | Abre el monitor serie. Usa -b para forzar la velocidad. |
| pio device list | Lista los puertos serie detectados — útil cuando la placa no es reconocida. |
| pio run -t clean | Elimina los artefactos de build. Resuelve muchos errores de compilación persistentes. |
| pio pkg install | Descarga las bibliotecas declaradas en lib_deps. |
Para grabar en un puerto específico, añade --upload-port COM5 en Windows o --upload-port /dev/ttyUSB0 en Linux. Si el proyecto tiene varios entornos en platformio.ini, selecciona uno con -e, por ejemplo pio run -e esp32-s3-devkitc-1 -t upload.
Errores comunes de PlatformIO con ESP32 y cómo resolverlos
Mantén pulsado el botón BOOT de la placa cuando el terminal muestre Connecting... o conecta un capacitor de 10uF entre los pines EN y GND.
Asegúrate de que la velocidad en monitor_speed coincida exactamente con el valor de Serial.begin(115200) en tu archivo C++.
