Administración de Sistemas Informáticos en Red
Autor: Raúl Castilla García CENTRO: CIPF Cesar Manrique
Índice 1. Introducción. ............................................................................................................................. 2 1.1.
Objetivo y justificación. ................................................................................................. 2
1.1.
Análisis de lo existente. ................................................................................................. 2
1.2.
Propuesta detallada. ..................................................................................................... 3
2. Planificación temporal............................................................................................................... 4 3. Material utilizado y evaluación de costes. ................................................................................ 5 4. Preparación de la Raspberry Pi. .............................................................................................. 10 5. Asignación de IP estática a Raspberry Pi. ................................................................................ 11 6. Instalación del dongle wifi....................................................................................................... 12 7. Instalación de VNC. ................................................................................................................. 15 7.1. Instalación del servidor VNC: ........................................................................................... 15 7.2. Puesta en marcha del servidor VNC: ................................................................................ 15 7.3. Instalación de VNC Viewer (Windows):............................................................................ 16 8. Conexión vía SSH. .................................................................................................................... 18 8.1. ¿Qué es PuTTY y para qué sirve? ..................................................................................... 18 8.2. Ventajas de PuTTY ............................................................................................................ 18 8.3. Instalación de PuTTY en Windows 10. ............................................................................. 19 9. Conexión de la Webcam.......................................................................................................... 24 10. Instalación del visor de la cámara web. ................................................................................ 26 10.1. Instalación de GUVCview. .............................................................................................. 26 11. Utilización del software Motion. ........................................................................................... 29 11.1. Instalación de Motion .................................................................................................... 29 12. Pruebas en red local. ............................................................................................................. 35 13. Pruebas en red exterior......................................................................................................... 37 14. Referencias. ........................................................................................................................... 41 14.1. Linux ............................................................................................................................... 41 14.1.a. Breve historia de Linux. ........................................................................................... 41 14.1.b. Características del S. O. Linux. ................................................................................ 41 14.2. Raspbian ......................................................................................................................... 42 14.3. Diagrama de flujo ........................................................................................................... 43 14.4. Diagrama de conexiones ................................................................................................ 44 15. Fuentes consultadas. ............................................................................................................. 46
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 1
1. Introducción. 1.1. Objetivo y justificación. En los últimos años, durante el periodo de crisis, el robo en domicilios ha aumentado considerablemente llevando consigo más inseguridad para el ciudadano. Igualmente, ha aumentado la ocupación de viviendas vacías por parte de terceros. También, durante la crisis, ha aumentado el paro, lo que ha provocado un aumento de hogares con más de una unidad familiar desempleadas llegando a haber hogares sin ningún miembro familiar, en edad laboral, trabajando. En España existen actualmente unos 770.000 hogares sin ingresos, lo que se traduce en unas 18.363.500 personas sin ningún tipo de ayuda o prestación económica. Todas estas situaciones conllevan a un aumento de desconfianza e inseguridad ciudadana por lo que muchos ha tomado medidas preventivas para evitar este tipo de situaciones. La mayoría instala puertas blindadas, lo que conlleva a dificultar que se produzcan estos hechos delictivos. Son los que menos, los que optan por instalar sistemas de vigilancia ya sea por elevado coste o desconocimiento del servicio. Lo que se pretende conseguir con este proyecto es que la gente disponga de un servicio de vigilancia de bajo coste, con el que se puedan sentir seguros a la par de protegidos en sus hogares y demás entornos.
1.1. Análisis de lo existente. Existe en la actualidad diversas empresas que se dedican a la instalación y mantenimiento de sistemas de seguridad en el hogar, donde dependiendo de ciertos factores como la situación geográfica, tipo de vivienda…. el presupuesto varía. También nos podemos encontrar en diversos comercios sistemas de vigilancia, los cuales podemos instalar nosotros. Estos comercios, como Leroy Merlin, T.V. Nalber… venden el pack a partir de 160€, dependiendo de los componentes que lo formen, el importe puede aumentar considerablemente hasta el doble. En definitiva, existe diversidad de productos que ofrecen vigilancia en el hogar a distintos precios, de los cuales, algunos llevan mantenimiento y contacto 24 horas con el cliente y aviso a las fuerzas de seguridad en caso de que ocurra algún incidente.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 2
1.2. Propuesta detallada. RaspCam pretende ser un sistema de video vigilancia para el hogar. En él se incluyen: una webcam para tener acceso a la zona vigilada en tiempo real; una Raspberry Pi (una placa computadora (SBC) de bajo costo desarrollada en Reino Unido por la Fundación Raspberry Pi) y software Motion, que es una herramienta que nos permite tener como salida archivos jpeg, ppm, e incluso secuencias de vídeo mpeg. Motion es una aplicación que permite controlar la señal de vídeo de una o varias cámaras y que además detecta si una parte significativa de la imagen cambia, o lo que es lo mismo, detecta movimiento. Este programa está escrito en C y está orientado a ser usado con Linux -usando la interfaz de video4linux. La utilidad se aprovecha bajo la línea de comandos, y su salida pueden ser imágenes JPEG o PPM y también secuencias de vídeo MPEG. Hay que tener en cuenta que Motion es una herramienta de línea de comandos y puede funcionar como un daemon con apenas consumo de recursos. Se pretende que esta funcionalidad sea aprovechada, utilizando los servicios de internet, pudiendo acceder a las imágenes de video en tiempo real, desde un navegador instalado en cualquier equipo que se encuentre incluido en la red local, o bien accediendo desde cualquier dispositivo que se conecte a una red de servicios de internet externa. De este modo queremos tener a nuestra disposición un sistema de vigilancia de bajo coste y que nos ofrezca una relativa seguridad.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 3
2. Planificación temporal. Para realizar la planificación temporal, se ha tenido en cuenta el tiempo necesario desde la planificación del proyecto (consultando los productos que se van a utilizar), hasta la disposición de ellos en el domicilio y su puesta a punto.
La planificación la podemos dividir en los siguientes puntos:
- Análisis: Este punto está enfocado en buscar cual va a ser la finalidad del proyecto y sus posibles usos.
- Diseño: Una vez que ya sabemos cuál es la finalidad del proyecto, diseñamos un prototipo de lo que va a ser el proyecto, donde se incluyen todos los componentes necesarios para el funcionamiento del dispositivo y los programas que va a ser necesario instalar para el correcto funcionamiento.
- Pruebas: En este punto se incluyen las pruebas que se van realizando con cada componente, tanto con el programa necesario para su funcionamiento como las conexiones de los diferentes dispositivos a la Raspberry Pi.
- Implantación: Finalmente, después de realizar todas las pruebas oportunas y comprobar el correcto funcionamiento, se dispone a unificar el conjunto del proyecto para su uso tanto a nivel de la red local, como en la red externa.
ANALISIS
PRUEBAS
IMPLANTACION
DISEÑO
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 4
3. Material utilizado y evaluación de costes. Raspberry Pi
Es un ordenador de placa reducida o (placa única) (SBC) de bajo coste desarrollado en Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas. El diseño incluye un System-on-a-chip Broadcom BCM2835, que contiene un procesador central (CPU) ARM1176JZF-S a 700 MHz, un procesador gráfico (GPU) VideoCore IV, y 512 MB de memoria RAM. El diseño no incluye disco duro ni unidad de estado sólido, ya que usa una tarjeta SD para el almacenamiento permanente; tampoco incluye fuente de alimentación ni carcasa. La fundación da soporte para las descargas de las distribuciones para arquitectura ARM, Raspbian (derivada de Debian), RISC OS 5, Arch Linux ARM (derivado de Arch Linux) y Pidora (derivado de Fedora); y promueve principalmente el aprendizaje del lenguaje de programación Python. Otros lenguajes también soportados son Tiny BASIC, C, Perl y Ruby.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 5
Webcam
Necesitamos un cámara web que sea compatible con la Raspberry Pi, para lo cual lo que hice es consultar en la siguiente dirección web las cámaras compatibles: http://elinux.org/RPi_USB_Webcams decidiéndome a adquirir la WebCam HP 2300 HD.
Resolución de captura de imágenes fijas:1280 x 720, Características:360° pan / 30° inclinación, Máx. resolución de vídeo digital:1280 x 720, Interfaces:1 x Hi-Speed USB - 4 PIN USB tipo A, Interfaz de ordenador:USB 2.0, Sistema operativo requerido:Microsoft Windows Vista (32/64 bits), Microsoft Windows 7 (32/64 bits), Microsoft Windows XP (32/64 bits), Software incluido:Controladores y utilidades, Detalles de los requisitos del sistema:Windows XP/Vista/7 Pentium 4 - 2.4 GHz RAM 1 GB - HD 130 MB.
Ratón y teclado inalámbrico NGS Hero Kit es un set compuesto por un ratón y teclado inalámbricos 2.4 GHz. Compuesto por un preciso ratón óptico de 1000/1600 dpi. El receptor 2.4 GHz USB Nano lo provee de una casi invisible conexión segura. Es compatible con todo tipo de plataformas.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 6
Monitor
Samsung SyncMaster 2232BW El monitor no tuve necesidad de adquirirlo puesto que disponía de un de un equipo antiguo, el cual aproveché para este proyecto. Características Generales Tipo: Monitor LCD Widescreen; en diagonal: 22"; Resolución: 1680x1050 (16:10); LCD Tipo: TFT TN; Pantalla Dot horizontal: 0.282 mm; Dot Vertical: 0.282 mm; Brillo: 300 cd/m2; Contraste: 1000:1; Dynamic Contrast Ratio: 3000:1; Tiempo de respuesta: 2 ms; Campo de visión: Horizontal: 160°, vertical: 160°; El número máximo de colores: 16.7 millones de dólares; Sweep Frecuencia de barrido: Horizontal: 30-81 kHz, Vertical: 56-75 Hz; Conexión Entradas: DVI-D, VGA (D-Sub);
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 7
Adaptador HDMI a VGA
Debido a que mi monitor sólo dispone de conexión VGA y la Raspberry Pi HDMI, decidí utilizar un cable adaptador para poder pasar la señal de video. El adaptador convierte HDMI HD 1080P a VGA.
Circuito integrado que admite la mayoría de las salidas
HDMI y tiene entrada VGA. No requiere alimentación externa, se alimenta a través de la señal HDMI. Resolución hasta 1080P. Funciona con HDMI 1.3. Resoluciones admitidas: 480i, 480p, 576i, 576p, 720i, 720p, 1080i, 1080p. Admite colores de 8/10/12bit. Entrada: Standard type A macho. Salida: Standard VGA hembra. Peso: 45g. Body size: 45*45*15mm. Longitud de cable: 18cm.
Adaptador dongle Wifi
Este dispositivo que se conecta a uno de los 2 puertos USB de la Raspberry Pi, me dará la posibilidad de evitar la conexión a la red vía cable, lo que hará más fácil colocar el dispositivo de vigilancia en el lugar que más nos convenga. Hay que tener la precaución de comprobar antes de adquirirlo, si el adaptador es compatible con la Raspberry Pi, en este caso, yo me decanté por el TP-Link TL-WN725N.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 8
Evaluación de costes
COMPONENTE Raspberry pi Modelo B Cámara web Kit ratón y teclado Monitor Adaptador HDMI a VGA Adaptador Wifi
PROVEEDOR T.V. Nalber, S.L. Ebay MediaMarkt Propio Ebay Ebay
Proyecto fin de ciclo ASIR (Raúl Castilla García)
CANTIDAD 1
COSTE 29,95 €
1 1 1 1
15,00 € 11,95 € -----------5€
1 TOTAL
3,25 € 65,15 €
Página 9
4. Preparación de la Raspberry Pi. Lo primero que debemos hacer es descargar una imagen ISO de la distribución que deseemos, en mi caso me he decantado por Jessie, podemos hacerlo de forma gratuita en el siguiente enlace: Descarga Raspbian Jessie Una vez tengamos la ISO descargada en nuestro PC, debemos realizar un proceso con ella que consiste en “copiar” la ISO a la tarjeta de memoria SD, pero formateándola de forma que sea booteable. En Windows podemos hacerlo de forma fácil usando el programa
Win32DiskImage.
Una vez que el proceso anterior ha terminado, simplemente introducimos la tarjeta en nuestro Raspberry PI y la arrancamos (basta con enchufarla a la corriente eléctrica).
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 10
5. Asignación de IP estática a Raspberry Pi. Asigno una dirección IP estática a la Raspberry Pi con el objeto de que cuando conecte con ella desde la red exterior, me cerciore de que dicha IP no cambiará nunca, para lo cual edito el archivo de configuración de las interfaces que se encuentra en la ruta siguiente: nano /etc/network/interfaces El archivo resultante para la IP estática que he decidido 192.168.1.50, quedaría como se muestra en la captura de pantalla de abajo.
Tras reiniciar las interfaces de red, compruebo ejecutando el comando ifconfig que dicha IP ha quedado establecida en la Raspberry Pi.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 11
6. Instalación del dongle wifi.
Si hay algún complemento que le falta al Raspberry Pi es, sin duda, un adaptador WiFi integrado, ya sea para ahorrar costes o para quitarse un quebradero de cabeza de encima, la placa no incorpora ninguna conexión inalámbrica, por lo que si deseamos conectar la placa mediante WiFi tendremos que hacerlo manualmente; por esto, voy a proceder a su configuración.
Es un proceso realmente sencillo y rápido, en apenas diez minutos y con unas pocas líneas de terminal, tendremos todo configurado para poder disfrutar de nuestra placa de desarrollo desde cualquier lugar de nuestro hogar. Antes de empezar aclararé que el adaptador WiFi ha sido conectado a la placa antes de su encendido, además, he conectado el cable Ethernet porque necesitaré conexión a Internet para descargar algunas cosas. Por otro lado, también usaré esta conexión para controlar la placa, pues utilizaré el protocolo SSH para controlar remotamente la Raspberry Pi, en este caso utilizaré Putty para ello. 1. Lo primero que hago es iniciar sesión en el Raspberry Pi. El nombre de usuario por defecto es “pi” y la contraseña “raspberry”. 2. Una vez en el terminal, lo primero que haré será hacer una lista de los dispositivos conectados mediante el bus USB. Para ello usaré el siguiente comando:
lsusb
3. En la lista que se muestra, busco mi adaptador de red, en mi caso el “Realtek Semiconductor Corp WLAN Adapter”. Una vez tengo esta información busco en Internet cuál es el nombre del paquete que debo instalar en Raspberry Pi para hacer que funcione el adaptador. El siguiente código va a variar según el modelo de adaptador que tengamos, pero el proceso de instalación es siempre el mismo. En mi caso, instalaré el paquete de software que proporciona el fabricante del adaptador mediante el código siguiente: Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 12
sudo apt-get install firmware-realtek
4. Una vez instalado el paquete del adaptador simplemente debo configurar el acceso a la red, con la contraseña y el SSID de la red. Para ello introduciré en primer lugar el siguiente código: sudo nano /etc/network/interfaces
Se abrirá el editor con un archivo que debo modificar con el siguiente texto:
Donde sustituiremos la palabra SSID por el nombre de nuestra red y la palabra contraseña por la contraseña que tengamos configurada en el router. Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 13
Guardamos el archivo pulsando Ctrl+X, configuramos que deseamos sobrescribir los cambios pulsando la tecla Y y presionamos Enter para confirmar. 5. Para terminar, tan sólo tendremos que reiniciar el Raspberry Pi con el siguiente comando: sudo reboot
Y así es como, en unos sencillísimos, y una pequeña búsqueda por la red, logramos tener nuestra Raspberry Pi conectada a Internet de forma inalámbrica, por lo que podremos prescindir del cable de red, ya que con el adaptador WiFi lograremos tener conexión en cualquier lugar.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 14
7. Instalación de VNC. TightVNC es una herramienta de escritorio remoto que me permitirá acceder al escritorio de mi Raspberry Pi desde una ubicación remota, en este caso desde mi ordenador portátil, con esto consigo simplificar los elementos a utilizar, como son el caso del monito, del teclado y del ratón. El programa se divide en dos parte, es decir, dos programas, el servidor, que irá instalado en la máquina a la que quiero acceder (Raspberry Pi) y el visor que se instalará en la máquina desde la que quiero acceder (ordenador portátil).
7.1. Instalación del servidor VNC: Para disponer de servidor VNC, instalaremos el paquete tightvncserver. Dicho paquete se encuentra en el repositorio 'universe' de Ubuntu. Para su instalación, debemos ejecutar desde una consola de root el siguiente comando:
// Instalación de vncserver # apt-get install tightvncserver
7.2. Puesta en marcha del servidor VNC: Para que se pueda acceder al servidor de forma remota mediante un cliente VNC, primero es necesario que en el servidor se esté ejecutando tightvncserver. Al ejecutar tightvncserver, se crea un servidor gráfico en un display virtual al que se puede acceder remotamente desde otros PCs de la red que dispongan del cliente VNC. La primera vez que ejecutemos tightvncserver en el servidor, nos pedirá que proporcionemos una contraseña que será la contraseña que deberán utilizar los clientes para conectarse. Esta contraseña se puede cambiar en cualquier momento ejecutando el comando 'vncpasswd' en el servidor.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 15
// Creación de un servidor grafico # tightvncserver :1 -geometry 1280x800 -depth 24
Con el comando anterior estoy creando un nuevo servidor gráfico en un display virtual cuyo número de display es el :1, su tamaño es de 1280 x 800 píxels y una profundidad de color de 24 bits/pixel (true color). Al lanzar el comando tightvncserver con el usuario root, cuando me conecte de forma remota, accederé como root.
7.3. Instalación de VNC Viewer (Windows): En la web del producto podemos descargar una copia. Como toda aplicación de control remoto, RealVNC tiene dos componentes: el servidor (que se instala en el equipo controlado) y el cliente (que se usa en el equipo que va a controlar). Para bajar sólo este último, podemos escoger directamente VNC Free Edition Viewer for Windows. La instalación del programa se reduce a la típica secuencia de pulsaciones de Next – Next – Next… Install. Las opciones marcadas por defecto son adecuadas. Casi al final de la copia de archivos en el disco duro, aparecerá un menú como éste:
Debemos pulsar el botón Configure y escribir dos veces la contraseña con la que accederemos desde el exterior. Debido a que nuestro PC servidor quedará a merced de quien logre el acceso, esta contraseña ha de ser muy sólida. Es recomendable que tenga al menos ocho caracteres (cuantos más, mejor) y que combine mayúsculas, minúsculas, números y símbolos, de forma aleatoria. Usar palabras de diccionario, en cualquier idioma, es equivalente a abrir las puertas de nuestro ordenador a media internet. Para el resto de la configuración sólo debemos dar a continuar en cada ventana que nos aparezca. Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 16
Una vez instalado, lo arrancaremos desde Inicio > Programas/Todos los programas > RealVNC > VNC Viewer 4 > Run VNC Viewer, o en mi caso desde el escritorio, ya que creé un acceso directo al programa.
No hay mucha complicación en este menú. En la casilla debemos meter la IP o dominio del servidor de la Raspberry Pi. Después de introducir la contraseña en el siguiente menú, que previamente habíamos definido ya tendremos control sobre el servidor.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 17
8. Conexión vía SSH. Muchas veces es necesario acceder remotamente a un sistema GNU/Linux para efectuar tareas de diversa índole, como mantenimiento, reconfigurar servicios, buscar archivos, etc. En esta tarea juega un papel vital el uso de SSH (secure shell) que permite acceder al sistema remoto usando una conexión cifrada (encriptada), dándonos acceso a una línea de comandos del sistema remoto. Pero hay ocasiones en que esto no es suficiente. Hay veces en las que es necesario operar con el sistema remoto más allá de la línea de comandos. Es ahí donde aparece la necesidad de escritorios remotos, de ejecución remota de programas gráficos y la necesidad de cifrar esas conexiones. Este apunte está dirigido a lograr esto de una manera que se presente clara y concisa. En este caso necesito acceder de manera remota desde mi ordenador portátil hasta la Raspberry Pi, para lo cual detallaré los pasos realizados para obtener dicha conexión remota.
8.1. ¿Qué es PuTTY y para qué sirve? PuTTY es un cliente SSH, Telnet, rlogin, y TCP raw con licencia libre. Disponible originalmente sólo para Windows, ahora también está disponible en varias plataformas Unix, y se está desarrollando la versión para Mac OS clásico y Mac OS X. Con PuTTY podremos conectarnos a servidores remotos iniciando una sesión en ellos que nos permitirá ejecutar comandos. El ejemplo más claro es cuando empleamos PuTTY para ejecutar comandos en un servidor VPS y así poder instalar algún programa o configurar alguna parte del servidor. Como ejemplo de La parte de cliente Telnet, es su uso para conectarse a nuestro router domestico para configurarlo a través de Telnet y abrir puertos, etc. Resumiendo, con PuTTY conseguimos abrir una sesión de línea de comandos en el servidor remoto para administrarlo.
8.2. Ventajas de PuTTY Una pregunta que puede surgir es ¿por qué usar PuTTY? ¿Cuáles son sus ventajas? Esta aplicación es como todas, tiene sus partes buenas y partes malas, pero si es cierto que mayormente tiene grandes ventajas como las siguientes: Es gratuito y de código abierto. Disponible para varias plataformas (Windows y Linux). Es una aplicación portable. Interfaz sencilla y manejable. Muy completo y ofrece una gran flexibilidad con multitud de opciones. Está en constante desarrollo.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 18
8.3. Instalación de PuTTY en Windows 10. Descargar PuTTY PuTTY se puede descargar directamente desde su página oficial, que no luce un gran diseño pero nos permite descargar PuTTY gratis e incluso otras aplicaciones complementarias.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 19
Utilizar PuTTY
Lo primero que debemos hacer, es descargar PuTTY. Una vez que cargamos PuTTY, nos encontraremos con la siguiente pantalla:
Esta es la pantalla de sesión. Aquí es donde iniciaremos sesión. En el apartado Host Name, tenemos que introducir el nombre o dirección IP de la máquina a la cual vamos a acceder. A la derecha, tenemos Port, donde introducimos el puerto. Hay que tener en cuenta el tipo de acceso que deseemos hacer, eso se controla en Connection Type. Tenemos 5 posibilidades:
Raw Telnet RLogin SSH Serial
En el caso de este proyecto, si recordamos, inicialmente configuramos una IP estática para la Raspberry Pi (192.168.1.50)
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 20
Esa es la IP que utilizaré para establecer la conexión remota.
El puerto 22 lo dejaré por defecto y el tipo de conexión utilizada será SSH.
Una vez introducidos los parámetros de conexión, pulso sobre el botón “open”, para abrir la conexión, momento en el que aparecerá una ventana de comando que me solicitará los datos de usuario y contraseña de acceso a la Raspberry Pi.
Como yo no modifiqué los datos de acceso de usuario y contraseña de la Raspberry Pi que trae por defecto, el usuario de acceso será “pi” y la contraseña “raspberry”.
Una vez introducidos el usuario y password, se muestra la información en la que nos informa de que la conexión se ha establecido con éxito.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 21
Se puede apreciar en la ventana anterior, como aparece la IP de la máquina desde la que estamos accediendo a la raspberry Pi (192.168.1.19), mi ordenador portátil, para lo cual compruebo que esto es cierto, abriendo una ventana de comando en mi PC y ejecutando el comando “ipconfig”, para averiguar la ip de mi máquina.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 22
De esta manera queda comprobada la conexión y acceso remoto desde mi ordenador portátil con sistema operativo Windows 10, hasta la Raspberry Pi con sistema operativo Raspbian, basado en Linux (Debian).
También ejecuto un “ifconfig” desde la ventana de PuTTY para comprobar que acceso es correcto.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 23
9. Conexión de la Webcam. Lo primero será hacernos con una cámara USB compatible con Raspberry, para lo cual nada mejor que consultar esta lista de compatibilidad, aunque el hecho de que no exista nuestra cámara en la misma no significa que no haya compatibilidad. por lo que antes de tirar la toalla podemos hacer uso de los consejos comentados en la entrada Raspberry Pi y cámara USB (1) – paso(3) – que nos ayudará a comprobar si el S.O. Linux “ve” o no nuestra cámara. En nuestras pruebas hemos usado el modelo HD-2300 de la marca Hewlett-Packard (HP) con resultados bastante buenos.
Otra opción es – tras reconectar nuestra cámara – ejecutar los comandos dmesg | tail y lsusb para comprobar que el dispositivo detectado como cámara también lo está en la lista de dispositivos USB.
En el primer caso ejecuto dmesg | tail y se puede apreciar como obtengo información de los dispositivos USB conectados a la Raspberry y efectivamente aparece.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 24
En el segundo caso ejecuto dmesg | lsusb y de igual manera aparece nuestro dispositivo, lo cual nos da la seguridad que es compatible con la Raspberry PI.
Si deseamos obtener información ampliada sobre las características de nuestra webcam debemos teclear el siguiente comando: lsusb -d03f0:e207 –v
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 25
10. Instalación del visor de la cámara web. El software que voy a utilizar para comprobar el funcionamiento de la cámara es GUVCview. GUVCview es un proyecto basado en luvcview que permite la captura de imágenes y grabaciones de vídeo desde un dispositivo de entrada válido, dispone de una interfaz gráfica muy sencilla hecha con GTK2 y desde la versión 0.9.9 se puede controlar a través de comandos de consola lo que lo hace ideal para integrarlo con otras aplicaciones como: ekiga, cheese, mplayer, skype y nuestras propias aplicaciones. El objetivo de esta pequeña guía era ver el comportamiento de Raspberry Pi en la captura y grabación de vídeo a través de una Webcam como dispositivo de entrada y este programa me ha parecido ideal para realizar estas pruebas ya que está incluido en los repositorios de Lubuntu 13.10.
10.1. Instalación de GUVCview. La instalación de GUVCview es muy sencilla tan solo tenemos que teclear en la terminal: sudo apt-get install guvcview
Lo siguiente es acceder desde el modo gráfico de Raspbian, desde el escritorio y localizar la aplicación en el menú/sound & video/guvcview
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 26
Al ejecutar el programa aparece la ventana del visor con la imagen en tiempo real.
Dos pantallas principales componen esta aplicación: en primer lugar el Centro de Control, donde se encuentran las diferentes herramientas que ofrece para personalizar tus capturas y en segundo lugar, la pantalla donde se ve la imagen que la webcam está tomando.
CENTRO DE CONTROL
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 27
VIDEO
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 28
11. Utilización del software Motion. Motion es una aplicación que permite controlar la señal de vídeo de una o varias cámaras y que además detecta si una parte significativa de la imagen cambia. O lo que es lo mismo: detecta movimiento. Este programa está escrito en C y está orientado a ser usado con Linux -usando la interfaz de video4linux. La utilidad se aprovecha bajo la línea de comandos, y su salida pueden ser imágenes JPEG o PPM y también secuencias de vídeo MPEG. Hay que tener en cuenta que Motion es una herramienta de línea de comandos y puede funcionar como un daemon con apenas consumo de recursos. El artículo de UnixMen nos indica lo que Motion puede hacer, y destaca algunas opciones interesantes:
Tomar capturas de movimiento Mostrar múltiples dispositivos de vídeo al mismo tiempo Mostrar múltiples entradas de vídeo en una tarjeta de captura al mismo tiempo Webcam con streaming en directo (usando multipart/x-mixed-replace) Creación en tiempo real de películas MPEG usando librerías de FFmpeg Tomar fotos de forma automática cada cierto tiempo Tomar fotos de forma automática con intervalos irregulares usando cron Ejecutar comandos externos cuando se detecta movimiento (por ejemplo, mandar un SMS o un mail) Seguimiento del movimiento (se necesita hardware especial) Suministro de eventos a una base de datos MySQL o PostgreSQL Suministro de vídeo a un dispositivo loopback de video4linux para ver el vídeo en tiempo real Montones de proyectos de usuarios relacionados con interfaces web, etc. Configurable por el usuario Control a través del navegador Control automático del ruido y el umbral de la imagen
11.1. Instalación de Motion Para instalar Motion tendremos que hacer lo siguiente: En Ubuntu/Debian y derivadas, debemos usar el siguiente comando: sudo apt-get install motion
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 29
Una vez que hemos instalado Motion, debemos proceder a su configuración, para lo cual debemos acceder al archivo de configuración que está en la siguiente ruta: /etc/motion/motion.conf
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 30
Para más facilidad, y dado el tamaño del fichero, comentamos la zona del mismo donde se localizan los parámetros a modificar, además de añadir un pequeño comentario sobre su utilidad.
Debajo se puede ver el archivo de configuración al que se ha accedido desde el modo gráfico.
Editamos varios parámetros para adecuar el hardware/software a nuestro gusto. Posteriormente podemos ir probando alguna de las opciones que el fichero motion.conf nos permite retocar, de momento ajustamos los siguientes: > En zona ## Daemon ## daemon ON Su utilidad es obvia, con esto permitimos la ejecución del demonio para que se arranque como un servicio.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 31
> En zona ## Capture device options ## En este caso voy a mantener los parámetros por defecto de altura y ancho de la pantalla de imagen, así como el valor del número de imágenes que serán capturadas por segundo.
> En zona ## Live stream server ## Aquí tengo modificar dos parámetros, el primero será el del puerto ´que quiero que la aplicación utilice para abrir el servidor webcam, en este caso he elegido el puerto 8081, el cual tendré que tener en cuenta a posteriori, cuando quiera acceder desde el navegador web.
Lo siguiente será modificar el parámetro stream_localhost que por defecto aparece en on, pero que necesitamos tenerlo en off para poder acceder desde internet y no solo desde la red local.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 32
Una vez hecho esto, lo que tenemos que hacer es guardar los cambios realizados en el archivo de configuración.
Y por último tenemos que editar el segundo archivo de configuración que se encuentra en la siguiente ruta: /etc/default/motion
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 33
Y aquí lo que tenemos que hacer es cambiar el valor que viene por defecto =no y en su lugar poner =yes, esto se habilitar el demonio.
Una vez hecho esto, salvamos los cambios y cerramos el archivo de configuración.
Ahora nos queda resetear el servicio para que la aplicación funciones, para lo cual desde una consola terminal, ejecutaremos el siguiente comando: Sudo service motion restart
Ya solo nos queda comprobar si la imagen se muestra en el navegador tanto desde nuestra red local, como desde otra red exterior.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 34
12. Pruebas en red local. Las pruebas a realizar aquí son muy sencillas, lo que voy a a hacer es acceder a la IP con la que configuramos la Raspberry Pi (192.168.1.50) y al puerto elegido (8081), desde diferentes ordenadores de mi red local. Primero voy a acceder desde un ordenador portátil con sistema operativo Windows 10 y un navegador Firefox, este ordenador es que estoy utilizando para acceder de manera remota a la Raspberry Pi. La imagen que se muestra es del exterior de mi domicilio. En la barra de dirección del navegador se puede ver la dirección IP y el puerto. En el centro de la ventana del navegador se ve la imagen
Aumentando la imagen, se pueden ver los datos de fecha y hora de la imagen mostrada
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 35
La siguiente captura que se muestra, está tomada desde un ordenador Apple Mac conectado a mi red local por cable, y se ha utilizado el navegador Safari.
Por último voy a acceder desde un teléfono móvil conectado a mi red local por wifi.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 36
13. Pruebas en red exterior. Para poder acceder desde el exterior de mi red local a la webcam server necesitaba crearme un DNS dinámico para poder acceder desde mi IP pública y así poder acceder desde una dirección web y no desde una dirección IP. En este caso yo elegí los servicios de la compañía No-IP.
Tras registrarme en su página.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 37
Procedí a crear el DNS dinámico y un Hostname, tal y como se muestra en la captura de abajo. https://www.raulcastilla.no-ip.org:8081
Por último solo me queda redirigir el puerto 8081 en el router de mi compañía de internet para poder acceder al servidor webcam en la IP 192.168.1.50. El router es un Hitron CDE-30364.
El Hitron CDE-30364 es un cable-módem-router con WiFi y compatible con DOCSIS 3.0.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 38
Soporta hasta 400 Mbps con 8 canales de bajada y hasta 108 Mbps con 4 de subida. Cuenta con cuatro puertos Ethernet 10/100/1000 y WiFi 802.11n. Además, dispone de un puerto USB 2.0 que por el momento está deshabilitado por parte de ONO. El sistema operativo base de este cablemodem-router es Linux.
Para redirigir el puerto, accedo al menú de configuración del router y en el apartado Firewall, existe una pestaña denominada Redir de Puerto, que es donde introduzco los parámetos necesarios.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 39
Ya por último solo me queda acceder desde una red exterior al servidor webcam, para lo cual utilizaré mi teléfono móvil el cual estará conectado a la red de datos.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 40
14. Referencias. Respecto al software considero fundamental estudiar la evolución y describir el sistema operativo que utiliza el Raspberry Pi, esto es Linux en la versión Debian (Jessie-Raspbian). Respecto al hardware de la Raspberry Pi, se describe los principales estándares o directivas técnicas internacionales, su configuración electrónica, fundamento teórico y además una descripción general de redes inalámbricas.
14.1. Linux 14.1.a. Breve historia de Linux. Unix es uno de los sistemas operativos más populares del mundo debido a su extenso soporte y distribución. Originalmente fue desarrollado como sistema multitarea con tiempo compartido para miniordenadores y mainframes a mediados de los 70. Desde entonces se ha convertido en uno de los sistemas más utilizados a pesar del problema de su estandarización y de su interfaz con el usuario. Linux es una versión de UNIX de libre distribución, desarrollada en sus inicios por Linus Torvalds en la Universidad de Helsinki, Finlandia. Debido al internet, el desarrollo de LINUX se realizó con la participación de muchos programadores y expertos de UNIX a lo largo y ancho del mundo. El 05 de octubre de 1991, se anunció la primera versión de Linux la 0.02, luego, en diciembre del año 1993, el núcleo llego a la revisión 0.99pl14, una aproximación a la versión 1.0. Para noviembre del año 2004, el núcleo se encontró en la versión 2.6 parche 8 y actualmente existen cientos de diferentes distribuciones o versiones que están disponibles para computadoras de escritorio, portátiles e inclusive para dispositivos móviles; tal es el caso de la popular plataforma Android fue desarrollada utilizando como núcleo a LINUX.
14.1.b. Características del S. O. Linux. Linux es una implementación versátil y un clónico del sistema operativo UNIX que corre en microprocesadores Intel x386, además de otras plataformas; soporta un amplio rango de programas, desde TEX a X Windows, del compilador GNU C/C++ a TCP/IP y distribuida gratuitamente en los términos de la licencia GNU. El Raspberry Pi está diseñado para trabajar con el sistema operativo GNU/Linux. Hasta el año 2012, muchas de las versiones de Linux se han utilizado con el Raspberry Pi (chip BCM2835), incluyendo Debian, Fedora Remix y Arch Linux, con la ventaja propia que todas sus versiones son de código abierto, a más de la compatibilidad entre cada uno de ellos, como los programas escritos en el sistema Debian funcionaran perfectamente en Arch Linux y viceversa.
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 41
Como todo sistema operativo, LINUX tiene exigencias en el hardware y generalmente cada empresa distribuidora ofrece la lista completa de los componentes que ellos soportan, un ejemplo es la distribución RED HAT. Para aplicaciones en tiempo real, es necesario tener la capacidad de leer señales de entrada, procesarlas y producir salidas, miles de veces por segundo, como por ejemplo, un CD tiene una frecuencia de muestreo (sample rate) de 44.1 kHz – lo que significa que por cada muestra de dato, se tiene únicamente 1/44100 segundos (22.6 microsegundos) para ejecutar todo el procesamiento. Siendo LINUX un sistema operativo multitarea utilizado por el Raspberry Pi, no garantiza que se tenga el control total del CPU durante un intervalo de pocos microsegundos porque el sistema operativo podría estar ocupado comunicándose con uno de sus puertos. En resumidas cuentas, el sistema operativo actualmente disponible en el Raspberry Pi no es una solución acorde a las aplicaciones de tiempo-real.
14.2. Raspbian Raspbian es una distribución del sistema operativo GNU/Linux y por lo tanto libre basado en Debian Wheezy (Debian 7.0) para la placa computadora (SBC) Raspberry Pi, orientado a la enseñanza de informática. El lanzamiento inicial fue en junio de 2012. Técnicamente el sistema operativo es un port no oficial de Debian Wheezy armhf para el procesador (CPU) de Raspberry Pi, con soporte optimizado para cálculos en coma flotante por hardware, lo que permite dar más rendimiento en según qué casos. El port fue necesario al no haber versión Debian Wheezy armhf para la CPU ARMv6 que contiene el Raspberry PI. La distribución usa LXDE como escritorio y Midori como navegador web. Además contiene herramientas de desarrollo como IDLE para el lenguaje de programación Python o Scratch, y diferentes ejemplos de juegos usando los módulos Pygame. Destaca también el menú "raspi-config" que permite configurar el sistema operativo sin tener que modificar archivos de configuración manualmente. Entre sus funciones, permite expandir la partición root para que ocupe toda la tarjeta de memoria, configurar el teclado, aplicar overclock, etc. El 17 de diciembre de 2012, junto a la versión 2012-12-16-wheezy-raspbian de Raspbian, se lanzó la tienda de aplicaciones "Pi Store", que en el momento de salida incluía desde aplicaciones como LibreOffice o Asterisk a juegos como Freeciv o OpenTTD. En esta plataforma se puede poner a disposición de todos los usuarios de Raspbian, mediante moderación y posterior lanzamiento, contenidos gratuitos o de pago, como archivos binarios, código python, imágenes, audio o vídeo. Además se quiere incluir documentación acerca del Raspberry Pi como la revista MagPi y tutoriales de proyectos. Al ser una distribución de GNU/Linux las posibilidades son infinitas. Todo software de código abierto puede ser [compilación de programas|recompilado]] en la propia Raspberry Pi para Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 42
arquitectura armhf que pueda ser utilizado en el propio dispositivo en caso de que el desarrollador no proporcione una versión ya compilada para esta arquitectura. Además esta distribución, como la mayoría, contiene repositorios donde el usuario puede descargar multitud de programas como si se tratase de una distribución de GNU/Linux para equipos de escritorio. Todo esto hace de Raspberry Pi un dispositivo que además de servir como placa con microcontrolador clásica, tenga mucha de la funcionalidad de un ordenador personal. Lo que lo puede convertir en una alternativa a los ordenadores personales, especialmente para personas con pocos recursos, para la extensión de la informática en países subdesarrollados o para aplicaciones que no soliciten muchos [requisito computacional|requerimientos]].
14.3. Diagrama de flujo
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 43
14.4. Diagrama de conexiones
Imagen real del proyecto
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 44
Conexión de dispositivos a la Raspberry Pi
Webcam en posición de captura de imágenes
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 45
15. Fuentes consultadas. https://www.raspberrypi.org/ https://es.wikipedia.org/wiki/Raspberry_Pi http://www.raspberrypi-spanish.es/foro/ http://raspberryparatorpes.net/ http://www.redeszone.net/raspberry-pi/raspbian/ http://www.raspberryshop.es/guia-completa-raspberry-pi.php https://www.youtube.com/watch?v=1yGi7_bWbFU http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome http://guvcview.sourceforge.net/ http://www.trebol-a.com/2007/09/29/deteccion-de-movimientos-con-motion/
Proyecto fin de ciclo ASIR (Raúl Castilla García)
Página 46