Guías · 14 min de lectura

Plan de clase ESP32: primera sesión, preparación y 40 minutos

Plan de clase ESP32: en la primera sesión cada grupo sube código y enciende un LED. Preparación, material para 24, guion de 40 minutos, código y 8 fallos.

Cuando prepares un plan de clase con ESP32, reduce la primera sesión a un único objetivo: al terminar, cada grupo ha subido código a su propio ESP32 y ha encendido un LED. El Wi-Fi, los sensores y el control desde el móvil son para las siguientes clases. Que 40 minutos basten no depende tanto de lo que hagas en clase como de lo que hagas antes: ¿está instalado el driver USB-serie?, ¿tiene el Arduino IDE el paquete de placas ESP32?, ¿el cable de la mesa transmite datos de verdad? Si esas tres cosas están listas, la primera carga se hace en cinco minutos; si no, media clase se va en "no me sale el puerto".

Aquí tienes un paquete que puedes llevar mañana al aula: una lista de comprobación copiable para una semana antes, el día anterior y la mañana de la clase, una tabla de material, un guion de 40 minutos minuto a minuto, dos programas que compilan, cinco diferencias entre el ESP32 y el Arduino Uno, soluciones de un minuto para los ocho problemas más frecuentes y preguntas de salida. Supongamos que tienes una clase de 24 alumnos y los repartes en 8 grupos de tres; todas las cifras parten de ahí. Si tu sesión dura 50 o 55 minutos, lo que sobra es tu margen. Si el ESP32 aún es nuevo para ti, lee primero qué es el ESP32.

Placa ESP32 DevKit de 30 pines: conector Micro-USB, botones BOOT y EN, módulo ESP32-WROOM-32 y dos filas de pines
La placa de la primera sesión: un ESP32 DevKit de 30 pines. Antes de empezar, localizad juntos en la placa el conector USB, los botones BOOT y EN y los pines D5, GND y 3V3.

Objetivo de la primera clase: ¿por qué solo un LED?

En una primera clase con ESP32 tienes dos caminos: enseñar un proyecto Wi-Fi vistoso o que cada uno haga funcionar algo pequeño con sus propias manos. Lo segundo enseña mucho más. Para encender un LED, el alumno tiene que recorrer una vez toda la cadena de principio a fin: abrir el código, elegir placa y puerto, compilar, subir, montar el circuito, ver el resultado y después cambiar un valor y volver a subir. Cuando esa cadena funciona una vez, en las clases siguientes solo se añaden piezas nuevas. Si saltas al Wi-Fi antes, la contraseña de la red, el driver y el cable se acumulan y distinguir de dónde viene el error se vuelve casi imposible. Por eso este plan no usa red en la primera sesión: primero el LED interno de la placa, después un solo LED externo en la protoboard y, para los grupos rápidos, los dos alternándose.

Lista de comprobación antes de la clase

Divide la preparación en tres momentos. Puedes copiar e imprimir la lista o compartirla con el responsable de informática del centro; las tareas que piden permisos de administrador, como instalar drivers y programas, pasan por él en la mayoría de centros. Una semana antes:

  • Cuenta las placas y comprueba el modelo. Este plan está escrito para el ESP32 DevKit de 30 pines (con módulo ESP32-WROOM-32); en las placas de 38 pines el código es el mismo, solo cambia el orden de los pines.
  • Lee el pequeño chip junto al conector USB de la placa: ¿es un CP2102, un CH340 o un CH9102? De eso depende qué driver necesitas.
  • Pide que instalen Arduino IDE 2 en los ordenadores del aula. En los equipos del centro suele hacer falta ser administrador, así que reserva un hueco con informática.
  • En el Arduino IDE, instala el paquete esp32 by Espressif Systems desde el Gestor de placas. Descarga cientos de megas; con la red del centro, 40 minutos pueden no bastar si lo intentas en clase.
  • Instala el driver USB-serie, conecta una placa y comprueba que aparece un puerto nuevo en Herramientas > Puerto.
  • Prueba los cables: sube un programa a una placa con cada uno, aparta los que solo cargan y marca los de datos con cinta de color.
  • Pincha un ESP32 en una protoboard y mira si quedan agujeros libres a ambos lados. Si no, cada grupo recibirá dos protoboards.
  • Infórmate de las limitaciones de la red del centro: el ESP32 solo se conecta a Wi-Fi de 2,4 GHz, y las redes corporativas que piden usuario y contraseña dan problemas. En la primera clase no usarás Wi-Fi, pero para las siguientes necesitas saberlo ya.
