MicroPython en la ESP32, directo en el navegador

Cargando el simulador…

Esc o clic para saltar

Saltar al contenido
IDE libre
F9 punto de interrupción · Ctrl+Enter ejecutar · Esc, Tab sale del editor
Detenido ·

Aprende MicroPython en la ESP32 sin necesidad de tener la placa

PyPlaca es un IDE gratuito que corre en el navegador. Escribes el programa en Python a la izquierda, montas el circuito en la protoboard a la derecha y ves reaccionar la ESP32 DevKit V1: el LED se enciende, el servo gira, el sensor lee. No hace falta instalar nada ni crear una cuenta. Cuando quieras, el mismo main.py pasa a la placa de verdad.

Ver las 11 rutas Leer los 52 artículos

Un primer programa completo

Este es el programa que el IDE abre la primera vez. Hace parpadear el LED azul que ya viene soldado en la DevKit V1, conectado al GPIO2, tres veces, y escribe en el Serial la cuenta de cada parpadeo.

Pin(2, Pin.OUT) convierte el pin en salida; led.on() y led.off() cambian su nivel; time.sleep_ms(500) espera medio segundo. El simulador cuenta ese tiempo en el reloj de la placa simulada, así que el LED parpadea al ritmo correcto aunque el ordenador sea lento.

En el Serial aparece:

piscada 1
piscada 2
piscada 3
from machine import Pin
import time

led = Pin(2, Pin.OUT)

for i in range(3):
    led.on()
    print('parpadeo', i + 1)
    time.sleep_ms(500)
    led.off()
    time.sleep_ms(500)

Qué puedes hacer en el navegador

Escribir y ejecutar MicroPython
El intérprete sigue el MicroPython v1.29.0 de la ESP32: las mismas funciones, los mismos mensajes de error y el REPL (>>>) cuando el programa termina.
Montar el circuito
Protoboard de 830 puntos y 21 piezas para arrastrar y conectar con cables. El banco de trabajo avisa cuando falta la resistencia del LED o cuando un pin recibe más tensión de la que aguanta.
Ver reaccionar la placa
El banco de trabajo en 3D o la vista desde arriba muestran LEDs, displays y motores cambiando mientras corre el programa. El botón de la protoboard se pulsa con el ratón, y el sensor cambia de valor con un control deslizante.
Avanzar línea a línea
Puntos de parada, paso a paso, entrar y salir de funciones e incluso volver un paso. La pestaña Variables muestra el valor de cada variable en cada línea, como en una prueba de escritorio.
Internet de las cosas
Wi-Fi, peticiones HTTP y MQTT simulados: la placa entra en la red del laboratorio, consulta un servidor y publica en un broker, sin depender de la red de la escuela.
Llevarlo a la placa real
Exportar el proyecto en .zip con la lista de materiales, o grabar directo en la ESP32 por el cable USB (Chrome y Edge), incluso instalar MicroPython en una placa nueva.

Las rutas

