Un caso de uso simple podría ser que quiera hacer una cámara de vigilancia estándar de bajo costo, sin complicaciones (y segura). Las cámaras de vigilancia estándar a menudo se envían con toneladas de software que luego deben ser compatibles con actualizaciones, soluciones de seguridad, etc. Un entorno reducido sin un sistema operativo a escala de escritorio / servidor y servicios en ejecución es por lo tanto más seguro con su superficie de ataque mucho más pequeña. Pero si eso no es suficiente, el bajo costo y el tamaño pequeño deberían convencerlo.

Vídeo remoto en otra aplicación
Muchos de nuestros clientes hacen que las cámaras de vídeo-vigilancia sean aplicaciones independientes, es decir, usted las instala y transmite el vídeo a su teléfono cada vez que necesita ver lo que sucede en el extremo remoto. Sin embargo, vemos más y más proyectos donde se transmite vídeo como parte de otra aplicación. Por ejemplo, comederos para mascotas con flujo de vídeo, timbres con capacidades de audio y vídeo, impresoras 3D que puede monitorear, etc.

La parte técnica
Investigación
ESP32-CAM de Ai Tinker Entonces, investigamos el mercado y descubrimos que la ESP32 CAM de Seedstudio era un buen lugar para comenzar y que probablemente fue una de las primeras cámaras basadas en ESP32. Es de bajo costo y tiene todo lo que necesitábamos a bordo, incluida una buena demostración. Más tarde descubrimos que Espressif, el fabricante de ESP32, ha creado un módulo también llamado ESP-EYE .

M5Stack ESP32 Cam Comenzamos con el desarrollo de la M5Stack ESP32 Cam. No tiene la RAM externa adicional, pero en su lugar tenía un USB para el UART ESP32 en la placa, lo que hizo que sea mucho más fácil de programar (no tiene que jugar manualmente con GPIO0, etc. para entrar en el modo de programación flash). )

El problema con M5Stack es que carece de la memoria externa y cuando necesita transmitir una gran cantidad de datos y hacerlo rápido, debe mantener un búfer de paquetes no reconocidos que fluyen desde la cámara a la aplicación, listos para reenviar si los paquetes se pierden en tránsito. Además, necesitas guardar el buffer de marco de la cámara. Por supuesto, esto podría optimizarse para que todo use el mismo búfer, pero esto iría en contra del principio de separación de preocupaciones y también dificultaría mucho la integración.

ESP-EYE de Espressif Como se mencionó anteriormente, descubrimos que el fabricante del chip ESP32 había creado su propio módulo de cámara. Era un poco más caro, pero lo bueno era que venía con USB a UART en el módulo para una fácil programación.

Diseño
La siguiente decisión fue cómo hacer el diseño del software técnico.

Transmisión directa. Una forma era crear una transmisión Nabto P2P directamente desde la aplicación que se conecta a la cámara y empujar la transmisión directamente sobre un lienzo de algún tipo. Esto requeriría mucha codificación en el lado de la aplicación, pero probablemente sería súper rápido.

P2P Tunnel MJPEG a través de HTTP En su lugar, optamos por probar si podríamos reutilizar la aplicación desde una demostración anterior utilizando un RPi como una cámara remota. El diseño general es muy similar a las técnicas de túnel SSH. La demostración establecerá un puerto de servidor TCP en el lado de la aplicación que está conectado a un servidor de túnel en el lado de la cámara. Una vez que un cliente (una vista web) se conecta al puerto del servidor en el lado de la aplicación, el servidor del túnel en el lado de la cámara crearía una conexión TCP con el servidor web.

En ambos lados, todos los datos recibidos se reenviarán al otro lado. Esto hace que el cliente parezca que el servidor web en el lado de la cámara se ejecuta en el lado de la aplicación, ya que una solicitud de obtención se reenviará al lado de la cámara y la respuesta de la cámara se reenviará al lado de la aplicación. De esta manera, puede utilizar una aplicación webview estándar para conectarse al servidor web de la cámara (usar el túnel para reenviar los datos de forma remota).

Texto completo en: https://bit.ly/2XLVrjs

Créditos de imagen: hackster.io

Puede interesarle:

Deja un comentario