La trampa del cable de carga: algunos cables Micro-USB y USB-C del cajón solo sirven para cargar y no llevan hilos de datos. Con uno de ellos el LED de alimentación de la placa se enciende, el alumno cree que todo va bien, pero el puerto nunca aparece en el Arduino IDE. Lo primero que debe hacer un grupo que dice "no hay puerto" es cambiar el cable. Marca los cables de datos probados y no uses en la primera clase los cables que traen los alumnos de casa.

El día anterior cada ordenador debe quedar listo; la idea es que en clase no se haga ningún paso de instalación por primera vez. Reserva también diez minutos para la mañana de la clase. Las dos listas están juntas:

  • Día anterior: Haz una carga de prueba en cada ordenador. Conecta la placa, elige ESP32 Dev Module y el puerto, sube el programa del LED interno y comprueba que parpadea. La primera compilación puede pasar del minuto; esta prueba también acorta las siguientes.
  • Día anterior: En Windows, pega en el lateral del ordenador una etiqueta con el número de puerto (COM3, COM5…). La misma placa en el mismo conector USB suele recibir el mismo número.
  • Día anterior: Prepara las cajas de grupo: placa, cable, protoboard, dos LED, dos resistencias de 220 Ω y cuatro cables puente. Deja el kit de repuesto en la mesa del docente.
  • Día anterior: Guarda los dos programas en el escritorio de cada ordenador; si internet va lento, los alumnos abren el código desde ahí.
  • Día anterior: Comprueba que el proyecto Parpadeo del LED interno del ESP32 se abre en BlueGrays con el proyector.
  • Mañana de la clase: Enciende los ordenadores, abre el Arduino IDE y comprueba que la placa sigue en ESP32 Dev Module.
  • Mañana de la clase: Dibuja en la pizarra un esquema sencillo de la placa: conector USB, BOOT, EN, GND, 3V3 y GPIO5 (en la placa pone D5).
  • Mañana de la clase: Escribe una línea en una esquina de la pizarra: "¿Se queda en Connecting...? Mantén pulsado BOOT."
  • Mañana de la clase: Cuenta por última vez los LED y las resistencias de las cajas y deja los cables encima.

Driver, paquete de placas y BOOT: detalles que debes conocer

En el Gestor de placas del Arduino IDE puedes ver dos paquetes ESP32. Para las placas del aula el correcto es el paquete esp32 de Espressif; el llamado "Arduino ESP32 Boards" es para la Nano ESP32 de Arduino. Tras instalarlo, elige ESP32 Dev Module en Herramientas > Placa > esp32. Si el paquete no aparece en la lista, tienes que añadir la dirección del paquete de Espressif en las URL adicionales del gestor de placas, en Preferencias; los pasos están en qué es el ESP32. Los programas del ESP32 tardan más en compilar que los del Uno; incluso con un LED parpadeante la primera compilación puede pasar del minuto. Avísalo al principio o los alumnos pulsarán Subir una y otra vez mientras la barra parece parada. El chip USB-serie de la placa decide qué driver instalar:

Chip USB-serieCómo reconocerlo en la placaNombre del puerto en WindowsNota
CP2102 / CP2104Chip cuadrado pequeño junto al conector USB, marcado CP2102 o SiLabsSilicon Labs CP210x USB to UART Bridge (COMx)Windows suele instalar el driver solo; si no, necesitas el driver CP210x de Silicon Labs
CH340 (CH340C, CH340G)Chip rectangular marcado CH340USB-SERIAL CH340 (COMx)Necesita el driver CH340 de WCH; a veces Windows Update lo instala automáticamente
CH9102Chip cuadrado pequeño en placas recientes, marcado CH9102USB-Enhanced-SERIAL CH9102 (COMx)Necesita el driver CH9102/CH343 de WCH; el driver del CH340 no reconoce este chip

