Aprender

ESP32 projects for beginners, in the order to try them

Principiante

O mira todas las lecciones.

  • 503componentes en el banco de trabajo
  • 44placas funcionando ahora
  • 1.00xtiempo real, en todas las placas
ESP32 DevKit: una perilla atenúa un LEDlive0.000 s 0.00x
Haz clic para abrirlo en el editor
El ejemplo knob del ESP32: un potenciómetro en el GPIO 32 ajusta el brillo de un LED en el GPIO 4, e imprime la lectura sin procesar.

El ESP32 es una buena primera placa: cuesta más o menos lo mismo que un clon de Arduino, tiene WiFi y ejecuta el mismo código de Arduino. Esta página enlista proyectos para principiantes en el orden que más enseña, y cada uno ya está armado y funcionando en Mokxi, así que puedes probarlo en tu navegador antes de comprar un solo componente.

El circuito de arriba es el proyecto tres, un potenciómetro que atenúa un LED en un ESP32 DevKit clásico. Presiona Ejecutar y gira la perilla: el monitor serie imprime la lectura sin procesar y el ciclo útil del PWM. A la mitad marca 1892, no 2048, y llega a 4095 un poco antes de que la perilla esté al máximo. Por qué pasa eso es lo más útil que un principiante puede aprender sobre el ADC del ESP32, y se explica abajo.

Antes de empezar: tres diferencias del ESP32

Funciona a 3.3 V. Un pin GPIO entrega 3.3 V y nunca debe recibir 5 V. Los sensores hechos para un Uno muchas veces funcionan a 3.3 V, pero revísalo, y pon un divisor o un convertidor de nivel en cualquier señal de 5 V que entre.

Su ADC lee de 0 a 4095, doce bits, no de 0 a 1023. Con la atenuación predeterminada, la lectura no es una línea recta: se satura en unos 3.1 V, así que una perilla conectada a 3.3 V llega a 4095 antes de tiempo y marca unos 1890 a la mitad. Eso es exactamente lo que imprime el circuito de arriba.

Los números de pin son números de GPIO, y algunos pines son especiales. En el ESP32 clásico, los GPIO 34 a 39 son solo de entrada, y algunos pines deciden cómo arranca el chip. La página de cada placa en Mokxi enlista sus pines.

Proyectos 1 a 4: pines, PWM y el ADC

1. Haz parpadear un LED. El primer sketch en cualquier placa: pinMode, digitalWrite y delay. En un ESP32-C3 el LED está en el GPIO 8.

2. Un botón y un LED. Un botón de un pin a tierra con INPUT_PULLUP, que enciende el LED mientras lo mantienes presionado. Te enseña las resistencias pull-up sin usar una resistencia.

3. Una perilla que atenúa un LED. El circuito de arriba: analogRead en el GPIO 32 y analogWrite en el GPIO 4. Te enseña el ADC de 12 bits y el PWM.

4. Un barrido con servo. Un SG90 en un canal PWM de 50 Hz, que va de un extremo al otro. El ancho del pulso es el ángulo, y el hardware LEDC del ESP32 mantiene los pulsos mientras el núcleo hace otro trabajo.

Proyectos 5 a 7: sensores y pantallas

5. Un arcoíris con NeoPixel. Dieciséis LEDs WS2812B en un solo pin de datos de un ESP32-C3, con una rueda de colores que corre a lo largo de ellos. En una placa real, la biblioteca Adafruit NeoPixel se encarga de la temporización por ti.

6. Un monitor de temperatura y humedad. Un DHT22 en un pin, leído cada par de segundos e impreso en el monitor serie. Agrega una OLED SSD1306 por I2C para mostrarlo sin computadora.

7. Un sensor para el cuarto. Un DHT22, un sensor de luz BH1750 y un sensor de movimiento PIR en un solo ESP32-C3, el proyecto con el que empiezan muchos usuarios de Home Assistant. Cada lectura se imprime como el mensaje MQTT que enviaría.

