Cámara web de abejas
Este proyecto describe cómo construir de forma fácil y económica una cámara web para observar abejas utilizando un Raspberry Pi y un módulo de cámara.

Materialliste
Descripción del proyecto
La Raspberry Pi requiere un sistema operativo que generalmente se instala en una tarjeta de memoria SD. Hay varios sistemas operativos para elegir, como Raspbian, Pidora, Ubuntu y algunos otros. Para nuestra cámara web de abejas queremos utilizar Raspbian, el sistema operativo oficialmente soportado por la Fundación Raspberry. Raspbian se basa en la distribución Linux Debian y está optimizado para el hardware Raspberry Pi.
Instalar Raspbian en una tarjeta de memoria SD (Windows)
En solo unos pocos pasos, el sistema operativo Raspian se puede escribir en la tarjeta SD usando una PC con Windows. Sin embargo, el sistema operativo no se copia simplemente a la tarjeta SD, sino que se escribe en la tarjeta de memoria mediante un grabador de imágenes (por ejemplo, Win32DiskImager).
- Win32DiskImager descargar
- Inserte la tarjeta SD en el lector de tarjetas y verifique si el Explorador de Windows la reconoce.
- Descargue la imagen del sistema operativo Raspbian y descomprímala con 7-zip. La imagen debe tener la extensión ".img".
- Ejecute el programa Win32DiskImager y seleccione la ruta y el archivo de imagen en el campo "Archivo de imagen". En el campo "Dispositivo", seleccione la letra de la unidad de la tarjeta de memoria SD.
- Ahora haga clic en el botón “Escribir” para iniciar el proceso de escritura. El proceso puede tardar algún tiempo.
Una vez completado el proceso, puedes expulsar la tarjeta SD e insertarla en la ranura SD de la Raspberry Pi. Ahora podemos iniciar la Raspberry Pi.
Activar cámara
Para poder utilizar el módulo de cámara, primero necesitamos activarlo en Raspbian. Para ello abrimos la herramienta de configuración raspi-config.
$ sudo raspi-config
Seleccione el elemento de menú 5 Opciones de interfaz y en la siguiente pantalla la cámara P1 se configura en "enable".
Trabajos preparatorios para la transmisión en vivo
Antes de instalar el controlador del módulo de la cámara y la herramienta de movimiento para la transmisión, primero actualizamos Raspbian.
$ sudo apt-get update
$ sudo apt-get upgrade
Instalar el controlador V4L (Video4Linux) para el módulo de la cámara
El controlador V4L ya está incluido en Raspbian y se puede instalar fácilmente utilizando el siguiente comando:
$ sudo modprobe bcm2835-v4l2
Si el comando se ha ejecutado sin ningún mensaje de error, ahora puedes comprobar si se ha reconocido el módulo de la cámara:
$ ls /dev/video*
La salida debe incluir /dev/video0.
Instalación de Motion
El programa de grabación gratuito Video4Linux Motion incluye un servidor web que puede transmitir una transmisión en vivo del módulo de la cámara a la red. Para que la transmisión de vídeo se transmita a través de una conexión segura (TLS - Transport Layer Security o https), se requiere Motion versión 4.2 o superior. La última versión de Motion es 4.3.2 (pi_buster_motion_4.3.2-1_armhf.deb) y se puede descargar aquí.
$ sudo apt install ./pi_buster_motion_4.3.2-1_armhf.deb
Con apt se instalan todas las dependencias necesarias, lo que puede llevar algún tiempo. Un poco más largo.
Configuración de Motion
Para configurar Motion correctamente, primero analizamos más de cerca los detalles de la cámara:
$ v4l2-ctl -V
Format Video Capture:
Width/Height : 640/480
Pixel Format : 'YUYV' (YUYV 4:2:2)
Field : None
Bytes per Line: 1280
Size Image : 614400
Colorspace : SMPTE 170M
Ahora editemos el archivo de configuración de Motion:
$ sudo nano /etc/motion/motion.conf
Para activar la transmisión en vivo de nuestra cámara se deben realizar los siguientes cambios:
daemon off -> daemon on
target_dir /tmp/motion -> target_dir/home/pi/Monitor
stream_localhost on ->stream_localhost off
Para mejorar la calidad de la imagen y la velocidad de cuadros, se pueden cambiar las siguientes configuraciones:
width 640 Breite des Videos (Pixel)
height 480 Höhe des Videos (Pixel)
framerate 24 Empfangene Bilderrate pro Sekunde
threshold 5000 Empfindlichkeit der Bewegungserkennung (Anzahl Pixel)
ffmpeg_output_movies off Keine Videos speichern bei erkannter Bewegung
output_pictures off Keine Bilder speichern bei erkannter Bewegung
stream_port 8081 Port über den der Livestream erreichbar ist
stream_quality 75 Bildqualität in Prozent (Livestream)
stream_motion on Ohne Bewegung nur 1 Bilder pro Sekunde (Livestream)
stream_maxrate 24 Max. Bilder pro Sekunde (Livestream)
Los cambios se guardan en el editor nano con ctrl-o.
Ahora necesitamos crear la carpeta /home/pi/Monitor y asignar los permisos de lectura/escritura correspondientes:
$ sudo mkdir /home/pi/Monitor
$ sudo chgrp motion /home/pi/Monitor
$ sudo chmod g+rwx /home/pi/Monitor
Ahora podemos iniciar el servicio:
$ sudo service motion start
Prueba la transmisión en vivo de la cámara web de la abeja
Ahora podemos probar fácilmente la transmisión en vivo de la cámara en un navegador (Chromium, Firefox, Chrome, etc.). En la ventana del navegador introducimos la dirección IP y el puerto correspondiente: http://192.168.178.39:8081.
Una transmisión segura mediante el Protocolo de Transferencia de Hipertexto Seguro (https)
Como quería integrar la transmisión en vivo en mi sitio web (https), es necesario transmitir también la transmisión de video con https. Todavía tengo que crear certificados para la transmisión cifrada y activar la transmisión TLS en Motion. Para crear certificados autofirmados en Raspberry Pi, primero debe instalarse openssl.
$ sudo apt-get install openssl
Ahora cambiamos a la carpeta de configuración de Motion y creamos el certificado:
$ cd /etc/motion
$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout motion.key -outform pem -out motion.pem -subj "/CN=*.com"
Ahora se deben agregar las siguientes entradas al archivo de configuración de Motion:
$ sudo nano /etc/motion/motion.conf
stream_tls on
webcontrol_tls on
webcontrol_key /etc/motion/motion.key
webcontrol_cert /etc/motion/motion.pem
Ahora es necesario reiniciar el Motion:
$ sudo service motion restart
Ahora debe ingresarse la siguiente dirección en la ventana del navegador: https://IP-Adresse:8081
Hacer que la transmisión de vídeo sea visible fuera de la red doméstica
Por supuesto, la cámara web de abeja solo tiene sentido si también puedo ver la transmisión de video fuera de la red doméstica. Para ello ahora es necesario realizar ajustes en el router. Necesito configurar el reenvío de puertos para el dispositivo. Mostraré la configuración aquí usando el ejemplo de un FritzBox 6890 LTE.
Para probar la configuración, es importante que acceda a la transmisión de vídeo desde un dispositivo que no esté conectado a la red doméstica.