El botón BOOT está conectado al pin GPIO0 del ESP32. Al empezar una carga, la placa tiene que entrar en modo programación; la mayoría de DevKits lo hacen solos con dos señales del chip USB-serie. Con algunas combinaciones de placa y cable ese cambio automático falla: los puntos de "Connecting..." no acaban y al final aparece el error "Failed to connect to ESP32". La solución es mantener pulsado BOOT en cuanto aparezca "Connecting..." y soltarlo cuando empiecen a correr las líneas que comienzan por "Writing at". El botón EN reinicia la placa; si la carga terminó pero el código no parece funcionar, basta con pulsar EN una vez. Si el problema se repite siempre en la misma placa, bajar Upload Speed en el menú Herramientas de 921600 a 115200 suele resolverlo. En macOS el nombre del puerto suele empezar por cu.usbserial o cu.SLAB_USBtoUART.

No uses Wi-Fi en la primera clase. El ESP32 solo se conecta a redes de 2,4 GHz; las redes de los centros suelen pedir usuario y contraseña o abrir una página de acceso en el navegador, y el ESP32 no puede pasar esas páginas. Cuando llegue la clase de Wi-Fi, lo más práctico es un punto de acceso personal en el móvil del docente configurado en la banda de 2,4 GHz. Pruébalo también el día antes con tu propia placa.

Lista de material: por grupo y para una clase de 24

Si repartes 24 alumnos en grupos de tres salen 8 grupos; con un kit de repuesto preparas 9 kits. Si prefieres parejas, necesitas 12 grupos más un repuesto, es decir, 13 kits y más ordenadores. Ninguna pieza necesita soldadura. Poner dos LED y dos resistencias por grupo tiene una razón sencilla: un LED al revés o con una pata rota es muy habitual en la primera clase y no conviene que un grupo se quede esperando.

MaterialPor grupoPara la clase (8 grupos + 1 repuesto)Nota
ESP32 DevKit (30 pines, ESP32-WROOM-32)19Usa un solo modelo; mezclar modelos confunde el orden de los pines
Cable USB de datos (Micro-USB o USB-C según la placa)1112 cables de repuesto; todos probados y marcados
Protoboard (830 puntos)192 por grupo si la placa no cabe (18 para la clase)
LED rojo de 5 mm220Un LED rojo se enciende bien con 3,3 V
Resistencia de 220 Ω220Bandas de color: rojo-rojo-marrón
Cable puente macho-macho4unos 40Usa siempre negro para GND
Ordenador con Arduino IDE y paquete ESP3218 + el ordenador del docenteEtiquetado con el número de puerto
Móvil o tableta con BlueGrays abierto1 (opcional)8Para leer el esquema y el código; el proyector también sirve
Caja o bolsa de piezas19Al final, recoge todo contándolo
Un ESP32 DevKit de 30 pines ocupa casi toda una protoboard estándar y deja solo una fila de agujeros en un lado. Pincha la placa de forma que el lado con los pines D5 y GND tenga agujeros libres y monta el LED y la resistencia en ese lado. En esta placa D5, GND y 3V3 están en la misma fila, así que el circuito de la primera clase cabe en un solo lado. Si aun así no hay sitio, junta dos protoboards y coloca cada fila de pines de la placa en una de ellas. Al sacar la placa, levántala por los dos extremos a la vez para no doblar los pines.

Guion de la clase de 40 minutos

El guion se apoya en dos proyectos gratuitos de BlueGrays: primero Parpadeo del LED interno del ESP32 (sin circuito, solo placa y cable) y después LED Parpadeante con ESP32 (GPIO5, una resistencia de 220 Ω y un LED). En los dos proyectos la lista de piezas, el esquema, el código, los bloques y Entender el código están abiertos gratis. Reparte tres roles en cada grupo y rótalos en cada fase: uno al teclado, otro montando el circuito y otro leyendo el esquema y el código en el móvil o en el proyector. Así nadie pasa 40 minutos solo mirando.

