Algunas notas sobre mis pruebas con la ESP32-Cam:

¿Qué es ESP32? (First things first.)
ESP32 se refiere a una serie de circuitos integrados fabricados por “Espressif Systems” e incluyen entre muchas otras características, conectividad Wi-Fi, Bluetooth, y además es posible programarlo utilizando Arduino IDE. Existe mucha documentación sobre los distintos módulos que utilizan ESP32 en “Random Nerd Tutorials” y en la misma página de Espressif Systems.

Después de investigar distintos tipos de cámaras aplicables al proyecto, y al encontrar una serie de ellas que utilizan el ESP32, el camino se hizo un poco más claro en cuanto a la electrónica en el proyecto. En algún momento probé con GoPro’s, y aunque hice algunos experimentos con Toni, la idea de utilizar algo tan comercial y con una app muy cerrada no me cuadraba ni gustaba nada.

Así pues, cuando encontré que existían cámaras con la ESP32 y además programables con Arduino, adquirí varias de ellas para empezar a probar. 🙂

Antes de empezar:

  • Para utilizar la cámara ESP32, es necesario usar un programador FTDI.
  • En mi caso, al conectar el FTDI como estaba acostumbrada, me encontré con la horrible sorpresa de que mi laptop simplemente no lo reconocía como puerto accesible.
  • Después de mucha frustración y de navegar mucho por varios tutoriales, encontré que para hacer servir los puertos USB en Mac OS Sierra con el programador, es necesario instalar y desinstalar drivers FTDI. Los tutoriales que seguí (tardé mucho en hacer aparecer el puerto):

Arduino IDE + ESP32 CAM:

Me basé en un maravilloso “Nerd Tutorial” que incluye toda la info sobre la tarjeta impresa, diagrama de pines y configuración con ARDUINO: https://randomnerdtutorials.com/esp32-cam-video-streaming-face-recognition-arduino-ide

Instalar ESP32 Add-on:
Este add-on funciona para poder programar el ESP32 desde el Arduino IDE.

1 . Desde Arduino, ir a ->Tools -> Boards –> Board Manager. 2. Buscar “ESP32”
3. Seleccionamos el add-on que aparece como “ESP 32 by Espressif Systems” y lo instalamos.

Ventana del Board Manager en Arduino

Otra manera de instalar este add-on es mediante las preferencias de Arduino, para ello hay que:
1. Arduino –> Preferences
2. Copiar y pegar el siguiente link “https://dl.espressif.com/dl/package_esp32_index.json” en la sección “Additional Boards Manager URLs”.

Additional Boards Manager en Arduino IDE

Una vez instalado, podemos ir a –> Arduino –> Examples –> ESP32 –>Camera –>CameraWebServer

Esto abrirá un sketch de ejemplo que ya tiene las configuraciones aplicables a algunas de las cámaras que existen con ESP32.
Después de muchas pruebas, encontré que la siguiente configuración era la mejor para hacer todo funcionar:

  • Desde Windows y con el módem externo
  • Board: ESP32 Dev Module
  • Upload speed 921600
  • Flash Freq: 400Mh
  • Partition Scheme: Huge App
  • PS RAM Disabled
  • Arduino code tag para la cámara:
  • #define CAMERA_MODEL_AI_THINKER

Importante!
Para cargar el código a la cámara hay que conectar el pin GPIO con GND. Una vez cargado, hay que retirarlo.

Una vez que tenemos la cámara programada, abrimos el puerto serial y si todo está correcto, tendría que salir el mensaje “Camera Stream Ready! Go to: ( IP) “.

Copiamos la IP y la pegamos en cualquier navegador. Se abrirá una página con diferentes opciones de resolución de video.
En la parte inferior hay que dar click en “Start Stream” y …. ¡Felices videos!


Desventajas de la ESP32 Cam:

  • Está descontinuada
  • De momento es inestable, a veces se cargan los códigos y a veces no.
  • El botón de reset está en un lugar muy incómodo. Posiblemente ponga un botón externo de más fácil acceso a mi circuito.
  • El stream se puede abrir en un sólo navegador.

Ventajas:

  • Hay mucha documentación online.
  • Las dimensiones de la cámara son ideales para el proyecto, es decir que puedo adaptarlas fácilmente al cuerpo.
  • Tiene un par de pines libres que puedo utilizar para los motores micro que posteriormente implementaré para la interacción cuerpo-actividad online.

Next steps:

  • Añadir motor micro
  • Probar micrófono
  • Calcular amperaje necesario con motor + micrófono
  • Diseñar un módulo de sólo micrófono

Problemas por resolver:

  • El rooter que estoy usando, es recuperado de la basura ( 🙂 why not ), y de momento me envía mensajes con algún error extraño. No entiendo si la conexión es estable o no.