Servidor de Video Streaming con ESP32-CAM
Descripción del Proyecto: Servidor de Video Streaming con ESP32-CAM
Este código permite convertir un módulo ESP32-CAM (AI Thinker) en un punto de acceso Wi-Fi (Access Point) que transmite video en tiempo real a través de un servidor web local.
1. Estructura y Componentes del Código
El programa se divide en cuatro secciones principales:
A. Definición de Pines (Hardware)
Dado que el ESP32-CAM no tiene todos los pines conectados de forma estándar, se definen los GPIOs específicos para el modelo AI Thinker. Estos pines controlan la interfaz paralela de la cámara (D0-D7), las señales de sincronización (VSYNC, HREF, PCLK) y el bus de comunicación SCCB (protocolo similar a I2C).
B. Configuración de Red (Wi-Fi)
El código configura el módulo en modo SoftAP (Punto de Acceso):
-
SSID:
ESP32-CAM2 -
Password:
12345678Esto significa que no necesitas un router; puedes conectar tu celular o PC directamente a la red que genera el ESP32.
C. El Servidor Web y el Manejador de Stream
La función stream_handler es el «corazón» del video. Utiliza una técnica llamada MJPEG (Motion JPEG):
-
Establece el tipo de respuesta HTTP como
multipart/x-mixed-replace. Esto le dice al navegador que recibirá una serie de imágenes que deben reemplazar a la anterior continuamente. -
Entra en un bucle
while(true)donde captura una foto (esp_camera_fb_get), la envía como un «frame» de video y luego libera la memoria.
D. Configuración Inicial (setup)
-
Inicialización de Cámara: Configura parámetros críticos como el formato (JPEG), la resolución (
QVGA– 320×240) y la calidad de compresión. -
Arranque del Servidor: Inicia el servicio web en el puerto 80 y registra la ruta raíz (
/) para que, al acceder a la IP del ESP32, se dispare automáticamente el streaming.
2. Especificaciones Técnicas
| Característica | Descripción |
| Microcontrolador | ESP32-S |
| Sensor de Imagen | OV2640 |
| Formato de Salida | JPEG (necesario para streaming fluido) |
| Resolución | QVGA ($320 \times 240$ px) |
| Modo Wi-Fi | Access Point (AP) |
| Protocolo de Video | HTTP Multipart Stream (MJPEG) |
3. Funcionamiento Paso a Paso
-
Al encender el dispositivo, el ESP32 inicializa el sensor de la cámara.
-
Crea una red Wi-Fi propia. El usuario debe conectarse a ella.
-
El usuario abre un navegador y escribe la dirección IP (usualmente
192.168.4.1). -
El servidor responde enviando ráfagas constantes de imágenes JPEG a través de la conexión HTTP.
-
El navegador interpreta estas imágenes como un flujo de video en vivo.
4. Notas de Implementación
-
Bucle Vacío: El
loop()se mantiene con undelay(10000)ya que el servidor web corre de forma asíncrona en segundo plano mediante tareas del sistema operativo (FreeRTOS). -
Estabilidad: Se utiliza
fb_count = 1para ahorrar memoria RAM, lo cual es vital en el ESP32-CAM para evitar reinicios inesperados por falta de memoria (heap).
