💻 Programacion de Hardware

Hola Mundo ESP32

El objetivo es encender y apagar un LED a intervalos de un segundo para confirmar que la ESP32 se comunica correctamente con tu computadora

JH
Jorge Henao · 15 de marzo de 2026 · 5 min de lectura · 70 visitas
Guía básica para empezar a programar una ESP32 La ESP32 es uno de los microcontroladores más populares en proyectos de IoT, robótica y automatización. Su potencia, conectividad WiFi y Bluetooth, y su bajo costo la convierten en una excelente herramienta tanto para estudiantes como para desarrolladores. Si estás comenzando, hay algunos conceptos clave que debes dominar antes de crear proyectos más avanzados.
¿Qué es una ESP32? La ESP32 es un microcontrolador desarrollado por Espressif Systems que permite crear dispositivos electrónicos inteligentes capaces de conectarse a internet. Entre sus principales características encontramos: Procesador Dual Core Conectividad WiFi Conectividad Bluetooth Múltiples pines GPIO Entradas analógicas y digitales Bajo consumo energético Esto la hace ideal para proyectos como: Domótica Sensores remotos Automatización industrial Proyectos IoT Robots Sistemas de monitoreo
¿Con qué se programa la ESP32? La forma más común de programarla es usando el entorno: Arduino IDE Aunque también se puede usar: PlatformIO ESP-IDF (framework oficial) Para principiantes, Arduino IDE es el más recomendado porque simplifica mucho el proceso.
Estructura básica de un programa para ESP32 Todo programa para ESP32 tiene dos funciones principales:
inicio.ino
void setup() {

}

void loop() {

}
setup() Se ejecuta una sola vez cuando la placa inicia. Se usa para: configurar pines iniciar comunicación serial iniciar sensores iniciar wifi
loop() Se ejecuta de forma repetitiva mientras la placa esté encendida.
holamundo.ino
#define LED_BUILTIN 2 // El LED integrado suele estar conectado al pin 2 en muchas placas ESP32

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000); // 1 segundo
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000); // 1 segundo
}