Proyectos 8 a 10: WiFi

8. Conéctate a WiFi. WiFi.begin(), espera la conexión e imprime la dirección IP. En Mokxi la red se simula dentro del navegador, y nada sale de tu computadora a menos que inicies sesión y actives el internet real. Cambia la contraseña a propósito y la conexión falla después de cinco segundos, igual que en una placa real.

9. Una página web que enciende una lámpara. Un WebServer en el ESP32 sirve una página con dos botones; presiona uno en el panel Web y el LED le hace caso. Este es el proyecto con el que la mayoría de la gente por fin entiende el ESP32.

10. Obtén datos por HTTP. HTTPClient le pide JSON a un servidor, y el sketch extrae los números. En Mokxi se comunica con un servidor simulado cuyas respuestas puedes editar, y una solicitud a un sitio web real se rechaza con un mensaje claro, a menos que inicies sesión y actives el internet real.

Qué placa ESP32 comprar

Para una primera placa, un ESP32 DevKit V1 (el ESP32 clásico) o un ESP32-C3 SuperMini. El DevKit tiene más pines y más tutoriales. La SuperMini es diminuta y barata, y tiene USB nativo. El ESP32-S3 es la opción para cámaras, pantallas y más memoria. Las tres, y varias más, corren en Mokxi, así que puedes probar tu proyecto en cada una antes de elegir.

Si ya tienes un Arduino Uno, empieza ahí los dos primeros proyectos; no necesitan ningún cambio aparte de los números de pin. La página que compara el Uno, el ESP32 y el Pico profundiza más.

Errores comunes de principiante

Conectar 5 V a un GPIO. El ESP32 es un chip de 3.3 V, y 5 V en un pin pueden dañarlo.

Esperar que analogRead sea una línea recta de 0 a 3.3 V. Con la atenuación predeterminada marca unos 1890 a la mitad de una perilla y 4095 desde unos 3.1 V, como muestra el circuito de arriba; usa analogReadMilliVolts() para obtener volts.

Usar pines del ADC2 con el WiFi encendido. En el ESP32 clásico, los pines del ADC2 no se pueden leer mientras funciona el WiFi. Usa pines del ADC1, como los GPIO 32 a 39, para cualquier cosa analógica en un proyecto con WiFi.

Elegir un pin que afecta el arranque. Si la placa no arranca con tu circuito conectado, quita el componente de los pines de arranque (strapping) que aparecen en la página de la placa.

Preguntas

¿Cuál es un buen primer proyecto con ESP32?

Hacer parpadear un LED, luego un botón, y luego una perilla que atenúa un LED. Esos tres enseñan salida digital, entrada con pull-up, el ADC de 12 bits y PWM. Después de eso, una página web que enciende una lámpara muestra para qué sirve el WiFi.

¿Puedo probar proyectos con ESP32 sin tener la placa?

Sí. Cada proyecto de esta página corre en Mokxi en tu navegador, con el código de Arduino compilado y ejecutándose en un ESP32 simulado. No necesitas cuenta para abrirlos y ejecutarlos.

¿Los proyectos con ESP32 usan el Arduino IDE?

La mayoría de los tutoriales para principiantes sí, con el paquete de placas ESP32 instalado. El código de esta página es código de Arduino y se carga desde el Arduino IDE sin cambios.

¿Por qué el analogRead de mi ESP32 llega a 4095 antes de 3.3 V?

Con la atenuación predeterminada de 11 dB, la lectura sin procesar de un ESP32 real se satura en unos 3.1 V y se curva antes de llegar ahí, así que la mitad de una perilla de 3.3 V marca unos 1890 en lugar de 2048. Usa analogReadMilliVolts() para obtener una lectura en milivolts.

Ármalo en la vida real

Abre el editor, cambia un valor y mira cómo el número cambia con él. Nada que instalar y sin necesidad de cuenta.