MinutoFaseDocenteAlumnos
0–4Inicio y objetivoEnseña la placa y dice el único objetivo: "Antes de que suene el timbre, cada grupo sube su propio código y enciende un LED." Comenta que la placa tiene Wi-Fi como el móvil, pero hoy no se usará.Se reparten los roles, abren la caja y cuentan las piezas.
4–9Conocer la placaCon el esquema de la pizarra señala el conector USB, los botones BOOT y EN y los pines GND, 3V3 y GPIO5; da el aviso de los 3,3 V.Localizan esos puntos en su placa y buscan el LED interno.
9–17Primera carga: LED internoAbre en el proyector el proyecto Parpadeo del LED interno del ESP32, muestra una vez cómo elegir placa y puerto y recuerda la nota de BOOT.Abren o copian el código, eligen ESP32 Dev Module y el puerto y suben; el LED parpadea una vez por segundo.
17–21Cambiar un valorPregunta: "¿Qué pasa si escribís 200 en lugar de 1000?" y pide primero una predicción.Dan su predicción, cambian los dos valores de delay(), vuelven a subir y comparan el resultado con lo que esperaban.
21–31Circuito con LED externoProyecta el esquema de LED Parpadeante con ESP32, señala la pata larga del LED y dónde va la resistencia, pasa por los grupos y revisa cada circuito con el USB desconectado.Desconectan el USB, montan GPIO5 → 220 Ω → pata larga del LED, pata corta → GND y suben el código tras el visto bueno del docente.
31–35MinirretoDa a los grupos rápidos una tarea extra: que el LED interno y el externo parpadeen alternándose. En los grupos atascados, revisa primero el cable y la orientación del LED.Ponen los dos pines como salida y apagan uno mientras el otro está encendido; los que terminan pasan a la tarea Pruébalo tú de Entender el código.
35–38RecogerPide desconectar los USB y contar las piezas.Desmontan el circuito y guardan las piezas contándolas.
38–40Preguntas de salidaEscribe las cuatro preguntas en la pizarra o las hace en voz alta.Responden brevemente en un papel y lo entregan al salir.
Bloques en español del proyecto Parpadeo del LED interno del ESP32: definición BUILTIN_LED_PIN = 2, pin como salida en la configuración, escribir HIGH y LOW en el bucle y esperar 1000 ms
Los bloques de la primera carga. Si proyectas esta imagen junto al código, los alumnos ven enseguida que el bloque de definición corresponde a la línea int, el bloque de configuración a setup() y el bloque de repetición a loop().

El código: LED interno y LED externo

Los dos programas de abajo usan los mismos pines y tiempos que los proyectos de la app y compilan directamente en el Arduino IDE con ESP32 Dev Module seleccionado. El primero hace parpadear el LED de la placa una vez por segundo. En la mayoría de placas ESP32 DevKit ese LED azul está conectado a GPIO2. En el Arduino Uno el LED interno estaba en el pin 13; quien ya haya usado un Uno puede escribir 13 por costumbre, así que explica la diferencia desde el principio.

C++ (Arduino IDE)
1// ESP32 Dahili LED Yakma / ESP32 built-in LED blink
2// Çoğu ESP32 DevKit kartında dahili LED GPIO2'dedir / On most ESP32 DevKit boards the built-in LED is on GPIO2
3int BUILTIN_LED_PIN = 2;   // Kartına göre değişebilir / May differ on your board
4
5void setup() {
6  pinMode(BUILTIN_LED_PIN, OUTPUT);   // Pini çıkış yap / Set the pin as output
7}
8
9void loop() {
10  digitalWrite(BUILTIN_LED_PIN, HIGH);   // LED'i yak / Turn the LED on
11  delay(1000);                           // 1 saniye bekle / Wait 1 second
12  digitalWrite(BUILTIN_LED_PIN, LOW);    // LED'i söndür / Turn the LED off
13  delay(1000);                           // 1 saniye bekle / Wait 1 second
14}
15

