Probando el streaming de video con ESP32-CAM y Arduino IDE

La masificación del uso de sensores de imagen, particularmente en las cámaras de los teléfonos celulares, ha hecho que su precio haya disminuido de manera notable en los últimos años. Esta situación, combinada con la explosión de dispositivos de Internet de las cosas (IoT) ha permitido la aparición de módulos que nos permiten capturar imágenes y video para transmitirlos por Internet y hasta hacer reconocimiento facial por unos pocos dólares. En este artículo veremos como comenzar a utilizar un módulo de este tipo en particular, el ESP32-CAM de Ai Thinker.

Descripción

El ESP32-CAM es un módulo fabricado por la empresa Ai Thinker (aunque existen otros similares) basado en un SoC ESP32-S de Espressif con 520 KB de memoria interna y 4 MB externos. Cuenta con una antena Wifi incorporada y un conector tipo IPEX para conectar una antena externa y lograr así un mayor alcance. También incluye un LED para emplear como flash, un zócalo para alojar una tarjeta SD de hasta 4 GB, un conector para una cámara como la OV2640 o la OV7670 y 16 pines con señales de alimentación y entradas/salidas (GPIO)

Aspecto del módulo ESP32-CAM (Fuente: Ai Thinker)

Características

  • Alimentación: 5V
  • SoC: ESP-32S
  • Memoria flash: 32 Mbit
  • RAM: 520 KB interna + 4 MB externa (PSRAM – Pseudostatic RAM)
  • Antena: PCB incorporada + conector IPEX
  • Protocolos WiFi: IEEE 802.11 b/g/n/e/i
  • Bluetooth: Bluetooth 4.2 BR/EDR y BLE
  • Modos WIFI: Station / SoftAP / SoftAP+Station
  • Seguridad: WPA/WPA2/WPA2-Enterprise/WPS
  • Formatos de imagen: JPEG (OV2640), BMP, escala de grises
  • Tarjeta SD: 4GB máx
  • Interface: UART/SPI/I2C/PWM
  • GPIO: 9
  • Velocidad UART: 115200 bps (por omisión)
  • Dimensiones: 40.5mm x 27mm x 4.5mm

Programación

Al contener un ESP-32S, este módulo puede ser programado empleando distintos lenguajes, como C/C++, Python o hasta BASIC, usando distintos entornos de desarrollo, como el ESP-IDF de Espressif o el conocido IDE de Arduino. En esta revisión usaremos este último, con un programa que se incluye de ejemplo. Si no tienes configurado el IDE de Arduino para programar el ESP-32, puedes encontrar todas las instrucciones en este otro artículo.

El ESP32-CAM lamentablemente no tiene una interfaz USB que permita su conexión directa a una PC, como es el caso de otros módulos ESP32 o ESP8266. Para programarlo deberemos utilizar un adaptador FTDI entre los niveles de 5V del puerto USB y los 3V de los pines de programación del ESP32.

La siguiente imagen muestra los pines del ESP32-CAM con su función.

Pines del ESP32-CAM (Fuente: AI Thinker)

Para programar el módulo debemos alimentarlo con una tensión de 5 Voltios, conectar la salida de datos del adaptador FTDI al pin GPIO3/U0RXD, la entrada de datos a GPIO1/U0TXD y unir GPIO0 con GND para ponerlo en modo programación. El circuito resultante sería el siguiente:

Conexiones del ESP32-CAM para programarlo

Aquí puedes ver como me quedo armado:

Hay que tener especial cuidado con la tensión de salida (Vcc) del adaptador FTDI, esta debe ser de 5V aunque la señales de datos sean de 3V.

Una vez que el módulo está correctamente conectado, abrimos el Arduino IDE y elegimos el puerto USB y la placa: AI Thinker ESP32-CAM. En el menú “Archivo” vamos a “Ejemplos” y buscamos “Camera Web Server”.

El último paso es indicarle al programa especificamente que modulo estamos usando (puede utilizarse con distintos modelos). Comentamos los nos usados y descomentamos el apropiado (AI Thinker en mi caso)

También debemos cargar las credenciales de la red Wifi, esto es, el nombre de la red (SSID) y su contrraseña, para que el módulo se pueda conectar.

Modelo y datos de la red Wifi

Cuando todo está completo, podemos subir el programa al módulo. Una vez terminado sin errores, debemos quitar el cable que une GPIO0 con GND, resetear el módulo y abrir el monitor serie del IDE. En el monitor el programa nos muestra el estado de funcionamiento y debemos buscar la IP asignada al módulo:

Si abrimos esa dirección desde un navegador en una PC o un teléfono conectados a la misma red, podremos ver el streaming de video del módulo:

Hasta aquí hemos visto lo básico de este módulo para ponerlo en funcionamiento y hacer las primeras pruebas. La verdad es que tiene un enorme potencial por su capacidad y bajo costo, así que en el futuro les presentaré mas detalles de su funcionamiento así como otras aplicaciones.

Como siempre, espero que el artículo les haya sido de utilidad. Cualquier duda o aporte la pueden dejar mas abajo como un comentario. Nos vemos!

5 comentarios en “Probando el streaming de video con ESP32-CAM y Arduino IDE”

    • Hola Fran, no he usado todavía una app como esa, pero haciendo accesible la IP de la cámara desde fuera de la red local todo lo que hace falta es un browser en el móvil. Se podría hacer una app elemental en App Inventor con esa funcionalidad.

      Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: