Volver
Servidor WEB
con Cámara
Orange PI
En el anterior artículo había realizado y
probado un servidor WEB con la placa Orange PI y el servidor
NGINX.
En este artículo añado un componente mas a Orange PI, una cámara.
A través de la página web se podrá ver la imagen de la calle, esta
imagen se actualizará cada 2 minutos.
http://seta43.duckdns.org/seta/webcam/index.html
Imagen vista desde un navegador.
Para este proyecto hemos utilizado una webcam Logitech, Inc.,
aunque sirve cualquiera que funcione en Linux.
Cámara colocada en la ventana.
Como base de la página web tenemos el fichero index.html
<!DOCTYPE
html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type"
content="text/html; charset=UTF-8">
<meta http-equiv="refresh" content="115">
<title>miweb</title>
</head>
<body alink="#EE0000" bgcolor="#ffff99" link="#0000EE"
text="#000000"
vlink="#551A8B">
<i><big><b>Mi_Cámara</b></big></i><br>
<hr size="2"
width="100%"><big><big style="font-weight:
bold;"><img
alt=""
src="web.jpg" height="480" width="640"><br>
<br>
mar abr 23 20:26:01 CEST 2019
</big></big>
</body>
</html>
Lo primero que debemos hacer es utilizar un programa que capture una
imagen de la webcam para colocarla en la página web.
_____VERSIÓN___ANTIGUA CAMBIADA_________
El programa utilizado es vgrabbj , este programa se maneja
vía comandos, que es lo que nos interesa.
vgrabbj -U -R -i vga -z 50 -f
/home/seta/www/webcam/web.jpg
Con esta orden capturamos una imagen en /home/seta/www/webcam/web.jpg
, es donde alojaremos la página web de la webcam.
En mi caso coloco mi webcam boca-abajo para mejor sujección, por
lo cual debo utilizar las opciones -U -R para dejar la
imagen bien.
El tamaño será de 640x480, con la orden -i vga
capturo ese tamaño.
En algunas webcam se necesita ciertas imágenes para que se
estabilice la luz, yo espero 50 imágenes, opción -z 50.
El script queda de la siguiente manera.
#!/bin/bash
datecreated=`date`
vgrabbj -U -R -i vga -z 50 -f
/home/seta/www/webcam/web.jpg
sed -i '14d' /home/seta/www/webcam/index.html
sed -i "14i${datecreated}" /home/seta/www/webcam/index.html
______________________________________________________________________
Después de funcionar perfectamente la webcam durante 1
semana, se me ocurrió reiniciar la placa Orange PI.
Resultaba que la webcam no se llegaba a ver. Probando y probando me
dí cuenta que el programa vgrabbj no funcionaba a veces cuando se
lanzaba por primera vez.
Para solucionar el problema he cambiado el programa que captura
imagenes, y ahora es fswebcam.
Ahora funciona todo bien cuando re reinicia el servidor.
#!/bin/bash
datecreated=`date`
#echo "$datecreated" >> /home/seta/web.txt
#vgrabbj -U -R -i vga -z 50 -f
/home/seta/www/webcam/web.jpg
#uvccapture -x640 -y480 -m -o"/home/seta/www/webcam/web.jpg"
fswebcam -r "640x480" -S 40 --flip h,v --no-banner
--jpeg 70 /home/seta/www/webcam/web.jpg
sed -i '14d' /home/seta/www/webcam/index.html
sed -i "14i${datecreated}" /home/seta/www/webcam/index.html
Con el comando sed borro la línea 14, e inserto la hora y la
fecha en la página web.
Para que la página web se actualize automáticamente coloco en la
cabecera de la página web:
<meta http-equiv="refresh"
content="115">
Esto hace que se actualice cada 115 segundos.
Ya tenemos el script creado, pero nos falta que el script se ejecute
cada 2 minutos.
Para esta tarea utilizaremos cron. El comando cron
es un administrador regular de procesos en segundo plano que viene
de serie en linux.
Para añadir el comando que se debe ejecutar en segundo plano,
utilizaremos el comando crontab -e .
Y editaremos de la siguiente forma:
*/2
* * * * /home/seta/www/webcam/tareaWeb > /dev/null 2>&1
De esta forma el script
se ejecutara cada 2 minutos.
Como veis es una forma bastante sencilla de crear una webcam en tu
página web.
Saludos
Juan Galaz
Bibliografía:
servi.html
wpa.html
wpb.html
orange.html
https://orangepiweb.es/
http://www.orangepi.org/orangepibbsen/forum.php?gid=38