Documente Academic
Documente Profesional
Documente Cultură
AUTORES:
Cdigo: 20122273010
Cdigo: 20122273002
Director:
HERMES JAVIER ESLAVA BLANCO, M.Sc. Ph.D(c)
PGINA DE APROBACIN
Observaciones
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
_______________________________
Hermes Javier Eslava Blanco, m.sc. ph.d(c)
Director Del Proyecto
_______________________________
Jos David Cely Callejas
Jurado
Fecha de Presentacin:
Resumen
El objeto principal del proyecto es el diseo de un dispositivo de seguridad en vehculos capaz de
capturar datos de posicin geogrfica, tomar fotografas y enviar esta informacin va internet, para
ser alojados en una base de datos y visualizados a travs de una pgina web. Este prototipo se dise
usando la plataforma Raspberry Pi 2 Modelo B, la cual proporciona mayores garantas en trminos de
compatibilidad y versatilidad. Se dise una base de datos en un servidor remoto con MySQL para la
importacin de la informacin recibida y permitirle al usuario final previamente registrado, consultar
esta informacin va web.
Con este prototipo se pretende ofrecer una alternativa tecnolgica para mitigar la inseguridad en
vehculos de trasporte pblico y reforzar el sistema integral de seguridad para el beneficio de la
comunidad en general.
Abstract
The main purpose of the project is the design of a vehicle safety device enable for capturing
geographical positional data, take pictures and send information by Internet, to be housed in a
database and displayed through a web page. This prototype was designed using the platform
Raspberry Pi 2 Model B, this platform provides greater guarantees in terms of compatibility and
versatility. The database was designed on a remote server with MySQL for the import of the
information received and permits the end user previously registered, access this information via the
web.
With this prototype is intended to provide a technological alternative to mitigate insecurity in public
transport vehicles and reinforce the comprehensive security system for benefit of the community.
Contenido
Resumen................................................................................................................................................... 4
Contenido ................................................................................................................................................. 5
Lista de tablas ........................................................................................................................................... 8
Lista de figuras ......................................................................................................................................... 9
Lista de trminos .................................................................................................................................... 10
Glosario .................................................................................................................................................. 11
Introduccin ........................................................................................................................................... 12
1.
2.
OBJETIVOS .............................................................................................................................. 13
1.1.1.
1.1.2.
METODOLOGA............................................................................................................................... 14
2.1.
2.2.
2.3.
3.
4.
4.1.1.
4.2.
Estructura de cabecera................................................................................................... 21
4.2.1.
4.3.
4.4.
CSS .......................................................................................................................................... 23
4.5.
JAVA SCRIPT............................................................................................................................ 24
4.5.1.
4.6.
4.7.
SERVIDOR FTP......................................................................................................................... 25
4.8.
4.9.
4.9.1.
4.9.2.
4.9.3.
MySQL............................................................................................................................. 28
4.9.4.
4.10.
GPS...................................................................................................................................... 30
4.10.1.
Introduccin ................................................................................................................... 30
4.10.2.
4.10.3.
Funcionamiento.............................................................................................................. 30
4.10.4.
4.10.5.
4.10.6.
GPS diferencial................................................................................................................ 32
4.10.7.
4.10.8.
4.10.9.
4.11.
4.11.1.
4.11.2.
4.12.
RASPBERRY PI ..................................................................................................................... 37
4.12.1.
4.12.2.
4.12.3.
4.13.
4.13.1.
5.
Python ............................................................................................................................ 42
5.1.1.
5.1.2.
5.1.3.
5.2.
6.
5.2.1.
5.2.2.
5.2.3.
5.2.4.
Visualizacin ................................................................................................................... 72
Pruebas tcnicas............................................................................................................................. 75
6.1.
7.
Conclusiones................................................................................................................................... 78
A.
B.
D.
E.
F.
H.
8.
Bibliografa ..................................................................................................................................... 90
Lista de tablas
Tabla 1: Fases del proyecto .................................................................................................................... 16
Tabla 2: Comparacin entre plataformas electrnicas modernas compuestas. ................................... 17
Tabla 3: Comparacin entre lenguajes de programacin. ..................................................................... 18
Tabla 4: Comparacin entre servidores de mapas. ................................................................................ 20
Tabla 5: Comparacin entre los tiempos de respuesta de los mapas.................................................... 20
Tabla 6: Correlacin entre coordenadas Decmales y Sexagesimales. [21] .......................................... 34
Tabla 7: Comparacin de la velocidad de los estndares de la telefona mvil. [23] ............................ 36
Tabla 8: Conexiones GPIO. [26] .............................................................................................................. 38
Tabla 9: Extensin de conexiones GPIO para modelo B versin 2. [26]................................................. 39
Tabla 10: Es pesificaciones tcnicas del mdulo GPS. [30] .................................................................... 41
Tabla 11: Tabla de Monitoreo en MySQL ............................................................................................... 66
Tabla 12: Tabla de registro ..................................................................................................................... 67
Lista de figuras
Figura 1: Modelo Top-Down para el diseo de Hardware. .................................................................... 14
Figura 2: Modelo cascada para el diseo de software ........................................................................... 15
Figura 3: Entorno de Administracin WampServer. [5] ......................................................................... 23
Figura 4. Representacin de mapa en Google Maps. [8] ....................................................................... 24
Figura 5: Gestores de bases de datos. [14] ............................................................................................ 28
Figura 6: Clculo de la posicin usado tres satlites. [17] ..................................................................... 31
Figura 7. Divisin de la superficie terrestre en paralelos y meridianos. [20]......................................... 33
Figura 8: Placa Raspberry pi. [24] ........................................................................................................... 37
Figura 9: Raspberry pi Modelo B. [25].................................................................................................... 38
Figura 10: Modulo cmara para Raspberry pi. [28] ............................................................................... 39
Figura 11: Modulo GPS Ublox NEO 6M. [29] .......................................................................................... 40
Figura 12: Interfaz del programa SD Formatter. [34] ............................................................................. 45
Figura 13: Pantalla inicial de Pi Recovery. [36] ...................................................................................... 47
Figura 14: Men principal de configuracin de Raspbian. [36] ............................................................. 47
Figura 15: Men de opciones de internacionalizacin de Raspbian. [36] ............................................. 48
Figura 16: XMING con Raspberry Pi iniciar startlxde. [38] ..................................................................... 50
Figura 17: Conexin de la cmara a la interfaz CSI de la Raspberry Pi. [39] .......................................... 53
Figura 18: Esquema y conexin de mdulo Ublox M6 a Raspberry pi. [41] .......................................... 56
Figura 19: Pantalla de terminal con datos del GPS. [41] ........................................................................ 57
Figura 20: Correo electrnico recibido de emergencia.......................................................................... 58
Figura 21: Datos almacenados para la importacin en la base de datos............................................... 58
Figura 22: Pantalla inicial de Sakis 3G interactivo. ................................................................................. 62
Figura 23: Interfaz de logeo de phpMyAdmin ....................................................................................... 64
Figura 24: Interfaz TYPSoft FTP Server ................................................................................................... 65
Figura 25: Esquema entidad relacin ..................................................................................................... 68
Figura 26: Diagrama de bloques del registro de usuario ....................................................................... 70
Figura 27: Diagrama de bloques inicio sesin ........................................................................................ 71
Figura 28: Entorno Web, consulta sin datos de tabla monitoreo .......................................................... 72
Figura 29: Entorno Web consulta datos tabla monitoreo ..................................................................... 72
Figura 30: Captura de coordenadas en Google Maps ............................................................................ 73
Figura 31: Google Developers equipo escritorio. ................................................................................... 75
Figura 32: Google Developers dispositivo mvil. ................................................................................... 76
Figura 33. Prueba de carga de conexin con 25 usuarios. ..................................................................... 76
Figura 34. Respuesta de pginas y estilos. ............................................................................................. 77
Figura 35. Tiempo respuesta plataforma web. ...................................................................................... 77
Lista de trminos
CSS:
XML:
WML:
MD5:
Message-Digest Algorithm 5
DBA:
SGBD:
SQL:
C:
Lenguaje de programacin
EGNOS:
MSAS:
GAGAN:
GPRS:
EDGE:
UMTS:
WCDMA:
CDMA:
HSDPA:
LTE:
SBC:
GPIO:
IDE:
UNIX:
Sistema operativo
10
Glosario
3G:
Browser:
API:
Apache:
Cmara:
Directorio:
FTP:
HTML:
HTTP:
JavaScript:
MySQL:
Raspberry PI: Mini ordenador que puede ser usado como servidor de contenidos.
Raspbian:
PHP:
Python:
SHELL:
11
Introduccin
Pensando en la vinculacin de proyectos que contribuyan a la mejora y desarrollo de los sistemas de
seguridad ciudadana, surge la necesidad de elaborar alternativas y estrategias en bsqueda del
fortalecimiento integral de seguridad.
La inseguridad en la ciudad es uno de los problemas ms sentidos por la poblacin, que afecta las
diversas actividades econmicas, sociales, recreativas, educativas, entre otras, con diferente
intensidad.
Segn el Observatorio de Seguridad de Bogot de la Cmara de Comercio, la percepcin de seguridad
en el primer semestre del 2013 es la siguiente. El taxi es la modalidad de transporte pblico
considerada ms segura por los encuestados; no obstante, su percepcin positiva se reduce en 7
puntos. El Transmilenio es sealado seguro solo por el 23% de los encuestados y el taxi por el 18%. En
el caso del taxi, indican que la posibilidad de solicitarlo directamente a la empresa, es la razn
principal para percibirlo como un medio de trasporte seguro. Quienes lo consideran inseguro, sealan
la posibilidad de ser vctima de paseo millonario y de fleteo. Quienes consideran que el Transmilenio
es seguro, sealan como razones ms importantes la presencia de polica y de vigilancia privada. Los
dems argumentan que hay exceso de personas e indican que se presentan casos de robos y atracos.
De esta manera, la Cmara de Comercio informa que el transporte pblico de pasajeros sigue siendo
uno de los escenarios donde se registra la mayor victimizacin, los ms altos niveles de percepcin de
inseguridad y de conflictividad en la ciudad. Por tanto, es preciso mejorar la calidad de la informacin
a fin de comprender la magnitud de los hechos que ocurren en el sistema de transporte de la ciudad y
proponer estrategias concretas y pblicas que permitan mejorar las condiciones de seguridad. [1]
En este caso, el proyecto est enfocado al diseo y desarrollo de un prototipo tecnolgico de
seguridad vehicular, que busca satisfacer las necesidades bsicas mediante envo de reportes
peridicos a una base de datos, de localizacin geogrfica del vehculo a travs de GoogleMaps,
capturas fotogrficas al interior del vehculo, direccin, estado de activacin automtica o de
emergencia, fecha y hora, de tal manera que esta informacin pueda ser consultada cuando el
usuario lo requiera en internet.
La proyeccin a futuro, es que el prototipo sirva como base para elaborar una plataforma ms
robusta, que contenga mayores elementos en los reportes y mejoras en la eficiencia operativa para
proporcionar un sistema de seguridad ms optimizado.
12
OBJETIVOS
Objetivo General
1.1.2.
Objetivos Especficos
Disear una base de datos para almacenar la informacin recibida y ser consultada va web.
13
2. METODOLOGA
A continuacin, se describe la metodologa implementada para el diseo del hardware y el software
utilizado para el funcionamiento general del proyecto.
2.1.
Para el desarrollo completo del dispositivo fsico se realiz con el diseo Top-Down. El diseo TopDown consiste en capturar una idea con un alto nivel de abstraccin, implementarla partiendo de la
misma, e incrementar el nivel de detalle segn sea necesario. El sistema inicial se va subdividiendo en
mdulos, estableciendo una jerarqua. Cada mdulo se subdivide cuantas veces sea necesario hasta
llegar a los componentes primarios del diseo como muestra el esquema de la figura.
2.2.
Para el desarrollo WEB y creacin de la base de datos, la eleccin del modelo de software para este
caso fue el modelo cascada, el desarrrollo secuencial de las fases permite que a medida que se
termina un bloque, le de vida al siguiente y permita compactar y complementar el desarrollo y
ejecucin del diseo. Este modelo, fue la mejor prctica encontrada para el tipo de proyecto
implementado. A continuacin la respresentacin del esquema.
14
2.3.
Para dar cumplimiento a los objetivos especficos, se siguieron una serie de actividades, las cuales dan
indicios del proceso seguido para la finalidad del proyecto.
En la siguiente tabla, se relacionan las actividades principales.
Investigacin y anlisis de las posibilidades de dispositivos electrnicos y nuevas
tecnologas que faciliten la creacin del hardware requerido.
Eleccin de la mejor opcin en relacin costo-beneficio y adquisicin de los materiales
indispensables para la fabricacin del hardware.
Diseo del sistema
fsico local
Diseo de un diagrama del circuito, acoplando los diferentes mdulos que interfieren
en el dispositivo.
Acoplamiento e implementacin de los mdulos electrnicos para la funcin
requerida.
Pruebas y revisin del funcionamiento del dispositivo, verificando la compatibilidad,
tiempos de respuesta y capacidad de almacenamiento.
15
Configuracin local de red del servidor para ser identificado en internet y lograr recibir
informacin externa enviada del dispositivo Raspberry.
Estudio sobre los diferentes lenguajes de programacin necesarios.
Manejo de comandos en la Shell del sistema operativo de la Raspberry.
Programacin de
cdigo fuente
Creacin del cdigo en Python para el control de los mdulos y el procesamiento de los
archivos en la Raspberry Pi.
Manejo y aplicacin del API de Google Maps para la incorporacin y modificacin, en
cdigo JavaScript, PHP y HTML.
Importacin de la informacin recibida con sentencias SQL, y programacin en HTML,
PHP y JavaScript para la publicacin de la informacin.
Adquisicin de los datos primordiales, como imgenes y coordenadas de
posicionamiento.
Validacin,
comparacin y
anlisis de los datos
transmitidos y
recibidos
16
17
18
19
20
4. MARCO TERICO
4.1.
4.1.1.
Estructura de cabecera
Informacin contextual de la pgina. Estos metadatos nos permiten indicar informacin que
puede no quedar clara en el contenido.
Referencia a otros ficheros. Todos aquellos recursos que necesite nuestra pgina deben estar
referenciados desde la cabecera. Por ejemplo, archivos de CSS y JavaScript, el icono de la
barra de direcciones, etc.
Por otro lado, en el cuerpo se encuentra todo el contenido de la pgina, desde el texto a las
imgenes, pasando por vdeos, enlaces, etc. Este contenido debe estar estructurado en diferentes
secciones y marcado correctamente. [2]
4.2.
A diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el servidor, por
eso nos permite acceder a los recursos que tenga el servidor; ejemplo: una base de datos. El
programa PHP es ejecutado en el servidor y el resultado enviado al navegador. Al ser PHP un lenguaje
21
4.2.1.
Caractersticas PHP
4.3.
WAMP SERVER
Es un acrnimo para describir un sistema de infraestructura que usa las siguientes herramientas
(Windows-Apache-MySQL-PHP, Perl o Python), este entorno de desarrollo web permite tener un
servidor propio o host local (instalado en el equipo). Es usado (entre otros) por desarrolladores y/o
programadores para realizar prcticas de sus proyectos web antes de subirlos al servidor web en
internet. [5]
Caractersticas:
Es gratuito.
22
4.4.
CSS
El concepto de hojas de estilo apareci por primera vez en 1996 cuando W3C public una
recomendacin nueva intitulada "Hojas de estilo en cascada" o CSS, su sigla en ingls.
El principio de las hojas de estilo, consiste en la utilizacin de un solo documento para almacenar las
caractersticas de presentacin de las pginas asociadas a grupos de elementos. Esto implica nombrar
un conjunto de definiciones y caractersticas de presentacin de las pginas, y activar esos nombres
para aplicarlos a una parte del texto. Por ejemplo, se pueden configurar los ttulos de una seccin
para que aparezcan en fuente Arial, en color verde y en cursiva.
Las hojas de estilo se desarrollaron para compensar los defectos de HTML con respecto a la
presentacin y al diseo de las pginas. HTML tiene varias etiquetas para modificar la presentacin y
definir los estilos del texto, pero cada elemento tiene su propio estilo, independientemente de los
elementos que lo rodean. Al utilizar hojas de estilo, cuando se necesite cambiar la apariencia de un
sitio que tiene cientos de pginas Web todo lo que hay que hacer es editar las definiciones de la hoja
de estilo en un solo lugar para cambiar la apariencia del sitio completo.
Se denominan "hojas de estilo en cascada" porque se pueden definir mltiples hojas y los estilos
pueden aplicarse a todas las pginas (con un sistema predefinido para resolver conflictos).
Las hojas de estilo pueden utilizarse para:
Lograr una apariencia uniforme de todo el sitio al activar una sola definicin de estilo en cada
pgina.
Cambiar un aspecto en todo el sitio Web con tan slo editar unas pocas lneas.
Hacer que los cdigos HTML sean ms fciles de leer ya que los estilos se definen por
separado.
Permitir que las pginas se carguen ms rpido ya que hay menos cantidad de HTML en cada
pgina.
23
4.5.
JAVA SCRIPT
JavaScript es un sencillo lenguaje de programacin, que presenta una caracterstica especial: sus
programas, llamados comnmente scripts, se enlaza en las pginas HTML y se ejecutan en el
navegador (Mozilla Firefox, Microsoft Internet Explorer,...). Estos scripts normalmente consisten en
unas funciones que son llamadas desde el propio HTML cuando algn evento sucede. De ese modo,
podemos aadir efectos como que un botn cambie de forma al pasar el ratn por encima, o abrir
una ventana nueva al pulsar en un enlace. [7]
4.5.1.
Es slo HTML, CSS y JavaScript trabajando junto. Los mapas son solo imgenes que se cargan en el
fondo a travs de peticiones ejecutadas por la tecnologa de AJAX, y se insertan en un <div> en la
pgina HTML. Mientras navegas en el mapa, el API enva informacin acerca de las nuevas
coordenadas y los niveles de zoom del mapa a travs de AJAX y esto retorna las imgenes.
El API consiste de archivos JavaScript que contienen las clases, mtodos y propiedades que se usan
para el comportamiento de los mapas. La ltima versin del API es la 3.0.
Las coordenadas estn expresadas usando nmeros decimales separados por coma. La latitud
siempre precede la longitud. La latitud es positiva si va despus del punto mostrado en el mapa y
negativo si va antes. La longitud es positiva si va arriba del punto y negativa si va debajo.
El cdigo a utilizar es el siguiente:
<script
src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
24
4.6.
SERVIDOR WEB
Los servidores web son los encargados de recibir las peticiones referidas a pginas o elementos de la
web a travs del protocolo http o https y de devolver el resultado de la peticin, que suele ser un
recurso alojado en el servidor. Normalmente es el navegador el que pide al servidor web el recurso
que desea el usuario, para finalmente recibir dicho recurso (si fue vlida la peticin) y traducirle si es
necesario a su forma legible por el usuario (es decir la traduccin de HTML la hace el navegador). [9]
4.7.
SERVIDOR FTP
Uno de los servicios ms antiguos de Internet, File Transfer Protocol permite mover uno o ms
archivos con seguridad entre distintos ordenadores proporcionando seguridad y organizacin de los
archivos as como control de la transferencia.
La seguridad se ha convertido en un tema candente. Durante aos, los servidores ftp comunicaban
con los clientes "en abierto," es decir, que la informacin de la conexin y de la contrasea era
vulnerable a la interceptacin. Ahora, los servidores ftp, tales como BulletProof FTP, SecureFTP,
SurgeFTP, TitanFTP, y WS_FTP, soportan SSL/TLS y utilizan el mismo tipo de cifrado presente en los
sitios web seguros. Con SSL/TLS, los servidores ftp pueden cifrar los comandos de control entre los
clientes del ftp y el servidor, as como los datos del archivo. Con la ayuda del PGP, como en WS_FTP
pro, los datos del archivo se aseguran todava ms con el cifrado pblico. [10]
4.8.
El algoritmo MD5 se utiliza como una funcin de codificacin o huella digital de un archivo. A menudo
empleado para codificar contraseas en bases de datos, el MD5 es igualmente capaz de generar una
huella de archivo para asegurar que no haya cambios en el mismo tras una transferencia, por
ejemplo. Un hash MD5 est compuesto por 32 caracteres hexadecimales. [11]
4.9.
BASES DE DATOS
Un sistema de bases de datos sirve para integrar los datos, organizar campos, registros y archivos. Lo
componen los siguientes elementos:
Hardware. Mquinas en las que se almacenan las bases de datos. Incorporan unidades de
almacenamiento masivo para este fin.
25
Datos. Incluyen los datos que se necesitan almacenar y los metadatos que son datos que
sirven para describir lo que se almacena en la base de datos.
Usuarios. Personas que manipulan los datos del sistema. Hay tres categoras:
Usuarios finales. Aquellos que utilizan datos de la base de datos para su trabajo cotidiano
que no tiene por qu tener que ver con la informtica. Normalmente no utilizan la base
de datos directamente, si no que utilizan aplicaciones creadas para ellos a fin de facilitar
la manipulacin de los datos. Estos usuarios slo acceden a ciertos datos.
Desarrolladores. Analistas y programadores encargados de generar aplicaciones para los
usuarios finales.
Administradores. Tambin llamados DBA (Data Base Administrator), se encargan de
gestionar las bases de datos. [12]
4.9.1.
Las bases de datos se pueden clasificar de varias maneras, segn el contexto que se est manejando o
su utilidad.
Segn variabilidad de datos.
Estas son bases de datos de solo lectura, utilizadas primordialmente para almacenar datos histricos
que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a
travs del tiempo, realizar proyecciones y tomar decisiones.
Estas son bases de datos donde la informacin almacenada se modifica con el tiempo, permitiendo
operaciones como actualizacin, borrado y adicin de datos, adems de las operaciones
fundamentales de consulta.
De acuerdo a su modelo de administracin de datos:
En este modelo los datos se organizan en una forma similar a un rbol (visto al revs), en donde
un nodo padre de informacin puede tener varios hijos. El nodo que no tiene padres es llamado raz,
y a los nodos que no tienen hijos se los conoce como hojas. Son especialmente tiles en el caso de
aplicaciones que manejan un gran volumen de informacin y datos muy compartidos permitiendo
crear estructuras estables y de gran rendimiento.
26
Son bases de datos cuyo nico fin es el envo y recepcin de datos a grandes velocidades, estas bases
son muy poco comunes y estn dirigidas por lo general al entorno de anlisis de calidad, datos de
produccin e industrial.
ste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos
dinmicamente. En este modelo, el lugar y la forma en que se almacenen los datos no tienen
relevancia (a diferencia de otros modelos como el jerrquico y el de red). Esto tiene la considerable
ventaja de que es ms fcil de entender y de utilizar para un usuario espordico de la base de datos.
La informacin puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia
flexibilidad y poder para administrar la informacin.
Son bases de datos ideadas para desarrollar aplicaciones muy concretas, los campos o atributos de
una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan
mtricas que se desean estudiar.
Este modelo, bastante reciente, y propio de los modelos informticos enfocado a objetos, trata de
almacenar en la base de datos los objetos completos (estado y comportamiento). Paradigma,
herencia y polimorfismo son de los principales conceptos que incorpora el paradigma de objetos.
Es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a travs de
inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Las
bases de datos deductivas son tambin llamadas bases de datos lgicas, a raz de que se basa en
lgica matemtica. [13]
27
4.9.2.
Un Sistema Gestor de Base de Datos (SGBD) es un sistema de software que permite la definicin
de bases de datos; as como la eleccin de las estructuras de datos necesarios para el
almacenamiento y bsqueda de los datos, ya sea de forma interactiva o a travs de un lenguaje de
programacin. Un SGBD relacional es un modelo de datos que facilita a los usuarios describir los
datos que sern almacenados en la base de datos junto con un grupo de operaciones para manejar
los datos.
Los SGBD relacionales son una herramienta efectiva que permite a varios usuarios acceder a los datos
al mismo tiempo. Brindan facilidades eficientes y un grupo de funciones con el objetivo de garantizar
la confidencialidad, la calidad, la seguridad y la integridad de los datos que contienen, as como un
acceso fcil y eficiente a los mismos. [14]
Algunos de los principales gestores de bases de datos son:
MySQL
Microsoft SQL Server
PostgreSQL
Oracle
4.9.3.
MySQL
Es un sistema gestor de bases de datos relacionales rpido, slido y flexible. Es idneo para la
creacin de bases de datos con acceso desde pginas web dinmicas, as como para la creacin de
cualquier otra solucin que implique el almacenamiento de datos, posibilitando realizar mltiples y
rpidas consultas. Est desarrollado en C y C++, facilitando su integracin en otras aplicaciones
desarrolladas tambin en esos lenguajes.
Es un sistema cliente/servidor, por lo que permite trabajar como servidor multiusuario y de
subprocesamiento mltiple, o sea, cada vez que se crea una conexin con el servidor, el programa
servidor establece un proceso para manejar la solicitud del cliente, controlando as el acceso
simultneo de un gran nmero de usuarios a los datos y asegurando el acceso a usuarios autorizados
solamente. [15]
28
4.9.4.
El Modelo de Entidad Relacin es un modelo de datos basado en una percepcin del mundo real que
consiste en un conjunto de objetos bsicos llamados entidades y relaciones entre estos objetos,
implementndose en forma grfica a travs del Diagrama Entidad Relacin.
Hablamos de ejemplares cuando nos referimos a una clase de objetos con caractersticas similares
(ejemplares=registros). Se puede definir como Entidad a cualquier objeto, real o abstracto, que existe
en un contexto determinado o puede llegar a existir y del cual deseamos guardar informacin.
Los Atributos son caractersticas o propiedades asociadas a la entidad que toman valor en una
instancia particular. Ejemplo: nombre, cdula, telfono.
Clave primaria: Se denomina Clave principal o primaria al atributo o conjunto mnimo de atributos
(uno o ms campos) que permiten identificar en forma nica cada instancia de la entidad, es decir, a
cada registro de la tabla. Las claves principales se utilizan cuando se necesita hacer referencia a
registros especficos de una tabla desde otra tabla. En un principio se puede identificar ms de un
atributo que cumpla las condiciones para ser clave, los mismos se denominan Claves candidatas.
Tipos de relaciones
29
4.10. GPS
Dado que el concepto principal de nuestro proyecto se basa en la tecnologa GPS, veremos a
continuacin algunos conceptos bsicos sobre el Sistema de Posicionamiento Global, GPS.
4.10.1.
Introduccin
4.10.2.
Sistema de satlites: Formado por 21 unidades operativas y 3 de repuesto en rbita sobre la tierra a
20.200 km con trayectorias sincronizadas para cubrir toda la superficie del globo. Se abastecen
mediante paneles de energa solar.
Estaciones terrestres: Envan informacin de control a los satlites para controlar las rbitas y realizar
el mantenimiento de toda la constelacin.
Terminales receptores: Nos indica la posicin en la que estamos, conocidas tambin como Unidades
GPS, son las que podemos adquirir en las tiendas especializadas.
4.10.3.
Funcionamiento
El receptor GPS funciona midiendo su distancia de los satlites, y usa esa informacin para calcular su
posicin. Esta distancia se mide calculando el tiempo que la seal tarda en llegar al receptor.
Conocido ese tiempo y basndose en el hecho de que la seal viaja a la velocidad de la luz (salvo
algunas correcciones que se aplican), se puede calcular la distancia entre el receptor y el satlite.
Cada satlite indica que el receptor se encuentra en un punto en la superficie de la esfera con centro
en el propio satlite y de radio la distancia total hasta el receptor.
Obteniendo informacin de dos satlites se nos indica que el receptor se encuentra sobre la
circunferencia que resulta cuando se intersectan las dos esferas.
Si adquirimos la misma informacin de un tercer satlite notamos que la nueva esfera solo corta el
crculo anterior en dos puntos. Uno de ellos se puede descartar porque ofrece una posicin absurda.
De esta manera ya tendramos la posicin en 3-D. Sin embargo, dado que el reloj que incorporan los
receptores GPS no est sincronizado con los relojes atmicos de los satlites GPS, los dos puntos
determinados no son precisos.
30
4.10.4.
Debido al carcter militar del sistema GPS, el Departamento de Defensa de los Estados Unidos se
reserva la posibilidad de incluir un cierto grado de error aleatorio que puede variar de los 15 a los 100
metros.
Aunque actualmente no aplique tal error inducido, la precisin intrnseca del sistema GPS depende
del nmero de satlites visibles en un momento y posicin determinados. Sin aplicar ningn tipo de
correccin y con ocho satlites a la vista, la precisin es de 6 a 15 metros; pero puede obtenerse ms
precisin usando sistemas de correccin (Ej: DGPS).
4.10.5.
Fuentes de error
31
4.10.6.
GPS diferencial
DGPS (Differential GPS) o GPS diferencial es un sistema que proporciona a los receptores de GPS
correcciones a los datos recibidos de los satlites GPS. Estas correcciones, una vez aplicadas,
proporcionan una mayor precisin en la posicin calculada.
El sistema de correcciones funciona de la siguiente manera:
Una estacin base en tierra, con coordenadas muy bien definidas, escucha los satlites GPS.
Calcula su posicin por los datos recibidos de los satlites.
Dado que su posicin est bien definida, calcula el error entre su posicin verdadera y la
calculada, estimando el error en cada satlite.
Se enva estas correcciones al receptor a travs de algn medio.
Existen varias formas de obtener las correcciones DGPS. Las ms usadas son:
Recibidas por radio a travs de algn canal preparado para ello, como el RDS en una emisora
de FM.
Descargadas de Internet con una conexin inalmbrica.
Proporcionadas por algn sistema de satlites diseado para tal efecto. En Estados Unidos
existe el WAAS, en Europa el EGNOS, en Japn el MSAS y en India el GAGAN, todos
compatibles entre s.
Para que las correcciones DGPS sean vlidas, el receptor tiene que estar relativamente cerca de
alguna estacin DGPS, generalmente, a menos de mil kilmetros.
La precisin lograda puede ser de unos dos metros en latitud y longitud, y unos tres metros en altitud.
[18]
4.10.7.
Coordenadas GPS
Las coordenadas geogrficas son un conjunto de lneas imaginarias que permiten ubicar con exactitud
un lugar en la superficie de la Tierra. Este conjunto de lneas corresponden a los meridianos y
paralelos.
Estas lneas o crculos son trazados por los cartgrafos sobre los mapas.
Cualquier punto de nuestro planeta puede ubicarse al conocerse el meridiano de longitud y el
paralelo de latitud. [19]
32
Latitud
La latitud de un punto es la medida del ngulo formado por el plano ecuatorial con la lnea que une a
ste punto al centro de la tierra.
Por regla general est comprendido entre -90 y 90 . Los valores negativos son para ubicaciones en
el hemisferio sur, y el valor de la latitud es de 0 en el ecuador.
Longitud
La longitud tiene el mismo principio, con la diferencia en que no existe una referencia natural como lo
es el ecuador para la latitud. La referencia para la longitud ha sido establecida arbitrariamente en el
Meridiano de Greenwich (que pasa a travs del Real Observatorio de Greenwich en las afueras de
Londres), y la longitud de un punto es la medida angular formada por el semiplano del eje de la tierra
que pasa por el meridiano de Greenwich, y el semiplano del eje de la tierra que pasa por el punto.
Como hay 180 meridianos en cada hemisferio, la mayor longitud que se puede medir en cada uno es
de 180, tanto en direccin este como en direccin oeste.
Un tercer componente
Los lectores meticulosos habrn notado que hace falta un tercer elemento para localizar un punto,
este es la altitud. En la mayora de los casos las coordenadas GPS son necesarias para ubicar lugares
en la superficie terrestre, lo que le resta importancia a dicho parmetro. Sin embargo, es igual de
necesario que la latitud y longitud para poder definir una ubicacin GPS de manera completa y
precisa.
4.10.8.
Como hemos visto, las definiciones anteriores toman en cuenta varios parmetros que deben ser
establecidos o identificados para futuras referencias:
33
Estos cinco criterios son las bases de los distintos sistemas de coordenadas usados a travs de la
historia.
Actualmente el sistema geodsico ms usado es el WGS 84 (usado mayormente para las coordenadas
GPS).
4.10.9.
Las dos principales unidades de medidas son las coordenadas decimales y sexagesimales.
Coordenadas decimales
Coordenadas sexagesimales
Las coordenadas sexagesimales tienen tres componentes: grados, minutos y segundos. Cada uno de
estos componentes suele ser un nmero entero, pero se puede usar un nmero decimal en los
segundos si se desea una mayor precisin.
Un grado tiene 60 minutos y un minuto consiste de 60 segundos de ngulo del arco.
A diferencia de las coordenadas decimales, las sexagesimales no pueden ser negativas. En dicho caso,
las letras E u O son aadidas a la longitud para especificar la posicin este-oeste desde el meridiano
de Greenwich, y a la latitud se le agregan las letras N o S para designar el hemisferio (Norte o Sur).
[21]
Coordenadas Decimales
Coordenadas Sexagesimales
Latitud
Longitud
Latitud
Longitud
0 a 90
0 a 180
0 a 90
0 a -180
0 a -90
0 a 180
0 a -90
0 a -180
34
4.11.1.
Telefona Mvil 3G
EDGE (Enhanced Data rates for GSM of Evolution o Tasas de Datos Mejoradas para la evolucin de
GSM) tambin conocida como EGPRS (Enhanced GPRS) es el siguiente estndar que aparece en la
telefona mvil para la transmisin de datos. Esta tecnologa funciona con redes GSM que tengan
implementado GPRS y las actualizaciones necesarias propias de EDGE, por lo que es relativamente
sencilla su implementacin por parte de los operadores.
Debido a su compatibilidad con GSM hay autores que la consideran una tecnologa puente entre 2G y
3G, es decir, 2.5G. Sin embargo, EDGE puede alcanzar una velocidad de transmisin terica de 384
Kbps, con lo cual cumple los requisitos de la ITU para una red 3G, tambin ha sido aceptado por la ITU
como parte de IMT-2000, de la familia de estndares 3G.
EDGE utiliza modulacin GMSK (Gaussian Minimum-Shift Keying) y modulacin 8-PSK (8 Phase Shift
Keying) para algunos de los esquemas de modulacin y codificacin de datos aumentando as su
eficacia.
35
multiplexacin CDMA (multiplexacin por divisin de cdigo). Soporta de manera satisfactoria una
tasa transferencia de datos que va de 144 hasta 512 Kbps para reas de cobertura amplias aunque en
el estndar se especifican velocidades de hasta 2 Mbps. El estndar de WCDMA fue desarrollado
como el proyecto de la sociedad 3GPP, que es el acrnimo de 3rd Generation Partnership Project.
Esta organizacin realiza la supervisin del proceso de elaboracin de estndares relacionados con
3G.
El despliegue de redes UMTS facilita la aparicin del servicio conocido como Internet mvil ya que las
velocidades que se pueden alcanzar con esta tecnologa permiten hacer uso de una gran parte de los
servicios ofrecidos en Internet, tpicamente la navegacin web. De esta forma aparecen en el
mercado tanto telfonos mviles que soportan la tecnologa 3G como mdems 3G utilizados para
proporcionar conectividad a ordenadores. Normalmente la conexin de estos dispositivos al
ordenador es mediante un puerto USB. [22]
4.11.2.
Tabla con la comparacin de la velocidad de transmisin de subida y bajada, que permiten los
distintos estndares funcionando actualmente en la telefona celular.
Tecnologa
GSM (2G)
1.8 kB/s
1.8 kB/s
GPRS (2.5G)
7.2 kB/s
3.6 kB/s
CDMA2000 1RTT
18 kB/s
18 kB/s
EDGE (2.75G)
29.6 kB/s
29.6 kB/s
UMTS 3G
48 kB/s
48 kB/s
59.2 kB/s
59.2 kB/s
148 kB/s
59 kB/s
237 kB/s
118 kB/s
HSPA (3.5G)
1,706 kB/s
720 kB/s
HSPA+
5.25 MB/s
1.437 MB/s
21.625 MB/s
7.25 MB/s
40.750 MB/s
10.750 MB/s
36
4.12. RASPBERRY PI
Raspberry Pi es una placa computadora (SBC) de bajo costo desarrollada en Reino Unido por la
Fundacin Raspberry Pi. En realidad, se trata de una diminuta placa base de 85 x 54 milmetros (del
tamao aproximado de una tarjeta de crdito) en el que se aloja un chip Broadcom BCM2835 con
procesador ARM hasta a 1 GHz de velocidad (modo Turbo haciendo overclock), GPU VideoCore IV y
512 Mbytes de memoria RAM (Las primeras placas contaban con slo 256MB de RAM).
4.12.1.
Hardware Raspberry Pi
Con unas dimensiones de placa de 8.5 por 5.3 cm, en su corazn tiene un chip integrado Broadcom
BCM2835, que contiene un procesador ARM11 con varias frecuencias de funcionamiento y la
posibilidad de subirla (haciendo overclocking) hasta 1 GHz sin perder la garanta, un procesador
grfico VideoCore IV, y 512MB de memoria RAM. La ltima Raspberry Pi 2 cuenta con 1GB de
memoria RAM. Todo ello equivale en la prctica a un ordenador con unas capacidades grficas
similares a la XBOX de Microsoft y con la posibilidad de reproducir vdeo en 1080p.
En la placa nos encontramos adems con una salida de vdeo y audio a travs de un conector HDMI,
con lo que conseguiremos conectar la tarjeta tanto a televisores como a monitores que cuenten con
dicha conexin. En cuanto a vdeo se refiere, tambin cuenta con una salida de vdeo compuesto y
una salida de audio a travs de un minijack. Posee una conexin Ethernet 10/100.
En su parte inferior cuenta con un lector de tarjetas SD (micro SD para los modelos A+, B+ y Pi 2), lo
que abarata enormemente su precio y da la posibilidad de instalar un sistema operativo en una
tarjeta de memoria de 4 GB o ms (clase 4 o clase 10). De esta forma tenemos tambin la posibilidad
de minimizar el espacio que necesitamos para tener todo un ordenador en un volumen mnimo. [24]
37
Conexiones GPIO
Raspberry Pi A +, B + y 2 B incluyen 40 pines GPIO. Los modelos A y B tienen slo los primeros 26
pines.
GPIO #
Funcin
Pin #
Pin #
Funcin
GPIO #
N/A
+ 3V3
+ 5V
N/A
GPIO2
SDA1 (I2C)
+ 5V
N/A
GPIO3
SCL1 (I2C)
GND
N/A
GPIO4
GCLK
TXD0 (UART)
GPIO14
N/A
GND
10
RXD0 (UART)
GPIO15
GPIO17
Gen0
11
12
GEN1
GPIO18
GPIO27
GEN2
13
14
GND
N/A
GPIO22
GEN3
15
16
GEN4
GPIO23
N/A
+ 3V3
17
18
GEN5
GPIO24
GPIO10
MOSI (SPI)
19
20
GND
N/A
GPIO9
MISO (SPI)
21
22
GEN6
GPIO25
GPIO11
SCLK (SPI)
23
24
CE0_N (SPI)
GPIO8
N/A
GND
25
26
CE1_N (SPI)
GPIO7
ID_SD
27
28
ID_SC
EEPROM
GPIO5
N/A
29
30
GND
N/A
GPIO6
N/A
31
32
GPIO12
GPIO13
N/A
33
34
GND
N/A
GPIO19
N/A
35
36
N/A
GPIO16
GPIO26
N/A
37
38
Digital IN
GPIO20
N/A
GND
39
40
OUT digital
GPIO21
38
Modelo B revisin 2 tambin tiene un pad (llamado P5 en el tablero y P6 en los esquemas) de 8 pines
que ofrecen acceso a un adicional de 4 conexiones GPIO.
GPIO #
Funcin
Pin #
Pin #
Funcin
GPIO #
N/A
+ 5V
+ 3V3
N/A
GPIO28
GPIO_GEN7
GPIO_GEN8
GPIO29
GPIO30
GPIO_GEN9
GPIO_GEN10
GPIO31
N/A
GND
GND
N/A
Modelos A y B proporcionan acceso GPIO para el LED de estado ACT usando GPIO 16. Modelos A+ y
B+ proporcionan acceso GPIO para el LED de estado ACT usando GPIO 47, y el LED de estado de
alimentacin usando GPIO 35. [26]
4.12.2.
Cuando adquirimos la Raspberry Pi recibimos exactamente eso, una placa sin ms. Para ponerla en
funcionamiento necesitamos de una serie de accesorios tales como una fuente de alimentacin de al
menos 1000mah, un cable HDMI, una tarjeta de memoria SD/microSD con el Sistema Operativo y un
adaptador WiFi o un cable RJ45 para poder conectarnos a internet. Adems por esttica o por
proteccin podemos adquirir una de las muchas cajas que existen a la venta. [24]
Otros perifricos y carcasas son comercializados por empresas ajenas a la fundacin. Por ejemplo
la Gertboard, que ha sido creada con propsito educativo, sirve para hacer uso del puerto GPIO y
poder interaccionar con LEDs, interruptores, seales analgicas, sensores, y otros dispositivos.
Tambin incluye un controlador opcional para Arduino para poder interaccionar con el Raspberry Pi.
[27]
Cmara
Es una cmara capaz de capturar vdeo con una resolucin de 1080p. La cmara cuenta con un sensor
Omnivisin de 5 megapxeles que adems de vdeo en alta definicin y a 30 fotogramas por segundo,
es capaz de hacer fotos con una resolucin de 2.592 X 1.944 pxeles.
La conexin de este pequeo mdulo se vende con el tradicional acabado de Raspberry Pi (o lo que
es lo mismo, sin ningn acabado, en un circuito puro y duro) como podemos observar en la imagen.
39
Carcasa
Otro de los accesorios imprescindible si se quiere resguardar la Raspberry Pi es la carcasa. Las hay de
todos los colores, formatos, materiales, diseos e incluso carcasas caseras fabricadas por los mismos
usuarios. [28]
El mdulo NEO 6M de la empresa suiza UBlox es una excelente alternativa de precisin y costo
beneficio. Es de un tamao reducido por lo que es fcilmente portable en tus proyectos. Se
comunica a travs de puerto serial UART. Esta presentacin viene en modo modular para que se
pueda usar en cualquier plataforma como Arduino, Raspberry Pi, pcDuino o con un Laptop. Mide
parmetros como latitud, longitud, velocidad, altitud.
Caractersticas:
- Ultra sensibilidad: -165dBm
- 22 tracking/66 acquisition-channel receiver
- Soporta estndares WAAS/EGNOS/MSAS/GAGAN
- Frecuencia de actualizacin 5Hz
- Velocidad de desplazamiento mxima: 500m/seg
- Protocolo NMEA (a 9600bps)
- 01 puerto serial
- Antena incorporada de 18.2 x 18.2 x 4.0 mm
- Rango de temperatura: -40 to 85 C
- Cumple estndar RoHS
- Tamao reducido, 30mm x 20mm x 11.4mm [30]
Especificaciones:
Tipo de receptor
Sensibilidad
Precisin
Tiempo de lectura
40
Warm Start
Hot Start
Re-Acquisition
Tracking
Acquisition
Sleep/Standby
Consumo de energa
33s
1s
<1s
<30mA @ 3V Vcc
40mA
TBD
Max 18,000m
Max 515m/s
Menor a 4g
18.2 x 18.2 x 4.0 mm
1575 3 MHz
10 MHz min
50
3 dB max
RHCP
30mm x20mm x 11.4mm
9g
5V 5%
55mA(typical)
40 ~ +85 (sin batera de
respaldo)
0 ~ +125
4.12.3.
El Raspberry Pi usa mayoritariamente sistemas operativos basados en el ncleo Linux. Raspbian, una
distribucin derivada de Debian que est optimizada para el hardware de Raspberry Pi, se lanz
durante julio de 2012 y es la distribucin recomendada por la fundacin para iniciarse.
El chip ARM11 en el corazn del Pi (modelos de primera generacin) se basa en la versin 6 de
la ARM . Las versiones actuales de varias versiones populares de Linux, incluyendo Ubuntu , no se
ejecutarn en el ARM11. No es posible ejecutar Windows en el Raspberry Pi original, aunque en el
nuevo Raspberry Pi 2 es capaz de ejecutar Windows 10 . El Raspberry Pi 2 actualmente slo es
compatible con Ubuntu Snappy Core , Raspbian , OpenELEC y RISC OS. [27]
La distribucin viene con algunas aplicaciones preinstaladas como los navegadores Midori, Dillo y
NetSurf. Adems contiene herramientas de desarrollo como IDLE para el lenguaje de programacin
Python o Scratch, y diferentes ejemplos de juegos usando los mdulos Pygame. Destaca tambin el
men raspi-config que permite configurar el sistema operativo sin tener que modificar archivos de
configuracin manualmente y el wifi-config, el cual permite configurar redes inalmbricas si usamos
un receptor WiFi USB. [31]
41
4.13.1.
Python
Python es un lenguaje de programacin creado por Guido van Rossum a principios de los aos 90
cuyo nombre est inspirado en el grupo de cmicos ingleses Monty Python. Es un lenguaje similar a
Perl, pero con una sintaxis muy limpia y que favorece un cdigo legible.
Se trata de un lenguaje interpretado o de script, con tipado dinmico, fuertemente tipado,
multiplataforma y orientado a objetos.
Tipado dinmico
La caracterstica de tipado dinmico se refiere a que no es necesario declarar el tipo de dato que va a
contener una determinada variable, sino que su tipo se determinar en tiempo de ejecucin segn el
tipo del valor al que se asigne, y el tipo de esta variable puede cambiar si se le asigna un valor de otro
tipo.
Fuertemente tipado
42
No se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es necesario
convertir de forma explcita dicha variable al nuevo tipo previamente. Por ejemplo, si tenemos una
variable que contiene un texto (variable de tipo cadena o string) no podremos tratarla como un
nmero (sumar la cadena 9 y el nmero 8). En otros lenguajes el tipo de la variable cambiara para
adaptarse al comportamiento esperado, aunque esto es ms propenso a errores.
Multiplataforma
El intrprete de Python est disponible en multitud de plataformas (UNIX, Solaris, Linux, DOS,
Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos libreras especficas de cada plataforma
nuestro programa podr correr en todos estos sistemas sin grandes cambios.
Orientado a objetos
La orientacin a objetos es un paradigma de programacin en el que los conceptos del mundo real
relevantes para nuestro problema se trasladan a clases y objetos en nuestro programa. La ejecucin
del programa consiste en una serie de interacciones entre los objetos.
Python tambin permite la programacin imperativa, programacin funcional y programacin
orientada a aspectos. [33]
43
5.1.
DISEO DE HARDWARE
Como base del hardware, se utiliz la plataforma educativa Raspberry Pi 2 Modelo B, la cual
presenta varias ventajas relacionndolo con sus antecesores y con otros dispositivos de fines
similares. Al tratarse de un ordenador de placa reducida, podemos encontrar gran diversidad de
funcionalidades, sin que el dispositivo sufra saturacin o bajo rendimiento.
Entre otras, las principales ventajas que se puede encontrar son, el costo y facilidad de adquisicin,
compatibilidad con diferentes sistemas operativos, facilidad en la configuracin y programacin al
44
encontrar gran cantidad de documentos explicativos que tratan sobre el dispositivos y sus diferentes
mdulos, versatilidad para trabajar en diferentes mbitos y contextos.
5.1.1.
Inicio de Raspberry Pi
Materiales Necesarios
Software Necesario
https://www.sdcard.org/downloads/formatter_4/SDFormatter4exe.zip
Una vez el archivo ha sido descargado, descomprimir el archivo y hacer clic en el archivo con el
nombre setup.exe. Este programa inicializar el proceso de instalacin, instalar con las opciones
predeterminas.
45
Insertar la tarjeta SD en el lector del PC o porttil. Una vez ha sido reconocida por el sistema, ejecutar
el programa instalado. Utilizar las opciones predeterminadas, sin embargo, hay que fijarse bien en
utilizar la opcin QUICK FORMAT para que borre toda la informacin de la tarjeta en el menor
tiempo posible. A partir de este momento, toda la informacin contenida en la tarjeta ser borrada
permanentemente. Este proceso tomara unos minutos dependiendo de la capacidad de la tarjeta.
Con la tarjeta SD formateada, ahora es posible instalar el sistema operativo con NOOBS. Esto se hace
mediante una copia directa de los archivos en la tarjeta SD. Para hacer la copia se debe seguir los
siguientes pasos. [34]
Paso 2. Descarga de Noobs y copia en la tarjeta SD
Descargar el Sistema Operativo directamente del sitio oficial de Raspberry Pi
(http://www.raspberrypi.org/downloads), en este link se encuentra que hay diferentes versiones
disponibles. Lo recomendable es inicialmente utilizar NOOBS, el cual contiene las siguientes versiones
de sistemas operativos:
Archlinux
OpenELEC
Pidora
RISC OS
RaspBMC
Raspbian
Seleccionar el archivo con el nombre NOOBS. Despus de unos segundos el archivo empezar a
descargarse, esto tomar bastante tiempo ya que el archivo es de 737 MB.
Una vez el archivo ha descargado por completo, descomprimir el archivo en un lugar conocido. Al
final debera obtener una carpeta. Esta carpeta es la que contiene todo el sistema operativo. Luego
abrir la carpeta donde se descarg el sistema operativo y proceder a copiar o mover todo el
contenido.
Con estos pasos, el sistema operativo ha sido copiado en la tarjeta SD y ahora se puede proceder a
instalar el sistema operativo. [35]
Paso 3. Instalacin y configuracin inicial del Raspberry Pi (raspi-config)
Una vez la tarjeta ha sido preparada y NOOBS ha sido copiado, el sistema operativo se reinicia y el
primer programa que se ejecuta es Pi Recovery, este programa sirve para instalar la versin del
sistema operativo deseada.
En la pantalla inicial, seleccionar Raspbian para instalar el sistema operativo. Este proceso tomar
entre 15 a 20 minutos.
46
Despus que Raspbian Wheezy ha sido instalado, hay que configurar el Sistema operativo
para que funcione en espaol. Los siguientes pasos muestran las diferentes opciones
disponibles.
Al reiniciar el dispositivo el primer programa que se ejecuta se llama raspi-config, este
programa solo se ejecuta en ingls. En caso de que ya haya instalado el sistema operativo y
se desee realizar alguna de estas modificaciones, se puede hacer ejecutando el siguiente
comando desde la terminal:
sudo raspi-config
El primer men que muestra contiene 9 diferentes opciones disponibles, a continuacin se
revisar cada una de las opciones disponibles:
1.
2.
3.
4.
47
Esta opcin permite modificar el lenguaje del sistema operativo, la zona horaria y la distribucin de su
teclado.
La opcin I1 sirve para indicar donde se encuentra ubicado, esta opcin configura el lenguaje del
sistema operativo, los caracteres, la denominacin de la moneda, etc. Buscar y seleccionar el modo
de codificacin:
es_CO. UTF-8 UTF-8
Para confirmar oprimir espacio y luego enter.
La opcin I2, sirve para cambiar la zona horaria del sistema, la cual se ajusta de acuerdo a la ciudad
donde vive o la ms cercana. El sistema ha sido configurado como Colombia, Bogot.
La opcin I3, permitir cambiar la configuracin del teclado, si la marca y tipo del teclado no aparece,
seleccionar el predeterminado PC genrico 105 teclas (intl).
Luego seleccionar el idioma del teclado, si en la primera pantalla no aparece Espaol seleccionar otro.
En la siguiente ventana hay una lista de opciones, seleccionar Espaol o Espaol
(Latinoamericano).
Luego seleccionar la distribucin del teclado, se recomienda utilizar la primera opcin, solo Espaol
Latinoamericano.
5. Activar la cmara (Enable camera)
Esta opcin sirve para dar soporte a la cmara de Raspberry Pi, permite activar el puerto para que
haya comunicacin entre la CPU y el controlador de la cmara. Seleccionar la opcin Enable, ya que
posteriormente se har uso del mdulo de la cmara.
6. Adicionar a Rastrack (Add to Rastrack)
7. Overclockig
8. Opciones avanzadas (Advanced Options) [36]
Paso 4. Conexin del Raspberry Pi a Internet usando cable de red
48
Es recomendable que el Raspberry Pi tenga conexin disponible a Internet para poder actualizar
programas. Existen 3 diferentes mtodos para conectar la Raspberry Pi, entre ellos estn:
49
El programa que se tiene que instalar en el PC se llama XMING, este se puede descargar directamente
de la pgina del desarrollador en el link http://sourceforge.net/projects/xming/. Descargar el
archivo y luego ejecutar el instalador con todos los parmetros que trae por defecto.
Una vez haya terminado la instalacin, ahora es necesario crear un archivo de configuracin para
conectarse al Raspberry Pi, para esto buscar la aplicacin Xlaunch en el escritorio o en la barra de
inicio, dependiendo de la versin de Windows que se tenga instalada.
Al ejecutar la aplicacin, la primera pantalla indica como desea que se ejecute el ambiente X
Windows. Para poder terminar la conexin, necesitar hacer click derecho sobre Xming en la barra de
tareas y luego cerrar.
En la siguiente opcin, seleccionar start a program. Esto indicar que tan pronto inicie Xming, esta
aplicacin se debe ejecutar desde el Raspberry Pi.
Como el inters es ejecutar el escritorio del Raspberry Pi llamado LXDE, se debe hacer el llamado de
esta aplicacin. Para esto en el campo start program ingresar startlxde. En el cuadro de la
configuracin, seleccionar Using PuTTY (plink.exe). En el campo connect to computer ingresar la
direccin IP de la Raspberry Pi. En el campo login user ingresar el nombre del usuario del Raspberry
Pi, en este caso es el comn Pi, siguiente a esto la contrasea que se haya asignado a este usuario,
el predeterminado es raspberry.
Si se desea copiar texto entre el PC y el Raspberry Pi, dejar activada la casilla Clipboard. Esta funcin
es muy prctica cuando desean copiar textos entre los ambientes. Sin embargo, copiar imgenes o
archivos en general no es posible con este mtodo.
Una vez se haya terminado, volver a la venta anterior. Ahora solo es necesario hacer click en
finish y se ejecutar la conexin remota al Raspberry Pi. [38]
50
5.1.2.
A continuacin se har una descripcin de las conexiones de los mdulos requeridos con el propsito
ya sabido. As mismo, se incluir la configuracin y programacin indispensable para el satisfactorio
acople de todos y cada uno.
Para los scripts programados en la plataforma de la Raspberry, se us el lenguaje de programacin
Python, instalado de forma predeterminada con el sistema operativo Raspbian. A lo largo del captulo
se har mencin de varios scripts en Python y una descripcin de las funciones de cada uno y su
relacin entre s, los cuales son principal.py, pulsador.py, temporales.py, picam.py,
iniciogps.py, envioFTP.py, envioEmail.py y un script en PHP nombrado mapa.php. Todos estos
cdigos estn guardados en la ruta /home/pi de la Raspberry Pi y podrn ser observados con
detalle en los anexos.
Scripts iniciales
Habrn tres scripts que se ejecutarn automticamente al iniciar el arranque con el encendido de la
Raspberry Pi y controlan la ejecucin de los dems scripts.
A continuacin, se adiciona el cdigo del script principal.py, este es el primero en iniciar y estar en
ejecucin constantemente para realizar captura de datos de la cmara y el GPS automticamente
cada 10 minutos contados a partir de la ltima captura finalizada. Este script hace un llamado de la
funcin principal en el script picam.py y define el estado como Automtico, este mismo se
incluir en la publicacin final de la pgina web y se tendr en cuenta en los siguientes scripts.
Seguido a esto, se inicia el script pulsador.py, el cual tiene como funcin testear continuamente la
pulsacin del botn de pnico incorporado a los pines GPIO 03 (numeracin BCM) y Ground o pines
GPIO 05 y 09 (numeracin estndar). Se toma el pin GPIO 03, aprovechando su resistencia de pull-up
interna que viene activada por defecto, as no es necesario agregar resistencias externas.
Este script tambin est en continua ejecucin, esperando un voltaje bajo en el pin 03 configurado
como entrada. Al tener un estado bajo en el GPIO 03, inicialmente se modifica el estado a S.O.S. o
de emergencia. Seguidamente, se hace llamado a la funcin principal en picam.py. Este ltimo
proceso, permitir grabar un video de 10 segundos, configurables, ya que al tratarse de un estado de
51
emergencia, requerir de mayor precisin en los datos, por esto obtendremos mejor visualizacin de
la situacin con un video y no con una fotografa, como en el caso del estado Automtico.
Por ltimo, se inicia el script temporales.py. El propsito de este script es, intentar realizar una
conexin efectiva con el servidor para enviar los archivos que estn en la carpeta
/home/pi/TemporalEnvio, los cuales estn almacenados y que no lograron ser enviados al servidor
en el momento de obtenerlos, por alguna falla en la conexin. Este proceso se repite cada 5 minutos,
intentando realizar conexin con el servidor en cada momento.
Para iniciar los scripts al encender la Raspberry se utiliza la herramienta cron de los sistemas Unix,
cron es un administrador de procesos en segundo plano. Al agregar lneas de texto en el archivo
crontab se incluyen estos procesos al cron, dependiendo de su configuracin. En este caso se
agregan las siguientes lneas:
52
Ahora mantenerlo en su lugar con una mano y empujar la lengeta CSI hacia abajo con la otra mano
para bloquear la cinta de la cmara.
Con el hardware en su lugar, ahora es el momento de instalar el software. Antes de activar la cmara,
asegurar de que se est ejecutando la ltima versin del firmware Raspberry Pi con estos comandos:
sudo apt-get update
sudo apt-get upgrade
Dependiendo de qu tan antigua es la instalacin de Raspbian, y la velocidad de conexin a internet,
estos comandos pueden tomar ms de media hora para completar.
Una vez que se ha completado, iniciar el script "ROSSP-config", este ayuda a configurar la Pi:
sudo ROSSP-config
Desplazarse por la lista hasta el elemento que dice "Enable Camera" y pulsar la tecla enter. En la
siguiente pantalla, se pedir confirmar la eleccin seleccionando la opcin "Enable". A continuacin,
volver a la pantalla principal de la utilidad de configuracin. Ahora puede seleccionar la opcin
"Finish" y reiniciar el Raspberry Pi.
Una vez que se haya reiniciado el Raspberry Pi, ahora se puede usar las dos utilidades de lnea de
comandos, raspistill y raspivid para capturar imgenes fijas y vdeos respectivamente. [40]
Deteccin de movimiento
Para detectar el movimiento con la cmara se utiliza el script en Python escrito por miembros de la
comunidad de Raspberry Pi.
El script se basa en la biblioteca de imgenes de Python que es una biblioteca para el anlisis y la
manipulacin de las imgenes, as que hay que realizar la siguiente instalacin:
sudo apt-get install python-imagen-tk
Ahora, se debe guardar el script y hacerlo ejecutable:
53
54
La variable FTPnamePic hace referencia al nombre con el cual se guardar la imagen en el servidor
de archivos, lo cual es necesario especificar al realizar el envo de los archivos a travs del protocolo
FTP.
Despus de guardar la foto o video se ejecuta el script iniciogps.py con la ayuda de la funcin
os.system (), que permite escribir lneas de comando de la Shell del sistema. Con este script se
obtendrn datos como coordenadas GPS, direccin, fecha y hora de la adquisicin de los datos, todos
estos alojados en un archivo temporal en la ruta /home/pi/datos.txt. En este mismo archivo de
texto se adiciona la ruta de almacenamiento de la imagen en el servidor, el estado, anteriormente
mencionado y el identificador de dispositivo. Ms adelante, se har referencia a dicho archivo con
ms detalle.
El mdulo no tiene pines soldados donde conectar los cables, as que, o se sueldan los cables
directamente a la placa, o se adquiere una cabecera de pines y se sueldan.
Para comunicar el mdulo Ublox M6 con la Raspberry Pi se usar el puerto serie /dev/ttyAMA0.
Para ello se conecta el mdulo GPS a la Raspberry tal como indica el esquema, los cables TX y RX
deben estar cruzados, es decir, el pin TX de la Raspberry va conectado al pin RX del mdulo GPS y el
55
pin RX de la Raspberry va conectado al pin TX del mdulo GPS. Se alimenta el mdulo desde los pines
GPIO de 3.3V y GND de la Raspberry.
El puerto serie dev/ttyAMA0, no est disponible por defecto y hay que desbloquearlo. Para ello se
abre el archivo /boot/cmdline.txt, desde la Raspberry y cambiar:
56
Ahora que las pruebas de conexin del GPS con la Raspberry Pi estn finalizadas y satisfactorias se
puede implementar un script para su accionar. [41]
Al tener iniciado el socket GPSD y ya teniendo el receptor GPS activado y conectado con los satlites,
solo basta obtener las coordenadas de posicin. En el script, constantemente est obteniendo los
datos latitud y longitud, en busca de valores efectivos, por esto se realiza una condicin para que al
obtener datos diferentes a 0 (cero), guarde las coordenadas en variables locales y al igual la direccin
de esa ubicacin.
El script iniciogps.py importa, entre otras, principalmente las libreras gps y pygeocoder,
libreras exclusivas para el uso con un receptor GPS. La primera, se encarga de crear un streaming de
datos GPS y constantemente est obteniendo datos de posicin, y la segunda tiene como nico
propsito traducir las coordenadas geogrficas obtenidas, en una direccin legible, conocido como
geo codificacin inversa.
57
Al obtener las coordenadas y la direccin, se realiza validacin si el estado actual es S.O.S. para
hacer un envo inmediato de un correo electrnico con los datos bsicos de ubicacin, haciendo un
llamado a la funcin enviar en el script envioEmail.py. Esto, con el propsito de poder tener una
reaccin oportuna a la emergencia. Se podr ver en detalle el cdigo del script envioEmail.py en los
anexos.
Posteriormente, se realiza lectura del archivo mapa.php guardado con anterioridad en la ruta
/home/pi/mapa.php, se busca la palabra clave coordenadas dentro de todo el texto en el archivo
y se modifica por latitud, longitud, siendo latitud y longitud las coordenadas obtenidas por el GPS.
Se guarda el archivo modificado en la ruta /home/pi/TemporalEnvio con un nombre diferente de la
misma forma en que se nombr la imagen, quedando como map + fecha + hora + .html.
Adicionalmente, se crea un archivo temporal datos.txt para agregar los datos obtenidos (latitud,
longitud, direccin, fecha, hora, URL del mapa, ). Al finalizar el script de iniciogps.py y retomar el
final del script picam.py se adicionan ms datos al archivo datos.txt (, URL de la imagen, estado,
idUser). Al completar la escritura de este archivo se guarda en la ruta /home/pi/TemporalEnvio con
el mismo formato para el nombre utilizado para la imagen y el mapa, quedando como date + fecha +
hora + .txt. En la siguiente imagen se observa la forma en que se guarda el texto.
Obsrvese que cada dato est encerrado entre los caracteres |. La finalidad de este carcter
especial est en la importacin de estos datos a la base de datos, previo envo del archivo al servidor,
y ya encontrndose guardado en una carpeta exclusiva dentro del servidor.
58
5.1.3.
Se tiene que conseguir los cdigos del dispositivo USB en el modo de almacenamiento USB y
el modo de mdem USB.
59
La salida ser similar a la siguiente imagen. El mdem debe ser catalogado como uno de los
dispositivos USB. Hay que tener en cuenta los nmeros subrayados, estos son los cdigos de
proveedores de productos y dispositivos.
En este caso aparece 12d1: 1c24. Este cdigo hace referencia a la conexin en modo de
almacenamiento. Se puede comprobar escribiendo tail f /var/log/messages, y se observa
que el modem se inici como cdrom.
60
Ahora lo que se debe lograr es que este cambio se realice siempre, desde el inicio de la Raspberry o
en cualquier momento que se conecte el modem. Para lograrlo, hay que aadir lo siguiente en el
archivo /etc/rc.local, antes de la lnea exit 0:
El programa ms utilizado para realizar la conexin 3G es Sakis3g. Sin embargo, antes de instalarlo, se
tiene que saber que es muy frecuente perder la conexin 3G cada cierto tiempo, por lo que se suele
recurrir a otro programa, UMTSKeeper, que est constantemente comprobando la conexin y
recuperndola cuando se cae. Este ltimo programa tambin realiza la instalacin de Sakis3G.
Lo primero es instalar el servicio pppd:
sudo apt-get install ppp
A continuacin, instalar UMTSKeeper:
cd ~
mkdir umtskeeper
cd umtskeeper
wget http://mintakaconciencia.net/squares/umtskeeper/src/umtskeeper.tar.gz
tar -xzvf umtskeeper.tar.gz
chmod +x sakis3g umtskeeper
Ahora, configurar sakis:
sudo ./sakis3g --interactive
61
Seleccionar los siguientes tems, en orden de aparicin, dando enter sobre la opcin:
Al finalizar estos pasos satisfactoriamente, ya est conectado a la red mvil 3G a travs de Claro
utilizando el protocolo ppp0.
Y por ltimo, configurar UMTSKeeper, segn los parmetros que se escogieron anteriormente al
ejecutar Sakis3G. Ejecutar el siguiente comando (una sola lnea), que luego se aadir
a crontab para que se ejecute siempre que se arranque la Raspberry Pi:
sudo /home/pi/UMTSkeeper/umtskeeper --sakisoperators "OTHER='USBMODEM'
USBMODEM='12d1:1c23' USBINTERFACE='2' APN='internet.comcel.com.co' APN_USER='comcel'
APN_PASS='comcel'"
Consultar el fichero /var/log/umtskeeper.log y ver que est todo en orden. Probar a desconectar y
reconectar el modem, y que tras medio minuto vuelve a conectarse automticamente.
62
5.2.
5.2.1.
DISEO DE APLICATIVO
Instalacin WAMP Server:
1. Se cambi el puerto de escucha por defecto 80 por el puerto 81, realizando modificacin
httpd.conf en sus lneas 46 y 171.
Tambin se modifica el archivo wampmanager.tpl, en las lneas 121 y 122 de esta versin. Al
realizar estas modificaciones siempre se realiza reinicio de los servicios para que los cambios
tomen efecto.
2. En el archivo Host del equipo se asigna la IP pblica como localhost, de este modo y
solicitando la apertura del puerto 81, ser posible visualizar el contenido de la informacin va
web a travs del enlace: http://miippublica:81/, internamente http://localhost:81 o
http://miipprivada:81.
1. Realizar los cambios respectivos de permisos de tal manera que el acceso al phpmyadmin, se
pueda realizar nicamente de manera local:
<Directory "c:/wamp/apps/phpmyadmin3.5.1/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 192.168.0.100
</Directory>
2. Establecer una contrasea a la consola MySQL con el comando SET PASSWORD
FOR root@localhost=PASSWORD('Su_Clave_Aqui');
63
3. Modificar el archivo config.inc.php, para que se solicite el usuario y contrasea para acceder
al phpmyadmin: se configura el usuario y contrasea y se modifica para que en el acceso pida
la contrasea:
5.2.2.
Transferencia de informacin
Para el transporte de la informacin, se utilizar el protocolo FTP, haciendo uso de la librera ftplib
en la Raspberry PI, para el envo de archivos hacia el Servidor FTP. En el caso del almacenamiento de
la informacin en el servidor, se utiliz el servidor FTP TYPSoft. En este servidor se configuran los
diferentes usuarios FTP para diferentes dispositivos y se asignan los respectivos permisos a las
carpetas a las que tendrn acceso.
64
5.2.3.
Para la creacin y modificacin de las base de datos y tablas, se manejaron de 2 maneras: Usando la
consola MySQL o a travs de phpmyadmin:
Diseo y creacin de base de datos: Para el diseo y creacin de la base de datos, era necesario
pensar desde la perspectiva del usuario final. Los datos relevantes que requiere un usuario es
acceder, consultar y visualizar la informacin del dispositivo que monitorea su vehculo, que sea muy
intuitiva y entendible.
Por tal motivo, en el desarrollo se realiz la creacin de 2 tablas en la base de datos para la
importacin y procesamiento de la informacin:
Tabla monitoreo
65
Campo id: Este campo es tipo entero e incremental, de esta manera permitir tener un
conteo global de todos los registros importados para el administrador de la base.
Tambin juega un rol importante en la publicacin de los registros va web de manera
ordenada y descendente, lo que permite visualizar del ltimo registro importado al
primero.
Campo latitud: Almacena la informacin de la latitud del registro importado.
Campo longitud: Almacena la informacin de la longitud del registro importado.
Campo direccin: Almacena la informacin de la direccin del registro importado,
generada por la funcin codificada de georreferenciacin inversa.
Campo fecha: Almacena la informacin de la fecha del registro importado.
Campo hora: Almacena la informacin de la hora del registro importado.
Campo mapa: Almacena la informacin del link de acceso al mapa del registro
importado. En la visualizacin web por medio de un icono redirecciona por hipervnculo
a una nueva pestaa al archivo *.html almacenado en el servidor que contiene el mapa
con su respectivo marcador.
Campo foto: Almacena la informacin del link de acceso a la foto del registro importado.
En la visualizacin web por medio de un icono redirecciona por hipervnculo a una nueva
pestaa al archivo de la foto o el almacenamiento del video, esto depende del estado
reportado en el campo estado.
66
Campo estado: Este campo almacena el estado automtico o S.O.S, dependiendo del
estado reportado, el campo foto puede tener un link que direccione a una foto o video.
Campo id_user: Este campo almacena el ID del dispositivo de cada reporte, es de vital
importancia para el acceso del usuario registrado y para el filtrado de la informacin.
Tabla registro
Campo id_user: Este campo es tipo entero e incremental, de esta manera permitir tener
un conteo global de todos los usuarios registrados, para el administrador de la base. La
importancia de este campo, radica en que ser el ID de usuario otorgado para que la
persona pueda ingresar a la plataforma una vez realizado el proceso de registro.
Campo name: En este campo se almacena el nombre de la persona que se registra. Es un
campo obligatorio para realizar el registro de manera satisfactoria.
Campo nickname: Este campo no solo es obligatorio para realizar el registro de manera
satisfactoria, sino tambin para acceder a los registros en la plataforma web mediante
autenticacin de usuario.
Campo pass: Campo obligatorio que almacena la contrasea en codificacin MD5, por
seguridad este campo es necesario para la autenticacin del usuario registrado.
En el diagrama se encuentran las tablas monitoreo y registro creadas en la base de datos php,
estas contienen informacin de los usuarios registrados y de los reportes generados para cada uno de
los dispositivos.
67
Formulario de registro
Importacin de datos
La importacin de datos es posible realizarla, gracias a un servicio Windows que siempre est activo.
Este servicio realiza la tarea de importacin automtica cada 15 segundos, sobre los archivos de datos
*.txt enviados desde la Raspberry a la carpeta /captura/CapturaArchivos.
68
Para que el servicio funcione es necesario establecer la conexin a la base de datos y colocar la URL
de la carpeta donde se almacenarn los archivos a importar.
Tambin se configura en una variable las lneas para la importacin de los archivos.
El complemento adicional de este servicio es que cada vez que importa un archivo lo elimina de la
carpeta dejando limpio el almacenamiento y a la espera de un nuevo archivo a importar.
69
Inicio de Sesin
Para el inicio de sesin del usuario registrado, se cre la pgina principal index.html, donde se
solicita ingresar el nombre de usuario y contrasea. En el caso de la contrasea la entrada se coloca
de tipo password, de esa manera la contrasea estar oculta a la vista del usuario. Cuando se
ingresan los datos, son validados en la pgina login.php, si son incorrectos saldr un mensaje
advirtiendo que el usuario y/o contrasea no son vlidos, de lo contrario establece una sesin y
guarda los datos.
70
que nicamente pueda visualizar la informacin que le corresponde al ID del dispositivo. Ejemplo:
http://miippublica:81/index.php?userid=$userid.
En el siguiente cdigo se podr observar que se almacena como variable global la informacin del
userid, obtenida de la direccin URL. Esto con el objetivo de identificar el ID del dispositivo
autenticado y proceder a comparar con el ID de dispositivo de la tabla, de esa manera garantizar que
nicamente publique la informacin cuando el userid obtenido de la direccin del link sea igual al
ID de dispositivo de la tabla.
Por otra parte, se ingresa una variable como bandera para identificar cuando el usuario registrado
tiene datos almacenados y cuando no los tiene. Cuando el estado de la bandera est en 1, significa
que ya se ha cargado informacin procedente de la Raspberry, el estado de la bandera en 0,
significa que para el usuario autenticado no se ha enviado informacin o no se ha configurado el
dispositivo para el envo, por tanto se publicar informacin sobre los campos no data load.
71
El campo estado puede ser Automtico o S.O.S.. En el primer caso, la Raspberry inicia en estado
Automtico, enviando un reporte cada 10 minutos, con una fotografa adjunta. El estado S.O.S se
activa cuando se pulsa el botn de emergencia, enva un reporte con un video adjunto.
Posteriormente, contina en estado Automtico.
5.2.4.
Visualizacin
Visualizacin pgina web
Los datos que el usuario podr visualizar, sern los enviados desde la Raspberry e importados en la
tabla monitoreo en un entorno ms amigable como se observa en la siguiente figura.
En la parte izquierda aparece filtrado por el ID del dispositivo, en los dems campos de la tabla
aparecer la informacin relevante como Latitud, Longitud, Direccin, Fecha, Hora, Mapa, Foto y
Estado.
Para el campo Mapa, est relacionado un icono que funciona como hipervnculo hacia la URL donde
se almacen el archivo en el servidor y cuyo nombre de archivo contiene fecha y hora de captura. Por
ejemplo, http://miippublica:81/captura/mapa+fecha+hora.html.
72
El archivo *.html del mapa se enva ya creado desde la Raspberry. Este archivo contiene las
coordenadas obtenidas por el dispositivo GPS y por medio de un script, se invoca la API de Google
Maps, que est abierta a los desarrolladores y al pblico en comn, y por medio de parmetros en
una funcin, se definen las caractersticas de la publicacin y la inclusin de las coordenadas para la
ubicacin en el mapa.
73
Visualizacin Foto
74
6. Pruebas tcnicas
Se
realiza
una
ltima
prueba
en
una
pgina
de
Google
llamada
https://developers.google.com/speed/pagespeed/insights/, en esta se permite analizar la experiencia
de usuario navegando en la pgina desde un ordenador de escritorio as como de un dispositivo
mvil.
A continuacin se observa que la calificacin para la navegacin desde un equipo de escritorio es de
95/100, donde las recomendaciones es hacer cambios en la ejecucin de JavaScript y CCS.
75
6.1.
Prueba de Estrs:
Para llevar a cabo las pruebas, una herramienta disponible va web es: http://loadimpact.com. Con
esta herramienta web, se puede poner a prueba escenarios de conexin mltiple y reflejar los
tiempos de respuesta a medida que se aumenta la carga de usuarios.
Como se puede observar en la siguiente figura, la convencin VU load time hace referencia a la
traza del tiempo de carga a medida que se incrementan los usuarios, cuya convencin es VUs
active. Se puede apreciar que el tiempo promedio de carga esta en 1.2 s. Este tiempo promedio de
carga para tratarse de un servidor local en un equipo de hogar es bueno e indica que los tiempos de
respuesta y eficiencia de operatividad mejoraran significativamente si los serivicios son migrados a
un servidor pblico con mayores recursos y disponibilidad.
76
Tambin pueden ser evaluados los tiempos de respuesta de los estilos grficos e imgenes.
77
7. Conclusiones
78
79
80
81
82
global FTPnamePic
global horaArchivo
horaArchivo = tiempo("%Y%m%d_%H%M%S")
horaPublicar = tiempo("%A, %d/%m/%Y, %X")
if estado == 'Automatico':
localNamePic = filepath + "/" + PrefixPic + horaArchivo + ".jpg"
FTPnamePic = PrefixPic + horaArchivo + ".jpg"
with picamera.PiCamera(resolution=(width, height), led_pin=False) as foto:
foto.annotate_text = horaPublicar
time.sleep(0.05)
foto.capture(localNamePic, quality=quality)
foto.close()
print "Captured %s" % localNamePic
elif estado == 'S.O.S.':
localNamePic = filepath + "/" + PrefixVid + horaArchivo + ".mp4"
FTPnamePic = PrefixVid + horaArchivo + ".mp4"
with picamera.PiCamera(resolution=(640,480)) as camera:
time.sleep(0.1)
camera.start_recording('/home/pi/video.h264', quality=25)
camera.wait_recording(10)
camera.stop_recording()
comando = "MP4Box -fps 30 -add /home/pi/video.h264 %s" %(localNamePic)
os.system (comando)
def keepDiskSpaceFree(bytesToreserve):
if (getFreeSpace() < bytesToreserve):
for localNamePic in sorted(os.listdir(filepath + "/")):
if localNamePic.startswith(PrefixPic) and localNamePIc.endswith(".jpg"):
os.remove(filepath + "/" + localNamePic)
print "Deleted %s/%s to avoid filling disk" % (filepath,localNamePic)
if (getFreeSpace() > bytesToreserve):
return
def getFreeSpace():
st = os.statvfs(filepath + "/")
du = st.f_bavail * st.f_frsize
return du
def principal(estado, iduser):
image1, buffer1 = captureTestImage(camerasettings, testWidth, testHeight)
lastCapture = time.time()
while (True):
image2, buffer2 = captureTestImage(camerasettings, testWidth, testHeight)
changedPixels = 0
takePicture = False
if (debugMode):
debugimage = Image.new("RGB",(testWidth, testHeight))
debugim = debugimage.load()
for z in xrange(0, testAreaCount):
for x in xrange(testBorders[z][0][0]-1, testBorders[z][0][1]):
for y in xrange(testBorders[z][1][0]-1, testBorders[z][1][1]):
if (debugMode):
debugim[x,y] = buffer2[x,y]
83
84
85
86
=
=
=
=
=
'/home/pi/TemporalEnvio/'
'190.26.41.106'
'gps'
'4m3r1c42014*'
'/captura'
try:
s = ftplib.FTP(ftp_servidor, ftp_usuario, ftp_clave)
for root, dirs, files in lstDir:
for fichero in files:
(nombreFichero, extension) = os.path.splitext(fichero)
if(extension == ".txt"):
lstFiles.append(nombreFichero+extension)
enviar (path + nombreFichero + extension, "CapturaArchivos/" + nombreFichero +
extension)
else:
lstFiles.append(nombreFichero+extension)
enviar (path + nombreFichero + extension, nombreFichero + extension)
except:
print "No se ha podido conectar al servidor " + ftp_servidor
87
smtplib
mimetypes
email
email.mime.application
sys
msg = email.mime.Multipart.MIMEMultipart()
msg['Subject'] = 'Activacion boton S.O.S.'
msg['From'] = 'gps.raspberrypi@gmail.com'
msg['To'] = 'gps.raspberrypi@gmail.com'
def enviar (direccion, hora):
cuerpo = ("Se ha detectado la activacin del botn de pnico en su
vehculo.\n\nDireccin: %s\nHora: %s\n\nPodra visualizar la foto y la ubicacin en el mapa
accediendo a su cuenta a travs del siguiente link. \n\nhttp://181.130.15.178:81/index.php"
%(direccion[0],hora))
print "Enviando correo a " ,msg['To']
body = email.mime.Text.MIMEText(cuerpo)
msg.attach(body)
s = smtplib.SMTP('smtp.gmail.com:587')
s.starttls()
s.login('gps.raspberrypi@gmail.com','raspberrypi')
s.sendmail('gps.raspberrypi@gmail.com',['gps.raspberrypi@gmail.com'], msg.as_string())
s.quit()
print "Email enviado"
88
var
var
var
var
</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script>
geocoder;
map;
infowindow = new google.maps.InfoWindow();
marker;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(coordenadas);
var mapOptions = {
zoom: 20,
center: latlng,
mapTypeId: 'hybrid'
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
codeLatLng();
}
function codeLatLng() {
var latlng = new google.maps.LatLng(coordenadas);
geocoder.geocode({'latlng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
map.setZoom(20);
marker = new google.maps.Marker({
position: latlng,
map: map
});
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
89
8. Bibliografa
[1] Concejo de Bogot D.C., POR EL CUAL SE IMPLEMENTA UN SISTEMA TECNOLGICO DE
SEGURIDAD EN VIDEO VIGILANCIA Y BOTONES DE PNICO EN EL SERVICIO DE TRANSPORTE
PBLICO INDIVIDUAL Y COLECTIVO DE PASAJEROS EN EL DISTRITO CAPITAL. Abril de-2014.
[2] Cules son las caractersticas principales del HTML?, Postgrado en Marketing Online,
comunicacin, Marketing Digital, postgrado online, uab, barcelona. .
[3] Rosselott, Manual de PHP Bsico - WebEstilo. Jun-2003.
[4] PHP Group, PHP 5.4.45 Released. 2015-2001.
[5] Olga Cirauqui Elorz, Instalar WAMP. 02-Mar-2012.
[6] CSS: Hojas de estilo, CCM. [Online]. Available: http://es.ccm.net/contents/156-css-hojas-deestilo. [Accessed: 06-Sep-2015].
[7] Java Script, prezi.com. [Online]. Available: https://prezi.com/_kd-lnphaoq6/java-script/.
[Accessed: 06-Sep-2015].
[8] Google Maps API V3 introduccin y primeros pasos, Maestros del Web. .
[9] Jorge Snchez Asenjo, Servidores de Aplicaciones Web. 2012.
[10] Masadelante.com, Qu es un servidor FTP (FTP Servers)? 2015-1999.
[11] MD5online.org, MD5 Online. 2015-2012.
[12] Jorge Snchez, Diseo Conceptual de Bases de Datos. 2004.
[13] Tipos De Bases De Datos, El blog de base de datos. [Online]. Available:
http://basededatos.over-blog.net/article-tipos-de-bases-de-datos-68319538.html. [Accessed: 06Sep-2015].
[14] Qu es un gestor y cules son sus tipos? .
[15] EcuRed, Sistema Gestor de Base de Datos. .
[16] Base de datos modelo entidad relacion, 20:20:14 UTC.
[17] Carl Rod Nave, Satlites de Posicionamiento Global. 2010.
[18] Qu es el GPS, funcionamiento general, Penyagolosa.net - Senderismo en Castelln, 2015-2006.
[Online].
Available:
http://www.penyagolosa.net/informacion-general/que-es-el-gpsfuncionamiento-general.html.
[19] Querelle y Cia Ltda., Coordenadas geogrficas, Profesor en Linea. [Online]. Available:
http://www.profesorenlinea.cl/geografiagral/Coordenadasgeog.htm.
[20] Coordenadas geogrficas. [Online]. Available: http://www.portaleducativo.net/quintobasico/684/Coordenadas-geograficas. [Accessed: 06-Sep-2015].
[21] Sistema
de
Coordenadas,
Coordenadas
GPS,
2015.
[Online].
Available:
http://www.coordenadas-gps.com/sistema-de-coordenadas.
[22] ms.gonzalez, La transmisin de datos en la telefona mvil | Redes Telemticas. .
[23] Las redes de transmisin de datos usadas en los telfonos celulares, NorfiPC. [Online].
Available: http://norfipc.com/celulares/redes-transmision-datos-usadas-telefonos-celulares.php.
[Accessed: 07-Sep-2015].
90
[24] Raspberry
Pi,
Raspberry
Shop,
2015-2011.
[Online].
Available:
http://www.raspberryshop.es/index.php.
[25] winfernux, Nuevo modelo de Raspberry Pi: La Model B+, Life Bit Blog. .
[26] Raspberry Pi, Wikipedia, the free encyclopedia. 09-Sep-2015.
[27] Raspberry Pi, Wikipedia, la enciclopedia libre. 03-Aug-2015.
[28] Accesorios para Raspberry Pi, Raspberry Shop, 2015-2011. [Online]. Available:
http://www.raspberryshop.es/accesorios-raspberry-pi.php.
[29] Modulo Gps Ublox NEO-6M, arm32. [Online]. Available: http://www.arm32.cl/wireless/32modulo-gps-ublox-neo-6m.html. [Accessed: 10-Sep-2015].
[30] Botscience EIRL, Mdulo GPS para Arduino UBlox NEO 6M, BOT Science, 2013. [Online].
Available: http://botscience.net/store/index.php?route=product/product&product_id=73.
[31] RASPBERRY PI | Historia de la Informtica. .
[32] Programando con Raspberry Pi B+ | botboss. .
[33] Python
PARA
TODOS.
[Online].
Available:
http://www.academia.edu/8911458/Python_PARA_TODOS. [Accessed: 10-Sep-2015].
[34] Tutorial 1 - Preparando la tarjeta SD para instalar el sistema operativo, Frambuesa Pi Colombia
- Raspberry Pi en espaol. .
[35] Tutorial 2 - Descarga de NOOBS y copia en la tarjeta SD, Frambuesa Pi Colombia - Raspberry Pi
en espaol. .
[36] S. G. B. M. P. R. at C. U. L. de F. P. Estudi and o un P. de I. B. en C. U. L. E. y promotor de los
principios de R. P. para los que hablamos espaol, Tutorial 3 - Instalacin y configuracin de
inicial del Raspberry Pi (raspi-config), Frambuesa Pi Colombia - Raspberry Pi en espaol. .
[37] Tutorial 4 (Parte 1) - Conexin del Raspberry Pi a Internet usando cable de red, Frambuesa Pi
Colombia - Raspberry Pi en espaol. .
[38] Tutorial 7 - Conexin remota al Raspberry Pi usando Xming, Frambuesa Pi Colombia - Raspberry
Pi en espaol. .
[39] Raspberry Pi NoIR Infrared Camera Board v1.3 (5MP, 1080p), Pi Supply. .
[40] Use the Raspberry Pi as a DIY Surveillance camera, Make Tech Easier. [Online]. Available:
https://www.maketecheasier.com/raspberry-pi-as-surveillance-camera/. [Accessed: 10-Sep2015].
[41] Tracker GPS con Raspberry Pi y el mdulo Ublox M6, fpaez.com. .
91