El circuito del segundo programa: de GPIO5 a un extremo de la resistencia de 220 Ω, del otro extremo de la resistencia a la pata larga del LED (ánodo) y de la pata corta (cátodo) a GND. El pin del ESP32 da 3,3 V; en un LED rojo caen unos 2 V y los 1,3 V restantes sobre 220 Ω hacen pasar unos 6 mA. Es suficiente para que el LED se vea bien y no fuerza el pin. Si usas otro color, comprueba la resistencia con la calculadora de resistencia para LED. En el minirreto, los grupos rápidos combinan los dos programas: en setup() ponen los dos pines como salida y en loop() escriben HIGH en uno mientras el otro está en LOW.

C++ (Arduino IDE)
1// ESP32 ile LED Yakma: harici LED / ESP32 external LED blink
2// Bağlantı: GPIO5 -> 220 Ω direnç -> LED uzun bacak (+), kısa bacak (-) -> GND
3// Wiring: GPIO5 -> 220 ohm resistor -> LED long leg (+), short leg (-) -> GND
4const int LED_PIN = 5;   // Harici LED pini (kartta D5) / External LED pin (D5 on the board)
5
6void setup() {
7  pinMode(LED_PIN, OUTPUT);   // Pini çıkış yap / Set the pin as output
8}
9
10void loop() {
11  digitalWrite(LED_PIN, HIGH);   // Pin 3,3 V verir, LED yanar / Pin outputs 3.3 V, LED on
12  delay(500);                    // Yarım saniye bekle / Wait half a second
13  digitalWrite(LED_PIN, LOW);    // Pin 0 V verir, LED söner / Pin outputs 0 V, LED off
14  delay(500);                    // Yarım saniye bekle / Wait half a second
15}
16
El LED interno no está en GPIO2 en todas las placas. Algunas, como la DevKitC de la propia Espressif, solo tienen un LED rojo de alimentación y ningún LED programable; en otras el LED va a otro pin. Si en la carga de prueba el LED no parpadea, mira el pinout de tu placa; si no hay LED interno, ese grupo pasa directamente a la fase del LED externo. Usar un único modelo en todo el kit de clase evita estas sorpresas desde el principio.

5 diferencias entre el ESP32 y el Arduino Uno

Puede que parte de tus alumnos ya haya usado un Arduino Uno. El código se escribe en el mismo lenguaje Arduino y setup() y loop() siguen en su sitio, pero el hardware es distinto, y la mayoría de errores de la primera clase vienen de ahí. Puedes explicar estos cinco puntos en pocos minutos mientras conocéis la placa. Para una comparación más detallada, consulta Arduino o ESP32.

TemaArduino UnoESP32 DevKitQué significa en clase
Tensión lógica5 V3,3 V; los pines no toleran 5 VNunca pongas 5 V en un GPIO; antes de conectar un módulo de 5 V comprueba su tensión de salida
Números de pinD0–D13 y A0–A5Se usa el número GPIO; el pin marcado D5 en la placa es el 5 en el códigoEl número del código es el GPIO de la placa, no la posición contada desde el borde
Pines solo de entradaNinguno; todos los pines digitales pueden ser salidaGPIO34, 35, 36 (VP) y 39 (VN) son solo de entrada y no tienen resistencias pull-up internas; GPIO6–11 están unidos a la memoria flashUn LED en el 34 nunca se enciende; en la primera clase quédate en GPIO2 y GPIO5
Botones BOOT y ENUn solo botón de reset; la carga empieza solaBOOT (GPIO0) para el modo programación, EN para reiniciarSi "Connecting..." se alarga, se mantiene BOOT; si el código no parece funcionar, se pulsa EN
Conexión inalámbricaNo tieneWi-Fi de 2,4 GHz y Bluetooth (Classic y BLE) integradosNo se usa en la primera clase; según la red del centro, se prueba más adelante con un punto de acceso del móvil

Los 8 problemas más frecuentes en clase y su solución en un minuto