Son 11 rutas con 48 lecciones y 111 desafíos con corrección automática. La de lógica con Python y la de los primeros pasos en la ESP32 empiezan abiertas; las demás se abren cuando termina la anterior. Cada desafío se corrige ejecutando tu código con entradas que ves y con casos ocultos, como en un examen.

  1. Lógica con Python 60 desafíos
    Variables, input/print, decisiones, bucles, funciones, listas y matrices: los 60 desafíos de lógica del logicabr, ahora en Python.
  2. Primeros pasos con la ESP32 4 lecciones y 4 desafíos
    El LED azul de la placa (GPIO2), el tiempo en MicroPython, LED externos con resistencia y tu primer semáforo.
  3. Entradas digitales 4 lecciones y 4 desafíos
    Botones, pull-up y pull-down, el pin flotante, interrupciones (Pin.irq) y el debounce.
  4. PWM: brillo, color, sonido y movimiento 5 lecciones y 6 desafíos
    Modulación por ancho de pulso en la ESP32: el LED a media luz, el fade, colores en el LED RGB, notas en el zumbador pasivo y el servo SG90.
  5. Analógico: ADC, potenciómetro y LDR 6 lecciones y 6 desafíos
    El conversor analógico-digital de la ESP32: leer tensiones, el potenciómetro y el divisor de tensión, la atenuación, mapear rangos, el LDR y la media móvil.
  6. Sensores: temperatura, distancia y presencia 4 lecciones y 5 desafíos
    El DHT22 (temperatura y humedad), el HC-SR04 (distancia por ultrasonido) con el divisor de tensión en el ECHO y el PIR (presencia).
  7. Pantallas: OLED, LCD y NeoPixel 5 lecciones y 5 desafíos
    El bus I2C y el scan(), el OLED SSD1306 con el ssd1306.py, el LCD 16×2 con el módulo I2C y el anillo de LED NeoPixel.
  8. Tiempo sin trabarse 5 lecciones y 5 desafíos
    Por qué el sleep() traba el programa, el reloj ticks_ms/ticks_diff, varias tareas al mismo tiempo, el machine.Timer y la máquina de estados.
  9. Wi-Fi y HTTP 5 lecciones y 5 desafíos
    La placa entra en la red con network.WLAN (DHCP, IP, status y scan), conversa con servidores por HTTP con el requests, entiende JSON, envía lecturas con POST y no se queda esperando para siempre a un servidor lento.
  10. MQTT: publicar y suscribirse 5 lecciones y 6 desafíos
    El broker MQTT y el modelo publicar/suscribirse (y por qué es distinto del petición y respuesta de HTTP), temas, comodines, mensajes retenidos y QoS, recibir comandos sin trabarse con check_msg(), el DHT22 y el relé desde el panel de temas, Keep Alive, última voluntad y reconexión.
  11. Proyecto final: estación meteorológica IoT 5 lecciones y 5 desafíos
    Una estación meteorológica construida en etapas: el DHT22 y el OLED en un bucle que no se traba, la configuración traída por HTTP con un valor por defecto para cuando la red falla, las lecturas publicadas en MQTT con estado online/offline, el montaje en la protoboard y, al final, la estación completa que cambia el intervalo por el broker.

Artículos para empezar

Textos largos, con ejemplos que se abren directo en el simulador, sobre la ESP32 y sobre Python desde cero. Algunos de los primeros:

Ver los 52 artículos

Piezas del banco de trabajo

Cada pieza tiene una ficha con la distribución de pines, un ejemplo listo y las especificaciones con la fuente de cada número: ESP32 DevKit V1 (DOIT, 30 pines), ESP32-C3 Super Mini (16 pines), Protoboard de 830 puntos, LED de 5 mm, Resistencia, Pulsador táctil de 6 mm, Potenciómetro de 10 kΩ, LDR (GL5528), Buzzer activo, Buzzer pasivo, LED RGB (cátodo común), Servo SG90, DHT22 (AM2302), DHT11, Sensor de temperatura DS18B20, Sensor ultrasónico HC-SR04, Sensor de movimiento PIR HC-SR501, Módulo de relé de 1 canal y 5 V, Display OLED SSD1306 de 128×64 (I2C), LCD de 16×2 con módulo I2C (PCF8574), Anillo NeoPixel WS2812B. El mapa de pines de la DevKit V1 dice qué hace cada pin y cuáles evitar.

Para profesores

El laboratorio no siempre tiene una placa por alumno. Con el perfil de profesor creas el grupo, compartes el código de invitación, eliges las actividades con plazo y sigues en un panel quién ya las hizo, cuántos intentos usó y la nota de cada uno. La corrección oficial corre en el servidor, con la misma placa simulada, y el resultado no depende del ordenador del alumno.

Quién lo hace

PyPlaca lo crea y mantiene Prof. Rodrigo dos Santos Faustino, profesor de programación, bajo la marca FAUSTINOPSY. La plataforma nació en el aula: el alumno necesita equivocarse, medir e intentarlo de nuevo sin miedo a quemar un componente. Conoce más sobre PyPlaca o escríbenos por el contacto.