universidad de guayaquil facultad de ciencias matematicas y...
TRANSCRIPT
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN NETWORKING Y
TELECOMUNICACIONES
Diseño de un sistema de gestión, monitoreo y reserva de espacios en
estacionamientos públicos o privados a través de la aplicación móvil
Incorporando machine learning y OpenCV en la gestión
PROYECTO DE TITULACIÓN
Previa a la obtención del Título de:
INGENIERO EN NETWORKING Y TELECOMUNICACIONES
AUTOR (ES):
❖ David Salazar Acosta
❖ Kevin Ortiz Vera
TUTOR:
Ing. Ronald Alfredo Barriga Díaz, PhD.
GUAYAQUIL – ECUADOR
2019
ii
Repositorio Nacional en Ciencias y Tecnología
Ficha de Registro de Tesis
Título: “Diseño de un sistema de gestión, monitoreo y reserva de espacios en estacionamientos públicos o privados a
través de la aplicación móvil Incorporando machine learning y OpenCV en la gestión.”
Revisores: Ing. Christian Picón Farah,Msc
Institución: Universidad de Guayaquil Facultad: Ciencias, Matemáticas y Físicas
Carrera: Ingeniería en Networking y Telecomunicaciones
Fecha de Publicación: 1 de octubre del 2019 N° páginas: 121
Área Temática: Networking y Telecomunicaciones
Palabras Claves: App Móvil, api web, Panel de administración web, reservas, usuarios, establecimientos, roles,
reconocimiento de objetos, cobros
Resumen: El proyecto de titulación del sistema de gestión de estacionamiento busca satisfacer una necesidad que
permite a los usuarios de la aplicación conocer los espacios de estacionamiento disponibles, entre lugares de acceso
público como también privados. Para inicializar el proyecto se busca plantear un marco teórico, conceptual para detallar
los antecedentes previos al estudio, apoyo teórico y principio legal, adicionalmente se opta por incluir los resultados de la
fase de implementación del sistema de gestión de estacionamientos, incluyendo la funcionalidad de los siguientes
módulos: App Móvil, api web, Panel de administración web, gestión de reservas, gestión de usuarios, gestión de
establecimientos, roles por usuarios, reconocimiento de objetos, módulo de cobros. Finalizando con los respectivos
entregables del proyecto, de igual manera se elaborar una matriz de puntos de aceptación del proyecto identificando los
ítems cumplidos a la vez que se resaltaran las conclusiones y recomendaciones.
Para finalizar en los anexos se documentará los pasos de instalación y manual de usuario, preguntas frecuentes de
resultado de las encuestas.
N° de Registro (en base de datos): N° de Clasificación:
Dirección URL (Proyecto de Titulación en la web):
Adjunto de PDF: Si No
Contacto con Autor:
Kevin Ortiz Vera
David Salazar Acosta
Teléfono:
0978831398
0969594095
E-mail:
Contacto de la Institución: Nombre: Ab. Juan Chávez Atocha, Esp.
Teléfono:
x
iii
CARTA DE APROBACIÓN DEL TUTOR
En mi calidad de Tutor del trabajo de investigación, “Diseño de un sistema de gestión,
monitoreo y reserva de espacios en estacionamientos públicos o privados a través de
la aplicación móvil Incorporando machine learning y OpenCV en la gestión.” elaborado
por el Sr. Kevin Christian Ortiz Vera, Sr. Josué David Salazar Acosta, Alumno no
titulados de la Carrera de Ingeniería en Networking y Telecomunicaciones, y
Facultad de Ciencias Matemáticas y Físicas de la Universidad de Guayaquil, previo a
la obtención del Título de Ingeniero en Networking y Telecomunicaciones, me permito
declarar que luego de haber orientado, estudiado y revisado, la Apruebo en todas sus
partes.
Atentamente,
Ing. Ronald Alfredo Barriga Díaz, PhD.
Tutor
iv
DEDICATORIA
Este logro alcanzado se
lo dedico a mi familia
que durante todo este
proceso de aprendizaje
estuvo apoyándome a
seguir adelante
cumpliendo esta meta
alcanzada, así también
con las personas
siempre estuvieron
dispuestas ayudarme, y
los compañeros que
durante todo este
tiempo estuvieron
conmigo aprendiendo a
ser mejores
profesionales. Por
último, a los docentes
me guiaron hasta esta
etapa, haciendo posible
mi formación
profesional.
v
AGRADECIMIENTO
Agradezco en primer
lugar a Dios, por
permitirme avanzar en
mi carrera Profesional,
así mismo a mis padres
por estar pendientes y
siempre dispuestos a
colaborar conmigo
Finalmente, a todos mis
seres queridos que
fueron partícipe de mis
múltiples logros
alcanzados durante
esta etapa.
vi
TRIBUNAL DE PROYECTO DE TITULACION
Fausto Cabrera Montes, Msc.
DECANO DE LA FACULTAD
CIENCIAS MATEMÁTICAS Y
FÍSICAS
Ing. Abel Alarcón Salvatierra, Msc.
DIRECTOR DE LA CARRERA DE INGENIERÍA EN
NETWORKING Y TELECOMUNICACIONES
Ing. Christian Picón Farah, Msc
PROFESOR REVISOR DEL
PROYECTO
TRIBUNAL
Ing. William Rodríguez
PROFESOR DEL ÁREA TRIBUNAL
Ing. Ronald Alfredo Barriga Diaz, PhD.
PROFESOR TUTOR DEL PROYECTO DE TITULACION
Ab. Juan Chávez Atocha, Esp.
SECRETARIO (E) DE LA FACULTAD
vii
DECLARACIÓN EXPRESA
Kevin Christian Ortiz Vera Josué David Salazar Acosta
“La responsabilidad del
contenido de este
Proyecto de titulación,
me corresponden
exclusivamente; y el
patrimonio intelectual
de la misma a la
UNIVERSIDAD DE
GUAYAQUIL”
viii
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN NETWORKING Y
TELECOMUNICACIONES
DISEÑO DE UN SISTEMA DE GESTIÓN, MONITOREO Y RESERVA DE
ESPACIOS EN ESTACIONAMIENTOS PÚBLICOS O PRIVADOS A TRAVÉS DE
LA APLICACIÓN MÓVIL INCORPORANDO MACHINE LEARNING Y OPENCV EN
LA GESTIÓN
Proyecto de Titulación que se presenta como requisito para optar por el título de
INGENIERO EN NETWORKING Y TELECOMUNICACIONES
AUTOR/A: KEVIN CHRISTIAN ORTIZ VERA
C.I. 0953412897
JOSUÉ DAVID SALAZAR ACOSTA
C.I. 0931637151
TUTOR: ING. RONALD ALFREDO BARRIGA DIAZ, PhD.
Guayaquil, septiembre del 2019
ix
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de tutor del Proyecto, nombrando por el consejo directivo de la Facultad
de Ciencias, Matemáticas y Físicas de la Universidad de Guayaquil
CERTIFICO:
Que he analizado el Proyecto de Titulación presentado por los estudiantes
KEVIN CRISTIAN ORTIZ VERA Y JOSUÉ DAVID SALAZAR ACOSTA, como requisito previo
para optar por el título de Ingeniero en Networking y Telecomunicaciones cuyo problema es:
DISEÑO DE UN SISTEMA DE GESTIÓN, MONITOREO Y RESERVA DE ESPACIOS EN
ESTACIONAMIENTOS PÚBLICOS O PRIVADOS A TRAVÉS DE LA APLICACIÓN MÓVIL
INCORPORANDO MACHINE LEARNING Y OPENCV EN LA GESTIÓN.
Considero aprobado el trabajo en su totalidad.
Presentado por:
KEVIN CHRISTIAN ORTIZ VERA
C.I. 0953412897
JOSUÉ DAVID SALAZAR ACOSTA
C.I. 093163715
TUTOR: ING. RONALD ALFREDO BARRIGA DIAZ, PHD.
GUAYAQUIL, SEPTIEMBRE DEL 2019
x
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN NETWORKING Y TELECOMUNICACIONES
Autorización para Publicación de Proyecto de Titulación en Formato Digital
1. Identificación del Proyecto de Titulación
Nombre Alumno: Kevin Christian Ortiz Vera
Nombre Alumno: Josué David Salazar Acosta
Dirección: Coop. juan Montalvo Mz 1747 Sl 13
Dirección: Alborada 5 etapa Mz dc villa 5
Teléfono:0978831398 E-mail: [email protected]
Teléfono:0969594095 E-mail: [email protected]
Facultad: Ciencias, Matemáticas y Físicas
Carrera: Ingeniería En Networking Y Telecomunicaciones
Título Al Que Opta: Ingeniero En Networking Y Telecomunicaciones
Profesor de Tutor: Ing. Ronald Alfredo Barriga Díaz, PhD.
Título del Proyecto de titulación: Diseño de un sistema de gestión, monitoreo y reserva de espacios en
estacionamientos públicos o privados a través de la aplicación móvil Incorporando machine learning y OpenCV
en la gestión.
Tema del Proyecto de Titulación: Móvil, Aplicación, Servicios, Api, Front end, Back end, Multiplataforma,
OpenCV, Machine Learning
xi
2. Autorización de Publicación de Versión Electrónica del Proyecto de Titulación
A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y a la Facultad
de Ciencias Matemáticas y Físicas a publicar la versión electrónica de este Proyecto de
titulación.
Publicación electrónica:
Inmediata Después de 1 año
Kevin Christian Ortiz Vera Josué David Salazar Acosta
3. Forma de envió:
El texto del proyecto de titulación debe ser enviado en formato Word, como archivo .Doc. O .RTF y.
Puf para PC. Las imágenes que la acompañen pueden ser: .gif, .jpg o .TIFF.
DVD ROM CD ROM
x
xii
INDICE GENERAL
Índice
CARTA DE APROBACIÓN DEL TUTOR .................................................................. iii
DEDICATORIA ..........................................................................................................iv
AGRADECIMIENTO .................................................................................................. v
TRIBUNAL DE PROYECTO DE TITULACION .........................................................vi
DECLARACIÓN EXPRESA ...................................................................................... vii
CERTIFICADO DE ACEPTACIÓN DEL TUTOR .......................................................ix
ABREVIATURAS ......................................................................................................xv
ÍNDICE DE TABLAS ................................................................................................ xvi
ÍNDICE DE GRÁFICOS .......................................................................................... xvii
INTRODUCCIÓN ....................................................................................................... 1
CAPITULO I ............................................................................................................... 2
EL PROBLEMA ........................................................................................ 2
PLANTEAMIENTO DE PROBLEMA ........................................................ 2
SITUACIÓN DE CONFLICTOS DE NUDOS CRÍTICOS .......................... 3
CAUSAS Y CONSECUENCIAS DEL PROBLEMA ................................. 3
FORMULACIÓN DEL PROBLEMA ......................................................... 4
EVALUACIÓN DEL PROBLEMA ............................................................. 5
OBJETIVOS ............................................................................................. 6
OBJETIVO GENERAL .......................................................................... 6
OBJETIVO ESPECIFICO...................................................................... 6
ALCANCE DEL PROBLEMA ................................................................... 7
JUSTIFICACIÓN E IMPORTANCIA ......................................................... 7
METODOLOGÍA DE PROYECTO ............................................................ 8
CAPITULO II .............................................................................................................. 9
MARCO TEÓRICO ................................................................................... 9
Antecedentes del Estudio ...................................................................... 9
2.1- FUNDAMENTACIÓN TEÓRICA ..................................................... 11
xiii
2.1.1- ¿QUÉ ES MACHINE LEARNING? ........................................... 11
2.1.2- ¿QUE ES LARAVEL? .............................................................. 12
2.1.3- ¿QUÉ ES OPENCV? ................................................................ 13
2.1.4- ¿QUÉ ES PYTHON? ................................................................ 14
2.1.5- ¿QUÉ ES IONIC? ..................................................................... 16
2.1.6- ¿QUÉ ES ANGULAR? ............................................................. 17
2.1.7- ¿QUÉ ES Y PARA QUÉ SIRVE JAVASCRIPT? ...................... 18
2.1.8- ¿QUÉ ES TYPESCRIPT? ......................................................... 19
2.1.9- ¿QUÉ ES UN SUPERSET? ...................................................... 20
2.1.10- ¿QUÉ ES ELECTRON JS? .................................................... 22
2.1.11- ¿Qué es socket.io? ............................................................... 23
2.1.12- ¿QUÉ ES SQL? ...................................................................... 24
2.1.13- ¿Qué es una base de datos? ................................................ 25
2.1.14- BASE DE DATOS RELACIONAL .......................................... 26
2.1.15- ¿QUÉ ES UNA RED LAN? ..................................................... 27
2.1.16- ¿Qué es y para qué sirve el Cloud Computing? ................. 34
2.1.17- ¿QUÉ ES UNA CÁMARA IP? ................................................ 37
2.1.18- Protocolo RTSP ..................................................................... 41
2.2- FUNDAMENTACIÓN LEGAL ......................................................... 45
2.3- DEFINICIONES CONCEPTUALES ................................................. 47
CAPITULO III ........................................................................................................... 49
PROPUESTA TECNOLÓGICA................................................................................ 49
3.1- Análisis de Factibilidad ................................................................. 49
3.1.1 Factibilidad Operacional .......................................................... 50
3.1.2 Factibilidad Técnica ................................................................. 50
3.1.3 Factibilidad Legal ..................................................................... 54
3.1.4 Factibilidad Económica ........................................................... 54
3.2 Etapas de la metodología del proyecto......................................... 55
3.2.1 Metodología de trabajo ............................................................ 55
3.2.2 Propósito de la documentación .............................................. 55
3.2.3 Alcance...................................................................................... 55
xiv
3.2.4 ETAPAS DE METODOLOGÍA DEL PROYECTO ...................... 56
3.3 - CRITERIOS DE VALIDACIÓN DE LA PROPUESTA .................... 78
3.3.1- ENCUESTAS ............................................................................ 78
3.3.2 -PROCESAMIENTO Y ANÁLISIS ............................................. 78
3.3.3- RESULTADOS DE LA ENCUESTA DIRIJIDA PARA LOS
USUARIOS DE LA UNIVERSIDAD DE GUAYAQUIL ........................ 79
CAPÍTULO IV ......................................................................................................... 88
CRITERIOS DE ACEPTACIÓN DEL PRODUCTO O SERVICIO........................... 88
CONCLUSIONES ....................................................................................................... 89
RECOMENDACIONES ................................................................................................ 90
Bibliografía ............................................................................................................... 91
ANEXOS .................................................................................................................. 95
xv
ABREVIATURAS
API: Application Programming Interface. IP: Protocolo de Internet UG: Universidad de Guayaquil RTSP: Real Time Streaming Protocol
HTTP: Protocolo de transferencia de hipertexto
ORM: Object-Relational mapping
TCP: Transmission Control Protocol
ftp: Protocolo de transferencia de archivos
xvi
ÍNDICE DE TABLAS
Tabla 1.Delimitación del Problema ........................................................................................................... 4
Tabla 2.COMPONENTES DEL PROYECTO............................................................................................ 51
Tabla 3.COSTOS DEL PROYECTO ......................................................................................................... 54
Tabla 4.Pregunta 1 ..................................................................................................................................... 79
Tabla 5.Pregunta 2 ..................................................................................................................................... 80
Tabla 6. Pregunta 3.................................................................................................................................... 81
Tabla 7.Pregunta 4 ..................................................................................................................................... 82
Tabla 8.Pregunta 5 ..................................................................................................................................... 83
Tabla 9. Pregunta 6.................................................................................................................................... 84
Tabla 10. Pregunta 7 ................................................................................................................................. 85
Tabla 11. Pregunta 8 ................................................................................................................................. 86
Tabla 12. Pregunta 9 ................................................................................................................................. 87
Tabla 13. Matriz de Aceptación del Producto ....................................................................................... 88
xvii
ÍNDICE DE GRÁFICOS
Gráfico 1.Análisis estadístico de congestionamiento vehicular....................................................... 10
Gráfico 2.MACHINE LEARNING .............................................................................................................. 11
Gráfico 3.LARAVEL ................................................................................................................................... 12
Gráfico 4.OPENCV ..................................................................................................................................... 13
Gráfico 5.PYTHON ..................................................................................................................................... 14
Gráfico 6.IONIC .......................................................................................................................................... 16
Gráfico 7.ANGULAR .................................................................................................................................. 17
Gráfico 8.JAVASCRIPT ............................................................................................................................. 18
Gráfico 9.TYPESCRIPT ............................................................................................................................. 19
Gráfico 10.ELECTRON JS MAIN PROCESS .......................................................................................... 22
Gráfico 11.SOCKET.IO SERVER ............................................................................................................. 23
Gráfico 12.DIAGRAMA DE SQL ............................................................................................................... 24
Gráfico 13.MOTOR DE BASE DE DATOS RELACIONAL .................................................................... 25
Gráfico 14.OTROS MOTORES DE BASE DE DATOS........................................................................... 26
Gráfico 15.INTEGRACIÓN DE BASE DE DATOS .................................................................................. 27
Gráfico 16.ESTRUCTURA DE ORDENADORES POR CONEXIÓN LAN ............................................ 30
Gráfico 17.CLOUD COMPUTING ............................................................................................................. 34
Gráfico 18.CÁMARA IP ............................................................................................................................. 37
Gráfico 19.CONEXIÓN A CAMARA DE VIDEO ...................................................................................... 39
Gráfico 20.Protocolo RTSP ...................................................................................................................... 42
Gráfico 21.PANTALLA DE HERRAMIENTA PUTTY ............................................................................. 58
Gráfico 22.Pantalla de Terminal del servidor ....................................................................................... 58
Gráfico 23.ACTUALIZACIÓN DE PAQUETES DE UBUNTU ................................................................ 59
Gráfico 24.TERMINAL DE DESCARGA DE XAMPP ............................................................................. 59
Gráfico 25.INSTALACIÓN DE XAMPP .................................................................................................... 60
Gráfico 26.DESCARGANDO PAQUETERIA DE COMPOSER ............................................................. 61
Gráfico 27.Pantalla de Terminal .............................................................................................................. 61
Gráfico 28.COMPOSER ............................................................................................................................. 61
xviii
Gráfico 29.INSTALACIÓN COMPLETA DE COMPOSER ..................................................................... 62
Gráfico 30.INSTALACIÓN DE NODE JS ................................................................................................. 62
Gráfico 31. -V NVM .................................................................................................................................... 63
Gráfico 32.DESCARGAR ULTIMA VERSIÓN DE NODE JS ................................................................. 63
Gráfico 33. INSTALACIÓN DE PYTHON ................................................................................................. 64
Gráfico 34.INSTALACIÓN DE DEPENDENCIAS ................................................................................... 64
Gráfico 35.INSTALACIÓN DE PYTHON-SOCKETIO............................................................................ 65
Gráfico 36.CLONACION DE REPOSITORIO .......................................................................................... 65
Gráfico 37.INSTALACIÓN DE DEPENDENCIAS ................................................................................... 66
Gráfico 38.VARIABLES DE ENTORNO................................................................................................... 66
Gráfico 39.CONFIGURACION DE ENV ................................................................................................... 67
Gráfico 40.INGRESO DE ACCESO .......................................................................................................... 67
Gráfico 41.ACTIVAMOS MYSQL ............................................................................................................. 68
Gráfico 42.CREACION DE LA BASE DE DATOS .................................................................................. 68
Gráfico 43.PANTALLA TERMINAL .......................................................................................................... 69
Gráfico 44.CLONACION DE REPOSITORIA GITLAB ........................................................................... 70
Gráfico 45.INSTALACIÓN DE DEPENDENCIAS ................................................................................... 70
Gráfico 46.HERRAMIENTA PM2 .............................................................................................................. 71
Gráfico 47.COMANDO START MAIN.JS ................................................................................................. 71
Gráfico 48.COMANDO GIT CLONE ......................................................................................................... 72
Gráfico 49.COMANDO PYTHON3 MAIN.PY & ....................................................................................... 72
Gráfico 50.INSTALACIÓN DE NPM ......................................................................................................... 73
Gráfico 51.INSTALACIÓN DEL PROJECTO .......................................................................................... 73
Gráfico 52.ESCRIBIMOS LA URL DEL SERVIDOR .............................................................................. 74
Gráfico 53.COMANDO NG BUILD-PROD ............................................................................................... 74
Gráfico 54.HERRAMIENTA WINSCP....................................................................................................... 75
Gráfico 55.EMPAQUETADO DE LOS ARCHIVOS ................................................................................. 75
Gráfico 56.COMANDO UNZIP .................................................................................................................. 76
Gráfico 57.DESCOMPRECIÓN DEL ARCHIVO ...................................................................................... 76
Gráfico 58.CAMBIO DE NOMBRE DE LA CARPETA ........................................................................... 77
Gráfico 59.PANTALLA DE INGRESO ..................................................................................................... 77
Gráfico 60.GRAFICO DE ENCUESTA PREGUNTA 1............................................................................ 79
Gráfico 61.GRAFICO DE ENCUESTA PREGUNTA 2............................................................................ 80
Gráfico 62.GRAFICO DE ENCUESTA PREGUNTA 3............................................................................ 81
Gráfico 63..GRAFICO DE ENCUESTA PREGUNTA 4........................................................................... 82
xix
Gráfico 64.GRAFICO DE ENCUESTA PREGUNTA 5............................................................................ 83
Gráfico 65.GRAFICO DE ENCUESTA PREGUNTA 6............................................................................ 84
Gráfico 66.GRAFICO DE ENCUESTA PREGUNTA 7............................................................................ 85
Gráfico 67.GRAFICO DE ENCUESTA PREGUNTA 8............................................................................ 86
Gráfico 68.GRAFICO DE ENCUESTA PREGUNTA 9............................................................................ 87
Gráfico 69.FORMULARIO DE ENCUESTA PREGUNTA 1 ................................................................... 96
Gráfico 70.FORMULARIO DE ENCUESTA PREGUNTA 2 & 3 ............................................................ 97
Gráfico 71.FORMULARIO DE ENCUESTA PREGUNTA 4-5-6 ............................................................. 98
Gráfico 72.FORMULARIO DE ENCUESTA PREGUNTA 7-8 ................................................................ 99
Gráfico 73.FORMULARIO DE ENCUESTA PREGUNTA 9 ................................................................... 99
Gráfico 74.ANEXO 1 FOTOGRAFIA DE ESTACIONAMIENTO.......................................................... 100
Gráfico 75.ANEXO 1 FOTOGRAFIA DE ESTACIONAMIENTO.......................................................... 100
Gráfico 76.EVIDENCIA ANEXO.............................................................................................................. 101
Gráfico 77.EVIDENCIA ANEXO.............................................................................................................. 101
xx
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS
MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN NETWORKING Y TELECOMUNICACIONES
“Diseño de un sistema de gestión, monitoreo y reserva de espacios en
estacionamientos públicos o privados a través de la aplicación móvil Incorporando
machine learning y OpenCV en la gestión.”
AUTOR: KEVIN CHRISTIAN ORTIZ VERA JOSUÉ DAVID SALAZAR ACOSTA
TUTOR: ING. RONALD ALFREDO BARRIGA DIAZ, PhD
Resumen
El proyecto de titulación del sistema de gestión de estacionamiento busca satisfacer una necesidad
que permita a los usuarios mediante una aplicación móvil, conocer los espacios de estacionamiento
disponibles, entre lugares de acceso público como también privados. Para inicializar el proyecto se
busca plantear un marco teórico, conceptual para detallar los antecedentes previos al estudio, apoyo
teórico y principio legal, adicionalmente se opta por incluir los resultados de la fase de implementación
del sistema de gestión de estacionamientos, incluyendo la funcionalidad de los siguientes módulos:
App Móvil, ,api web, Panel de administración web, gestión de reservas, gestión de usuarios, gestión
de establecimientos, roles por usuarios, reconocimiento de objetos, módulo de cobros. Finalizando
con los respectivos entregables del proyecto, de igual manera se elaborar una matriz de puntos de
aceptación del proyecto identificando los ítems cumplidos a la vez que se resaltarán las conclusiones
y recomendaciones.
Para finalizar en los anexos se documentará los pasos de instalación y manual de usuario, preguntas
frecuentes de resultado de las encuestas.
Palabras Claves: App Móvil, api web, Panel de administración web, reservas, usuarios,
establecimientos, roles, reconocimiento de objetos, cobros.
xxi
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS
MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERIA EN NETWORKING Y TELECOMUNICACIONES
"Design of a management, monitoring and reservation system for public or private
parking spaces through the mobile application Incorporating machine learning and
OpenCV in management."
AUTOR/A: KEVIN CHRISTIAN ORTIZ VERA JOSUÉ DAVID SALAZAR ACOSTA
TUTOR: ING. RONALD ALFREDO BARRIGA DIAZ PhD
Abstract.
The title project of the parking management system seeks to satisfy a need that allows users through a
mobile application to know the available parking spaces, between public and private access places. In
order to initialize the project, the aim is to propose a theoretical, conceptual framework to detail the pre-
study background, theoretical support and legal principle, in addition, it is decided to include the results
of the implementation phase of the parking management system, including the functionality of the
following modules: Mobile App, web api, Web administration panel, reservation management, user
management, establishment management, user roles, object recognition, payment module. Finalizing
with the respective deliverables of the project, in the same way a matrix of points of acceptance of the
project will be developed identifying the items met while highlighting the conclusions and
recommendations.
To finalize in the annexes, the installation steps and user manual, frequently asked questions about the
results of the surveys will be documented.
Keywords: Mobile App, web api, Web administration panel, reservations, users, establishments, roles,
object recognition, collections.
1
INTRODUCCIÓN
Actualmente en los lugares de estacionamientos cuentan con una propuesta firme acerca de
un sistema de gestión de estacionamientos en los sectores públicos y privados, pero no
disponen con una herramienta eficiente para el monitoreo y control apropiado de los lugares
de estacionamientos. Nuestro sistema pretende optimizar la forma de monitorear y gestionar
los espacios disponibles para los lugares de facilitan parqueo vehicular.
Se busca la implementación de cámaras de seguridad que gestionarán en tiempo real los
espacios disponibles para los vehículos en el estacionamiento, los usuarios podrán tener
acceso, una vez registrados, a nuestra aplicación móvil para ubicar sitios en lugares públicos
y privados donde poder estacionar sus vehículos. En el módulo publico podrán conocer que
espacios están disponibles en el alcance de la zona de cobertura y en módulo privado el re
direccionará a establecimientos que cuenten con espacios listos para usar, previo a la
cancelación de la respectiva tarifa del parqueadero. Las pruebas de este prototipo se
implementarán en los patios de la universidad de Guayaquil en la facultad de ciencias
matemáticas y física de las calles Víctor Manuel Rendón 429 entre Baquerizo Moreno y
Córdova.
A continuación, se presenta el resumen del proyecto en función de cada capítulo a desarrollar:
• Capítulo I: En este capítulo se describe el problema sobre la falta de un sistema de gestión
de control de espacios de estacionamientos y el efecto que presenta en los conductores de
automóviles con sus respectivas causas, consecuencias y situación de nudo crítico. Además,
se describe el objetivo general, los objetivos específicos y alcances.
• Capitulo II: Se detalla el marco teórico, antecedentes de estudio, fundamentación legal,
hipótesis o pregunta científica a contestarse y definiciones conceptuales.
• Capítulo III: Se presenta la propuesta tecnológica sobre la implementación de un sistema
de gestión de control de espacios de estacionamientos describiendo los recursos: técnicos,
operacionales, económicos y legales, además en las etapas de metodología del proyecto se
anexan la configuración de la plataforma culminando con los entregables del proyecto y
criterios de validación de la propuesta.
• Capítulo IV: Se elabora una matriz de aceptación del producto validando el cumplimiento
de cada objetivo específico, culminando con las conclusiones y recomendaciones.
2
CAPITULO I
EL PROBLEMA
PLANTEAMIENTO DE PROBLEMA
Ubicación del Problema en un Contexto
Debido al incremento vehicular en la ciudad Guayaquil, existe una desorganización total; pero
si hablamos de la Universidad de Guayaquil y sus alrededores, las calles fueron diseñadas
para manejar volúmenes de circulación menores a los que se generan hoy en día a
determinadas horas pico. Debido a que los conductores no saben dónde pudiesen encontrar
un estacionamiento libre, manejan despacio para identificar un lugar desocupado. El
resultado de este procedimiento, es un gran congestionamiento provocado por vehículos que
desean circular normalmente y los que se encuentran buscando estacionamiento, lo cual
ocasiona que los conductores se estacionen en doble columna en la vía públicas
exponiéndose a las multas por parte de las autoridades de la agencia de tránsito. Además,
de causar frustración y estrés a los conductores.
El congestionamiento trae algunos problemas:
Pérdida de tiempo: los conductores deben invertir mucho tiempo antes de que puedan
encontrar un aparcamiento libre, y como consecuencia pueden llegar tarde a su lugar de
trabajo e incluso tarde a la hora de clases, por el contrario, sin el congestionamiento podrían
hacerlo de forma más rápida. Además, esto afecta a otros conductores que están dentro de
la universidad por la demora provocadas en cadena.
Situaciones peligrosas: Mientras que los conductores están buscando un aparcamiento libre,
su atención está dividida entre el manejo y la búsqueda, por lo que suelen estar distraídos y
la probabilidad de un accidente puede crecer e incluso robos e inseguridad general.
3
El enfoque principal será diseñar un prototipo de control y monitoreo para parqueos
vehiculares con el fin que el usuario tenga más precisión al momento de buscar e identificar
un lugar para parquear su automóvil.
SITUACIÓN DE CONFLICTOS DE NUDOS CRÍTICOS
Actualmente dentro y los alrededores de la universidad de Guayaquil, que es nuestro objetivo,
tiene mucho congestionamiento, desorganización en los espacios asignados para
estacionamiento, lo que para los usuarios le dificultad al momento de buscar un lugar para
parquear, generando malestar, inseguridad e incluso los riesgos a las multas que imponen el
personal de tránsito acantonado en el sector, esto provocado por la falta de un sistema de
monitoreo y control ordenado de entrada y salida de cada usuario.
CAUSAS Y CONSECUENCIAS DEL PROBLEMA
A continuación, se demuestran las siguientes causas y consecuencias del problema.
Causas:
• Usuarios no autorizados en el momento parquear.
• Disponibilidad de parqueo
• Control de entrada y salida de los vehículos
Consecuencia:
• Provocar mucho congestionamiento
• Pérdida de tiempo
• Pérdida de control y desorganización
4
DELIMITACIÓN DEL PROBLEMA
Tabla 1.Delimitación del Problema Campo
Desarrollo Software
Área:
Sistemas y redes
Aspecto:
Monitoreo de espacios de estacionamientos
Tema:
Diseño de un sistema de gestión, monitoreo y reserva de
espacios en estacionamientos públicos o privados a través
de la aplicación móvil Incorporando machine learning y
OpenCV en su gestión
Fuente: Trabajo de Investigación
Autor: Kevin Ortiz – Josué Salazar
FORMULACIÓN DEL PROBLEMA
1. ¿Cree usted que con un sistema de gestión de espacios de estacionamientos se podrá
obtener una mayor optimización y eficiencia al momento buscar un sitio disponible
para estacionar su vehículo?
5
EVALUACIÓN DEL PROBLEMA
A continuación, se describen 6 aspectos en la evaluación del problema estos son los
siguientes:
• Delimitado: Gestión de espacios de estacionamiento, Universidad de Guayaquil
(Sede Centro: Víctor M. Rendón entre Baquerizo Moreno y Córdova)
• Evidente: Se va a crear un sistema optimizado para los paqueos vehiculares
• Concreto: Pretende solucionar el mal manejo de parqueos
• Original: Trae un aspecto nuevo e innovador referente a los estacionamientos
• Factible: Es factible ya que no requiere de mucho recurso a nivel económico
• Identifica los productos esperados: Si es útil, contribuye a la gestión de
estacionamientos en espacios públicos y privados
6
OBJETIVOS
OBJETIVO GENERAL
• Diseñar un sistema de gestión y monitoreo de espacios en estacionamientos para los
usuarios, a través de una aplicación móvil compuesta por soluciones en machine
learning y OpenCV, que permita detectar e identificar a los espacios de
estacionamiento libres.
OBJETIVO ESPECIFICO
• Analizar la situación actual en la gestión a los estacionamientos
• Identificar nuevas estrategias a la gestión de estacionamientos para los usuarios
• Establecer los sitios o lugares de parqueos
• Utilizar un sistema de cámara de vigilancia para así determinar disponibilidades de
parqueo.
• Crear una plataforma móvil que permita gestionar espacios mediante video analítica.
7
ALCANCE DEL PROBLEMA
Los alcances del problema son los siguientes:
▪ Diseño de un prototipo que permita a los usuarios acceder a la zona de parqueo a
través de una aplicación móvil y sea administrada por una plataforma web.
▪ Implementar un software dedicado a la detección de objetos con cámaras de vigilancia
▪ Aplicar un control para gestionar los espacios de estacionamientos.
JUSTIFICACIÓN E IMPORTANCIA
En los estacionamientos de la Universidad de Guayaquil existen una serie de espacios
concebidos para el parqueo de personal autorizado de la institución, con lo antes mencionado,
nuestra solución del problema plantea llevar un control de los estacionamientos, permitiendo
más facilidad al personal institucional para que en el menor tiempo posible pueda encontrar
y determinar su lugar de ubicación mediante el uso de la aplicación móvil, la cual puede
reducir los tiempos muertos.
Este sistema tendrá como avance tecnológico el uso de OpenCV, el cual a través de la
cámara de vigilancia nos permitirá monitorear constantemente los sitios de parqueos que se
encuentran disponibles u ocupados a cualquier hora y espacio de tiempo solicitado.
El OpenCV es una herramienta de software de visión artificial, la cual hoy en día es de mucha
utilidad porque permite identificar objetos, caras, clasificar acciones humanas en vídeo, hacer
tracking de movimientos de objetos, seguir el movimiento de los ojos, reconocer escenarios,
la detección de intrusos, monitorización de equipamientos, entre otros mediante video.
8
METODOLOGÍA DE PROYECTO
Los resultados de esta investigación se basan en hacer un sistema para los usuarios las
cuales les permita determinar los estacionamientos disponibles a través de una aplicación
móvil e incluso detectar el objeto.
La metodología que se va aplicar en nuestro proyecto son las siguientes:
• Fase I: Recopilación de información dentro de la universidad de Guayaquil (personal,
docente, administrativo)
• Fase II: Diseño de la Implementación del prototipo para el control de entrada y salida
de estacionamiento
• Fase III: Monitoreo y Control de cada usuario por medio de la aplicación móvil y página
web dentro del parqueadero
9
CAPITULO II
MARCO TEÓRICO
Antecedentes del Estudio
En la actualidad el incremento de vehículos se ha vuelto una necesidad en torno a las
personas, y más aún en las familias. La afluencia de vehículos en la ciudad es notoria debido
al grado de poder adquisitivo de un vehículo en la actualidad.
Desde que asumieron el control de tránsito los Agentes Municipales (ATM), tienen como
desafío disminuir el tráfico, ya que es un gran impacto que aqueja a toda la ciudad;
conductores indican que el caos vehicular ha aumentado en la ciudad, y que la hora pico se
ha extendido a prácticamente todo el día. La ATM, también incidió a que se establecería un
proceso para modernizar la tecnología para mejorar las intersecciones en la ciudad, señala
que un promedio de 200 autos puede ser paralizados en hora pico, si un bus se estanca en
una intersección, y apuntan que el problema del tráfico radica en las intersecciones de las
avenidas. (Pacheco, 2017)
Inrix ha definido a las horas pico de 06:00- 09:00 y de 16:00- 19:00. Sin embargo, a partir del
2016 se definen en función de los hábitos de conducción reales en cada ciudad. En Guayaquil
son entre 06:00 y 09:00 y entre 17:00 y 20:00, según la ATM (expreso, 2019)
Según la Consultora Internacional Inrix en un estudio realizado en el 2015 coloca a la ciudad
de Guayaquil en el puesto 21 como las ciudades con más congestión vehicular de la región,
mencionando que el número de horas de espera es de 33.2, con un 12 % de congestión al
día esto a diferencia de la ciudad de Bogotá la cual ocupa el primer lugar de América del Sur,
con un tiempo de espera de 79.8, y con un 33% congestión diaria. (Pacheco, 2017)
10
Gráfico 1.Análisis estadístico de congestionamiento vehicular
Fuente: (Pacheco, 2017)
Autor: (Pacheco, 2017)
Según el Inrix para sacar el número promedio de horas de congestionamiento durante las
horas pico para cada ciudad se miden los 240 días hábiles. Los atascos registrados los fines
de semana tienen un porcentaje distinto al general.
Esto se da como resultado de factores tales como la pérdida de productividad de los
empleados, mayores costos de transporte y más contaminación.
Este proyecto va dirigido a los usuarios vehiculares para brindarles un buen servicio en los
estacionamientos, utilizando un sistema de visión artificial la cual nos facilitará reconocer los
objetos y los espacios de estacionamientos
11
2.1- FUNDAMENTACIÓN TEÓRICA
2.1.1- ¿QUÉ ES MACHINE LEARNING?
Es inteligencia artificial que crea sistemas que aprenden de manera automatizada, es decir,
identificar patrones complejos en millones de datos, predecir comportamientos todo mediante
un algoritmo y que además de todo son capaces de mejorarse de manera independiente con
el tiempo. Existen dos tipos de Machine Learning, supervisado y no supervisado.
Gráfico 2.MACHINE LEARNING
Fuente: (roadshow, 2018)
Autor: (roadshow, 2018)
El aprendizaje supervisado es en pocas palabras aquel aprendizaje al que previamente le
has incluido etiquetas en la información para que él detecte patrones y por lo mismo
proyecciones o realice alguna acción
El aprendizaje no supervisado, el algoritmo se modifica solo y no contiene conocimiento a
priori, es decir ningún dato ha sido etiquetado, saca sus conclusiones de acuerdo al algoritmo
tomando factores de manera indistinta que no tienen ni nombre, ni orden, ni marca. (Alondra
Castro, 2017)
El machine learning es un método de análisis de datos que automatiza la construcción de
modelos analíticos. Es una rama de la inteligencia artificial basada en la idea de que los
sistemas pueden aprender de datos, identificar patrones y tomar decisiones con mínima
intervención humana. (SAS, 2019)
12
2.1.2- ¿QUE ES LARAVEL?
Laravel es un nuevo y poderoso Framework PHP desarrollado por Taylor Otwell, que promete
llevar al lenguaje PHP a un nuevo nivel.
Gráfico 3.LARAVEL
Fuente: (ikerg1972, 2019)
Autor: (ikerg1972, 2019)
Laravel, propone una forma de desarrollar aplicaciones web de un modo mucho más ágil. Por
ejemplo, en Laravel opcionalmente podemos usar el patrón de diseño MVC (Modelo-Vista-
Controlador) tradicional, donde al igual que otros frameworks PHP, el controlador es
programado como una clase. Un controlador es una clase PHP que dispone de métodos
públicos que son el punto de entrada final de una petición HTTP (Request PHP) a nuestra
aplicación. Pero, Lavarel propone además una forma distinta y más directa de responder a la
solicitud HTTP, las Desarrollos en aplicaciones usando Laravel es muy sencillo,
fundamentalmente debido a su expresiva sintaxis, sus generadores de código, y su ORM
incluido de paquete llamado Eloquent ORM. (Que es laravel, 2013)
¿Por qué Laravel?
Laravel es un framework PHP, básicamente es un conjunto de clases PHP que hacen la
creación de tu proyecto web más fácil.
13
Gestión de las rutas con Laravel
Nos permite gestionar de forma simple, pero potente, los endpoints de la aplicación. De
'http://www.example.com/posts' nos quedamos con la parte de '/posts', ahí le decimos a
Laravel "cuando vayan a '/posts' quiero que que realices esta acción. No solo gestiona de
'/posts' a una acción, sino que es capaz de distinguir entre 6 formas de ir a '/posts (Bonito,
2017)
2.1.3- ¿QUÉ ES OPENCV?
OpenCV (Open Source Computer Vision) es una librería software open-source de visión
artificial y machine learning. OpenCV provee una infraestructura para aplicaciones de visión
artificial.
Gráfico 4.OPENCV
Fuente: (Rosebrock, 2019)
Autor: (roadshow, 2018)
OpenCV tiene una licencia BSD, lo que permite utilizar y modificar el código, tiene una
comunidad de más de 47000 personas y más de 7 millones de descargadas. Es una librería
muy usada a nivel comercial, desde Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda,
Toyota, Applied Minds, VideoSurf, Zeitera.
OpenCV está escrito en C++, tiene interfaces en C++, C, Python, Java y MATLAB interfaces
y funciona en Windows, Linux, Android y Mac OS. O (Gracia, 2013)
14
¿PARA QUÉ SIRVE EL OPENCV?
Identificar objetos, caras, clasificar acciones humanas en vídeo, hacer tracking de
movimientos de objetos, extraer modelos 3D, encontrar imágenes similares, eliminar ojos
rojos, seguir el movimiento de los ojos, reconocer escenarios
Se usa en aplicaciones como la detección de intrusos en vídeos, monitorización de
equipamientos, ayuda a navegación de robots, inspeccionar etiquetas en productos. (Gracia,
2013)
2.1.4- ¿QUÉ ES PYTHON?
Python se define como un lenguaje de programación interpretado en donde la filosofía de
trabajo hace énfasis en que la sintaxis siempre asegure que el código pueda ser legible. Es
así mismo un lenguaje de programación multiparadigma, que puede soportar la orientación a
objetos, una programación imperativa y en una medida menor la programación funcional.
(Python (informática) | Qué es, para qué sirve y por qué usarlo?, 2018)
Gráfico 5.PYTHON
Fuente: (GONZÁLEZ, 2019)
Autor: (GONZÁLEZ, 2019)
15
¿Para qué sirve Python?
Al hablar de para qué sirve Python hay que resaltar que uno de los objetivos con este lenguaje
de programación es que se automaticen procesos para que así se consiga ahorrar tiempo y
evitar complicaciones. Por esa razón son varias las soluciones que se logran con pocas líneas
de código en este programa. (Python (informática) | Qué es, para qué sirve y por qué usarlo?,
2018)
Características de Python
Python es definido como un lenguaje de programación multiparadigma. Lo anterior implica
que no se trata de forzar a quienes programas a que interioricen un estilo de programación
en especial, sino que son varios los estilos que se pueden implementar:
❖ Programación imperativa.
❖ Programación orientada a objetos.
❖ Programación funcional.
❖ Otros paradigmas al incluir extensiones.
Python se caracteriza porque usa tipado dinámico y conteo de referencias al administrar la
memoria. Además, se destaca su resolución dinámica de nombres, por ende, enlaza un
método y un nombre de variable al ejecutar el programa. (Python (informática) | Qué es, para
qué sirve y por qué usarlo?, 2018)
16
2.1.5- ¿QUÉ ES IONIC?
Ionic es un framework para el desarrollo de aplicaciones híbridas, inicialmente pensado para
móviles y tablets, aunque ahora también capaz de implementar aplicaciones web e incluso
dentro de pocas aplicaciones de escritorio multiplataforma (Alvarez, Que es Ionic?, 2017)
Gráfico 6.IONIC
Fuente: (González, 2018)
Autor: (González, 2018)
¿QUÉ ES UNA APLICACIÓN HÍBRIDA?
Una aplicación híbrida es aquella que permite desarrollar apps para móviles en base a las
tecnologías web. las aplicaciones híbridas se ejecutan en lo que se denomina un “web view”,
que no es más que una especie de navegador integrado en el móvil y en el que solamente se
ejecuta la app híbrida. HTML + CSS + JavaScript.
Integración con Angular
Ionic está desarrollado sobre el framework JavaScript Angular. Esto quiere decir que para el
desarrollo con Ionic 2 podemos apoyarnos en todas las ventajas de desarrollo con Angular,
lo que nos permitirá contar con una excelente estructura de proyecto, el trabajo con buenas
prácticas, uso de patrones de diseño de software variados y una buena gama de
componentes y directivas. (Alvarez, Que es Ionic?, 2017)
17
2.1.6- ¿QUÉ ES ANGULAR?
Angular es un framework de desarrollo para JavaScript creado por Google. La finalidad de
Angular es facilitarnos el desarrollo de aplicaciones web SPA y además darnos herramientas
para trabajar con los elementos de una web de una manera más sencilla y óptima.
Angular es la separación completa entre el front-end y el back-end en una aplicación web.
(Robles, 2019)
Gráfico 7.ANGULAR
Fuente: (nareshit, 2018)
Autor: (nareshit, 2018)
AngularJS es JavaScript. Es un proyecto de código abierto, realizado en JavaScript que
contiene un conjunto de librerías útiles para el desarrollo de aplicaciones web y propone una
serie de patrones de diseño para llevarlas a cabo. En pocas palabras, es lo que se conoce
como un framework para el desarrollo. (Alvarez, que es AngularJs, desarrollos Web, 2014)
¿QUE ES UNA APLICACIÓN WEB SPA DESARROLLADA CON ANGULAR?
Una aplicación web SPA creada con Angular es una web de una sola página, en la cual la
navegación entre secciones y páginas de la aplicación, así como la carga de datos, se realiza
de manera dinámica, casi instantánea, así síncronamente haciendo llamadas al servidor
(backend con un API REST) y sobre todo sin refrescar la página en ningún momento.
Es decir, las aplicaciones web que podemos hacer con Angular son reactivas y no recargan
el navegador, todo es muy dinámico y asíncrono con ajax. (Robles, 2019)
18
2.1.7- ¿QUÉ ES Y PARA QUÉ SIRVE JAVASCRIPT?
JavaScript es un lenguaje de programación, al igual que PHP, si bien tiene diferencias
importantes con éste. JavaScript se utiliza principalmente del lado del cliente (es decir, se
ejecuta en nuestro ordenador, no en el servidor) permitiendo crear efectos atractivos y
dinámicos en las páginas web. Los navegadores modernos interpretan el código JavaScript
integrado en las páginas web.
Gráfico 8.JAVASCRIPT
Fuente: (DevCode)
Autor: (DevCode)
Para entender lo que es JavaScript consideremos lo siguiente. Un usuario escribe una
dirección web en su navegador, por ejemplo http://www.aprenderaprogramar.com. El servidor
recibe la petición y como respuesta a esa petición envía al ordenador del usuario código
HTML junto a código JavaScript. El código HTML se encarga de que en la pantalla se muestre
algo, por ejemplo, una imagen, un menú, etc. El código JavaScript se puede encargar de
crear efectos dinámicos en respuesta a acciones del usuario, por ejemplo, que se despliegue
un menú tipo acordeón cuando el usuario pasa el ratón por encima de un elemento del menú.
La ventaja de JavaScript es que al estar alojado en el ordenador del usuario los efectos son
muy rápidos y dinámicos. Al ser un lenguaje de programación permite toda la potencia de la
programación como uso de variables, condicionales, bucles, etc. También podemos citar
algún inconveniente: por ejemplo, si el usuario tiene desactivado JavaScript en su navegador,
19
no se mostrarán los efectos. No obstante, hoy día la mayoría de los usuarios navegan por la
web con JavaScript activado. (¿QUÉ ES Y PARA QUÉ SIRVE JAVASCRIPT?, 2006)
2.1.8- ¿QUÉ ES TYPESCRIPT?
Gráfico 9.TYPESCRIPT
Fuente: (robertcooper, 2019)
Autor: (robertcooper, 2019)
TypeScript es un lenguaje de programación de código abierto desarrollado por Microsoft, el
cual cuenta con herramientas de programación orientada a objetos, muy favorable si se tienen
proyectos grandes. Anders Hejlsberg, arquitecto principal del desarrollo del lenguaje de
programación C#, es el principal participante en el desarrollo de este lenguaje.
TypeScript convierte su código en Javascript común. Es llamado también Superset de
Javascript, lo que significa que, si el navegador está basado en Javascript, este nunca llegará
a saber que el código original fue realizado con TypeScript y ejecutará el Javascript como
lenguaje original.
TypeScript es un superset hecho por Microsoft el cual tiene una sintaxis muy intuitiva y que
nos recuerda a otros lenguajes orientados a objetos. Agrega funcionalidades que extiende lo
que haría JavaScript por sí sólo, tal como Types y Decorators (htt)
20
2.1.9- ¿QUÉ ES UN SUPERSET?
Se trata de un lenguaje escrito sobre otro lenguaje. En este caso Typescript es eso, un
lenguaje basado en el original, ofreciéndonos grandes beneficios como el descrito
anteriormente, aunque existen otros beneficios. Por ejemplo, mientras otros superset de
JavaScript nos alejan del código original, Types script, por el contrario, es muy similar a
JavaScript y a C# gracias a que su creador posee conocimientos de ambos lenguajes.
Actualmente Angular 2, uno de los frameworks más famosos de JavaScript, está siendo
desarrollando en TypeScript, para lo cual conocer este lenguaje será fundamental para
entender y darle un mejor uso a la nueva versión de Angular. (DevCode cursos, 2017)
TypeScript CLI
TypeScript CLI es la herramienta que nos va a ayudar a ‘transpilar’ nuestros archivos de
TypeScript a JavaScript. Podemos hacer entre otras cosas ‘transpilaciones’ globales, de un
solo archivo, elegir la versión de ECMAScript que queremos, etc (uriel, 2017). Recordando la
instalación:
npm install -g typescript
Para pasar de .ts a .js sólo necesitas ejecutar el comando
tsc "NombreDelArchivo".ts
Y al terminar, en el mismo directorio, encontrarás el .js trasformado con el mismo nombre de
tu archivo de TypeScript, y ya listo para usar para cualquier navegador.
21
OBJETOS EN TYPESCRIPT
Un objeto es una abstracción de algo que existe en el mundo “real”, el cual llevamos todas
sus características a código. Estos objetos se crean por algo llamado “clases”. En TypeScript
tenemos la palabra reservada class (uriel, 2017). Ejemplo:
Es importante decir que una clase siempre tiene un constructor y ese constructor es lo primero
que se va a llamar por defecto cuando hagas una instancia de esa clase. Si tú no lo
implementas, por defecto es el constructor más sencillo.
Sin embargo, podemos tener parámetros obligatorios u opcionales, los opcionales que se
distinguen por tener un “?”.
constructor(_first_name?:string, _last_name?:string)
this.first_name = "_first_name";
this.last = "_last_name";
}
Para hacer una instancia de la clase, podemos crear una nueva variable o constante e indicar
la clase mediante la palabra new:
let personaUno = new Persona();
let personaDos = new Persona("Jorge");
let personaTres = new Persona("Jorge", "Cano");
¿Qué pasa si los parámetros de mi constructor no son opcionales?
En el caso de que tengamos parámetros obligatorios, no se podrá crear una instancia de la
clase sin mandar esos datos en el constructor:
22
2.1.10- ¿QUÉ ES ELECTRON JS?
Electron.js es una plataforma para desarrollar aplicaciones de escritorio usando tecnologías
web (HTML, CSS y JavaScript) creada y mantenida por Github. Electron.js funciona creando
dos tipos de procesos, el proceso main y el proceso renderer. El primero es un proceso de
Node.js, este es nuestro proceso principal, viene a ser nuestra aplicación en sí misma, este
proceso tiene acceso a varias API de Electron.js solo para este proceso que nos ayudan a
comunicarnos con el SO y realizar distintas acciones o efectos.
El segundo (renderer) es un proceso de Chromium, con una diferencia, este Chromium tiene
un Node.js incorporado y acceso a todos sus módulos y los que instalemos con npm (esto
nos permitiría usar React.js, Angular.js, Polymer, etc. para desarrollar nuestra UI o cualquier
otra librería básicamente), por lo que desde nuestrorenderer podemos usar módulos como fs
para leer y escribir en el disco, o hacer peticiones a una base de datos directamente.
Además de acceder a los módulos de Node.js y npm, Electron.js nos da acceso a una pocas
API en este proceso igual que hace con el procesomain. (Platzi, 2018)
Gráfico 10.ELECTRON JS MAIN PROCESS
Fuente: (Platzi, 2018)
Autor: (Platzi, 2018)
23
2.1.11- ¿Qué es socket.io?
Es una herramienta que nos permite crear comunicaciones en tiempo real entre
cliente/servidor.
Los servidores real time son muy utilizados para sistema de chat y de comentarios, en este
post crearemos un servidor real time que reporte números aleatorios al cliente y del cliente al
servidor para esto utilizaremos el módulo socket.io. (Decena, 2018)
Gráfico 11.SOCKET.IO SERVER
Fuente: (Decena, 2018)
Autor: (Decena, 2018)
Inicio y estructura del proyecto
Vamos iniciar un proyecto de npm desde la carpeta deseada ejecutando en consola:
• npm init –yes
Socket.io es una librería que nos permite controlar eventos en tiempo real a través de
conexiones TCP y nos ayuda a evitar problemas de compatibilidad entre equipos.
24
Está desarrollado completamente en Javascript y, su objetivo es hacer que las aplicaciones
en tiempo real tengan posibilidad de ejecutarse en cualquier navegador, incluidos los
dispositivos móviles, salvando las diferencias entre los diferentes protocolos.
Existen muchas aplicaciones y ejemplos que se pueden hacer con socket.io. Por ejemplo,
controlar un coche vía Web con node.js instalado en Raspberry Pi, control de Arduino con
node.js, o incluso un chat entre distintos equipos. (geekytheory, 2018)
2.1.12- ¿QUÉ ES SQL?
Gráfico 12.DIAGRAMA DE SQL
Fuente: (Ozar, 2016)
Autor: (Ozar, 2016)
SQL (Structured Query Language) es un lenguaje estándar e interactivo de acceso a bases
de datos relacionales que permite especificar diversos tipos de operaciones en ellas, gracias
a la utilización del álgebra y de cálculos relacionales, el SQL brinda la posibilidad de realizar
consultas con el objetivo de recuperar información de las bases de datos de manera sencilla.
Las consultas toman la forma de un lenguaje de comandos que permite seleccionar, insertar,
actualizar, averiguar la ubicación de los datos, y más. SQL es un lenguaje declarativo
estándar internacional de comunicación dentro de las bases de datos que nos permite a todos
el acceso y manipulación de datos en una base de datos, y además se puede integrar a
25
lenguajes de programación, por ejemplo, ASP o PHP, y en combinación con cualquier base
de datos específica, por ejemplo MySQL, SQL Server, MS Access, entre otras. (Prado, 2017)
El Lenguaje de Consulta Estructurado popularmente conocido por sus siglas en inglés como
SQL, es un tipo de lenguaje de programación que ayuda a solucionar problemas específicos
o relacionados con la definición, manipulación e integridad de la información representada
por los datos que se almacenan en las bases de datos. (Ramos, 2018)
2.1.13- ¿Qué es una base de datos?
Una base de datos es una aplicación independiente que almacena una colección de datos.
Así que podemos decir que se trata de una colección de información organizada por campos,
registros y archivos, de manera que se pueda seleccionar rápidamente los fragmentos de
datos que se necesiten.
Gráfico 13.MOTOR DE BASE DE DATOS RELACIONAL
Fuente: (Lozada, 2018)
Autor: (Lozada, 2018)
26
2.1.14- BASE DE DATOS RELACIONAL
Una base de datos es relacional cuando esta cumple con el modelo relacional, que se refiere
a la relación que existe entre las distintas entidades o tablas de la base. También conocidas
como sistemas de gestión de bases de datos relacionales (RDBMS), las cuales nos permiten
almacenar y gestionar gran cantidad de datos. Los datos se almacenan en diferentes tablas
y las relaciones se establecen usando claves primarias u otras llaves conocidas como claves
externas o foráneas. Existen un sinnúmero de sistemas de gestión de bases de datos
relacionales y cada una de ellas posee una forma diferente de manejar su data, algunos
ejemplos de RDBMS son: Oracle, MySQL, SQL Server, entre otras.
Gráfico 14.OTROS MOTORES DE BASE DE DATOS
Fuente: (cristianglopez, 2017)
Autor: (cristianglopez, 2017)
Sin embargo, con el paso de los años, estos se fueron unificando y universalizando para dar
paso a mejores técnicas y mejores formas de manejo. Así nació SQL. (Prado, 2017)
27
Gráfico 15.INTEGRACIÓN DE BASE DE DATOS
Fuente: (Pearlman, 2019)
Autor: (Pearlman, 2019)
2.1.15- ¿QUÉ ES UNA RED LAN?
Una red de área local (Local Área Network, o LAN) es un grupo de equipos de cómputo y
dispositivos asociados que comparten una línea de comunicación común o un enlace
inalámbrico con un servidor. Normalmente, una LAN abarca computadoras y periféricos
conectados a un servidor dentro de un área geográfica distinta, como una oficina o un
establecimiento comercial. Las computadoras y otros dispositivos móviles utilizan una
conexión LAN para compartir recursos como una impresora o un almacenamiento en red.
(Rouse, 2018)
Una red de área local puede servir a sólo dos o tres usuarios (por ejemplo, en una red de
oficina pequeña) o a varios cientos de usuarios en una oficina más grande. Las redes LAN
incluyen cables, conmutadores, enrutadores y otros componentes que permiten a los usuarios
conectarse a servidores internos, sitios web y otras redes LAN a través de redes de área
extensa (WAN). (Rouse, 2018)
Esto es debido fundamentalmente a la característica más significativa de una LAN: la de
permitir que se interconecten múltiples computadoras, llamados para este caso nodos, con el
fin de acceder a los datos y recursos que estos almacenan o tienen conectados. Esto significa
28
que una computadora puede acceder tanto a los documentos como a las impresoras, discos
externos y otros dispositivos y periféricos conectados a estas PC`s remotas, lo que nos
permite ampliar el abanico de tareas que podemos realizar con nuestra propia computadora
Ruptura. (Rouse, 2018)
La importancia de una LAN en el mundo actual
Sin duda alguna, el mundo actual no podría funcionar sin la ayuda de un sistema que permita
compartir datos y recursos a través de las distancias, y en este punto, las redes LAN son
prácticamente la columna vertebral en donde las más grandes empresas del mundo se
apoyan para llevar a cabo sus actividades, tanto locales como internacionales. (tecnologia-
facil, 2011)
Soluciones que proporcionan las redes LAN
En una organización puede haber múltiples computadoras (PC) que requieren de varios
servicios a la vez, como, por ejemplo, las impresoras; la red LAN permite disminuir costos al
permitir compartir recursos, en vez de implementarlos para cada PC. Además, permite el
acceso a la información de una PC a las demás conectadas en la red, lo que optimiza los
procesos y permite que los datos sean resguardados en un solo lugar. (reportedigital, 2015)
De esta manera, cuando se describe qué es una red LAN, se puede decir que es la red que
permite compartir bases de datos (se elimina la redundancia de datos), aplicaciones (se
reduce la redundancia de software) y periféricos (se reduce la adquisición de hardware). Por
otra parte, permite disponer de otros medios de comunicación, como son el correo electrónico
y el chat. (reportedigital, 2015)
Para las organizaciones una red de área local repercute en los gastos, ya que es una
herramienta importante de ahorro en tiempo y dinero. (reportedigital, 2015)
29
Características de la red LAN:
• Opera dentro de un área geográfica limitada.
• Permite el multiacceso a medios con alto ancho de banda.
• Controla la red de forma privada con administración local.
• Proporciona conectividad continua a los servicios locales.
• Conecta dispositivos físicamente adyacentes.
Tipos de redes LAN
Cuando se determina qué es una red LAN, se facilita la elección de la tipología de la red. Para
esto hay que analizar varias circunstancias específicas de cada empresa, como son el
número de PC instaladas, la distancia entre ellas, la posibilidad de instalación del cableado,
los requerimientos de rapidez de procesamiento de datos o la capacidad para enviar diversos
tipos de información a través de la red. (reportedigital, 2015)
Como ejemplo de lo antes mencionado, se puede realizar una comparación de los tres tipos
de redes habituales. Para ello, supongamos que el tipo Ethernet y ARCNET se instalan con
cable coaxial y Token Ring con cable de par trenzado apantallado. En cuanto a las facilidades
de instalación, ARCNET resulta ser la más fácil de instalar debido a su topología, mientras
Ethernet y Token Ring necesitan de mayor capacitación o personal calificado para su
implementación. (reportedigital, 2015)
Lo que respecta a la rapidez de trasmisión, Ethernet es la más veloz, 10/100/1000 Mb/s,
ARCNET se ejecuta a 2,5 Mb/s y Token Ring, a 4 Mb/s. En la actualidad se desarrolla una
versión de Token Ring a 16 Mb/s, pero requiere de un cableado con características más
costosas. (reportedigital, 2015)
30
Dispositivos básicos para conexión de redes
Las redes informáticas son grupos de ordenadores conectados mediante una estructura de
cableado o mediante un sistema inalámbrico, que les permite compartir archivos y servicios
entre sí. Para lograr un buen rendimiento de dichas redes, es necesario contar con varios
dispositivos para realizar las conexiones y unir nuestra red con otras redes, y ofrecer un
sistema de comunicación mucho más seguro y eficiente. (culturacion, 2016)
Gráfico 16.ESTRUCTURA DE ORDENADORES POR CONEXIÓN LAN
Fuente: (culturacion, 2016)
Autor: (culturacion, 2016)
Entre los dispositivos denominados básicos que son utilizados para el diseño de redes,
tenemos los siguientes:
• Modems.
• Hubs.
• Repetidores.
• Bridges.
• Routers.
• Gateways.
• Brouters.
31
Más adelante, vamos a describir cada uno de estos componentes para que el lector tenga
una idea de para que se usa cada uno.
Módems
Los populares módems, son dispositivos que tienen la importante función de comunicar los
equipos informáticos que forman parte de una red con el mundo exterior, es decir, es el
aparato en donde se conecta el cable principal de red y que recibe la información de la línea
telefónica. Estos dispositivos pueden conectar varias redes entre sí.
El funcionamiento de los modem es simple. El ordenador o red emisora envía señales
digitales que son convertidas a señales analógicas en el modem emisor y viajan a través de
líneas telefónicas hasta su destino, donde el modem receptor convierte la señal analógica
nuevamente en una señal digital que podrá ser interpretada por un ordenador.
El modem cuenta con una interfaz de comunicación en serie (RS-232) y una interfaz de línea
telefónica RJ-11. Las velocidades de transmisión de datos de los módems actuales van desde
57500 bps hasta 76800 bps.
Hubs
Otro de los dispositivos básicos para la conexión de redes, es el Hub. Este dispositivo, permite
expandir la red a tantos ordenadores como deseemos, utilizando la topología de punto
estrella, que consiste en dividir el punto de red en tantas salidas como tenga el Hub.
Los Hub reciben los datos a través de la conexión de entrada y ofrecen varias salidas para
conectar a varios ordenadores. En la mayoría de las redes, podemos conectar Hubs en serie
para aumentar la cantidad de quipos que pueden estar conectados en una red.
32
Repetidores
Cuando se transmiten señales a través de cables, estas tienden a degradarse a medida que
llegan más lejos. Este fenómeno, también puede verse en redes inalámbricas.
Afortunadamente, existe una respuesta para esta situación, que consiste en utilizar los
famosos repetidores.
Estos dispositivos toman la señal distorsionada de un cable o de una señal y la regeneran
para transmitir la señal de la red o los datos a lugares mucho más remotos, utilizando el
modelo de referencia OSI.
Los repetidores sólo pueden trabajar en señales o paquetes de datos que trabajen con los
mismos protocolos de comunicación, es decir, será imposible que un repetidor mejore la señal
de una red Ethernet y lo envíe a una red Token Ring.
Los repetidores son dispositivos que deben ser utilizados para unir segmentos alejados de
una red LAN. Estos no realizan ningún tipo de filtrado o re-direccionamiento, sólo conectan
segmentos de red y restauran señales degradadas.
Bridges
Los Bridges son dispositivos que tiene una finalidad muy parecida a la de los repetidores,
pero a diferencia de estos, pueden dividir una red para aislar un ala de esta y poder realizar
las reparaciones que se requieran.
Los Bridges son utilizados, por lo general, para:
• Extender la longitud de un segmento de red.
• Incrementar el número de ordenadores de una red.
• Reducir el efecto de cuello de botella de una red.
33
• Dividir redes sobrecargadas.
• Enlazar medios físicos
Router
Los router quizás son los dispositivos más conocidos de las redes. Estos dispositivos, tienen
la particularidad de realizar el trabajo de un bridge ofreciendo una serie de bondades extra,
como, por ejemplo, la posibilidad de determinar el camino más rápido para enviar datos a
través de la red y por supuesto, realizar el filtrado de tráfico en un segmento de red
determinado.
Estos dispositivos pueden conmutar y encaminar los paquetes de información que son
transmitidos a través de la red de intercambio de información de protocolos de comunicación.
Existen diferentes tipos de router, los estáticos, dinámicos y de difusión y pueden trabajar con
cables o de manera inalámbrica, aumentado el rango de alcance de estos dispositivos que
llegan a gestionar toda la información que pasa hacia un segmento de la red.
Brouter
Los Brouter son un híbrido entre Router y bridge, pudiendo trabajar como un tipo de
dispositivo u otro, de acuerdo al segmento de red en donde se esté trabajando.
Gateway
Estos dispositivos activan la comunicación entre arquitecturas y entornos y realizan el
empaquetado y conversión de paquetes de datos que se van a transmitir a través de una red.
34
2.1.16- ¿Qué es y para qué sirve el Cloud Computing? El Cloud Computing o computación en nube significa que el hardware y software es
proporcionado como un servicio de otra empresa a través de Internet, por lo general de una
manera completamente transparente.
Gráfico 17.CLOUD COMPUTING
Fuente: (editafacil, 2017)
Autor: (editafacil, 2017)
Este nuevo término promete varias ventajas atractivas para las empresas y los usuarios
finales. La computación en la nube es un término general para la prestación de servicios
alojados a través de Internet, y permite a las empresas consumir recursos informáticos como
una utilidad (igual que la electricidad) en lugar de tener que construir y mantener
infraestructuras de computación en tu casa o tus oficinas. (editafacil, 2017)
La mayoría de nosotros usamos la computación en nube durante todo el día sin darnos
cuenta. Si te sientas en tu PC y escribes una consulta en Google, la computadora no está
haciendo mucho en la búsqueda de las respuestas que necesita: no es más que un
mensajero. Las palabras que se escriben son transportadas rápidamente por la red a uno de
los cientos de miles de ordenadores conectados en clúster, que desentierran sus resultados
y los envía rápidamente de nuevo a ti mediante Google.
35
Por ejemplo: cuando se hace una búsqueda en Google, el verdadero trabajo en la búsqueda
de sus respuestas podría ser realizado por un ordenador que se encuentra en California,
Dublín, Tokio, o Beijing, tu no lo sabes y lo más probable es que no te importe en absoluto.
(editafacil, 2017)
Tipos de computación en la nube
Podríamos catalogar tres clases de computación en la nube, donde los diferentes servicios
son proporcionados para ti o tu empresa. Hay que tener en cuenta que existe cierta
superposición entre ellos.
Infraestructura como Servicio (IaaS): un alojamiento web ordinario es un simple ejemplo
de IaaS, en el cual pagas una suscripción mensual o una tarifa por gigabytes o megabytes
consumidos. Esto significa que estás comprando el acceso al hardware de computación en
bruto través de la red, tales como servidores o almacenamiento.
Software como Servicio (SaaS): significa que se utiliza una aplicación completa que se
ejecuta en el sistema de otra persona, estos pueden ser, por ejemplo: el correo electrónico
basado en web y documentos de Google.
Plataforma como servicio (PaaS): significa poder desarrollar aplicaciones haciendo uso de
herramientas basadas en la Web para que se ejecuten en sistemas de software y hardware
proporcionado por otra compañía. Así, por ejemplo, podrías desarrollar tu propio sitio web de
comercio electrónico, pero tienes todo, incluyendo el carrito de la compra, pago, envío y el
mecanismo de pago ejecutándose en el servidor de un comerciante. Algunos ejemplos de
PaaS son Force.com de salesforce.com y Google App Engine. (editafacil, 2017)
36
¿Cómo funciona el Cloud computing?
En un sistema Cloud computing se puede encontrar dos partes claramente diferenciadas del
sistema. La primera es el frontend o interfaz del usuario y la segunda es el backend, que es
el servicio en la nube en sí mismo.
La interfaz del usuario incluye la red informática que este use y la aplicación necesaria para
acceder al servicio en la nube. Una interfaz sencilla para el usuario que está conectada al
backend a través de internet. En la parte del backend se puede encontrar todos los sistemas
que usa la nube para almacenar la información, los servidores que usa y los ordenadores del
sistema. (gluppi, 2018)
Todo este engranaje se conecta a un servidor central que administra el funcionamiento de
todo el sistema, supervisa el tráfico del mismo y se asegura de que las demandas de los
clientes se realicen sin ningún tipo de inconveniente. Las reglas del sistema siguen unos
protocolos y usan un software middleware que facilita la conexión entre las computadoras en
red para que se comuniquen entre sí. Un sistema muy complejo a simple vista pero que
repercute en grandes beneficios para usuarios y empresas como son las comunicaciones
unificadas.
La tecnología de cloud computing está revolucionando la forma en la que empresas y
personas individuales realizan una gran multitud de tareas y servicios distintos. Encontrar
toda la información de forma segura y rápida a través de una conexión a internet sin tener
que descargar ningún programa adicional ni pagar diferentes licencias para cada ordenador
es una revolución que empresas de todo el mundo están sabiendo aprovechar. (gluppi, 2018)
37
2.1.17- ¿QUÉ ES UNA CÁMARA IP?
Una Cámara IP (también conocidas como cámaras Web o de Red) son videocámaras
especialmente diseñadas para enviar las señales (video, y en algunos casos audio) a través
de Internet desde un explorador (por ejemplo, el Internet Explorer) o a través de concentrador
(un HUB o un SWITCH) en una Red Local (LAN)
Gráfico 18.CÁMARA IP
Fuente: (camaraipwifi, 2019)
Autor: (camaraipwifi, 2019)
En las cámaras IP pueden integrarse aplicaciones como detección de presencia (incluso el
envío de mail si detectan presencia), grabación de imágenes o secuencias en equipos
informáticos (tanto en una red local o en una red externa (WAN), de manera que se pueda
comprobar por qué ha saltado la detección de presencia y se graben imágenes de lo
sucedido. (TVC, 2014)
38
¿Qué necesito para ver una cámara IP desde una red externa?
Lo más importante para poder usar una cámara IP es disponer de una conexión a Internet si
tenemos intención de poder las imágenes en una red externa, para ello conecto la cámara IP
a un Router ADSL, XDSL, o Cable modem (o a un HUB) u otros sistemas de banda ancha.
No es necesario IP fija, ya que en el caso de IP dinámica podemos acudir a sitios como
http://www.no-ip.com (algunas cámaras vienen con sitios de resolución dinámica de IP`s
especiales) para la resolución DNS. (TVC, 2014)
¿Qué puedo hacer con una cámara IP? ¿Qué ventajas tiene?
Las cámaras IP se utilizan mucho en entornos de vigilancia:
• En el hogar: para poder " vigilar " tu casa, negocio, empresa, a personas mayores, a
niños o bebes, y hacerlo desde tu trabajo, desde tu lugar de vacaciones, desde
cualquier lugar con una conexión Internet y un explorer.
• En el trabajo: puede utilizarse para controlar puntos de tu comercio a los que tu vista
no alcanza y no quieres dejar sin vigilancia o para ver lo que ocurre en tu cadena de
tiendas desde tu casa.
• Empresas: para vigilar almacenes, aparcamientos, obras, entradas.
• Hostelería: restaurantes, hoteles, o simplemente para promoción de estos.
• Zonas deportivas
Y no sólo para vigilancia: muchos organismos de turismo utilizan cámaras IP para que los
futuros turistas o gente interesada puedan ver la ciudad que van a visitar o el tiempo que hace
o algún monumento, y han decidido poner cámaras para que puedan verse por Internet. (TVC,
2014)
39
¿Cuántas personas pueden conectarse simultáneamente a una cámara IP?
El número de usuarios que admite una cámara IP o un servidor de Vídeo depende del tipo de
cámara, pero en general es de alrededor de 10 a 20. También se puede enviar "snapshots"
automáticamente (con un periodo de refresco establecido (por ejemplo, unos segundos)) a
una Web determinada, para que el público en general pueda ver esas imágenes. (TVC, 2014)
Gráfico 19.CONEXIÓN A CAMARA DE VIDEO
Fuente: (ticoespia, 2017)
Autor: (ticoespia, 2017)
¿Se puede transmitir audio?
En general, la mayoría de cámaras IP disponen de micrófonos de alta sensibilidad
incorporados en la propia cámara, con objeto de poder transmitir audio mediante el protocolo
de conexión UDP. (TVC, 2014)
40
¿Qué sistemas de compresión utilizan las Cámaras IP?
El sistema de Compresión de Imagen de las cámaras IP sirve para hacer que la información
obtenida de la cámara, que es mucha información y de gran tamaño, y que si no se comprime
adecuadamente es imposible que se envíe por los cables de una red Local (LAN) o de las
líneas telefónicas. Al comprimir pretendemos que ocupe lo menos posible, sin que las
imágenes enviadas sufran pérdidas en la calidad o en la visualización. Audio y Vídeo nos
exigen conexiones con mayor ancho de banda) (TVC, 2014)
Para el acceso a las Cámaras IP ¿Es necesario algún software específico?
Para la visualización de las Cámaras IP lo único que se necesita es que en el sistema
operativo del PC se encuentre instalado el Microsoft Internet Explorer, gracias al cual
tendremos acceso a la dirección propia de la cámara IP, que nos mostrará las imágenes de
lo que en ese momento este sucediendo. Esto resulta extremadamente útil, ya que permitirá
poder visualizar la cámara desde cualquier ordenador, en cualquier parte del mundo, sin
necesidad de haber instalado un software específico (TVC, 2014)
¿Es posible configurar las Cámaras IP de forma remota?
Las cámaras IP y los servidores de Vídeo solamente necesitan conectarse directamente a un
PC mediante un cable de red "cruzado" cuando se instalan por primera vez.
Una vez instalada, cualquier modificación de la configuración, de los ajustes de calidad de
imagen, de las contraseñas de acceso, se realizará de forma remota desde cualquier punto
del mundo, bastará con conectarse a la cámara en modo "Administrador". (TVC, 2014)
41
2.1.18- Protocolo RTSP
RTSP es un protocolo de capa de aplicación, no orientado a la conexión. En lugar de esto el
servidor RTSP mantiene una sesión asociada a un identificador (Session ID).
En la mayoría de los casos RTSP usa TCP para el envío de datos de control del reproductor
(mensajes "out of band") y UDP para los datos de audio y vídeo (mensajes "in band"), aunque
también puede usar TCP en caso de que se necesitara confiabilidad en el envío de paquetes,
lo cual no es provisto por UDP. (profesores.elo, 2018)
El concepto de "in band" y "out of band" se refiere a que el protocolo es capaz de enviar
distintos tipos de información por distintos puertos.
De forma intencionada, el protocolo es similar en sintaxis y operación a HTTP, por lo que los
mecanismos de expansión añadidos a HTTP pueden, en muchos casos, añadirse a RTSP.
Sin embargo, RTSP difiere de HTTP en un número significativo de aspectos:
• RTSP introduce nuevos métodos y tiene un identificador de protocolo diferente.
• Un servidor RTSP necesita mantener el estado de la conexión.
• Tanto el servidor como el cliente pueden hacer solicitudes.
• Los datos son transportados por un protocolo diferente.
El protocolo soporta las siguientes operaciones:
Recuperar contenidos multimedia del servidor: El cliente puede solicitar la descripción de una
presentación por HTTP o cualquier otro método. Si la presentación es multicast, la descripción
contiene los puertos y las direcciones que serán usados. Si la presentación es unicast el
cliente es el que proporciona el destino, por motivos de seguridad. (profesores.elo, 2018)
42
Invitación de un servidor multimedia a una conferencia: Un servidor puede ser invitado a
unirse a una conferencia existente en lugar de reproducir la presentación o grabar todo o una
parte del contenido. Este modo es útil para aplicaciones de enseñanza distribuida donde
diferentes partes de la conferencia van tomando parte en la discusión.
Adición multimedia a una presentación existente: Particularmente para presentaciones en
vivo, útil si el servidor puede avisar al cliente sobre los nuevos contenidos disponibles.
En la siguiente figura se ilustra el esquema de comunicación entre un cliente (Web Browser)
y el servidor RTSP (Web Server). (profesores.elo, 2018)
Gráfico 20.Protocolo RTSP
Fuente: (profesores.elo, 2018)
Autor: (profesores.elo, 2018)
43
1. Web Browser solicita Presentation Description File a Web Server.
2. Web Server encapsula Presentation Description File en un mensaje HTTP de respuesta y
envía el mensaje al Web Browser.
3. Cuando el Web browser recibe mensaje HTTP de respuesta, invoca a un Media Player (eg.
Quicktime) basándose en el campo Payload Type (PT) del mensaje.
4. Media Player envía una petición RTSP SETUP y Media Server responde RTSP OK.
5. Media Player envía una petición RTSP PLAY y Media Server responde RTSP OK.
6. Media Server inicia el streaming de video hacia Media player.
7. Si usuario desea pausar la transmisión, envía RTSP PAUSE a Media Server y éste
responderá RTSP OK.
8. Cuando el usuario ha terminado, Media player envía RTSP TEARDOWN, a lo que Media
server responde RTSP OK.
Finalmente se hace una breve descripción del significado de las solicitudes RTSP
SETUP
Especifica cómo debe transportarse un tipo específico de audio o video. La solicitud debe
hacerse antes de que se envíe una petición PLAY. El mensaje contiene la dirección URL y
un especificador de transporte. La respuesta del servidor usualmente confirma los parámetros
elegidos y determina los campos incompletos, como por ejemplo los puertos elegidos por el
servidor.
44
PLAY
Permite el envío de un stream multimedia (audio o video). Las solicitudes PLAY pueden
acumularse enviando múltiples solicitudes PLAY. La dirección URL puede estar asociada a 1
sólo flujo multimedia o a varios. Debe especificarse un rango de reproducción, en caso
contrario el flujo es reproducido de principio a fin. Y en caso de ser pausado, seguirá desde
el mismo punto, cuando el cliente reanude la reproducción.
PAUSE
Detiene temporalmente la reproducción de 1 o más flujos multimedia. Posteriormente se
puede reanudar la reproducción mediante la solicitud PLAY. Puede especificarse un rango
en la pausa, en caso contrario la pausa será inmediata.
TEARDOWN
Se utiliza para terminar la sesión. Cuando el cliente envía esta solicitud, el servidor detiene
todos los flujos asociados a la sesión, y libera los recursos para su posterior uso.
Ventajas:
Seguro: RTSP reutiliza mecanismos de seguridad web ya sea a los protocolos de transporte
(TLS) o dentro del mismo protocolo. Todas las formas de identificación HTTP son
directamente aplicables.
Capacidad multi-CMS: Tiene la capacidad de mostrar diferentes streams de video
independientes a uno o varios CMS.
Control de dispositivos de grabación: El protocolo puede controlar dispositivos de
grabación y reproducción (p.ej cámaras IP RTSP). (Angeles, 2018)
45
2.2- FUNDAMENTACIÓN LEGAL
LEY ORGÁNICA DE TRANSPORTE TERRESTRE, TRÁNSITO Y
SEGURIDAD VIAL
Art. 162.- Las calzadas son para uso exclusivo de los vehículos. Excepcionalmente podrán
ser usadas por los peatones cuando los sitios destinados para su circulación se encuentren
obstruidos. En este caso, deberán hacerlo extremando las precauciones necesarias para
transitar con seguridad.
Art. 163.- Las aceras son para uso exclusivo de los peatones. Excepcionalmente podrán ser
utilizadas por los vehículos para atravesarlas para ingresar o salir de los estacionamientos.
Art. 164.- Las bermas sólo podrán ser usadas por los vehículos, con precaución, para
circulación de emergencia y detenciones de igual carácter. Los peatones podrán usarlas para
transitar de
frente al sentido de la circulación, cuando no existan otras zonas transitables más seguras.
Art. 165.- La Agencia Nacional de Tránsito o los GADs, en el ámbito de sus competencias
podrán establecer limitaciones al uso o circulación de peatones, vehículos y animales o al
estacionamiento vehicular.
Art. 171.- Si como resultado de un accidente de tránsito quedare abandonado un vehículo,
se procederá a la aprehensión del mismo y será puesto a órdenes del fiscal a fin de que dé
inicio a las investigaciones pertinentes.
En los demás casos se entiende por abandono del vehículo, el hecho de dejarlo en la vía
pública sin conductor o en sitios donde no esté prohibido el estacionamiento, por un espacio
46
mayor de 24 horas. En los sitios prohibidos para el estacionamiento, se considera
abandonado el vehículo transcurrido 5 minutos después de haberlo dejado el conductor. Los
vehículos abandonados o estacionados en contravención a lo dispuesto en este Reglamento
serán conducidos a los patios de retención vehicular de las Unidades Administrativas o de los
GADs, según el caso. Los gastos del traslado y de bodegaje del vehículo serán de cargo del
contraventor.
HIPOTESIS
Existen diversos sistemas de estacionamiento inteligentes que pueden hacer posible
aumentar la capacidad de los parqueos esto se debe a la gran cantidad de usuarios pueden
parquearse para poder realizar sus actividades laborales normalmente, pero pocos
indicadores de parqueo que permitan a los usuarios encontrar un lugar donde estacionarse
de una manera más rápida reduciendo, de esta manera, la congestión en los
estacionamientos.
VARIABLES DE LA INVESTIGACIÓN
Variables dependientes:
Diseño de un sistema de gestión, monitoreo con la aplicación móvil machine learning y
OpenCV en su gestión
Variable independiente;
Reserva de espacios de estacionamientos (disponibles, ocupado o reservado)
47
2.3- DEFINICIONES CONCEPTUALES
JavaScript: es un lenguaje de programación, al igual que PHP, se lo utiliza principalmente
del lado del cliente (es decir, se ejecuta en nuestro ordenador y no en el servidor) permitiendo
crear efectos atractivos y dinámicos en las páginas web.
SQL: es un tipo de lenguaje de programación que ayuda a solucionar problemas específicos
o relacionados con la definición, manipulación e integridad de la información representada
por los datos que se almacenan en las bases de datos
TypeScript: es un superset hecho por Microsoft el cual tiene una sintaxis muy intuitiva y que
nos recuerda a otros lenguajes orientados a objetos. Agrega funcionalidades que extiende lo
que haría JavaScript por sí sólo, tal como Types y Decorators
Angular: es un framework de desarrollo para JavaScript creado por Google. La finalidad de
Angular es facilitarnos el desarrollo de aplicaciones web SPA
Ionic: es un framework para el desarrollo de aplicaciones híbridas, inicialmente pensado para
móviles y tabletas,
Machine learning: es un método de análisis de datos que automatiza la construcción de
modelos analíticos. Es una rama de la inteligencia artificial basada en la idea de que los
sistemas pueden aprender de datos, identificar patrones y tomar decisiones con mínima
intervención humana.
Python: es un lenguaje de programación interpretado que es muy conocido, multiparadigma
con soporte de orientación a objetos y que es muy bien considerado por quienes se dedican
a estas tareas.
48
OpenCV (Open Source Computer Vision): es una librería open source de visión por
computador, análisis de imagen y aprendizaje automático. Para ello dispone de infinitud de
algoritmos que permiten, con sólo escribir unas pocas líneas de código, identificar rostros,
reconocer objetos, clasificarlos, detectar movimientos de manos.
OpenCV es una librería multiplataforma disponible para Windows, Mac, Linux y Android
distribuida bajo licencia BSD. Puede programarse con C, C++, Python, Java y Matlab.
Cámara IP (también conocidas como cámaras Web o de Red): son videocámaras
especialmente diseñadas para enviar las señales (video, y en algunos casos audio) a través
de Internet desde un explorador (por ejemplo, el Internet Explorer) o a través de concentrador
(un HUB o un SWITCH) en una Red Local (LAN)
49
CAPITULO III
PROPUESTA TECNOLÓGICA Dentro de este capítulo se realizará el desarrollo del respectivo proyecto “Diseño de un
sistema de gestión, monitoreo y reserva de espacios en estacionamientos públicos o privados
a través de la aplicación móvil Incorporando machine learning y OpenCV en la gestión”, con
el respectivo análisis necesario en cuanto a las herramientas utilizadas en la implementación
del proyecto dentro de la Universidad de Guayaquil Facultad de ciencias matemáticas y física
de las calles Víctor Manuel Rendón 429 entre Baquerizo Moreno y Córdova.
Con el propósito de recolectar información referente al comportamiento de los usuarios y el
desarrollo utilizado para este prototipo. La propuesta constara de varios tipos de enfoques
con el respectivo análisis a estas metodologías las cuales son: Técnica, operacional,
económica y legal pudiendo medir el 100% de confiabilidad en los datos validando la
información necesaria en base a las metodologías enfocadas en esta etapa del proceso.
3.1- Análisis de Factibilidad
Con respecto a este análisis de factibilidad agrego que existen pocas fuentes de información
necesarias para complementar el desarrollo del prototipo, sin embrago se realizará un
detallado análisis de implementación al concluir los objetivos previstos para el proyecto
cumpliendo con los criterios establecidos.
En el análisis de factibilidad busca validar todos los componentes y herramientas tanto
hardware con software, en este proceso se consideró que la propuesta del proyecto es viable
debido a que se cuentan con todas las herramientas para el desarrollo de este prototipo, los
cuales se detallan a continuación:
50
• Servidor en la nube
• Cámara IP (compatible con RTSP)
• Lenguajes de programación
• Bases de datos
• Máquina para ambiente de desarrollo
• Máquina para ambiente de pre producción
3.1.1 Factibilidad Operacional
En cuanto a esta etapa de factibilidad operacional se realizó un barrido de todas las
actividades que han tenido mayor relevancia para llevar a cabo el proyecto de forma que se
pueda brindar una muestra del grado de eficiencia, además se cuenta con el apoyo de la
Universidad de Guayaquil - Facultad de Ciencias Matemáticas y Física ubicado en las calles
Víctor Manuel Rendón 429 entre Baquerizo Moreno y Córdova.
Sitio donde se facilitó el espacio para realizar las operaciones de testeo y en la cual el
personal a cargo ha brindado todas las facilidades para dicha prueba obteniendo resultados
exitosos durante la misma.
Sobre el punto de vista operacional se considera que el proyecto es completamente factible,
de acuerdo con los lugares donde se realizó el streaming con las cámaras de seguridad.
3.1.2 Factibilidad Técnica
Dentro de la siguiente tabla se detallan todos los componentes tanto hardware y software en
la implementación del prototipo del proyecto de titulación.
51
Tabla 2.COMPONENTES DEL PROYECTO Componentes de software
Es una librería de visión artificial que crea
sistemas de manera automatizada, para el
desarrollo de identificar patrones de datos
mediante un algoritmo
Es una librería software de visión artificial y
machine learning para el desarrollo de
aplicaciones (Identificar objetos, caras, acciones
humanas en vídeo, hacer tracking de
movimientos de objetos, encontrar imágenes
similares, reconocer escenario, etc.)
Phyton es un lenguaje de programación
interpretado y multiparadigma es decir conjunto
de instrucciones que permitir operar con datos
de entrada y salida agrupándolos y Compilarlos.
Es un framework igual que php que sirve para
desarrollar aplicaciones web mediante de un
diseño de patrón MVC (Modelo-Vista-
Controlador) que son el punto de entrada final de
una petición HTTP (Request PHP) para
responder a la solicitud HTTP.
52
Es un lenguaje de programación que permite que
la página web sea más dinámica e atractivo
Es un framework la cual contiene un proporciona
una serie de patrones de diseño para el
desarrollo de aplicaciones web
TypeScript es un lenguaje de programación de
código abierto desarrollado por Microsoft cuenta
con herramientas de programación orientada a
objetos
Es un framework de código abierto para el
desarrollo de aplicaciones móviles híbridas
Es un sistema que almacenan y administran los
datos.
Es una plataforma para desarrollar aplicaciones
de escritorio usando tecnologías web (HTML,
CSS y JavaScript) creada y mantenida por
Github. Electron.js
53
Es una herramienta que nos permite crear
comunicaciones en tiempo real entre
cliente/servidor.
Los servidores real time son muy utilizados para
sistema de chat y de comentarios, en este post
crearemos un servidor real time que reporte
números aleatorios al cliente y del cliente al
servidor para esto utilizaremos el módulo
socket.io.
Es un conjunto de herramientas y servicios de
cloud computing para poder realizar distintos
tipos de actividades en la nube. Desde
almacenamiento a la gestión de instancias,
imágenes virtuales, desarrollo de aplicaciones
móviles, etc.
Componentes de hardware
Es una computadora portátil que permite
almacenar, descargar, visualizar los datos
de forma ágil
Son videocámaras diseñadas para enviar
videos, imágenes, mail la cual pueden
integrarse en cualquier aplicación como
detección de intruso, visión en vivo, etc.
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
54
3.1.3 Factibilidad Legal
La propuesta al usar herramientas de origen Open Source no recae en ningún tipo de
quebranto o violación en algún parámetro legal. Por lo tanto, se puede utilizar la
infraestructura lógica y física presentada de modo gratuito sin recargo alguno.
3.1.4 Factibilidad Económica
Para la elaboración de este prototipo se requirió varios elementos de hardware que se
figuraran en la tabla N° 3 dónde se detallará descripción y costo. En cuanto al software al
usar programas Open Source no se generó algún costo adicional.
Tabla 3.COSTOS DEL PROYECTO Cantidad Descripción de Producto Costo Unitario Total
1 Laptop Lenovo para desarrollo 780
1 Cámara IP 40
1 Servicios de cloud en nube 60
Otros 90
Total: 970
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
55
3.2 Etapas de la metodología del proyecto
3.2.1 Metodología de trabajo
La metodología a utilizar en el proyecto de tesis es el procedimiento en campo, cuyo enfoque
del tema de tesis se efectúa en el proyecto y desarrollo integrado en el trabajo de equipo
donde se lleva a cabo los procesos de manera ideal con el único fin de lograr más orden y
control en los estacionamientos vehiculares
3.2.2 Propósito de la documentación
El Propósito de esta documentación es la indagación requerida y necesaria de todos los
miembros involucrados en el transcurso de este proyecto, haciendo énfasis en la
investigación necesaria para la elaboración, así como la implementación del prototipo
conjunto al desarrollo y los temas complementarios a la investigación.
3.2.3 Alcance
En la presente propuesta del proyecto de titulación buscará abarcar el desarrollo y la
implementación de un sistema de gestión de parqueos, así como la integración de una
aplicación móvil para los usuarios finales que consuman dicho servicio, el cual se encuentra
almacenado en la nube y podrá ser utilizado por los usuarios móviles a través de la aplicación
y acceso a internet una vez registrados a la plataforma.
Se estima, que el desarrollo de la propuesta estará cumpliendo los objetivos establecidos
anteriormente mencionados y culminará de forma total una vez finalizada las actividades y
tareas dentro de período de desarrollo del prototipo.
56
3.2.4 ETAPAS DE METODOLOGÍA DEL PROYECTO
Para etapa del desarrollo de este trabajo de titulación se opta por la metodología AGILE que
consta de 5 fases que se mencionaran a continuación:
• Análisis y diagnóstico: Para esta fase se procederá elaborar un plan de trabajo y
análisis de framework de desarrollo que se utilizarán para el despliegue de la
plataforma, así como la integración con las cámaras de seguridad.
• Diseño: En esta fase se procederá a realizar un levantamiento de información idóneo
de la situación actual de la universidad de Guayaquil y sus alrededores, así como la
infraestructura necesaria para arrancar el prototipo y poner en marcha la solución
propuesta a dicha institución.
• Implementación: En esta fase se procede a implementación del ambiente de la
proforma web, móvil y escritorio utilizando los siguientes framework, lenguajes de
programación y herramientas de desarrollo:
➢ Node js
➢ Angular 8
➢ Laravel 5.8
➢ Librería OpenCV
➢ PYTON 3
➢ MySQL
➢ socket io
57
Para la parte de desarrollo móvil se utilizaron los siguientes recursos:
➢ Ionic 4 framework de desarrollo móvil
En cuanto al desarrollo de la plataforma de escritorio de enlace cámaras
seguridad con la plataforma en nube
➢ Electrón js
Plataformas y Utilidades:
➢ Sistemas operativo Windows
➢ Putty
Herramientas de desarrollo:
➢ Xampp
➢ Visual estudio code
➢ Android estudió
• Implementación:
1.- Realizamos una conexión remota a nuestro servidor mediante putty ingresando el
respectivo hostname o dirección IP
58
Gráfico 21.PANTALLA DE HERRAMIENTA PUTTY
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
2.- Iniciamos sesión con nuestras respectivas credenciales de nuestro servidor
Gráfico 22.Pantalla de Terminal del servidor
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
59
3.- Actualizamos la paquetería del sistema operativo con el siguiente comando:
sudo apt update
Gráfico 23.ACTUALIZACIÓN DE PAQUETES DE UBUNTU
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
4.- Descargamos xampp con el siguiente comando:
Wget https://www.apachefriends.org/xampp-files/7.2.22/xampp-linux-x64-7.2.22-0-
installer.run
Gráfico 24.TERMINAL DE DESCARGA DE XAMPP
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
60
5.- Instalamos xampp dándole permisos de ejecución al archivo descargado y luego
ejecutándolo con los comandos:
chmod +x xampp-linux-x64-7.2.22-0-installer.run
./xampp-linux-x64-7.2.22-0-installer.run
Luego aceptamos las configuraciones por defecto
Gráfico 25.INSTALACIÓN DE XAMPP
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
6.- Descargamos composer y lo configuramos para que use la versión de php que trae
xampp con los siguientes comandos:
sudo curl -s https://getcomposer.org/installer | /opt/lampp/bin/php
61
Gráfico 26.DESCARGANDO PAQUETERIA DE COMPOSER
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
sudo ln -s /opt/lampp/bin/php /usr/local/bin/php
Gráfico 27.Pantalla de Terminal
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
sudo mv composer.phar /usr/local/bin/composer
Gráfico 28.COMPOSER
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Podemos confirmar que todos los pasos están activos ahora ejecutamos el comando:
composer
62
Gráfico 29.INSTALACIÓN COMPLETA DE COMPOSER
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Instalación entorno Node.js
1.- Descargamos Node js, para esto usaremos la herramienta Node js versión manager
(NVM), descargándola del siguiente enlace
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
Gráfico 30.INSTALACIÓN DE NODE JS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
63
Para verificar debemos salir y volver a entrar a la terminal del servidor, luego ejecutar el
comando:
Command -v nvm
Gráfico 31. -V NVM
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
2.- Ahora descargamos la última versión de Node js con el comando:
nvm install node
Gráfico 32.DESCARGAR ULTIMA VERSIÓN DE NODE JS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
64
Instalación entorno Python
1.- Por defecto, Ubuntu nos trae preinstalado Python en sus versiones 2 y 3, lo que nos hará
falta será el manejador de paquetes pip, este lo instalamos con el comando:
sudo apt install python3-pip
Gráfico 33. INSTALACIÓN DE PYTHON
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
2.- Ahora instalaremos las 2 dependencias que necesitamos para este proyecto, las cuales
son opencv y socket.io, las cuales instalamos con el comando:
pip3 install opencv-python
Gráfico 34.INSTALACIÓN DE DEPENDENCIAS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
65
pip3 install "python-socketio[client]"
Gráfico 35.INSTALACIÓN DE PYTHON-SOCKETIO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Obteniendo código desde gitlab :Tesis_backend
1.- Nos ubicamos en la carpeta /op/lampp/htdocs y clonamos el repositorio tesis_backend con
el comando:
git clone https://gitlab.com/DaveSalazar/tesis_backend.git
Gráfico 36.CLONACION DE REPOSITORIO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
66
2- Nos ubicamos dentro de la carpeta tesis_backend y ejecutamos el comando:
composer install
Este nos instalara todas las dependencias necesarias para la ejecución del modulo
Gráfico 37.INSTALACIÓN DE DEPENDENCIAS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
2.- Ahora configuramos nuestro archivo. env, este es el que gestiona todas las variables de
entorno del módulo, generamos una nueva con el comando:
sudo cp .env.example .env
Gráfico 38.VARIABLES DE ENTORNO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
67
3.- Luego procedemos a editar las configuraciones con el comando: sudo nano. env
Gráfico 39.CONFIGURACION DE ENV
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
4.-Aquí podemos setear las conexiones al a base de datos y entre otras configuraciones, para
ejemplo práctico setearemos todo por defecto y sin contraseña.
La base de datos será parkingdb, usuario root y sin contraseña
Gráfico 40.INGRESO DE ACCESO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
68
5.- Procederemos a crear la base de datos. Activamos MySQL con el comando:
Sudo /opt/lamp/lamp start
Gráfico 41.ACTIVAMOS MYSQL
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Luego nos ubicamos en la carpeta /op/lampp/bin y ejecutamos: ./myqsl Y creamos la base de
datos desde la consola escribiendo.
create database parkingdb;
Gráfico 42.CREACION DE LA BASE DE DATOS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
69
6.- Luego regresamos a la carpeta /opt/lampp/htdocs/tesis_backend y ejecutamos los
siguientes comandos:
sudo Php artisan key:generate
sudo Php artisan jwt:secret
sudo Php artisan migrate
sudo Php artisan db:seed
Gráfico 43.PANTALLA TERMINAL
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
tesis-video-stream-server
1.- Nos ubicamos en la carpeta /opt/lampp/htdocs y clonamos el repositorio con el comando:
git clone https://gitlab.com/DaveSalazar/tesis-video-stream-server.git
70
Gráfico 44.CLONACION DE REPOSITORIA GITLAB
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
2.- Entramos a la carpeta tesis-video-stream-server y ejecutamos el comando npm install, se
instalarán las respectivas dependencias del proyecto.
Gráfico 45.INSTALACIÓN DE DEPENDENCIAS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
71
3.- Luego nos ayudaremos de la herramienta pm2 para gestionar el despliegue de la aplicación. Este lo instalamos con el comando: npm install pm2 -g
Gráfico 46.HERRAMIENTA PM2
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
4.- Dentro de la carpeta tesis-video-stream-server ejecutamos el módulo con el comando pm2
start main.js
Gráfico 47.COMANDO START MAIN.JS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
72
5.- Nos ubicamos en la carpeta /opt/lampp/htdocs y clonamos el repositorio con el comando:
Git clone https://gitlab.com/DaveSalazar/tesis-opencv-module.git
Gráfico 48.COMANDO GIT CLONE
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
6.- Ejecutamos el módulo y lo dejamos como demonio con el comando python3 main.py &
Gráfico 49.COMANDO PYTHON3 MAIN.PY &
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Tesis-frontend
1.- En nuestro ambiente local descargamos el repositorio de angular y ionic con el comando
git clone
73
https://gitlab.com/DaveSalazar/tesis-project.git (debemos tener instalado git en el
ambiente local)
2.- Nos ubicamos dentro de la carpeta frontend-admin y ejecutamos el comando: npm install
Gráfico 50.INSTALACIÓN DE NPM
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
2.- Nos ubicamos dentro de la carpeta frontend-admin y ejecutamos el comando: npm install
Gráfico 51.INSTALACIÓN DEL PROJECTO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
74
3.- Usamos el editor de código de preferencia y editamos el archivo environment.prod.ts
Escribimos la url de nuestro servidor mas /tesis_backend/public, similar a lo siguiente:
Gráfico 52.ESCRIBIMOS LA URL DEL SERVIDOR
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
4.- Realizaremos el build de nuestra aplicación con el comando: ng build –prod
Gráfico 53.COMANDO NG BUILD-PROD
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
75
Esto generara una carpeta dist con la cual el frontend está listo para ser desplegado
5.- Se debe empacar la carpeta dist en un zip y subirla al servidor mediante ftp, para este
caso usaremos el programa winscp, este nos abrirá una ventana donde pondremos las
credenciales del servidor a conectarnos.
Gráfico 54.HERRAMIENTA WINSCP
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
6.- Pasamos el proyecto empacado al servidor arrastrándolo a la ventana de la derecha.
Gráfico 55.EMPAQUETADO DE LOS ARCHIVOS
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
76
7.- Descomprimimos el archivo con el comando unzip, este lo instalamos con sudo apt unzip
Gráfico 56.COMANDO UNZIP
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Gráfico 57.DESCOMPRECIÓN DEL ARCHIVO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
77
Movemos la carpeta descomprimida a /opt/lampp/htdocs y le cambiamos el nombre a
tesis_frontend
Gráfico 58.CAMBIO DE NOMBRE DE LA CARPETA
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Si todos los pasos han sido seguidos correctamente, se podrá acceder completamente a
todas las funcionalidades de la plataforma
Gráfico 59.PANTALLA DE INGRESO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
78
3.3 - CRITERIOS DE VALIDACIÓN DE LA PROPUESTA
El criterio de validación del proyecto está compuesto de análisis y desarrollo del prototipo
automatizado para el monitoreo de un sector del total de estacionamientos de parqueo dentro
de la Universidad De Guayaquil, el cual medirá el impacto de las variables en los procesos
de manera que se identifique los cambios y de los resultados obtenido de las encuestas
cumpliendo las necesidades de los usuarios
3.3.1- ENCUESTAS
La encuesta se hizo en base a una población de 100 personas considerando ahí el total de
la población que está orientado al personal administrativo, docentes y estudiantes de la
Universidad de Guayaquil asociados a la problemática a resolver.
3.3.2 -PROCESAMIENTO Y ANÁLISIS
Para llevar a cabo el estudio analítico se procederá tabular los resultados obtenidos de las
encuestas y graficarlas. De este modo se podrá interpretar los resultados de modo más
sencillo y de fácil comprensión
79
3.3.3- RESULTADOS DE LA ENCUESTA DIRIJIDA PARA LOS USUARIOS DE
LA UNIVERSIDAD DE GUAYAQUIL
1.- ¿Cuánto tiempo te toma buscando un parqueadero dentro de la Universidad de
Guayaquil?
TABLA 4.Pregunta 1
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados los obtuvimos de la encuesta es del 0 a 5 minutos es de 11.8%, el 5 a 10
minutos es de 42.1%,10 a 20 minutos es de 27.6%, Más de 20 minutos es 5% son el tiempo
que se demoran buscando parqueaderos y el 18.4% restante no saben ya que ellos no tienen
automóviles
ALTERNATIVA CANTIDAD PORCENTAJE
0 A 5 MINUTOS 12 11.8%
5 A 10 MINUTOS 42 42.1%
10 A 20 MINUTOS 27 27.6%
MAS DE 20 MINUTOS 17 18.4%
NO SABEN 3 1%
TOTAL 100 100%
0
10
20
30
40
50
60
70
0 A 5 MINUTOS 5 A 10 MINUTOS 10 A 20 MINUTOS MAS DE 20 MINUTOS
NO SABEN
Cuánto tiempo te toma buscando un parqueadero
CANTIDAD PORCENTAJE
Gráfico 60.GRAFICO DE ENCUESTA PREGUNTA 1
80
2.- ¿Le parecen ineficientes los sistemas actuales de parqueo?
Tabla 5.Pregunta 2
ALTERNATIVA CANTIDAD PORCENTAJE
SI 50 53.9%
NO 20 19.7%
TAL VEZ 30 26.3%
TOTAL 100 100%
Gráfico 61.GRAFICO DE ENCUESTA PREGUNTA 2
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados lo obtuvimos a través de las encuestas son los siguientes: El 53.9% dijeron
que, SI son ineficiente los sistemas de parqueos ya que no cumple con sus necesidades, el
19.7% NO estuvieron de acuerdo ya que algunos sistemas de parqueos se le hace fácil
manejarlo y el 26.3% restante están indecisos ya que la mitad del mismo no tiene ningún tipo
vehicular.
0
10
20
30
40
50
60
70
80
SI NO TAL VEZ
Le parecen ineficientes los sistemas de parqueo
CANTIDAD
81
3.- ¿A qué le da más importancia a la hora de parquear?
Tabla 6. Pregunta 3
ALTERNATIVA CANTIDAD PORCENTAJE
TIEMPO 25 30.3%
UBICACIÓN 57 60.5%
NO LE DAS MUCHA IMPORTANCIA 8 9.2%
TOTAL 100 100%
Gráfico 62.GRAFICO DE ENCUESTA PREGUNTA 3
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados lo obtuvimos a través de las encuestas son los siguientes: El 30.3% le da
importancia al tiempo, el 60.5% le da importancia a la ubicación y el 9.2% no le da
importancia al momento de parquear.
0
20
40
60
80
100
TIEMPO UBICACIÓN NO LE DAS MUCHAIMPORTANCIA
qué le da más importancia a la hora de parquear
CANTIDAD PORCENTAJE
82
4.- ¿Cuántas veces frecuentas el mismo parqueadero?
Tabla 7.Pregunta 4
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados de las encuestas obtuvimos son los siguientes: El 23.7% nunca frecuenta al
parqueadero, 52.6% frecuente de 1 a 3 veces al parqueadero y 23.7% van más de 3 veces
frecuenta al parqueadero.
ALTERNATIVA CANTIDAD PORCENTAJE
NUNCA 20 23.7%
1 A 3 VECES 47 52.6%
MAS DE 3 VECES 20 23.7%
TOTAL 100 100%
0
50
100
NUNCA 1 A 3 VECES MAS DE 3 VECES
Cuántas veces frecuentas el mismo parqueadero
CANTIDAD PORCENTAJE
Gráfico 63..GRAFICO DE ENCUESTA PREGUNTA 4
83
5.- ¿Ha perdido tiempo buscando parqueo?
Tabla 8.Pregunta 5
ALTERNATIVA CANTIDAD PORCENTAJE
SI 58 76.3%
NO 8 7.9%
TAL VEZ 15 18.4%
TOTAL 100 100%
Gráfico 64.GRAFICO DE ENCUESTA PREGUNTA 5
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados de las encuestas obtuvimos son los siguientes: el 76.3% dijeron que pierden
tiempo buscando parqueadero, el 7.9% no estuvieron de acuerdo ya que si les alcanza el
tiempo para buscar el parqueadero y el 18.4% restante están indecisos.
0
10
20
30
40
50
60
70
80
90
SI NO TAL VEZ
Haz perdido tiempo buscando parqueo
CANTIDAD PORCENTAJE
84
6.- ¿Le gustaría la implementación de un software para el parqueo?
Tabla 9. Pregunta 6
ALTERNATIVA CANTIDAD PORCENTAJE
SI 75 76.3%
NO 5 5.3%
TAL VEZ 20 18.4%
TOTAL 100 100%
Gráfico 65.GRAFICO DE ENCUESTA PREGUNTA 6
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados de las encuestas obtuvimos son los siguientes: 76.3% dijeron que SI de
implementar el software, 5.3% dijeron que no implementaría un software para el parqueadero
y el 18.4% están indecisos de la implementación del software.
0
10
20
30
40
50
60
SI NO TAL VEZ
Le gustaría la implementación de un software para el parqueo
Porcentaje Cantidad
85
7.- ¿Le gustaría reducir el tiempo de búsqueda de un sitio de parqueo?
Tabla 10. Pregunta 7
ALTERNATIVA CANTIDAD PORCENTAJE
SI 90 90.8%
NO 0 0%
TAL VEZ 10 9.2%
TOTAL 100 100%
Gráfico 66.GRAFICO DE ENCUESTA PREGUNTA 7
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados de las encuestas obtuvimos son los siguientes: el 90.8% dijeron que SI le
gustaría reducir el tiempo búsqueda al sitio de parqueadero el 0% NO están de acuerdo Y
UN 9.2% DIJIERON TAL VEZ reducirían el tiempo de búsqueda para un sitio de parqueo
0
10
20
30
40
50
60
70
80
90
SI NO
Reduciria el tiempo de búsqueda de un sitio de parqueo
PORCENTAJE CANTIDAD
86
8.- ¿Con qué frecuencia se presentan congestiones al momento de parquear?
Tabla 11. Pregunta 8
ALTERNATIVA CANTIDAD PORCENTAJE
SIEMPRE 70 48%
DE VEZ EN CUANDO 26 49.3%
CASI NUNCA 4 2.7%
TOTAL 100 100%
Gráfico 67.GRAFICO DE ENCUESTA PREGUNTA 8
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados de las encuestas obtuvimos son: El 48% dicen que SIEMPRE hay
congestionamiento al momento de parquear, 49.3% dicen que DE VEZ EN CUANDO hay
congestionamiento al momento de parquear y el 2.7% CASI NUNCA presenta
congestionamiento al momento de parquear.
0%
10%
20%
30%
40%
50%
60%
70%
80%
SIEMPRE DE VEZ EN CUANDO CASI NUNCA
CONGESTIONAMIENTO DE PARQUEO
SIEMPRE DE VEZ EN CUANDO CASI NUNCA
87
9.- Poniéndose en el lugar de los usuarios del parqueadero, ¿estaría usted dispuesto a
acceder a un sistema que le indicará dónde debe parquear desde el momento en el que
entra y así no perder tiempo?
Tabla 12. Pregunta 9
ALTERNATIVA CANTIDAD PORCENTAJE
SI 91 90.8%
NO 3 2.6%
TAL VEZ 6 6.6%
TOTAL 100 100%
Gráfico 68.GRAFICO DE ENCUESTA PREGUNTA 9
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Los resultados de las encuestas obtenidos son: El 90.8%% SI le gustarían que le muestren
donde parquearse, 2.6%% NO le gustaría que le muestren donde parquearse y el 6.6%%
TAL VEZ le gustarían que le muestren donde parquearse ya que aún están indecisos.
0
10
20
30
40
50
60
si no tal vez
Le gustaria que muestren donde parquear
si no tal vez
88
CAPÍTULO IV
CRITERIOS DE ACEPTACIÓN DEL PRODUCTO O SERVICIO
Tabla 13. Matriz de Aceptación del Producto
CRITERIOS DEL PROYECTO CUMPLIMIENTO % CUMPLIMIENTO
Instalación y configuración de la cámara IP. X 100 %
Ejecución del Proyecto en forma local. X 100 %
Instalación y configuración del servidor en la nube. X 100 %
Diseño de la arquitectura y red X 100 %
Realización de las encuestas. X 100 %
Cronograma de Actividades X 100 %
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
89
CONCLUSIONES
El desarrollo e implementación de esta propuesta se lograron cumplir todos y cada uno de los objetivos
planteados obteniendo como resultados las siguientes conclusiones.
OpenCV es una librería de software que, gracias a la combinación de 2 elementos, importantes como
la adquisición de imágenes a través de las cámaras de video vigilancia y el segundo llevado a cabo por
el procesamiento de la información trasmitida a través del servidor local conectados a nuestro servidor
en la nube con lo cual mediante la conexión se procede a optimizar resultado simulando la acción que
permite reconocer objetos y tomar una decisión tal con interpreta un cerebro humano a través de los
algoritmos utilizados.
Los reconocimientos de los espacios disponibles para los estacionamientos se procesan mediante la
visión de la cámara de seguridad en conjunto con los sistemas de la aplicación móvil y la plataforma
web realizando operaciones de toma de decisiones.
Este trabajo presenta un enfoque alternativo para tratar el problema expuesto en los parqueaderos, éste
se basa en el uso de técnicas de visión artificial, la base fundamental es la detección de bordes en cada
lugar de estacionamiento mediante esta técnica podemos discreta el estado ocupado o libre de este
sitio.
El uso de visión artificial en este tipo de aplicaciones permite reducir el número de nodos sensores lo
cual se ve reflejado en la reducción de costos y también en la reducción de consumo energético, dicho
esto, este tipo de tecnologías es muy viable para este tipo de aplicaciones. (Cristian Erazo, 2017)
90
RECOMENDACIONES
• La para llevar a cabo esta implementación se debe contar con bases solidad en
programación y desarrollo de app móviles, e arquitectura de servicios, así como el
despliegue en servidores en la nube.
• Realizar pruebas en ambientes controlados de testing y de manera local tratando de
corregir posibles errores al momento de publicar la plataforma producción, así como
pruebas de conectividad con las cámaras de seguridad.
• Identificar los posibles factores de riesgo en cuanto a la seguridad de los usuarios
finales que consumirán en servicio en la nube.
• Tener un servidor de respaldo en caso de un posible fallo o anomalía presentada en
el momento del despliegue de la plataforma
• De la misma manera tener todo el código fuente respaldado en un repositorio en cual
permita disponer de control de versiones de la plataforma
91
BIBLIOGRAFÍA
Bibliografía (s.f.). Obtenido de https://platzi.com/blog/typescript/
(s.f.).
¿QUÉ ES Y PARA QUÉ SIRVE JAVASCRIPT? (2006). Obtenido de ¿QUÉ ES Y PARA QUÉ SIRVE
JAVASCRIPT?:
https://www.aprenderaprogramar.com/attachments/article/590/CU00731B%20Que%20es
%20para%20sirve%20JavaScript%20embeber%20HTML%20ejemplo%20sencillo.pdf
Alondra Castro, M. L. (11 de agosto de 2017). ¿QUÉ ES MACHINE LEARNING Y PARA QUÉ SIRVE?
Obtenido de ¿QUÉ ES MACHINE LEARNING Y PARA QUÉ SIRVE?:
https://www.inbest.cloud/comunidad/qu%C3%A9-es-machine-learning-y-para-qu%C3%A9-
sirve
Alvarez, M. A. (28 de agosto de 2014). que es AngularJs, desarrollos Web. Obtenido de que es
AngularJs: https://desarrolloweb.com/articulos/que-es-angularjs-descripcion-framework-
javascript-conceptos.html
Alvarez, M. A. (2 de Marzo de 2017). Que es Ionic? Obtenido de Manual de Ionic:
https://desarrolloweb.com/articulos/que-es-ionic2.html
Angeles, N. (4 de julio de 2018). tecnosinergia.zendesk. Obtenido de tecnosinergia.zendesk:
https://tecnosinergia.zendesk.com/hc/es/community/posts/115000357991-Protocolo-RTSP-
Para-que-sirve-
Bonito, S. (28 de junio de 2017). Porque Laravel? Obtenido de https://www.drauta.com/por-que-
laravel
camaraipwifi. (24 de mayo de 2019). camaraipwifi.com. Obtenido de camaraipwifi.com:
https://camaraipwifi.com/wp-content/uploads/2019/01/Camara-IP-WIFI-de-Seguridad-
Victure-Modelo-PC540.jpg
chiefit.me. (27 de junio de 2019). chiefit.me. Obtenido de chiefit.me: https://chiefit.me/wp-
content/uploads/2019/06/Amazon-Web-Services_logo835x396.png
Cristian Erazo, S. N. (3 de agosto de 2017). repositorio.utn.edu.ec. Obtenido de
repositorio.utn.edu.ec:
http://repositorio.utn.edu.ec/bitstream/123456789/9075/2/ART%C3%8DCULO.pdf
cristianglopez. (10 de mayo de 2017). cristianglopez. Obtenido de cristianglopez:
http://cristianglopez.weebly.com/uploads/3/9/7/5/39757782/9782599_orig.png
culturacion. (6 de enero de 2016). culturacion. Obtenido de culturacion:
https://culturacion.com/dispositivos-basicos-para-conexion-de-redes/
Decena, E. (23 de julio de 2018). medium.com. Obtenido de medium.com:
https://medium.com/@eddydecena/servidor-real-time-con-socket-io-18e84d39d12b
92
DevCode. (s.f.). Obtenido de
https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwjx44mmwcbkAhWBs
lkKHRi6BRIQjRx6BAgBEAQ&url=https%3A%2F%2Fdevcode.la%2Ftutoriales%2Ffunciones-en-
javascript%2F&psig=AOvVaw12Va2VUKQLrJdqO3E-hc-s&ust=1568213662392827
DevCode cursos, M. C. (2017). ¿Qué es TypeScript? Obtenido de ¿Qué es TypeScript?:
https://devcode.la/blog/que-es-typescript/
diezdediez.es. (5 de junio de 2012). diezdediez.es. Obtenido de diezdediez.es:
http://diezdediez.es/blog/que-es-amazon-web-services/
editafacil. (11 de Febrero de 2017). editafacil. Obtenido de editafacil: http://blog.editafacil.es/que-
es-y-para-que-sirve-el-cloud-computing/
expreso. (11 de agosto de 2019). expreso. Obtenido de La consultora Inrix ubica a Guayaquil en el
puesto 91 de 200 ciudades principales con más tráfico en el mundo. Expertos analizan las
causas de la congestión.: https://www.expreso.ec/guayaquil/trafico-guayaquil-vehiculos-
demora-inrix-IA2323280
geekytheory. (17 de enero de 2018). geekytheory.com. Obtenido de geekytheory.com:
https://geekytheory.com/introduccion-a-socket-io
gluppi. (26 de agosto de 2018). gluppi. Obtenido de gluppi: https://gluppi.com/que-es-cloud-
computing/
González, A. S. (28 de febrero de 2018). como-programar.net. Obtenido de como-programar.net:
https://como-programar.net/wp-content/uploads/2019/04/ionic-background-mode.png
GONZÁLEZ, G. (13 de agosto de 2019). genbeta. Obtenido de genbeta:
https://i.blogs.es/62f583/python/450_1000.jpg
Gracia, L. (9 de octubre de 2013). ¿Qué es OpenCV? Obtenido de ¿Qué es OpenCV?:
https://unpocodejava.com/2013/10/09/que-es-opencv/
ikerg1972. (19 de mayo de 2019). CURSO DE LARAVEL. Obtenido de
https://i2.wp.com/www.ikerg1972.com/wp-
content/uploads/2019/05/LARAVEL.png?fit=801%2C401&ssl=1
Lozada, A. (16 de abril de 2018). ed.team. Obtenido de ed.team:
https://drupal.ed.team/sites/default/files/2018-04/sql.jpg
nareshit. (4 de mayo de 2018). nareshit. Obtenido de nareshit: https://nareshit.com/wp-
content/uploads/2018/08/angular-JS-online-training-nareshit.jpg
Ortiz, J. S.-K. (2019). Guayaquil - Ecuador.
Ozar, B. (22 de septiembre de 2016). brentozar. Obtenido de brentozar:
https://www.brentozar.com/wp-content/uploads/2018/09/Polybase.png
Pacheco, J. P. (20 de septiembre de 2017). repositorio ug. Obtenido de repositorio ug:
http://repositorio.ug.edu.ec/bitstream/redug/23908/1/TESIS%20SEMAFORIZACI%C3%93N%
20I.pdf
Pearlman, S. (29 de enero de 2019). es.talend. Obtenido de es.talend: https://es.talend.com/wp-
content/uploads/database-integration.jpg
93
Platzi. (2 de MAYO de 2018). platzi.com. Obtenido de platzi.com:
https://platzi.com/blog/aplicaciones-escritorio-electron-js/
Prado, C. E. (2017). ¿Qué es y por qué aprender SQL? Obtenido de DevCode:
https://devcode.la/blog/que-es-sql/
profesores.elo. (12 de diciembre de 2018). profesores.elo. Obtenido de profesores.elo:
http://profesores.elo.utfsm.cl/~agv/elo323/2s10/projects/ApablazaBustamante/desc.html#
Python (informática) | Qué es, para qué sirve y por qué usarlo? (16 de junio de 2018). Obtenido de
Python (informática) | Qué es, para qué sirve y por qué usarlo?:
http://247tecno.com/python-para-que-sirve-por-que-usarlo/
Que es laravel. (21 de marzo de 2013). Obtenido de Que es laravel:
http://desarrollandowebsdinamicas.blogspot.com/2013/03/que-es-laravel.html
Que es laravel. (21 de marzo de 2013). Obtenido de Que es laravel:
http://desarrollandowebsdinamicas.blogspot.com/2013/03/que-es-laravel.html
Ramos, P. (14 de septiembre de 2018). Styde. Obtenido de Qué es y para qué sirve SQL:
https://styde.net/que-es-y-para-que-sirve-sql/
reportedigital. (17 de junio de 2015). reportedigital. Obtenido de reportedigital:
https://reportedigital.com/negocios/tecnologia/que-es-una-red-lan/
roadshow. (4 de junio de 2018). roadshow. Obtenido de roadshow:
https://www.roadshow.com.ar/wp-content/uploads/machine-learning-espana.jpg
robertcooper. (14 de enero de 2019). robertcooper. Obtenido de robertcooper:
https://www.robertcooper.me/static/0cf501bada61bd930003ec6c08be25fa/46606/banner.
png
Robles, V. (2019). ¿Que es Angular y para que sirve? Obtenido de ¿Que es Angular y para que sirve?:
https://victorroblesweb.es/2017/08/05/que-es-angular-y-para-que-sirve/
Rosebrock, A. (28 de agosto de 2019). pyimagesearch. Obtenido de pyimagesearch:
https://www.pyimagesearch.com/wp-
content/uploads/2017/08/faster_for_loop_header.png
Rouse, M. (5 de junio de 2018). searchdatacenter. Obtenido de searchdatacenter:
https://searchdatacenter.techtarget.com/es/definicion/Red-de-area-local-LAN
SAS. (2019). machine learning . Obtenido de machine learning :
https://www.sas.com/es_mx/insights/analytics/machine-learning.html
tecnologia-facil. (23 de Diciembre de 2011). tecnologia. Obtenido de tecnologia: https://tecnologia-
facil.com/que-es/que-es-lan/
ticoespia. (16 de Septiembre de 2017). ticoespia. Obtenido de ticoespia:
http://ticoespia.com/site/images/stories/camip3.jpg
TVC. (24 de julio de 2014). que es y como funciona una camara ip. Obtenido de que es y como
funciona una camara ip: http://www.foro.tvc.mx/kb/a551/que-es-y-como-funciona-una-
camara-ip.aspx
uriel, p. (2017). platzi, ¿Qué es y cómo usar TypeScript? Obtenido de ¿Qué es y cómo usar
TypeScript?: https://platzi.com/blog/typescript/
94
Yaneidis Jc, E. (13 de diciembre de 2015). Que es Laravel. Obtenido de Que es Laravel:
https://www.ecured.cu/Laravel
95
ANEXOS
96
Gráfico 69.FORMULARIO DE ENCUESTA PREGUNTA 1
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
97
Gráfico 70.FORMULARIO DE ENCUESTA PREGUNTA 2 & 3
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
98
Gráfico 71.FORMULARIO DE ENCUESTA PREGUNTA 4-5-6
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
99
Gráfico 72.FORMULARIO DE ENCUESTA PREGUNTA 7-8
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Gráfico 73.FORMULARIO DE ENCUESTA PREGUNTA 9
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
100
Gráfico 74.ANEXO 1 FOTOGRAFIA DE ESTACIONAMIENTO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Gráfico 75.ANEXO 1 FOTOGRAFIA DE ESTACIONAMIENTO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
101
Gráfico 76.EVIDENCIA ANEXO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta
Gráfico 77.EVIDENCIA ANEXO
Fuente: Trabajo de Investigación
Autores: Kevin Ortiz vera – Josué Salazar Acosta