SíntomaCausa probableSolución en un minuto
El menú Herramientas > Puerto está vacío o grisCable solo de carga o falta el driverPrueba un cable de datos marcado; si sigue sin puerto, busca el nombre del chip en el Administrador de dispositivos y prueba la placa en el ordenador del docente
"Connecting..." no termina y luego "Failed to connect to ESP32"La placa no entró sola en modo programaciónVuelve a subir, mantén BOOT cuando salga "Connecting..." y suéltalo cuando empiecen las líneas "Writing at"
Errores de avrdude en la salidaSigue seleccionado Arduino Uno como placaElige Herramientas > Placa > esp32 > ESP32 Dev Module y vuelve a subir
La carga termina bien pero el LED no cambiaPuerto equivocado (varias placas conectadas)Desconecta la placa, mira qué puerto desaparece del menú, vuelve a conectarla y elige ese puerto; compáralo con la etiqueta del ordenador
El LED externo no se enciende nuncaLED al revés, o resistencia y LED no están en la misma fila de la protoboardGira el LED: pata larga hacia la resistencia, pata corta a GND; comprueba que las conexiones comparten fila
El circuito parece correcto pero el LED sigue apagadoEl cable está en otro pin (por ejemplo D4 o D34)Lee la etiqueta del pin donde está el cable y compárala con el número del código; evita los pines 34–39
Código subido pero el LED interno no parpadeaLa placa no tiene LED programable o está en otro pinMira el pinout de la placa; pasa sin perder tiempo a la fase del LED externo
El LED está siempre encendido o la placa se calientaLED conectado a 5V/VIN o 3V3, o cortocircuito entre 3V3 y GNDDesconecta el USB de inmediato; pasa el LED a GPIO5, busca el cable del cortocircuito y vuelve a conectar
La regla de los tres minutos: si un grupo lleva más de tres minutos atascado en el mismo problema, cámbiale la placa y el cable por el kit de repuesto y revisa tú la pieza defectuosa después de clase. Que un grupo pierda toda la sesión por un cable malo cuesta más que encontrar la causa en ese momento. Aunque la barra de progreso parezca parada, que no pulsen Subir por segunda vez; la primera compilación tarda. Para revisar a fondo problemas de puerto y driver, los pasos de Arduino no sube el código también sirven para el ESP32.

Preguntas de salida y avance de la segunda clase

  1. ¿A qué pin de la placa se refiere el número 5 del código? ¿Por qué puede poner "D5" junto a ese pin?
  2. ¿Qué cambió en el LED al escribir delay(200) en lugar de delay(1000)? ¿Cuántas veces por segundo parpadea ahora?
  3. ¿Por qué no se encendió el LED cuando estaba al revés? ¿Qué pata del LED va hacia la resistencia?
  4. ¿Qué tensión dan los pines del ESP32? ¿Por qué no debemos conectar un LED o un módulo directamente al pin de 5V?

Las respuestas te dicen qué concepto conviene repasar en la segunda clase; quien responde 2,5 a la segunda pregunta ha entendido la temporización. En la segunda clase se añade un pulsador al mismo circuito: en el proyecto Control de LED con pulsador en ESP32 (Push) el LED se enciende mientras mantienes pulsado el botón y en Control de LED con botón en ESP32 (Toggle) cambia de estado con cada pulsación. Los dos son gratuitos y tienen bloques; los alumnos leen una entrada por primera vez y deciden con if. En la tercera o cuarta clase puedes pasar al Wi-Fi; para esa sesión ten a mano la tabla de códigos de estado de ESP32 no se conecta al Wi-Fi. Los proyectos ESP32 con Wi-Fi de BlueGrays son Premium; si quieres que tus alumnos sigan con ellos, en códigos Premium para la clase explicamos cómo dar a cada uno un código de un paquete para educadores en lugar de suscripciones por separado.

¿Cómo usar BlueGrays en clase?

  • Encontrar el proyecto: En Descubrir › Proyectos, con Filtrar elige la plataforma ESP32 y en Estado del Precio la opción gratis. Los proyectos ESP32 adecuados para las primeras clases, como LED, pulsador, semáforo, sensor de luz y sensor de distancia, aparecen completamente abiertos.
  • Componentes Necesarios y Diagrama de Circuito: La lista de piezas viene con cantidades. Puedes ampliar el esquema y llevarlo al proyector, o guardarlo con Guardar en Galería e imprimirlo.
  • Código Fuente: Con Copiar el código va al portapapeles. Si un alumno abrió el proyecto en el móvil, Copiar enlace le da un enlace para abrir el código en el ordenador, así nadie tiene que teclearlo a mano.
  • Entender el código: Primero el resumen ¿Qué hace este código?, luego la explicación Paso a paso, la sección Si te atascas y la tarea Pruébalo tú. Es el siguiente paso listo para los grupos que acaban pronto el minirreto.
  • Ver en bloques: Todos los proyectos ESP32 gratuitos tienen vista de bloques. Al activar el interruptor, el código se sustituye por los bloques del mismo programa y la pestaña pasa a llamarse Entiende los bloques. Los bloques son para leer; no se editan en la app ni se suben a la placa, a la placa siempre va el código real.
  • Hazlo paso a paso: Un modo guiado con los pasos prepara los componentes, monta el circuito, sube el código y ejecuta y prueba. La pantalla se mantiene encendida, así que el grupo sigue los pasos con el móvil sobre la mesa; al final, Lo hice lo marca como terminado.

La primera clase puede parecer solo un LED, pero en esos 40 minutos los alumnos pasan una vez por compilar, subir, los números de pin, el límite de 3,3 V y la depuración, y cada clase de ESP32 posterior se apoya en eso. Explicamos todas las secciones de la página de un proyecto en la guía de la página del proyecto. Si quieres montar tú los dos proyectos una vez antes de clase, abre Parpadeo del LED interno del ESP32 en la app BlueGrays; el esquema, el código, los bloques y Entender el código están listos, y tu ensayo no pasará de diez minutos.

Preguntas frecuentes

¿Qué se hace en la primera clase con ESP32?

El objetivo de la primera clase es que cada grupo suba código a su ESP32 y encienda un LED: primero el LED interno de la placa y después un LED externo con una resistencia de 220 Ω en la protoboard. El Wi-Fi y los sensores quedan para más adelante. Así los alumnos recorren sin problemas la cadena de compilar, subir y elegir el pin.

¿Qué placa elijo para el ESP32 en el Arduino IDE?

Para placas genéricas como el ESP32 DevKit, instala el paquete esp32 de Espressif y elige ESP32 Dev Module en Herramientas > Placa > esp32. El paquete Arduino ESP32 Boards es para el Arduino Nano ESP32. Si la placa se queda en Arduino Uno, la carga se detiene con un error de avrdude.

¿Por qué el ordenador no reconoce mi ESP32?

Cambia primero el cable; muchos cables USB solo cargan y no transmiten datos. Después lee el chip USB-serie de la placa (CP2102, CH340 o CH9102) e instala el driver correspondiente. En Windows debe aparecer un puerto COM nuevo en Puertos dentro del Administrador de dispositivos.

¿Hay que pulsar BOOT para subir código al ESP32?

La mayoría de DevKits entran solos en modo programación, así que no hace falta. Si "Connecting..." se alarga y aparece "Failed to connect to ESP32", reinicia la carga, mantén BOOT cuando salga "Connecting..." y suéltalo cuando empiece la escritura. Si se repite, baja la velocidad de carga a 115200.

¿En qué pin está el LED interno del ESP32?

En las placas ESP32 DevKit de 30 pines más comunes, el LED azul interno está en GPIO2. Pero depende de la placa: la DevKitC de Espressif solo tiene LED de alimentación y en algunas placas el LED está en otro pin. Si dudas, consulta el pinout de la placa o usa un LED externo en la protoboard.

¿Se puede empezar en el instituto con ESP32 en lugar de Arduino Uno?

Sí; el código se escribe en el mismo lenguaje Arduino y la primera clase con LED es casi idéntica. Las diferencias son la lógica de 3,3 V, la numeración GPIO, los pines solo de entrada y el botón BOOT, y basta con unos minutos de la primera clase para explicarlas. La preparación lleva algo más que con un Uno, pero a cambio el Wi-Fi y el Bluetooth ya están listos para las clases siguientes.

Ver todos los proyectos
Parpadeo del LED interno del ESP32
#106Principiante

Parpadeo del LED interno del ESP32

Parpadeo del LED azul incorporado en el ESP32 DevKit V1. ¡No se necesitan componentes externos! El primer proyecto que debe probar cuando compra un ESP32. GPIO 2 está conectado al LED interno.

4.8(29)
53
LED Parpadeante con ESP32
#103Principiante

LED Parpadeante con ESP32

Enseña el uso básico de la salida GPIO con ESP32. Conseguimos un efecto de parpadeo encendiendo y apagando un LED desde el pin digital. Versión para ESP32 del clásico proyecto blink en Arduino UNO; los comandos básicos de blink en el entorno Arduino son los mismos, pero la distribución de pines y los niveles GPIO de 3,3 V del ESP32 difieren de los del Arduino UNO.

4.7(37)
99
Control de LED con pulsador en ESP32 (Push)
#104Principiante

Control de LED con pulsador en ESP32 (Push)

El LED se enciende cuando se pulsa el botón y se apaga cuando se suelta. Muestra cómo se utiliza el pin de entrada digital del ESP32 y la resistencia pull-up interna. Gracias al modo INPUT_PULLUP, no se necesita ninguna resistencia externa.

4.6(36)
55
Control de LED con botón en ESP32 (Toggle)
#105Principiante

Control de LED con botón en ESP32 (Toggle)

Cada vez que se pulsa el botón, cambia el estado del LED: si está encendido se apaga, si está apagado se enciende. Patrón de conmutación clásico. Con debounce limpiamos el ruido mecánico del pulsador para garantizar una sola conmutación con una sola pulsación.

4.6(39)
57
ESP32 Semáforo
#107Principiante

ESP32 Semáforo

Simulación de un semáforo real con 3 LED rojo-amarillo-verde. Los tiempos se aproximan a la lógica del tráfico real: rojo largo, amarillo corto, verde largo. Ejemplo clásico de control GPIO secuencial.

4.4(21)
44
Lectura de la intensidad luminosa con el módulo LDR del ESP32
#113Principiante

Lectura de la intensidad luminosa con el módulo LDR del ESP32

Visualización en tiempo real en el monitor serie del valor bruto del ADC del módulo LDR y del porcentaje relativo de luz calculado a partir de referencias de oscuridad y claridad. Este porcentaje no es una medición en lux. Explica el funcionamiento de la calibración del módulo. Es recomendable realizarlo antes del Proyecto 10, ya que se utiliza para determinar el valor umbral.

4.6(36)
55
ESP32 HC-SR04 Medidor de distancia por ultrasonidos
#116Intermedio

ESP32 HC-SR04 Medidor de distancia por ultrasonidos

El sensor ultrasónico HC-SR04 calcula la distancia midiendo el tiempo de vuelo (Time of Flight) de la onda sonora que emite al chocar contra un objeto y rebotar. En este proyecto, enviaremos un pulso de 10 microsegundos desde el ESP32 al pin TRIG del sensor y leeremos el tiempo de eco procedente del pin ECHO mediante pulseIn(). Mostraremos la distancia calculada en centímetros en una pantalla LCD I2C de 16x2. Dado que el HC-SR04 funciona a 5 V, es obligatorio utilizar un divisor de tensión

4.9(28)
45
ESP32 DHT22 Temperatura y humedad (con pantalla LCD)
#117Intermedio

ESP32 DHT22 Temperatura y humedad (con pantalla LCD)

Se trata de un proyecto que mide la temperatura y la humedad ambientales mediante el sensor DHT22 y las muestra en tiempo real en una pantalla LCD I2C 16x2. Los datos del sensor se leen mediante el protocolo de un solo cable (one-wire) utilizando la biblioteca DHT de Adafruit. Este proyecto constituye la base para estaciones meteorológicas IoT, sistemas de automatización doméstica inteligente o sistemas de monitorización ambiental en invernaderos.

4.8(38)
56