Está en la página 1de 122

UNIVERSIDAD ADVENTISTA DE BOLIVIA

FACULTAD DE INGENIERÍA
CARRERA INGENIERIA DE SISTEMAS

SISTEMA WEB PARA EL MONITOREO DE LAS CONDICIONES


CLIMÁTICAS Y VIGILANCIA INTERNA DE GRANJA DE POLLOS
BASADO EN LA TECNOLOGÍA RASPBERRY PI.
“CASO DE ESTUDIO GOBIERNO AUTÓNOMO MUNICIPAL DE
CORIPATA”

PROYECTO DE GRADO

Presentado como requisito para obtener el grado de


Licenciatura en Ingeniería de Sistemas

Yola Lola Huayhua Mamani

Tutor

Ing. Víctor Pérez Rojas

Cochabamba, Julio de 2018


DEDICATORIA
Deseo dedicarles este proyecto
especialmente a mis papas, hermano
por todo el esfuerzo, comprensión y
apoyo económico que me brindaron
para culminar mis estudios.
A Dios por ser siempre ese
sentimiento de alegría, tranquilidad y
serenidad en cada momento de esta
etapa de vida.
AGRADECIMIENTO
A Dios, por darme vida, sabiduría y
fuerza para culminar mis estudios y a
los ingenieros Ing. Víctor Pérez Rojas,
Ing. Max Yugar por su paciencia y
guía durante el proceso de desarrollo
del proyecto.
RESUMEN

Dentro de las nuevas tecnologías se encuentran aplicaciones agrupadas con el concepto de


automatización que contribuyen al control remoto. El concepto de automatización es el uso
simultáneo de la electricidad, electrónica y la informática mediante el control remoto,
aplicadas para satisfacer las necesidades básicas de gestión energética, seguridad,
comunicación.

En el caso de la automatización gestionara áreas de manera remota para que se evite los
interruptores, también para regular la temperatura del ambiente.

La Raspberry Pi tiene una infinidad de usos, uno de los más interesantes es utilizarlo como
servidor web completo para el sistema de automatización de la granja de pollos del
Municipio de Coripata ya que se tiene configurado un servidor web con APACHE, PHP5,
MySQL y todos los complementos necesarios.

Teniendo en cuenta la problemática de la granja en cuanto al control de la temperatura y


vigilancia de la misma, se desarrolló el sistema de automatización para el control de la
iluminación, regulador de calor de ambiente y detección de movimiento, utilizando
sensores y actuadores manejados desde el sistema web o teléfono móvil que permite al
usuario acceder al sistema desde cualquier lugar de la vivienda y realizar las siguientes
acciones:

 Control remoto con interruptores: Esta encarda de enviar la instrucción al


sistema para poner en funcionamiento cada área.
 Control mediante sensores de movimiento (PIR) y luz (LDR): Esta encarda de
enviar la instrucción al sistema para activar o desactivar la iluminación según a
los eventos de movimiento y la intensidad de luz.
 Control de intensidad de iluminación (Dimmer): El usuario controla la
intensidad de la iluminación desde el sistema.
 Modo simulación de presencia: Proporciona un generador de números aleatorios
adecuado para realizar la simulación de presencia dentro del sistema de
automatización.
ÍNDICE

RESUMEN ...............................................................................................................................
INTRODUCCIÓN .................................................................................................................. 1
CAPÍTULO 1 EL PROBLEMA ............................................................................................ 2
1.1 Antecedentes ........................................................................................................................... 2
1.1.1 Antecedentes de la institución........................................................................................... 2
1.1.2 Antecedentes tecnológicos ................................................................................................ 4
1.2 Problema ................................................................................................................................. 4
1.2.1 Situación problemática....................................................................................................... 4
1.2.2 Formulación del problema................................................................................................. 5
1.3 Objetivos ................................................................................................................................. 5
1.3.1 Objetivo general .................................................................................................................. 5
1.3.2 Objetivos específicos ......................................................................................................... 5
1.4 Alcances y límites .................................................................................................................. 6
1.4.1 Alcances ............................................................................................................................... 6
1.4.2 Límites ................................................................................................................................. 6
1.4.3 Justificación ......................................................................................................................... 6
1.5 Análisis de factibilidad .......................................................................................................... 6
1.5.1 Factibilidad técnica............................................................................................................. 6
1.5.2 Factibilidad económica ...................................................................................................... 7
1.5.3 Factibilidad operacional ..................................................................................................... 8
CAPÍTULO 2 MARCO TEÓRICO ....................................................................................... 9
2.1 Modelado de negocio ............................................................................................................ 9
2.1.1 Herramienta para realizar el modelado de negocio ........................................................ 9
2.1.1.1 Diagrama de flujo ............................................................................................................ 9
2.2 Ingeniería de software ......................................................................................................... 11
2.2.1 Metodología de desarrollo de software .......................................................................... 12
2.2.1.1 Modelo incremental ...................................................................................................... 13
2.2.1.2 Modelo en espiral .......................................................................................................... 15
2.2.1.3 Proceso unificado (UP) ................................................................................................. 16
2.2.1.4 Selección del modelo de desarrollo ............................................................................ 18
2.3 Tecnologías de desarrollo de distema Web ...................................................................... 18

v
2.3.1 Lenguaje de Programación .............................................................................................. 18
2.3.1.1 PHP.................................................................................................................................. 18
2.3.1.2 ASP.NET ........................................................................................................................ 19
2.3.1.3 Selección del lenguaje de programación .................................................................... 19
2.3.1.4 Justificación del lenguaje de programación ............................................................... 19
2.3.2 Herramienta de desarrollo ............................................................................................... 20
2.3.2.1 Net beans ........................................................................................................................ 20
2.3.2.2 Visual estudio................................................................................................................. 21
2.3.2.3 Selección de la herramienta de desarrollo .................................................................. 21
2.3.2.4 Justificación de la herramienta de desarrollo............................................................. 21
2.3.3 Marco de trabajo (Framework) ....................................................................................... 22
2.3.3.1 CodeIgniter ..................................................................................................................... 22
2.3.3.3 Justificación del framework ......................................................................................... 23
2.3.4 Sistemas de gestión de base de datos ............................................................................. 23
2.3.4.1 MySQL ........................................................................................................................... 24
2.3.4.2 Postgre SQL ................................................................................................................... 25
2.3.4.3 Oracle .............................................................................................................................. 26
2.3.4.4 Justificación del gestor de base de datos .................................................................... 27
2.4 Arquitectura de software ..................................................................................................... 28
2.4.1 Arquitectura cliente/servidor ........................................................................................... 29
2.4.1.1 Características de la arquitectura cliente servidor..................................................... 29
2.6.1.1 Raspberry Pi ................................................................................................................... 31
2.6.1.2 Especificaciones de hardware ...................................................................................... 32
2.6.1.3 Especificaciones técnicas ............................................................................................. 33
2.6.1.4 Especificaciones técnicas de los modelos raspberry PI............................................ 34
2.6.1.6 Componentes para raspberry Pi ................................................................................... 36
2.6.2.1 Raspbian ......................................................................................................................... 38
2.6.2.2 Noobs full y noobs lite.................................................................................................. 39
2.6.2.3 Selección de modelo software para la raspberry PI .................................................. 39
2.6.2.4 Acceso remoto a la raspberry Pi mediante conexión SSH ....................................... 40
2.6.2.5 Servidor web raspberry PI ............................................................................................ 41
2.6.2.6 Apache 2.2 ...................................................................................................................... 42

vi
2.6.3.1 Python ............................................................................................................................. 42
2.6.3.2 C++ .................................................................................................................................. 44
2.6.3.3 Ruby ................................................................................................................................ 45
2.6.3.4 Selección del lenguaje de programación para la raspberry Pi ................................. 45
2.6.4.1 Angry IP Scanner .......................................................................................................... 45
2.6.4.2 PuTTY ............................................................................................................................ 46
2.6.4.3 Xming ............................................................................................................................. 46
2.7 Componentes eléctricos ...................................................................................................... 46
2.7.1 Sensores ............................................................................................................................. 46
2.7.1.1 Sensor de luz .................................................................................................................. 46
2.7.1.2 Sensor de temperatura ................................................................................................... 47
2.7.1.3 Sensor de movimiento .................................................................................................. 47
2.7.2 Resistencias ....................................................................................................................... 47
2.7.3 Actuadores ......................................................................................................................... 48
2.7.4 Transistores........................................................................................................................ 48
2.7.4.1 Transistores para corriente alterna (Tiristores).......................................................... 48
2.7.5 Modulo relé ....................................................................................................................... 49
2.7.6 Protoboard ......................................................................................................................... 49
2.7.7 Capacitores ........................................................................................................................ 50
2.7.8 Optoacoplador ................................................................................................................... 50
CAPÍTULO 3 MARCO PRÁCTICO............................................................................... 51
3.1.1 Modelo de negocio actual ................................................................................................ 51
3.1.3 Planificación de incrementos .......................................................................................... 54
3.2 Primer incremento................................................................................................................ 54
3.2.2 Análisis............................................................................................................................... 54
3.2.2.1 Identificación de actores ............................................................................................... 54
3.2.2.2 Identificación de casos de uso por actor ..................................................................... 55
3.2.2.3 Diagrama de casos de uso del sistema ........................................................................ 56
3.2.2.4 Diagramas de secuencia................................................................................................ 57
3.2.3 Diseño ................................................................................................................................ 63
3.2.3.1 Diagramas de colaboración .......................................................................................... 63
3.2.3.2 Diseño de la base de datos............................................................................................ 69

vii
3.2.4 Pruebas ............................................................................................................................... 69
3.2.4.1 Desarrollo de interfaces ................................................................................................ 69
3.2.4.2 Casos de prueba ............................................................................................................. 74
3.3 Segundo Incremento implementar mecanismos necesarios para establecer conexión
entre la Raspberry Pi y el sistema web .................................................................................... 77
3.3.2 Análisis............................................................................................................................... 77
3.3.2.1 Conexión de red y cargador de energía a la raspberry Pi ......................................... 78
3.3.2.2 Monitoreo de la dirección IP a la raspberry Pi .......................................................... 78
3.3.2.3 Conexión remota al raspberry Pi usando SSH y la configuración del putty ......... 79
3.3.2.4 Conexión remota al raspberry Pi usando xming ....................................................... 81
3.3.3 Diseño ................................................................................................................................ 83
3.3.4 Código ................................................................................................................................ 84
3.3.5 Prueba ................................................................................................................................. 85
3.3.5.1 Creación de la base de datos ........................................................................................ 85
3.4 Tercer Incremento desarrollar circuitos eléctricos........................................................... 89
3.4.1.1 Análisis de Requerimientos ......................................................................................... 89
3.4.1.2 Entrada y Salida de los Puertos ................................................................................... 89
3.4.1.3 GPIO general (entrada/salida) ..................................................................................... 89
3.4.2 Diseño ................................................................................................................................ 90
3.4.2.1 Diagrama electrónico de iluminación ......................................................................... 91
3.4.2.2 Diagrama electrónico de DH11 temperatura y humedad ......................................... 92
3.4.2.3 Diagrama electrónico del circuito PIR ....................................................................... 92
3.4.2.4 Diagrama Electrónico del Sensor de Luz LDR ......................................................... 93
3.4.2.5 Diagrama Electrónico de la Cámara ........................................................................... 94
3.4.3 Codificación ...................................................................................................................... 95
3.4.3.1 Controlar GPIO a Través de un Script Python .......................................................... 95
3.4.3.2 Pruebas de Funcionamiento ......................................................................................... 98
CONCLUSIONES ................................................................................................................... 103
RECOMENDACIONES ......................................................................................................... 105
REFERENCIAS BIBLIOGRAFÍAS ..................................................................................... 106
ANEXOS

viii
ÍNDICE DE CUADROS

Cuadro 2.1 Figura para la construcción de diagrama de flujo .......................................... 10


Cuadro 3.1 Casos de prueba para la verificación de funcionalidades……………….......75
Cuadro 3.2 Casos de prueba para la verificación de funcionalidades de circuitos ......... 101

ix
ÍNDICE DE FIGURAS

Figura 2.1 Modelo de ciclo de vida incremental ............................................................... 14


Figura 2.2 Funcionamiento del modelo espiral ................................................................. 15
Figura 2.3 Fases del proceso unificado ............................................................................. 17
Figura 2.4 Sistema de gestión de base de datos sistema cliente-servido .......................... 24
Figura 2.5 Arquitectura cliente-servidor ........................................................................... 30
Figura 2.6 Especificaciones de hardware raspberry PI ..................................................... 33
Figura 2.7 Especificaciones técnicas de los modelos raspberry Pi ................................... 35
Figura 2.8 Raspberry Pi 2 GPIO general purpose input/output ........................................ 36
Figura 2.9 Adaptador a micro USB ................................................................................... 37
Figura 2.10 Tarjeta SD ...................................................................................................... 37
Figura 2.11 Cable de red ................................................................................................... 38
Figura 2.12 Raspbian ......................................................................................................... 38
Figura 2.13 Noobs ............................................................................................................. 39
Figura 2.14 Servidor web raspberry PI ............................................................................. 41
Figura 3.1 Modelo de negocio actual ................................................................................ 52
Figura 3.2 Modelo de negocio alternativo ........................................................................ 53
Figura 3.3 Identificación de actor...................................................................................... 55
Figura 3.4 Diagrama de casos de uso del actor supervisor ............................................... 55
Figura 3.5 Diagrama de casos de uso del sistema ............................................................. 57
Figura 3.6 Diagrama de secuencia ingresar al sistema ...................................................... 58
Figura 3.7 Diagrama de secuencia administrar usuario .................................................... 58
Figura 3.8 Diagrama de secuencia administrar interruptor ............................................... 59
Figura 3.9 Diagrama de secuencia administrar sensor ...................................................... 59
Figura 3.10 Diagrama de secuencia automatizar luces ..................................................... 60
Figura 3.11 Diagrama de secuencia automatizar ventiladores .......................................... 60
Figura 3.12 Diagrama de secuencia automatizar detección de movimiento externo ........ 61
Figura 3.13 Diagrama de secuencia automatizar iluminación externo ............................. 61
Figura 3.14 Diagrama de secuencia: monitorear la intensidad de iluminación................. 62
Figura 3.15 Diagrama de secuencia: monitorear la temperatura y humedad .................... 62
Figura 3.16 Diagrama de secuencia: automatizar cámara ................................................. 63
Figura 3.17 Diagrama de colaboración: administrar usuario ............................................ 63

x
Figura 3.18 Diagrama de colaboración: administrar interruptores.................................... 64
Figura 3.19 Diagrama de colaboración: administrar sensores .......................................... 65
Figura 3.20 Diagrama de colaboración: administrar luces ................................................ 65
Figura 3.21 Diagrama de colaboración: administrar los ventiladores ............................... 66
Figura 3.22 Diagrama de colaboración: automatizar la detección de movimiento externo
........................................................................................................................................... 66
Figura 3.23 Diagrama de colaboración: automatizar iluminación externo ....................... 67
Figura 3.24 Diagrama de colaboración: monitorear la intensidad de iluminación ........... 67
Figura 3.25 Diagrama de colaboración: monitorear la temperatura y humedad ............... 68
Figura 3.26 Diagrama de colaboración: automatizar cámara ............................................ 68
Figura 3.27 Base de datos del sistema............................................................................... 69
Figura 3.28 Interfaz de identificación de usuario .............................................................. 70
Figura 3.29 Interfaz de autenticación usuario ................................................................... 70
Figura 3.30 Interfaz de autenticación errónea ................................................................... 71
Figura 3.31 Acceso al sistema de automatización ............................................................. 71
Figura 3.32 Interfaz de editar usuario ............................................................................... 72
Figura 3.33 Interfaz de guardar datos del usuario ............................................................. 72
Figura 3.34 Interfaz de actualizar datos del usuario .......................................................... 73
Figura 3.35 Interfaz de la configuración del interruptor ................................................... 73
Figura 3.36 Interfaz de la configuración de sensores ........................................................ 74
Figura 3.37 Interfaz de conexión de red y cargador de energía a la raspberry Pi ............. 78
Figura 3.38 Intertfaz angry IP scanne ............................................................................... 79
Figura 3.39 Interfaz de configuración del putty ................................................................ 80
Figura 3.40 Visualización de comando de linux de la raspberry Pi .................................. 80
Figura 3.41 Configuración de xming ................................................................................ 81
Figura 3.42 Pantalla de la raspberry Pi ............................................................................. 82
Figura 3.43 Interfaz de instalación de un servidor web .................................................... 83
Figura 3.44 Interfaz de arquitectura cliente/ servidor ....................................................... 83
Figura 3.45 Interfaz de conexión al servidor..................................................................... 85
Figura 3.46 Interfaz de inicio de sesión del servidor MySQL .......................................... 86
Figura 3.47 Estructuras de la tabla usuario ....................................................................... 87
Figura 3.48 Interfaz de la tabla campo .............................................................................. 87
Figura 3.49 Diseño de la base de datos ............................................................................. 88

xi
Figura 3.50 Interfaz de funcionamiento del sistema ......................................................... 88
Figura 3.51 GPIO general (entrada/salida) ....................................................................... 89
Figura 3.52 Esquema de conexión de led .......................................................................... 90
Figura 3.53 Esquema del circuito de iluminación ............................................................. 91
Figura 3.54 Esquema del circuito DH11 temperatura y humedad .................................... 92
Figura 3.55 Esquema del circuito sensor PIR en la raspberry Pi ...................................... 93
Figura 3.56 Esquema del sensor de luz LDR en raspberry Pi ........................................... 94
Figura 3.57 Esquema del circuito de la cámara en raspberry Pi ....................................... 94
Figura 3.58 Interfaz del funcionamiento del GPIO_PIR, detección de movimiento ........ 97
Figura 3.59 Interfaz del funcionamiento del acceso offPir.py detección de movimiento . 97
Figura 3.60 Interfaz de la temperatura y humedad ............................................................ 98
Figura 3.61 Interfaz del menú de cámara .......................................................................... 99
Figura 3.62 Interfaz de visualización de granja mediante cámara .................................. 100
Figura 3.63 Interfaz de funcionamiento del sistem ......................................................... 100

xii
INTRODUCCIÓN

En la actualidad muchas organizaciones desarrollan e implementan sistemas web


alcanzando altos niveles de complejidad por la constante evolución de la tecnología, para
incrementar el beneficio en todas las áreas laborales y optimizar el rendimiento de la
empresa. En el manejo de la información oportuna y actualizada a través de la
implementación del sistema, este permite a las organizaciones el dominio de la gran
cantidad de información de forma centralizada.

Uno de los factores determinantes para el éxito de la empresa es el intercambio de


información, ya que de esta depende en gran parte la buena o mala realización de las
diferentes tareas o actividades que se desarrollan en un momento determinado, es en este
sentido que se hace necesario el monitoreo y control de dichas actividades.

En los últimos años se ha producido una considerable evolución tanto como en la crianza
como en el consumo de la carne de pollo. Las granjas se deben ir adaptando a la nueva
necesidad de producción y confiar en los avances tecnológicos para ser rentables,
competitivas y sostenibles.

Los procesos de crianza dentro de la granja de pollos, son de gran responsabilidad, ya que
son delicados a cualquier irregularidad que pueda presentarse, por lo que requiere llevar a
cabo las tareas de forma eficiente, puntualmente en sus respectivos horarios.

Por otro lado en la granja de pollos, el control a las tareas que llevan a cabo los empleados,
se realiza dos veces al mes. Esto ocasiona insuficiente control por las diferentes actividades
que realiza el administrador ya que se debe llevar acabo con responsabilidad cada tarea que
se realiza día a día.

De esta manera, se realizó un sistema web para el monitoreo de las condiciones climáticas y
vigilancia interna de la granja de pollos del Gobierno Autónomo Municipal de Coripata,
con la finalidad de facilitar la inspección de la granja, mejoramiento de los proceso de
crianza y crecimiento económico de la empresa.

1
CAPITULO 1
EL PROBLEMA

1.1 Antecedentes

1.1.1 Antecedentes de la Institución

El Gobierno Autónomo Municipal de Coripata, 2da Sección de la provincia Nor Yungas


del Departamento de La Paz, tiene como misión de contribuir a la satisfacción de las
necesidades colectivas, así como garantizar la integración y participación de los ciudadanos
en la planificación y desarrollo sostenible del municipio.

El municipio de Coripata esta destacada como el municipio productor de la hoja de coca,


para su sustento económico. Esta región tiene una inmensurable biodiversidad en flora y
fauna; ideal para desarrollar y promover el ecoturismo.

El municipio es representado por su máxima autoridad ejecutiva, Honorable Alcalde


representante de cuatro distritos y cuarenta y cinco comunidades. El gobierno autónomo
municipal de Coripata, es un órgano ejecutivo encargado de hacer cumplir la construcción,
la ley, los derechos del gobierno, las ordenanzas y los acuerdos del consejo.

Actualmente el municipio y el gobierno autónomo municipal de Coripata en muchas de las


actividades que realiza gestión a gestión, es ejecutar obras y promover actividades de
desarrollo. En distintas áreas en los distritos y comunidades en beneficio del municipio.

De esta manera una de las obras que está en ejecución en Coripata es la Crianza de Pollos,
cuenta con representantes encargados para llevar acabo los procedimientos de crianza.

Para la venta del producto los encargados, en coordinación con la alcaldía y la comunidad
realizan publicidades en radios, ferias y en diferentes fechas donde se realizan diferentes
actividades en el municipio.

La granja de pollos se encuentra ubicada alejado del municipio. El lugar cuenta con agua y
energía eléctrica en una amplia parcela rodeada de árboles.

Actualmente los procedimientos que se realizan en la granja de pollos se efectúan de la


siguiente manera:

2
La empresa cuenta con un administrador el cual se encarga de supervisar la producción de
los pollos y cuenta con dos empleados fijos, que están a cargo de todo el proceso de
crianza.

El administrador es el encargado de llevar a cabo el proceso productivo de la granja. Como


parte de este proceso se realiza la compra de los pollitos bebes y los alimentos balanceados.
Luego de realizar las compras dejan bajo la responsabilidad de los empleados de crianza.
Las tareas que se realizan en la granja, es el control de peso y las medidas sanitarias desde
los pollitos bebés hasta lograr su peso adecuado.

Para la crianza de los pollos, los empleados reciben una tarea detallada del administrador,
sobre fases de alimentos, prevención de las condiciones climáticas e higiene, el cual se debe
llevar acabo correctamente en sus respectivos horarios.

Para el proceso de crianza los empleados realizan las siguientes actividades: desinfectan los
ambientes, manejo de las camas de aserrín por la mañana, dar alimento y agua a los pollos
tres veces al día (mañana, medio día y noche), los bebederos se desinfectan todo los días
por la mañana. La alimentación se le da en tres fases: iniciador, crecimiento y engorde. El
iniciador se da en los primeros quince días desde su vida inicial y el crecimiento y engorde
hasta el faenamiento, que es de un mes y medio a dos meses. Toda esta actividad se realiza
de acuerdo a las instrucciones para prevenir la mortalidad.

En ocasiones los empleados contratan empleados eventuales cuando realizan viajes o tienen
alguna actividad de emergencia, y en muchas ocasiones los empleados eventuales no
cumplen a totalidad con las tareas encomendadas a pesar de que se les han dado las
instrucciones correspondientes e inclusive se presentan perdidas de pollos.

Una vez que retorna el empleado de su viaje o actividad, se realiza la cancelación


respectiva a los empleados eventuales de los días trabajados en la granja. Luego el
empleado retorna a su actividad de trabajo, tomando en cuenta los trabajos que se ha
llevado a cabo en la granja por los empleados eventuales durante su ausencia.

Por otro lado cuando se presentan cambios climáticos, en ciertas ocasiones llueve o hace
mucho calor durante semanas, en estas circunstancias no se puede controlar en el momento
preciso y debido a que los pollos son frágiles a enfermarse, se presenta la mortalidad.

3
Entonces los encargados deben aplicar las previsiones correspondientes, cuando hace
mucho frio se colocan las cortinas. Cuando hace mucho calor se quitan las cortinas y se
encienden las ventiladoras, para evitar los riesgos de que se enfermen los pollos. Por estos
cambios climáticos inesperados se presenta la mortalidad de los mismos.

1.1.2 Antecedentes Tecnológicos

De acuerdo a la investigación realizada, la mayoría de los trabajos que se ha realizado son


de domótica implementadas en viviendas.

“Sistema domótico de control de luces mediante una aplicación Android basado en una
tarjeta Raspberry Pi”. Autor: Oscar May Tzuc, 27 de Septiembre del 2015, Facultad de
Ingeniería, Universidad Autónoma de Yucatán, México.

El proyecto describe el desarrollo de un sistema embebido mediante una arquitectura


cliente-servidor para el control vía web de la iluminación de una casa habitación a través
de una aplicación para dispositivos móviles con sistema operativo Android y el
empleo de una tarjeta de desarrollo Raspberry Pi. Los algoritmos diseñados permiten la
comunicación entre el usuario remoto y la Raspberry Pi, la cual interactúa con una tarjeta
de potencia para el control de las luminarias.

1.2 Problema

En base al análisis descrito en el antecedente a continuación se identificara el problema del


objeto de estudio de manera clara y precisa.

1.2.1 Situación Problemática

 La necesidad de supervisar cada área de trabajo de la granja provoca una gran


inversión de tiempo.

 En la granja, se realizan una diversidad de tareas en distintos horarios esto provoca


incumplimiento de horarios y mortalidad de los pollos.

 El servicio de empleados eventuales en la granja de pollos provoca una deficiente


atención de los pollos.

4
 La falta de estrategias de parte de los empleados provoca perjuicios al Municipio.

 Los cambios climatológicos que se presenta no permiten que los pollos crezcan
saludablemente provocando la mortalidad.

1.2.2 Formulación del Problema

¿Cómo se podría utilizar tecnologías modernas de información para apoyar en el monitoreo


de las condiciones climáticas y vigilancia interna en la granja de pollos del Gobierno
Autónomo Municipal de Coripata?

1.3 Objetivos

1.3.1 Objetivo General

Desarrollar un sistema web basado en la tecnología Raspberry PI para el monitoreo de las


condiciones climáticas y vigilancia interna de granja de pollos del Gobierno Autónomo
Municipal de Coripata.

1.3.2 Objetivos Específicos

1. Desarrollar el sistema web para la automatización del monitoreo de las condiciones


climáticas y la vigilancia de la granja de pollos.

2. Implementar mecanismos necesarios para establecer conexión entre la Raspberry PI


y el sistema web para el control, monitoreo y vigilancia de la granja de pollos.

3. Desarrollar circuitos eléctricos para la automatización de luces, ventiladores,


detección de movimiento externa, iluminación externa, calibración de intensidad de
iluminación, temperatura, humedad y cámara con la Raspberry PI. de la granja de
pollos.

4. Diseñar el reporte de pruebas del control, monitoreo y vigilancia de la granja de


pollos.

5
1.4 Alcances y Límites

1.4.1 Alcances

A continuación se mostrara los alcances del proyecto.

 El presente proyecto realizara la automatización de las condiciones climáticas y


vigilancia interna de la granja de pollos.

 Automatizar las luces, ventiladoras, detección de movimiento externo, iluminación


externa y calibrar la temperatura de la granja de pollos.

 Automatizar la granja de pollos mediante el sistema conexión de la Raspberry Pi y


sistema web.

1.4.2 Limites

El sistema no tomara decisiones de control, las decisiones serán automatizadas por el


usuario encargado de la granja.

1.4.3 Justificación

El desarrollo del presente proyecto reducirá el tiempo de control de cada área de trabajo,
utilizando la funcionalidad de monitoreo de granja de pollos en el encendido de luces,
ventiladoras, detección de movimiento externa e interna, iluminación externa también
interna y por ultimo calibrara la temperatura de la granja de pollos.

1.5 Análisis de Factibilidad

Se describirán tres aspectos importantes sobre este aspecto a continuación:

1.5.1 Factibilidad Técnica

Para que el proyecto sea técnicamente factible, es necesario que el Gobierno Autónomo
Municipal de Coripata adquiera tanto Hardware y Software de acuerdo al siguiente detalle.

6
Las herramientas que se utilizaran para el desarrollo del sistema web son:

 Lenguaje de programación PHP.

 Lenguaje de programación Python.

 Gestor de base de datos MySQL.

 Sistema Operativo Raspbian.

 Lenguaje de marcas de hipertexto HTML.

 Las herramientas hardware que se utilizara para el desarrollo son:

 Raspberry Pi

 Cargador universal

 Monitor

 Teclado

 Mouse

 Micro SD

1.5.2 Factibilidad Económica

Es factible económicamente ya que las herramientas para el desarrollo web como el


desarrollo en la Raspberry Pi son gratuitas.

Se realizara inversiones en este caso en la parte de hardware y no así en la parte de software


ya que el sistema Raspberry Pi, micro SD y el cargador universal Bs. 841. En cuanto al
mouse, teclado y monitor ya no será necesario comprarlo ya que se cuenta con este equipo
en el Municipio.

Con todo lo mencionado ya se puede poner en marcha el proyecto con la innovación


planteada.

El financiamiento lo realizará el municipio.

7
1.5.3 Factibilidad Operacional

El proyecto se desarrollara con el nivel más alto en el aspecto operacional, ya que se


disminuirá las diferentes actividades que se realiza en la granja con la automatización de
cada parámetro y área mencionada.

8
CAPÍTULO 2
MARCO TEÓRICO

En este acápite, se presenta los conceptos teóricos que fundamentan el proyecto así como
los conceptos principales del mismo.

2.1 Modelado de Negocio

El modelo de negocio es la actividad de representar el estado actual y el estado futuro de


los procesos de una empresa para su comparación, de tal manera que permitan el análisis y
la planificación para el mejoramiento y de esta manera llegar a la situación deseada.

El modelo de negocio es una representación abstracta de una organización así como de


todos los acuerdos básicos interrelacionados diseñados y desarrollados por una
organización en la actualidad y en el futuro, así también como todos los productos básicos
y los servicios que ofrece la organización, o va a ofrecer, sobre la base de estos acuerdos
que se necesitan para alcanzar sus metas y objetivos estratégicos [1].

“Un modelo de negocio es una arquitectura de productos, servicios y flujos de información


incluyendo una descripción de varios actores del negocio y sus roles, una descripción de los
beneficios potenciales de diferentes actores del negocio y la descripción de fuentes de
ingreso” [2].

2.1.1 Herramienta Para Realizar el Modelado de Negocio

2.1.1.1 Diagrama de Flujo

Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través
de sistemas de tratamiento de información. Los diagramas de flujo describen qué
operaciones y en qué secuencia se requieren para solucionar un problema dado.

Un diagrama de flujo u organigrama es una representación diagramática que ilustra la


secuencia de las operaciones que se realizarán para conseguir la solución de un problema.
Los diagramas de flujo se dibujan generalmente antes de comenzar a programar y facilitan
la comunicación entre el programador y el resto de las personas. Estos diagramas de flujo
desempeñan un papel vital en la programación de un problema y facilitan la comprensión

9
de problemas complicados y sobre todo muy largos. Una vez que se dibuja el diagrama de
flujo, llega a ser fácil escribir el programa en cualquier lenguaje de programación se ve a
menudo cómo los diagramas de flujo que proporcionan ventaja al momento de explicar el
programa a otros. Por lo tanto, está correcto decir que un diagrama de flujo es una
necesidad para mejorar la documentación de un programa complejo. [37]

Cuadro 2.1
Figura Para la Construcción de Diagrama de Flujo

Objeto Descripción Figura

Es algo que sucede dentro de un


Evento proceso de negocio. Estos eventos
afectan al flujo del proceso y tiene
generalmente una causa o un impacto.

Es un término genérico para un trabajo


Actividad ejecutado. Una actividad puede ser un
proceso secundario o una tarea.

Se identifican con un elemento en


forma de diamante que representa
Decisión decisiones, bifurcaciones de las
fusiones o uniones dentro del
diagrama.

Identifica el inicio y el fin de un


Terminal procedimiento, según la palabra que se
utilice dentro del ovalo.

10
Documento generado o requerido por
el procedimiento.
Cuando existen copias, se pueden
Documento representar y enumerar asignado al
original, indistintamente, la letra “o” o
el número “1”.

Conecta una página con otra de una


página diferente.
Conector de pagina Opcionalmente se pude colocar el
número de la página a la que se
conecta.

Se usan para mostrar el orden de los


Conector eventos que se realizan dentro del
proceso del negocio.

Representa la conexión con otro


Interconexión procedimiento.

Fuente. [Elaboración propia]

2.2 Ingeniería de Software

El software es parte esencial en casi todos los aspectos de la vida y, como consecuencia, el
número de personas que tienen interés en las características y funciones que brinda una
aplicación específica ha crecido en forma notable. Por ejemplo cuando ha de construirse
una aplicación nueva o sistema incrustado, deben escucharse muchas opiniones y en
ocasiones parece que cada una de ellas tiene una idea un poco distinta de cuáles
características y funciones debiera tener el dicho software de lo cual se concluye que debe

11
hacerse un esfuerzo concertado para entender el problema antes de desarrollar una
aplicación de software.

Los requerimientos de la tecnología de la información que demandan los individuos,


negocios y gobiernos se hacen más complejos con cada año que pasa. En la actualidad,
grandes equipos de personas crean programas que antes eran elaborados por un solo
individuo. El software sofisticado, que alguna vez se implementó en un ambiente de
cómputo predecible y auto contenido, hoy en día se halla incrustado en el interior de todo,
desde la electrónica de consumo hasta dispositivos médicos o sistemas de armamento. La
complejidad de estos nuevos sistemas y productos basados en la computadora demanda
atención cuidadosa a las interacciones de todos los elementos del sistema. Por lo que se
concluye que el diseño se ha vuelto una actividad crucial.

Los individuos, negocios y gobiernos dependen cada vez más del software para tomar
decisiones estratégicas y tácticas, así como para sus operaciones y control cotidianos. Si el
software falla, las personas y empresas grandes pueden experimentar desde un
inconveniente menor hasta fallas catastróficas, de donde se dice que el software debe tener
alta calidad.

A medida que aumenta el valor percibido de una aplicación específica se incrementa la


probabilidad de que su base de usuarios y longevidad también crezcan. Conforme se
extienda su base de usuarios y el tiempo de uso, las demandas para adaptarla y mejorarla
también crecerán de lo que se deduce que el software debe tener facilidad para recibir
mantenimiento. [38]. Es decir ingeniería del software es el estudio de los principios y
metodologías para desarrollo y mantenimiento de sistemas de software. [3]

2.2.1 Metodología de Desarrollo de Software

La metodología es un conjunto de procedimientos, técnicas, herramientas y un soporte


documental que ayuda a los desarrolladores a realizar un nuevo software. Puede seguir uno
o varios modelos de ciclo de vida, es decir qué es lo que hay que obtener a lo largo del
desarrollo del proyecto pero no cómo hacerlo.

Un producto de software es de calidad si cumple rigurosamente con todos y cada uno de


sus requisitos. Es decir, calidad = requisitos satisfechos.

12
Gracias a esto se puede medir la calidad de un producto basados en los requisitos iniciales.
También aporta una forma de estimar y controlar costes. Así se puede saber cuánto de
tiempo se requiere para realizarlo y si es o no rentable para así llevarlo a cabo antes de
realizar la inversión completa de tiempo, dinero y esfuerzo. También evita pérdida de
tiempo y recursos que se pueden evitar utilizando una metodología adecuada.

2.2.1.1 Modelo Incremental

El enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en
el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los
requisitos hasta adquirir experiencia con el sistema. Surge porque en los primeros
desarrollos se podía esperar largo tiempo hasta que el software estuviese listo. Las reglas
del negocio de hoy no lo permiten.

Bajo este modelo se entrega software “por partes funcionales más pequeñas”, pero
reutilizables, llamadas incrementos. En general cada incremento se construye sobre aquel
que ya fue entregado.

El modelo incremental consiste en un desarrollo inicial de la arquitectura completa del


sistema, seguido de sucesivos incrementos funcionales. Cada incremento tiene su propio
ciclo de vida. Una vez entregado un incremento, no se realizan cambios sobre el mismo,
sino únicamente corrección de errores. Dado que la arquitectura completa se desarrolla en
la etapa inicial, es necesario conocer los requerimientos completos al comienzo del
desarrollo.
En una visión genérica, el proceso se divide en 4 partes: Análisis, Diseño, Código y Prueba.
[4].

13
Figura 2.1
Modelo de Ciclo de Vida Incremental

Fuente: [4]

Características:
- Aplica el enfoque lineal secuencial escalonadamente.
- Cada incremento agrega funcionalidad adicional o mejorada sobre el sistema.
- La propuesta del modelo es diseñar sistemas que puedan entregarse por piezas.
- En lugar de entrega del sistema en una sola entrega, el desarrollo y la entrega están
fracturados bajo incrementos, con cada incremento que entrega parte dela
funcionalidad requerida.
- Los requerimientos del usuario se priorizan y los requerimientos de prioridad más
altos son incluidos en los incrementos tempranos.
- El desarrollo incremental es el proceso de construcción siempre incrementando sub
conjuntos de requerimientos del sistema.
- El modelo incremental presupone que el conjunto completo de requerimientos es
conocido al comenzar.
- Se evitan proyectos largos y se entrega “Algo de valor” a los usuarios con cierta
frecuencia.

14
2.2.1.2 Modelo en Espiral

Este es un modelo de proceso de software evolutivo, el cual enlaza la naturaleza iterativa de


la construcción de prototipos, pero conservado aquellas propiedades del modelo en cascada.

El modelo en espiral fue desarrollado por Boehm, quien lo describe de esta manera: El
modelo de desarrollo en espiral es un generador de modelo de proceso guiado por el riesgo
que se emplea para conducir sistemas intensivos de ingeniería de software concurrente y a
la vez con muchos usuarios.[5]

Se caracteriza principalmente por:

 Un enfoque cíclico para el crecimiento incremental del grado de definición e


implementación de un sistema, mientras que disminuye su grado de riesgo.
 Un conjunto de puntos de fijación para asegurar el compromiso del usuario con
soluciones de sistema que sean factibles y mutuamente satisfactorias.

Figura 2.2
Funcionamiento del Modelo Espiral

Fuente [Boehm, 1976]

15
En cada vuelta se toma en cuenta:
 Los Objetivos: Que necesidad debe envolver el programa.
 Alternativas: Los varios métodos de alcanzar los objetivos de manera exitosa, a
través de diferentes puntos como son:

Características:
- Experiencia del personal, exigencias a efectuar.
- Formas de gestión del programa.
- Riesgo tomado con cada alternativa.
 Desarrollar y Verificar: Programar y probar el programa.
 Se planificaran los siguientes pasos y se volverá a empezar la espiral. La espiral
tiene una forma de caracola y se dice que mantiene dos dimensiones la radial y la
angular.

2.2.1.3 Proceso Unificado (UP)

El Proceso Unificado de Desarrollo de Software o simplemente Proceso Unificado es un


marco de desarrollo de software que se caracteriza por estar dirigido por casos de uso,
centrado en la arquitectura, enfocado en el riesgo, y por ser iterativo e incremental. [6]

El Proceso Unificado no es simplemente un proceso, sino un marco de trabajo extensible


que puede ser adaptado a organizaciones o proyectos específicos.

Se usa para describir el proceso genérico que incluye aquellos elementos que son comunes
a la mayoría de los refinamientos existentes. Es una metodología orientada a conducir el
proceso de desarrollo de software en sus aspectos técnicos; los flujos y productos de trabajo
de UP no incluyen la administración del proyecto.

16
Figura 2.3
Fases del Proceso Unificado

Fuente [6]

UP divide el trabajo de desarrollo de software en cuatro fases: [7]


 Fase de Inicio en UP. Es la etapa donde se define la factibilidad del proyecto a
realizar, se representa el modelo de negocio, visión y metas del proyecto, se
identifican actores, conceptos de dominio y deseos de usuario. Adicionalmente se
complementa con la definición de la arquitectura preliminar, y estimaciones
(imprecisas, preliminares) de plazos y costos. También se define la viabilidad del
proyecto.
 Fase de Elaboración en UP. En la fase de elaboración se obtiene la visión refinada
del proyecto a realizar, la implementación iterativa del núcleo central de la
aplicación, la resolución de los riesgos más altos, la identificación de nuevos
requisitos y nuevos alcances, y estimaciones más ajustadas. A esta altura existe la
posibilidad de detener el proyecto por complejidad técnica.
 Fase de Construcción en UP. La fase de construcción es la implementación
iterativa del resto de los requisitos de menor riesgo y elementos más sencillos. Es la
evolución hasta convertirse en un producto listo, incluyendo todos los requisitos,
para entregarse al Cliente. Al final de esta fase el sistema contiene todos los casos
de uso que el cliente y la dirección del proyecto han acordado. La mayoría de los

17
casos de uso que no se desarrollaron en la fase anterior se desarrollan en iteraciones,
en grupos de requisitos o casos de uso durante esta fase.
 Fase de Transición en UP. Es el periodo donde el producto es completamente
entregado al cliente para ser testeado y desplegado instalado [7].

2.2.1.4 Selección del Modelo de Desarrollo

Se seleccionó la metodología de proceso incremental, ya que su objetivo es exigir la


entrega de un producto en cada incremento.
Por lo tanto se tomó la decisión de aplicar el modelo incremental en este proyecto.

2.3 Tecnologías de Desarrollo de Sistema Web

En esta sección se describirán los lenguajes de programación para el desarrollo del sistema
web y oros aspectos relativos a las tecnologías de desarrollo de sistemas, en el presente se
analizara las ventajas y desventajas de los lenguajes más conocidos.

2.3.1 Lenguaje de Programación

Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y significado de sus elementos y expresiones. Al proceso por el cual se escribe,
se prueba, se depura, se compila, (de ser necesario) y se mantiene el código fuente de un
programa informático se le llama programación.

2.3.1.1 PHP

Es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo


web y que puede ser incrustado en HTML.

Características del PHP: [8]

 Velocidad. PHP se integra muy bien junto a otro software, especialmente bajo
ambientes Unix, cuando se configura como módulo de apache, está listo para ser
utilizado.

18
 Estabilidad. PHP utiliza su propio sistema de administración de recursos y dispone
de un sofisticado método de manejo de variables, conformando un sistema robusto y
estable.
 Seguridad. PHP provee diferentes niveles de seguridad, estos pueden ser
configurados desde el archivo.
 Simplicidad. Se les debe permitir a los programadores generar código
productivamente en el menor tiempo posible. Usuarios con experiencia en c y c++
podrán utilizar PHP rápidamente.
 PHP dispone de una amplia gama de librerías. [8]

2.3.1.2 ASP.NET

Es un framework para aplicaciones Web desarrollado y comercializado por Microsoft. Es


usado por programadores para construir sitios web dinámicos, aplicaciones web y servicios
web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la
topología sucesora de Active Server Pages (ASP). ASP.NET está construido sobre el
Common Languaje Runtime (CLR), permitiendo a los programadores escribir código
ASP.NET usando cualquier lenguaje admitido por el .NET Framework. [9]

2.3.1.3 Selección del Lenguaje de Programación

Hay una variedad de lenguajes de programación, donde se debe verificar si cumple con los
requisitos para alcanzar los requerimientos del proyecto.

2.3.1.4 Justificación del Lenguaje de Programación

El lenguaje de programación PHP Hypertext Pre-processor, fue desarrollado puntualmente


para diseñar páginas web dinámicas programando scripts del lado del servidor. El lenguaje
PHP siempre va incrustado dentro del HTML y generalmente se le relaciona con el uso de
servidores linux. PHP, es un lenguaje de código abierto muy popular. PHP tal y como se
conoce hoy en día es en realidad el sucesor de un producto llamado PHP/FI. Creado en
1994 por Rasmus Lerdorf, la primera encarnación de PHP era un conjunto simple de
ficheros binarios Common Gateway Interface (CGI) escritos en el lenguaje de
programación C. Actualmente es uno de los lenguajes más utilizados, trabaja con

19
programación orientada a objetos. Características como herencia, métodos y atributos
públicos o privados, clases y métodos abstractos, constructores, interfaces y destructores.

2.3.2 Herramienta de Desarrollo

Una herramienta de desarrollo de software es un programa informático que usa


un programador para crear, depurar, gestionar o mantener un programa. Es decir es un kit
de desarrollo de software es generalmente un conjunto de herramientas de
desarrollo de software que le permite al programador o desarrollador de software crear una
aplicación informática para un sistema concreto, por ejemplo ciertos paquetes de software,
frameworks, plataformas de hardware. [9]

2.3.2.1 Net Beans

La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un


conjunto de componentes de software llamados módulos. Un módulo es un archivo Java
que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo
especial (manifest file) que lo identifica como módulo. Las aplicaciones construidas a partir
de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos
pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma
NetBeans pueden ser extendidas fácilmente por otros desarrolladores de software. [9]

Características de Net Beans:


 Mejoras en el editor de código.
 Soporte para Ruby, JRuby, y Ruby on Rails.

 Instalación y actualización más simple.


 Enlazar datos con el Swing GUI
 Profiling integrado, profiling “points”
 Características visuales para el desarrollo web.

 Creador gráfico de juegos para celulares.


 Mejoras para SOA y UML.

 Soporte para PHP.

20
2.3.2.2 Visual Studio

Microsoft Visual Studio es un entorno de desarrollo integrado para sistemas operativos


Windows. Soporta múltiples lenguajes de programación tales como C++, C#, Visual Basic
.NET, F#, Java, Python, Ruby, PHP; al igual que entornos de desarrollo web
como ASP.NET MVC, Django, etc.

Visual Studio [10] permite a los desarrolladores crear sitios y aplicaciones web, así como
servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la versión
.NET 2002).

Visual Studio incluye un editor de código de soporte IntelliSense, la finalización de


código de componentes, así como la refactorización de código .

El integrador depurador funciona tanto como un depurador a nivel de fuente y un depurador


a nivel de máquina. Otras herramientas integradas incluyen un diseñador de formularios
para la construcción de GUI aplicaciones, diseñador, la clase de diseño y esquema de
base de diseño. Se acepta plug-ins que mejoran la funcionalidad en casi todos los niveles,
incluyendo la adición de soporte para el control de código sistemas como subversión y la
adición de nuevos conjuntos de herramientas como editores y diseñadores visuales
para lenguajes específicos de dominio o conjuntos de herramientas para otros aspectos
del ciclo de vida de desarrollo de software como el Team Foundation Server cliente: Team
Explorer. [10]

2.3.2.3 Selección de la Herramienta de Desarrollo

Hay una variedad de herramienta de desarrollo, donde se debe verificar si cumple con los
requisitos para alcanzar los requerimientos del proyecto. [33]

2.3.2.4 Justificación de la Herramienta de Desarrollo

Se eligió NetBeans porque es un IDE para desarrollo web y por la licencia gratuita. Ya que
se optó trabajar el proyecto bajo licencia gratuita. Puesto que otros IDEs como Visual
Studio no son de licencia gratuita.

21
2.3.3 Marco de Trabajo (Framework)

2.3.3.1 CodeIgniter

CodeIgniter es un framework para desarrollo de aplicaciones, un conjunto de herramientas


para gente que construye sitios web usando PHP. Su objetivo es permitirle desarrollar
proyectos mucho más rápido que lo que podría hacer si escribiera el código desde cero,
proveyéndole un rico conjunto de bibliotecas para tareas comunes, así como y una interfaz
sencilla y una estructura lógica para acceder a esas bibliotecas. CodeIgniter le permite
enfocarse creativamente en su proyecto al minimizar la cantidad de código necesaria para
una tarea dada. [39]

CodeIgniter está basado en el patrón de desarrollo Modelo-Vista-Controlador. MVC es un


enfoque de software que separa la lógica de la aplicación de la presentación. En la práctica,
le permite a sus páginas web contener mínimo código ya que la presentación está separada
del código PHP. [39]

 El Modelo representa sus estructuras de datos. Típicamente sus clases del modelo
contendrán funciones que los ayudarán a devolver, insertar y actualizar información
de su base de datos.
 La Vista es la información que se presenta al usuario. Una vista será normalmente
una página web, pero en CodeIgniter, una vista también puede ser un fragmento de
página como el encabezado o pie de página. También puede ser una página RSS, o
cualquier otro tipo de "página".
 El Controlador sirve como un intermediario entre el Modelo, la Vista y cualquier
otro recurso necesario para procesar la solicitud HTTP y generar una página web.

CodeIgniter tiene un enfoque poco estricto de MVC, ya que los Modelos no son
obligatorios. Necesita la separación añadida y construye su aplicación usando
Controladores y Vistas. CodeIgniter también le permite incorporar sus propios scripts, e
inclusive desarrollar bibliotecas del núcleo para el sistema, permitiendo trabajar de forma
mucho más eficaz.

22
2.3.3.3 Justificación del Framework

CodeIgniter es recomendado por el creador de PHP, José Manuel Lucas. La flexibilidad,


disponibilidad de todas las librerías a utilizarse y el fácil uso de este framework son los
principales motivos para utilizarlo.

Cabe resaltar que es fácil de instalar solo se descarga y ponerlo en funcionamiento. Sin
embargo Larabel es mediante consola, lo cual dificulta a la hora de instalar y realizar las
configuraciones correspondientes.

2.3.4 Sistemas de Gestión de Base de Datos

Es el software que permite la utilización y la actualización de los datos almacenados en una


o varias bases de datos por uno o varios usuarios desde diferentes puntos de vista y a la vez,
se denomina sistema de gestión de bases de datos (SGBD).

El objetivo fundamental de un SGBD consiste en suministrar al usuario las herramientas


que le permitan manipular, en términos abstractos, los datos, o sea, de forma que no le sea
necesario conocer el modo de almacenamiento de los datos en la computadora, ni el método
de acceso empleado. [11]

Características de los SGBD:


 Permite crear y gestionar base de datos de forma fácil, cómoda y rápida.
 Ofrece una gran flexibilidad para el trabajo con base de datos relacionales.
 Ofrece un ambiente agradable dado por su interfaz gráfica.

23
Figura 2.4
Sistema de Gestión de Base de Datos Sistema Cliente-Servidor

Fuente: [11]

2.3.4.1 MySQL

MySQL es un sistema gestor de bases de datos. Pero la virtud fundamental y la clave de su


éxito es que se trata de un sistema de libre distribución y de código abierto. Significa que
cualquier programador puede remodelar el código de la aplicación para mejorarlo.

Esa es también la base del funcionamiento del sistema Linux, por eso MySQL se distribuye
fundamentalmente para Linux, aunque también hay versiones para Windows.

Existen cuatro versiones de MySQL:


 Estándar. Incluye el motor estándar y la posibilidad de usar bases de datos InnoDB.
Todo el potencial de MySQL, pero sin soporte completo para utilizar transacciones.
 Max. Para usuarios que quieran MySQL con herramientas de prueba para realizar
opciones avanzadas de base de datos.
 Pro. Versión comercial del MySQL estándar.
 Classic. Igual que la estándar pero no dispone de soporte para InnoDB.

24
El uso de MySQL está sujeto a licencia GNU licencia pública. Está licencia admite el uso
de MySQL para crear cualquier tipo de aplicación. Se pueden distribuir copias de los
archivos de MySQL, salvo esas copias se cobren a un tercer usuario. Se prohíbe cobrar por
incluir MySQL. Se puede modificar el código fuente de MySQL, pero si se distribuye la
aplicación con el código modificado, habrá que obtener una copia comercial y consultar
sobre el cobro de la licencia.

Las ventajas son: [23]


 MySQL software es Open Source22
 Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor
rendimiento.
 Bajo costo en requerimientos para la elaboración de bases de datos, ya
que debido a su bajo consumo puede ser ejecutado en una máquina con escasos
recursos sin ningún problema.
 Facilidad de configuración e instalación. Soporta gran variedad de Sistemas
Operativos.
 Baja probabilidad de corromper datos, incluso si los errores no se producen en el
propio gestor, sino en el sistema en el que está.
 Su conectividad, velocidad, y seguridad hacen de MySQL Server
altamente apropiado para acceder bases de datos en Internet.
 El software MySQL usa la licencia GPL

2.3.4.2 Postgre SQL

Es un avanzado sistema de bases de datos relacionales basado en Open Source. Esto quiere
decir que el código fuente del programa está disponible a cualquier persona libre de cargos
directos, permitiendo a cualquiera colaborar con el desarrollo del proyecto o modificar el
sistema para ajustarlo a sus necesidades. PostgreSQL está bajo licencia BSD. Un sistema de
base de datos relacionales es un sistema que permite la manipulación de acuerdo con las
reglas del algebra relacional. Los datos se almacenan en tablas de columnas y renglones.
Con el uso de llaves, esas tablas se pueden relacionar unas con otras.

25
Ideas básicas acerca del funcionamiento según [12]: En la jerga de bases de datos,
PosgreSQL usa el modelo cliente/servidor. Una sesión en PostgreSQL consiste en
ejecución de los siguientes procesos:

 El servidor, que maneja archivos de bases de datos, acepta conexiones a las


aplicaciones cliente, y realiza acciones en la base de datos. El programa servidor de
bases de datos se conoce como postmaster.
 La aplicación cliente, que necesita realizar operaciones en la base de datos. Las
aplicaciones cliente pueden ser de la más diversa naturaleza: pueden ser
aplicaciones de texto en una consola, aplicaciones gráficas, un servidor web que
accede a la base de datos para mostrar una página, o herramientas especializadas de
mantenimiento de bases de datos.

2.3.4.3 Oracle

Oracle es básicamente una herramienta cliente/servidor para la gestión de Bases de Datos.


Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado
precio hacen que sólo se vea en empresas muy grandes y multinacionales, por norma
general. En el desarrollo de páginas web pasa lo mismo: como es un sistema muy caro no
está tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL Server,
etc.

Características de Oracle:

Desarrollado sobre Oracle Database, Oracle Content Database ha sido diseñada para que las
organizaciones puedan controlar y gestionar grandes volúmenes de contenidos no
estructurados en un único repositorio con el objetivo de reducir los costes y los riesgos
asociados a la pérdida de información.

La base de datos Oracle 10g Standard Edición es compatible con medianas industrias. Esta
incluye Real Aplicación Clúster para proporcionar protección en contra de fallos de
hardware. Es fácil de instalar y configurar, viene con su propio software de clustering,
administración de almacenamiento y otras capacidades de auto administración. La base de
datos Oracle 10g Standard Edición administra todos sus datos y permite que todas sus
aplicaciones de negocio tomen ventaja del rendimiento, seguridad y confiabilidad que

26
proporciona la base de datos Oracle. También brinda la flexibilidad de poder migrar a
Oracle 10g Enterprise Edición, protegiendo su inversión a medida que los requerimientos
de su negocio crecen.

La Base de datos Oracle 10g Reléase 2 Standard Edición está optimizada para su
despliegue en medianas industrias. Está soportada en un único servidor soportando hasta un
máximo de 4 CPUs, o en un ambiente de servidores en clúster, con un máximo de 4 CPUs
en el clúster. La base de datos Oracle 10g Reléase 2 Standard Edición está disponible en
todos los sistemas operativos soportados por Oracle entre los cuales se incluye Windows,
Linux y Unix.

La base de datos Oracle 10g Standard Edición proporciona una rápida instalación tanto en
un único servidor como en un ambiente de clúster. La base de datos va a estar
preconfigurada lista para ser usada en producción, completa con espacio automatizado,
administración de almacenamiento y de memoria, back up y recuperación automatizada y
administrador de estadísticas automatizado. La consola de Enterprise Manager 10g Data
base control proporciona una interface web que muestra el estado actual de la base de datos
y del ambiente de clúster y permite la administración de la base de datos desde cualquier
browser conectado a su sistema. La base de datos Oracle Standard Edición también toma
ventaja de la solución de clusterware, eliminando la complejidad de tener que instalar y
configurar clusterware de terceros. El Automatic Storage Management tiene la capacidad
de eficientemente distribuir los datos almacenados a través de los discos disponibles,
asegurando óptimo desempeño y eliminando la necesidad de gestores de volúmenes de
terceros. [25]

2.3.4.4 Justificación del Gestor de Base de Datos

Se trabajara con MySQL, por lo que es considerado por muchos el mejor motor de base de
datos para proyectos web y su licencia es gratuita. Por otra parte estas son las razones por la
que usar este gestor.

1. Es Multiplataforma: Para S.O. como Windows, Linux y Mac disponemos de nuestro


servidor para instalarlo.

27
2. Es fácil encontrar ayuda: Al ser una base de datos que se utiliza en multitud de
aplicaciones web existen multitud de tutoriales, foros, en la red en los que podemos
encontrar la información que necesitamos

3. Es fácil de aprender: Simplemente con conocer el estándar de SQL podemos


manejar la base de datos MySQL si ningún problema.

4. MySQL es una base de datos ampliamente probada por distintos usuarios y


empresas con alto éxito.

5. Menos características. Menos mantenimientos: Realmente esto nos da la ventaja


para que un programador cualquiera pueda aprender rápidamente como debe
mantener la base de datos para sus aplicaciones. Sin necesidad de ser un experto
Administrador en Base de Datos (DBA). Bases de datos como Oracle requieren de
DBA para la gestión de su información debido a todas las características que tienes
para su administración. En cambio MySQL para el funcionamiento habitual de una
aplicación incluye unas características mínimas que nos sirven ampliamente para
nuestras aplicaciones sin tener que recurrir a un DBA para que administre la base
datos.

6. El coste total de inicio es ampliamente inferior al de Oracle o Microsoft SQL Sever.


Nosotros vamos a poder crear tantos servidores MySQL como necesitemos sin
incurrir en ningún coste alto.

7. MySQL es escalable:

8. Soporte para las transacciones. Una de las grandes ventajas de utilizar MySQL es la
gestión de las transacciones. Las transacciones en MySQL son Atómicas,
consistentes, aisladas (isolated) y durable; ACID.

2.4 Arquitectura de Software

La arquitectura de software de un sistema de programa o computación es la estructura de


las estructuras del sistema, la cual comprende los componentes del software, las
propiedades de esos componentes visibles externamente, y las relaciones entre ellos.
Actualmente los productos de software han marcado una gran diferencia ya que existen

28
muchos productos que son similares sin embargo la calidad no es tan efectiva. En el
presente trabajo se desarrollara lo que es el diseño y arquitectura de productos de software.

2.4.1 Arquitectura Cliente/Servidor

Es un sistema distribuido entre múltiples procesadores donde hay clientes que solicitan
servicios y servidores que los proporcionan. La Tecnología Cliente/Servidor, es un modelo
que implica productos y servicios enmarcados en el uso de la Tecnología de punta, y que
permite la distribución de la información en forma ágil y eficaz a las diversas áreas de una
organización, empresa o institución pública o privada, así como también fuera de ella.

Se puede mencionar que la arquitectura, es un modelo para el desarrollo de sistemas de


información en el que las transacciones se dividen en procesos independientes que
cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente
al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que responde a
las solicitudes. En este modelo las aplicaciones se dividen de forma que el servidor
contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece
sólo lo particular de cada usuario. [13]

2.4.1.1 Características de la Arquitectura Cliente Servidor

 Combinación de un cliente que interactúa con el usuario, y un servidor que


interactúa con los recursos compartidos. El proceso del cliente proporciona la
interfaz entre el usuario y el resto del sistema. El proceso del servidor actúa como
un motor de software que maneja recursos compartidos tales como bases de datos,
impresoras, módems, etc.
 Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a
recursos de cómputo como velocidad del procesador, memoria, velocidad y
capacidades del disco e input-output.
 Se establece una relación entre procesos distintos, los cuales pueden ser ejecutados
en la misma máquina o en máquinas diferentes distribuidas a lo largo de la red.
 Existe una clara distinción de funciones basada en el concepto de "servicio", que se
establece entre clientes y servidores.

29
 La relación establecida puede ser de muchos a uno, en la que un servidor puede dar
servicio a muchos clientes, regulando su acceso a recursos compartidos.
 Los clientes corresponden a procesos activos en cuanto a que son éstos los que
hacen peticiones de servicios a los servidores. Estos últimos tienen un carácter
pasivo ya que esperan las peticiones de los clientes.
 No existe otra relación entre clientes y servidores que no sea la que se establece a
través del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la
petición y entrega de solicitudes de servicio.
 El ambiente es heterogéneo. La plataforma de hardware y el sistema operativo del
cliente y del servidor no son siempre la misma. Precisamente una de las principales
ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores
independientemente de sus plataformas.

Figura 2.5
Arquitectura Cliente-Servidor

Fuente: [14]

La arquitectura Cliente/Servidor nos permite la separación de funciones en tres niveles:


 Lógica de presentación: la presentación de los datos en una función independiente
del resto.

30
 Lógica de negocio: los flujos de trabajo pueden cambiarse según las necesidades
existentes de un procesador a otro.
 Lógica de datos. La gestión de los datos debe ser independiente para poder ser
distribuida según las necesidades de la empresa en cada momento que se utilizaran
para poner en marcha el funcionamiento de la Raspberry Pi.

2.6.1.1 Raspberry Pi

La Raspberry Pi es un ordenador de tamaño de una tarjeta de crédito que se conecta a un


televisor. Es un pequeño ordenador que puede ser utilizado en proyectos de electrónica, y
para muchos de las cosas que hace el PC de escritorio, como hojas de cálculo,
procesamiento de textos, navegación por internet, y jugar juegos. También reproduce vídeo
de alta definición y está siendo utilizado por los niños, adolescentes y personas mayores de
todo el mundo para aprender a programar.

Es un ordenador corriendo un sistema operativo que puede ejecutar programas escritos en


cualquier lenguaje, para el que existan las herramientas necesarias para interpretarlo y
compilarlo. Aunque no se indica expresamente si es hardware libre o con derechos de
marca, en su web oficial explican que disponen de contratos de distribución y venta con dos
empresas, pero al mismo tiempo cualquiera puede convertirse en revendedor o
redistribuidor de las tarjetas Rasp Berry Pi, por lo que da a entender que es un producto con
propiedad registrada, manteniendo el control de la plataforma, pero permitiendo su uso
libre tanto a nivel educativo como particular.

En cambio el software sí es open source, siendo su sistema operativo oficial una versión
adaptada de Debian, denominada Raspbian, aunque permite usar otros sistemas operativos,
incluido una versión de Windows 10. En todas sus versiones incluye un procesador
Broadcom, una memoria RAM, una GPU, puertos USB, HDMI, Ethernet (El primer
modelo no lo tenía), 40 pines GPIO y un conector para cámara. Ninguna de sus ediciones
incluye memoria, siendo esta en su primera versión una tarjeta SD y en ediciones
posteriores una tarjeta MicroSD.

31
2.6.1.2 Especificaciones de Hardware

La Raspberry Pi 2 cuenta con 1GB de memoria RAM. Todo ello equivale en la práctica a
un ordenador con unas capacidades gráficas similares a la XBOX de Microsoft y con la
posibilidad de reproducir vídeo en 1080p.

En la placa se encontrara además con una salida de vídeo y audio a través de un conector
HDMI, con lo que se consigue conectar la tarjeta tanto a televisores como a monitores que
cuenten con dicho conector. En cuanto a vídeo cuenta con una salida compuesto y una
salida de audio a través de un minijack. Posee una conexión ethernet 10/100 y, si bien es
cierto que podría echarse en falta una conexión Wi-Fi, gracias a los dos puertos USB
incluidos se podrá suplir dicha carencia con un adaptador WIFI si se lo necesita. [15]

Los puertos tienen una limitación de corriente, por lo que si se requiere conectar discos
duros u otro dispositivo se tendrá que hacer a través de un Hub USB con alimentación. En
su parte inferior cuenta con un lector de tarjetas SD (micro SD para los modelos A+, B+ y
Pi 2), lo que abarata enormemente los costos y da la posibilidad de instalar un sistema
operativo en una tarjeta de memoria de 4 GB o más (clase 4 o clase 10). De esta forma se
tendrá también la posibilidad de minimizar el espacio que se requiere para así se tenga un
ordenador en volumen mínimo.

32
Figura 2.6
Especificaciones de Hardware Raspberry PI

Fuente: [15]

2.6.1.3 Especificaciones Técnicas

La Raspberry Pi Modelo B 2 es la segunda generación Frambuesa Pi. Se sustituye el


original Frambuesa Pi Modelo B +, En comparación con el Raspberry Pi 1 se tiene:

 Un 900MHz CPU de cuatro núcleos ARM Cortex-A7


 1 GB de RAM
Al igual que el (Pi 1) Modelo B +, también tiene:
 4 puertos USB
 40 pines GPIO
 puerto lleno de HDMI

33
 Puerto Ethernet
 conector de audio de 3,5 mm combinado y vídeo compuesto
 interfaz de la cámara (CSI)
 Interfaz de pantalla (DSI)
 ranura para tarjetas micro SD
 VideoCore IV 3D núcleo de gráficos

Debido a que tiene un procesador ARMv7, se puede ejecutar toda la gama de distribuciones
ARM GNU / Linux, incluyendo Snappy Ubuntu Core, así como Microsoft Windows 10.

La Raspberry Pi 2 tiene un factor de forma idéntica a la anterior (Pi 1) Modelo B + y tiene


una compatibilidad completa con Frambuesa Pi 1. [15]

2.6.1.4 Especificaciones Técnicas de los Modelos Raspberry PI

Podemos decir que los modelos A, A+, B y B+ tienen una potencia muy parecida a la que
nos podíamos encontrar en los equipos con Pentium III, así como un poder gráfico parecido
al que veíamos en la videoconsola Xbox original, aunque poco a poco ha mejorado hasta
reproducir cualquier fichero MKV 1080p sin ningún tipo de problema.

34
Figura 2.7
Especificaciones Técnicas de los Modelos Raspberry Pi

Fuente: [15]

2.6.1.5 GPIO (General Purpose Input/output)

Una característica de gran alcance del Raspberry Pi es la fila de GPIO entrada / salida de
propósito general, se encuentran al borde de la placa, junto a la salida de video de la Ranura
amarilla.

Uno de los atractivos que tiene la Raspberry Pi es el bus de expansión GPIO, 26 pines para
los modelos A y B y 40 pines para el resto de modelos.

El puerto GPIO permite a la Raspberry Pi comunicarse con el exterior tanto para activar
elementos como para leer el estado de los mismos. La tensión de trabajo del puerto es de
3,3v para un uno y 0v para un 0.

35
Hay que tener bastante cuidado al trabajar y manipular los pines GPIO. Los chips y
circuitos de nuestra Raspberry Pi funcionan con 3.3 voltios. Si conectamos un sensor que
envié señal a 5V a través de los GPIO es probable que después nuestra Raspberry Pi sólo
sirva como pisapapeles.

Todos los pines GPIO se pueden gestionar directamente a través de código, ya sea para
poner un valor o leer un valor de un elemento externo.

Además, se pueden configurar interfaces complejos de entrada/salida por lo que algunos


pines pasan a ser gestionados directamente por el chip del procesador:

Figura 2.8
Raspberry Pi 2 GPIO (General Purpose Input/output)

Fuente: [15]

2.6.1.6 Componentes Para Raspberry Pi

Cuando se adquiere una Raspberry Pi viene simplemente la placa, para ponerla en


funcionamiento se hace necesaria una serie de requisitos. También se requerirá instalar un
sistema operativo en tanto que los requisitos necesarios para seguir son:

36
Un Adaptador a micro USB: Un cargador de celular según las especificaciones entrada:
100-240V, 50-60Hz Salida: 5 V / 1500 mA Conector USB estándar. También se pude usar
un cable USB-micro USB conectado a una computadora.

Figura 2.9
Adaptador a Micro USB

Fuente: [15]

Una Tarjeta SD: Es necesario una tarjeta de 4GB mínimo, pero recomiendo que sea de
8GB y de preferencia debe ser de clase 10 por lo mínimo ya que se podría estar en
problemas de almacenamiento demasiado pronto.

Figura 2.10
Tarjeta SD

Fuente: [15]

Cable de Red: Es necesario si se quiere acceder a internet desde la Raspberry, o la


Raspberry remotamente.

37
Figura 2.11
Cable de Red

Fuente: [15]

Hay dos maneras de instalar Raspbian, una es usando directamente la imagen de Raspbian
y otra es usando NOOBS. Esta última opción es la más sencilla y nos permitirá instalar
también otras distribuciones Linux para Raspberry Pi, pero también ocupará un espacio
adicional en la tarjeta SD.

2.6.2.1 Raspbian

Raspbian viene pre-instalado con un amplia variedad de software para la educación, la


programación y el uso general. Tiene Python, Scratch, Sonic Pi, Java, Matemática y otros.
[15]

Figura 2.12
Raspbian

Fuente: [15]

38
2.6.2.2 Noobs Full y Noobs Lite

Es una buena opción para los que están empezando y quieren probar varios Sistemas
Operativos. Este instalador nos ofrece, en el primer arranque, un menú de instalación de
Raspbian, Píldora, varias opciones con XBMC, entre otros, para que, de esta forma,
tengamos muy fácil probar la distribución que mejor se ajuste a nuestras necesidades.

Figura 2.13
Noobs

Fuente: [15]

2.6.2.3 Selección de Modelo Software para la Raspberry PI

Se seleccionó Raspbian como software, ya que es eficiente para el desarrollo de la


programación. Raspbian es una distribución del sistema operativo GNU/Linux y por lo
tanto libre basado en Debian Jessie (Debian 8.0) para la placa computadora
(SBC) Raspberry Pi, orientado a la enseñanza de informática. El lanzamiento inicial fue
en junio de 2012.

Técnicamente el sistema operativo es un port no oficial de Debian armhf para el procesador


(CPU) de Raspberry Pi, con soporte optimizado para cálculos en coma flotante por
hardware, lo que permite dar más rendimiento en según qué casos. El port fue necesario al
no haber versión Debian armhf para la CPU ARMv6 que contiene el Raspberry PI.

La distribución usa LXDE como escritorio y Midori como navegador web. Además
contiene herramientas de desarrollo como IDLE para el lenguaje de programación
Python o Scratch, y diferentes ejemplos de juegos usando los módulos Pygame.

39
Destaca también el menú "raspi-config" que permite configurar el sistema operativo sin
tener que modificar archivos de configuración manualmente. Entre sus funciones, permite
expandir la partición root para que ocupe toda la tarjeta de memoria, configurar el teclado,
aplicar overclock, etc.

El 17 de diciembre de 2012, junto a la versión 2012-12-16-wheezy-raspbian de Raspbian,


se lanzó la tienda de aplicaciones "Pi Store", que en el momento de salida incluía desde
aplicaciones como LibreOffice o Asterisk a juegos como Freeciv o OpenTTD. En esta
plataforma se puede poner a disposición de todos los usuarios de Raspbian, mediante
moderación y posterior lanzamiento, contenidos gratuitos o de pago, como archivos
binarios, código python, imágenes, audio o vídeo. Además se quiere incluir documentación
acerca del Raspberry Pi como la revista MagPi y tutoriales de proyectos.

Al ser una distribución de GNU/Linux las posibilidades son infinitas. Todo software de
código abierto puede ser recompilado en la propia Raspberry Pi para arquitectura armhf que
pueda ser utilizado en el propio dispositivo en caso de que el desarrollador no proporcione
una versión ya compilada para esta arquitectura. Además esta distribución, como la
mayoría, contiene repositorios donde el usuario puede descargar multitud de programas
como si se tratase de una distribución de GNU/Linux para equipos de escritorio. Todo esto
hace de Raspberry Piun dispositivo que además de servir como placa con microcontrolador
clásica, tenga mucha de la funcionalidad de un ordenador personal. Lo que lo puede
convertir en una alternativa a los ordenadores personales, especialmente para personas con
pocos recursos, para la extensión de la informática en países subdesarrollados o
para aplicaciones que no soliciten muchos requerimientos.

2.6.2.4 Acceso Remoto a la Raspberry Pi Mediante Conexión SSH

El protocolo de SSH encripta todo lo que envía y recibe, se puede usar para asegurar
protocolos inseguros. El servidor SSH puede convertirse en un conducto para convertir en
seguros los protocolos inseguros mediante el uso de una técnica llamada reenvió por
puerto, incrementando la seguridad del sistema en general.

El protocolo SSH proporciona los siguientes tipos de protección:

40
 Después de la conexión inicial, el cliente puede verificar que se está conectando al
mismo servidor al que se conectó anteriormente.
 El cliente su información de autenticación al servidor usando una encriptación
robusta de 128 bits.
 Todos los datos enviados y recibidos durante la sesión se transfieren por medio de
encriptación de 128 bits, lo cual los hacen extremamente difícil de descifrar y leer.
 El cliente tiene la posibilidad de reenviar aplicaciones X11 desde el servidor. Esta
técnica, llamada reenvió por X11, proporciona un medio seguro para usar
aplicaciones graficas sobre una red. [16]

2.6.2.5 Servidor Web Raspberry PI

La Raspberry Pi tiene una infinidad de usos, pero, uno de los más interesantes bajo mi
punto de vista es el de poder utilizarlo como servidor web completo, por esto se vio
conveniente para el Sistema de automatización de la granja configurar un servidor web con
APACHE, PHP5, MySQL, FTP y todos los complementos necesarios. [16]

Figura 2.14
Servidor Web Raspberry PI

Fuente: [16]

41
2.6.2.6 Apache 2.2

Una de las características más importantes de apache es que se utiliza casi en todas las
plataformas, en la actualidad apache no solo funciona con todas las versiones de Unix sino
que también lo hace con Raspbian que es una distribución del sistema operativo
GNU/Linux y por lo tanto libre basado en Debian Wheezy.

Apache es un servidor web de software libre desarrollado por la Apache Software


Fundación cuyo objetivo para nuestro sitio web es suministrar y gestionar su entrega o
denegación, de acuerdo a las políticas de seguridad establecidas del “Sistema web de
automatización de la granja” a los clientes o navegadores que las soliciten.

La arquitectura utilizada es cliente/servidor, es decir, el equipo cliente hace una solicitud o


petición al equipo servidor Raspberry Pi y éste la atiende.

El archivo de configuración de Apache 2.2 en Raspbian es /etc/apache2/apache2.conf. Es


un archivo muy extenso en el que todas las directivas disponibles están explicadas,
incluyendo ejemplos de utilización.

Contiene una directiva por línea y no se hace distinción entre mayúsculas y minúsculas. Las
líneas que comienzan con el carácter '#' se consideran comentarios.

2.6.3.1 Python

Python es un lenguaje de programación fácil de aprender, muy popular y muy potente. Es


un lenguaje de programación usado en entornos profesionales. Además, es desarrollado
bajo una licencia open-source, por lo que puede ser usado en cualquier sistema con total
libertad, incluso con fines comerciales.

Python tiene eficaces estructuras de datos de alto nivel y una solución de programación
orientada a objetos simple pero eficaz. La elegante sintaxis de Python, su gestión de tipos
dinámica y su naturaleza interpretada hacen de él el lenguaje ideal para guiones scripts y
desarrollo rápido de aplicaciones, en muchas áreas y en la mayoría de las plataformas. El
intérprete de Python y la extensa biblioteca estándar están disponible libremente, en forma
de fuentes o ejecutables, para las plataformas más importantes en la sede web de Python, y
se pueden distribuir libremente. La misma sede contiene también distribuciones y

42
direcciones de muchos módulos, programas y herramientas Python de terceras partes,
además de documentación adicional. Es fácil ampliar el intérprete Python con nuevas
funciones y tipos de datos implementados en C y C++ u otros lenguajes a los que se pueda
acceder desde C. Python es también adecuado como lenguaje de extensión para
aplicaciones adaptables al usuario. Esta guía presenta informalmente al lector los conceptos
y características básicos del lenguaje y sistema Python. Es conveniente tener a mano un
intérprete para hacer experimentos, pero todos los ejemplos son autosuficientes, así que la
guía se puede leer sin estar conectado. Para obtener descripciones de módulos y objetos
estándar, consulta el documento Referencia de las bibliotecas. El Manual de Referencia de
Python ofrece una definición más formal del lenguaje. Para escribir extensiones en C o
C++, lee los manuales de Extensión e incrustación y Referencia de la API Python C.
Existen también diversos libros que tratan Python con detalle. Esta guía no intenta ser
exhaustivo ni agotar cada capacidad de Python, ni siquiera las más comúnmente utilizadas.
En lugar de esto, introduce muchas de las capacidades que caracterizan Python y
proporciona una idea clara del estilo y sabor del lenguaje. [20]

Características de Python son:


 Simple. Python es en lenguaje simple. El pseudo-código natural de Python es una de
sus grandes fortalezas ya que permite concentrarse en la solución del problema en
lugar de la sintaxis, es decir el propio lenguaje.
 Sencillo de Aprender. Con Python es extremadamente sencillo de iniciarse en la
programación ya que ofrece una sintaxis extraordinariamente simple, a la que ya
hicimos mención.
 Libre y Fuente Abierta. Python es un ejemplo de un FLOSS, Free/Libre and Open
Source Software - Gratuito/Libre y Software de Fuente Abierta. En términos
simples, se puede distribuir libremente copias de este software, leer su código
fuente, hacerle cambios, usar partes del mismo en nuevos programas libres
 Lenguaje de Alto Nivel. Cuando escribimos programas en Python. Como manejar la
memoria empleada en el programa.
 Portable. Debido a su naturaleza de ser Open Source, Python ha sido portado es
decir, cambiado para hacerlo funcionar a diversas plataformas. Todos tus programas
trabajaran en alguna de esas plataformas sin requerir cambio alguno.

43
 Interpretado. Esto requiere un poco de explicación. Un programa escrito en un
lenguaje compilado como C o C++ es traducido de un lenguaje fuente como los
mencionados en uno hablado por la computadora código binario, es decir ceros y
unos empleando un compilador con varias opciones.
 Orientado a Objetos. Python permite programación orientada a procedimientos así
como orientada a objetos. En lenguajes orientados a procedimientos, el programa
está construido sobre procedimientos o funciones los cuales no son nada más que
piezas de programa reutilizables. En lenguajes orientados a objetos, el programa es
construido sobre objetos los cuales combinan datos y funcionalidad. Python ofrece
una manera muy poderosa y simple de emplear programación orientada a objetos,
especialmente, cuando se compara con lenguajes como C++ o Java.
 Librerías Extendidas. La librería estándar de Python es de hecho muy amplia. Puede
ayudar a hacer varias cosas que involucran: expresiones regulares, generación de
documentos, evaluación de unidades, pruebas, procesos, bases de datos,
navegadores web, CGI, ftp, correo electrónico, XML, XML-RPC, HTML, archivos
WAV, criptografía y también otras funciones dependientes del Sistema.

Entonces la fundación Raspberry Pi recomienda el uso de Python como lenguaje de


programación, sin embargo, no limitan el uso de lenguaje C, C++, Java, Scratch y Ruby
ya que vienen instalados por defecto en Raspbian. Es posible utilizar cualquier software
de programación siempre y cuando pueda ser ejecutado en un procesador ARMv6.

2.6.3.2 C++

C++ es un lenguaje de programación orientado a objetos que toma la base del lenguaje C y
le agrega la capacidad de abstraer tipos como en Smalltalk.

La intención de su creación fue el extender al exitoso lenguaje de programación C con


mecanismos que permitieran la manipulación de objetos. En ese sentido, desde el punto de
vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros


dos paradigmas que ya estaban admitidos programación estructurada y la programación

44
orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación
multiparadigma. [20]

2.6.3.3 Ruby

Es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el


programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en
1993, y lo presentó públicamente en 1995.

Combina una sintaxis inspirada en Python y Perl con características de programación


orientada a objetos similares a Smalltalk. Comparte también funcionalidad con otros
lenguajes de programación como Lisp, Lua, Dylan yCLU.

Ruby es un lenguaje de programación interpretado en una sola pasada y su implementación


oficial es distribuida bajo una licencia de software libre. [17]

2.6.3.4 Selección del Lenguaje de Programación Para la Raspberry Pi

Se seleccionó Python por la licencia gratuita para la programación, ya que dicho lenguaje
en la Raspberry Pi trabaja con PHP. Técnicamente el sistema operativo es un port no oficial
de Debian armhf para el procesador (CPU) de Raspberry Pi, con soporte optimizado
para cálculos en coma flotante por hardware, lo que permite dar más rendimiento en según
qué casos. El port fue necesario al no haber versión Debian armhf para la CPU ARMv6 que
contiene el Raspberry PI.

La distribución usa LXDE como escritorio y Midori como navegador web. Además
contiene herramientas de desarrollo como IDLE para el lenguaje de programación
Python o Scratch, y diferentes ejemplos de juegos usando los módulos Pygame.

2.6.4.1 Angry IP Scanner

.Angry IP Scanner es una herramienta de monitorización de IP de puertos libre y de código


abierto lanzada bajo la licencia GPLv2. Escanea la red y detecta todos los detalles adjuntos
de los dispositivos que están conectados al router. Muestra información como la dirección
IP, la dirección MAC, el puerto al que están conectados, información sobre NetBIOS y
demás.

45
2.6.4.2 PuTTY

PuTTY es un cliente SSH, Telnet, rlogin, y TCP raw con licencia libre. Disponible
originalmente sólo para Windows, ahora también está disponible en varias
plataformas Unix, y se está desarrollando la versión para Mac OS clásico y Mac OS X.
Otra gente ha contribuido con versiones no oficiales para otras plataformas, tales
como Symbian para teléfonos móviles.

2.6.4.3 Xming

Xming es una implementación portátil del sistema de ventanas X para sistemas operativos
Microsoft Windows XP, 2003, Vista y seven. El servidor X Xming está basado en el
servidor X.Org, cruzado en Linux con el compilador MinGW y Pthreads-Win32.

Xming está disponible con soporte Mesa 3D, soporta una gran variedad de lenguajes y al
contrario que Cygwin/X, no requiere debibliotecas Cygwin.

Xming se usa en implementaciones de Secure Shell (SSH) para asegurar sesiones X11 en
otras computadoras. Soporta PuTTY yssh.exe, y tiene una versión de PuTTY's plink.exe.

2.7 Componentes Eléctricos

Se mencionaran componentes eléctricos para el desarrollo de los circuitos eléctricos.

Existe una amplia variedad de dispositivos diseñados para percibir la información externa
de una magnitud física y transformarla en un valor electrónico que sea posible introducir al
circuito de control, de modo que el robot sea capaz de cuantificarla y reaccionar en
consecuencia.

2.7.1 Sensores

Usando estos sensores podemos hacer que se ejecuten los scripts o aplicaciones que
tengamos programados en nuestra Raspberry Pi. [18]

2.7.1.1 Sensor de Luz

El módulo de sensor de luz utiliza un foto resistor para detectar la intensidad de la luz. La
resistencia del sensor disminuye cuando la intensidad de la luz aumenta.

46
Un sensor de luz es un dispositivo que es capaz de detectar la luz. El más importante para
nosotros es la retina. Los sensores de luz están englobados en dos grandes
grupos: Sensores fotoquímicos y sensores optoelectrónicas.

2.7.1.2 Sensor de Temperatura

Los sensores de temperatura son dispositivos que transforman los cambios de


temperatura en cambios en señales eléctricas que son procesados por equipo eléctrico o
electrónico. Hay tres tipos de sensores de temperatura, los termistores, los RTD y los
termopares.

2.7.1.3 Sensor de Movimiento

El Sensor de Movimiento es un dispositivo que permite la detección de movimiento en


estancias gracias a la tecnología de detección infrarroja que incorpora. Además, este
dispositivo cuenta con un sensor de luminosidad que combinado con las funciones propias
del detector de movimiento proporcionan una gran funcionalidad.

2.7.2 Resistencias

Resistencia eléctrica es toda oposición que encuentra la corriente a su paso por un circuito
eléctrico cerrado, atenuando o frenando el libre flujo de circulación de las cargas eléctricas o
electrones. Cualquier dispositivo o consumidor conectado a un circuito eléctrico representa en
sí una carga, resistencia u obstáculo para la circulación de la corriente eléctrica.

Conexión de resistencias en serie: Es aquella en la que las resistencias se disponen unas a


continuación de otras.

 Todas las resistencias están recorridas por la misma intensidad.


 El efecto que se consigue es aumentar la resistencia total en el circuito.
 El voltaje total (VT) que suministra la pila se gasta en las dos resistencias (V1 y
V2).

Características:
 En serie se conectan los receptores lámparas, motores, timbres, etc., uno a
continuación de otro.

47
 Se reparten el voltaje de la pila entre ellos.
 Por ejemplo, si conectamos tres bombillas en serie a una pila de 4,5 voltios, a cada
una le corresponden solo 1,5 voltios, por lo que lucen muy poco.
 Si se funde una bombilla, o la desconectamos, las demás dejan de lucir.
 Esto es lógico, ya que el circuito se interrumpe y no pasa la corriente.

Conexión de resistencias en paralelo: Las resistencias se disponen de tal manera que los
extremos de un lado se unen todos a un punto común y los del otro lado a otro punto
común. Cada rama del circuito es recorrida por una intensidad diferente (I1 e I2).

Características:
 están conectadas a la misma diferencia de potencial mencionada.
 origina una misma demanda de corriente eléctrica.
 La corriente se repartirá por cada una de sus resistencias.

2.7.3 Actuadores

Un actuador es un dispositivo capaz de transformar energía (en nuestro caso eléctrica) en la


activación de un proceso con la finalidad de generar un efecto sobre un proceso
automatizado. Su función en un sistema de automatización que va hacer la de cambiar la
situación de la granja tras un evento ocasionado al hacer por ejemple una lectura de un
sensor que debe ser tratada.

2.7.4 Transistores

El transistor es un dispositivo electrónico semiconductor utilizado para entregar una señal


de salida en respuesta a una señal de entrada. Cumple funciones de amplificador, oscilador,
conmutador o rectificador.

2.7.4.1 Transistores Para Corriente Alterna (Tiristores)

Los tiristores son interruptores electrónicos construidos a base de semiconductores,


dependiendo del tipo de tiristor pueden ser unidireccionales (circula corriente en un solo
sentido) o bidireccionales (circula corriente en ambos sentidos), sus dos estados de
funcionamiento son llamados conducción (ON) y bloqueo (OFF).

48
Los tiristores se emplean generalmente para el control de potencia eléctrica, siendo los tipos
más conocidos el SCR, TRIAC, DIAC, GTO, LASCR.

2.7.5 Modulo Relé

Funciona como un interruptor controlado por un circuito electrónico en el que, por medio
de una bobina y un electroimán, se acciona un juego de uno o varios contactos que
permiten abrir o cerrar otros circuitos electrónicos independientes.

El modulo trabaja a 5V, conexiones a GPIO, Vcc a +5V, Gnd a Gnd.

2.7.6 Protoboard

El protoboard es una especie de tablero con orificios, en la cual se pueden insertar


componentes electrónicos y cables para armar circuitos. Como su nombre lo indica, esta
tableta sirve para experimentar con circuitos electrónicos, con lo que se asegura el buen
funcionamiento del mismo.

Estas placas para realizar prototipos electrónicos están agujereadas con conexiones internas
dispuestas en hileras, de modo que forman una matriz de taladros a los que podemos
directamente insertar componentes y formar el circuito deseado. Montar prototipos, de
forma eventual, por lo que probamos y volvemos a desmontar los componentes, quedando
la protoboard. Estos prototipos que montemos no pueden trabajar a frecuencias mayores de
20 Mhz. ya que entre las filas para la inserción de componentes hay capacidades parásitas
que nos afectarían el funcionamiento del circuito.

En estos tableros llamados protoboard montaremos los circuitos formados por resistencias,
condensadores, transistores, LEDS, dígitos, pulsadores y circuitos integrados
principalmente.

Se debe tener en cuenta que para realizar las conexiones entre componentes utilizaremos
cables, que tienen que ser de un hilo o rígido de 0,5 a 0,75 mm de diámetro
aproximadamente. Estos cables también se venden adecuados a los protoboard. También
hay que tener cuidado de no usar intensidades de corriente muy altas por las conexiones de
la placa.

Y la estructura del protoboard: Básicamente un protoboard se divide en tres partes:

49
 La central. Es la región localizada en el medio del protoboard, se utiliza para
colocar los circuitos integrados.
 A los lados de la central. En ella van Los buses y se localizan en ambos extremos
del protoboard.
 Parte exterior de la placa. Hay dos filas de contactos a cada lado de la placa para
poner la alimentación del circuito.

2.7.7 Capacitores

El capacitor es un elemento pasivo que almacena energía en forma de campo eléctrico,


adquiriendo carga eléctrica. El capacitor está formado por dos láminas conductoras,
separadas por un aislante o dieléctrico, de tal modo que puedan estar cargados con el
mismo valor, pero con signos contrarios.

2.7.8 Optoacoplador

Es un componente electrónico que se utiliza como transmisor y receptor óptico de luz, es


decir pueden transmitir de un punto a otro una señal eléctrica sin necesidad de conexión
física ni cables por el aire, mediante una señal luminosa. Por eso también se llaman
optoInterruptor.

Hay muchos tipos diferentes de optoacopladores, pero todos tienen un foco emisor de luz
LED. Lo que pueden cambiar es el receptor de luz que puede ser un fotodiodo,
fototransistor, LASCR.

Algunos optoacopladores tienen un encapsulado con una cámara de aire para la transmisión
de la luz.

En este tipo si hay algún objeto dentro de la ranura no llegará luz al detector y tampoco
tendríamos tensión de salida.

Es importante resaltar que tanto el led como el transistor detector deben llevar siempre una
resistencia en serie con ellos para protegerlos y limitar la corriente.

50
CAPÍTULO 3
MARCO PRÁCTICO

En este capítulo se realizara un análisis físico, lógico del sistema, dando énfasis en la
descripción de los procesos y funcionamientos del sistema.

3.1 Diseño del Modelo de Negocio Alternativo


En modelo de negocio alternativo se ha realizado un análisis de todos los procesos que
involucran al sistema, tomando en cuenta a todos los elementos como: análisis de
requerimientos proporcionados por el municipio del Gobierno Autónomo Municipal de
Coripata, además de los procesos de investigación que se realizó en el transcurso de la
elaboración del modelo de negocio.

3.1.1 Modelo de Negocio Actual

La forma de trabajo actualmente en la granja de pollos en el municipio perteneciente al


Gobierno Autónomo Municipal de Coripata, se utiliza diagramas de flujo de trabajo
mediante el cual se puede ver las acciones empleadas en el proceso de crianza en la granja.

Las personas implicadas en este proceso son:

 Supervisor. Funcionario del Gobierno Autónomo Municipal de Coripata que está


encargado de supervisar la producción de la granja de pollos, también dar
información de todo lo que se realiza de los diferentes áreas de trabajo.

A continuación se mostrara el modelo de negocio actual una vez recolectado la mayor


cantidad de información posible.

51
Figura 3.1
Modelo de Negocio Actual

Modelado de negocio actual

Supervisor Empleado

Inicio

Supervisor realiza llamada al encargado para


Empleado recibe la llamada del supervisor
solicitar el informe del estado de la granja

Empleado prepara y envía el


informe del estado de la granja

¿supervisor
recibe informe?

Supervisor revisa informe

no ¿Informe presenta si Supervisor llega a la granja y


Supervisor realiza un
Fin problemas en la verifica el estado en el que se
viaje hasta la granja.
granja? encuentra la granja

si
Continúan con el ¿granja presenta Verifica el estado
trabajo diario dificultades? del área de crianza

no si
Realizan limpieza Realizan el cambio ¿esta en un Verifica el control
del área de crianza de aserrín buen estado? de peso

si
Se incremento la porción no ¿Peso esta dentro del Verifica controles
del alimento estándar? sanitarias

no si
Se realiza desinfección ¿Pollos están en Realizan la
de los bebederos de buen estado de verificación de la
los pollos salud? temperatura

Se realiza controles Si hace calor empleado


sanitarias con mas si
quita las cortinas y se ¿Temperatura
frecuencia encienden las es adecuada?
ventiladoras
no

Si hace frio empleado


cierra las cortinas y fin
encienden las luces
Fase

Fuente. [Elaboración propia]

52
Figura 3.2
Modelo de Negocio Alternativo
Inicio

Supervisor ingresa al sistema

Autentificación de usuario

si
Usuario vuelve a no ¿usuario y Se muestra los
intentar a contraseña es modulos del
autentificarse correcto? sistema

no
si
¿administrar
Actualizar datos
usuario?

no

si Activar o
¿Administrar
desactivar
interruptores?
interruptores
no

si
Activar o
¿Administrar
desactivar los
sensores?
sensores
no

¿Monitorear la si Verificar el estado


temperatura y de temperatura y
humead? humedad
no

¿Automatizar si Encender o
las luces? apagar las luces

no
si
¿Automatizar Encender o
los apagar los
ventiladores? ventiladores

no

¿Automatizar la si
Activar o desactivar la
detección de
detección de movimiento
movimiento
externo
externo?

no
¿Automatizar la si
Encender o apagar la
iluminación
iluminación externo
externo?

no

si
¿Monitorear la Regular la
intensidad de intensidad de
iluminación? iluminación

no

si Encender y
¿Automatizar cámara? Visualizar
mediante cámara

Cerrar cesión

Fin

Fuente. [Elaboración propia]

53
3.1.3 Planificación de Incrementos

En la documentación del capítulo dos se justificó la selección del modelo incremental del
desarrollo del software, a continuación se muestra la planificación de incrementos para el
proyecto:

Primer incremento
Desarrollar el sistema web para la automatización de la granja de pollos.

Segundo incremento
Implementar mecanismos necesarios para establecer conexión entre la Raspberry Pi y el
Sistema web

Tercer incremento

Desarrollar circuitos eléctricos para la automatización de luces, ventiladores, detección de


movimiento externa, iluminación externa, calibración de intensidad de iluminación,
temperatura, humedad y cámara con la Raspberry Pi.

3.2 Primer Incremento

Desarrollar el sistema web para la automatización de la granja de pollos.

3.2.2 Análisis

Se hizo entrevistas a los beneficiarios del municipio y se obtuvo los requerimientos


necesarios para el desarrollo del sistema web para la automatización de las condiciones
climáticas y vigilancia externa de la granja de pollos.

3.2.2.1 Identificación de Actores

El actor es la representación del rol que juega un usuario respecto al sistema.

Los actores pueden representar roles que pueden ser los usuarios humanos, hardware
externo, u otros sujetos. Un actor no necesariamente representa una identidad física
específica, sino simplemente un rol de alguna actividad que es relevante a la especificación
de sus casos de uso asociados.

Se identificó al siguiente actor:

54
Supervisor
Supervisor es el encargado de llevar acabo la producción de la granja de pollos, también dar
información de todo lo que se realiza de los diferentes áreas de trabajo de los
procedimientos que se realiza.
Figura 3.3
Identificación de Actor

Fuente. [Elaboración propia]

3.2.2.2 Identificación de Casos de Uso por Actor


Los casos de uso son un conjunto de actividades, que ejecuta el sistema para producir un
resultado observable para un actor.
Actor: Supervisor
Casos de uso: Ingresar al sistema, administrar usuario, administrar interruptores,
administrar sensores,
Descripción: Persona encargada de supervisar cada área de trabajo en la granja de pollos.

Figura 3.4

55
Diagrama de Casos de Uso del Actor Supervisor

Fuente. [Elaboración propia]

3.2.2.3 Diagrama de Casos de Uso del Sistema

56
En este diagrama de caso de uso del sistema, se inicia con entrar al sistema el involucrado
es el actor del sistema.
Figura 3.5
Diagrama de Casos de Uso del Sistema

Fuente. [Elaboración propia]

3.2.2.4 Diagramas de Secuencia

57
Caso de uso: Ingresar al sistema
Figura 3.6
Diagrama de Secuencia Ingresar al Sistema

:IU Autenticacion :IU Sistema :Gestos usuario :Usuario

Ingresar datos
Verificar(usuario, contraseña)
Verificar usuario()

Autorizacion

Ingresar al sistema

Fuente. [Elaboración propia]

Caso de uso: Administrar usuario


Figura 3.7
Diagrama de Secuencia Administrar Usuario

:IUAdministrarUsuario :IUGestionarUsuario :GestorUsuario :Usuario

configurar(usuario)

modificar()
actualizar_datos()

confirmar actualizacion

Fuente. [Elaboración propia]


Caso de uso: Administrar Interruptor

58
Figura 3.8
Diagrama de Secuencia Administrar Interruptor

:IUAdministrarInterruptor :IUGestionarInterruptor :GestorInterruptor :Interruptor

control de datos

activarr interruptor

activar()
actualizar()

confirmar actualizacion
desactivar interruptor
desactivar()
actualizar()

confirmar actualizacion

Fuente. [Elaboración propia]


Caso de uso: Administrar Sensor
Figura 3.9
Diagrama de Secuencia Administrar Sensor

:IUAdministrarSensor :IUGestionarSensor :GestorSensor :Sensor

control de datos

activarr sensor

activar()
actualizar()

confirmar actualizacion
desactivar sensor
desactivar()
actualizar()

confirmar actualizacion

Fuente. [Elaboración propia]


Caso de uso: Automatizar luces

59
Figura 3.10
Diagrama de Secuencia Automatizar Luces

:IUAutomatizarFoco :IUSistema :Foco

seleccionar

encender foco
encender()

:Gestorluz

apagar foco
apagar()

confirmar apagado

Fuente. [Elaboración propia]


Caso de uso: Automatizar ventiladores
Figura 3.11
Diagrama de Secuencia Automatizar Ventiladores

:IUAutomatizarVentilador :IUSistema :Ventilador

seleccionar

encender ventilador
encender()

confirmar encendido

apagar ventilador
apagar()

confirmar apagado

Fuente. [Elaboración propia]


Caso de uso: Automatizar la detección de movimiento externo

60
Figura 3.12
Diagrama de Secuencia Automatizar Detección de Movimiento Externo

:IUAutomatizarDeteccionMovimie :IUSistema :DeteccionMovimientoExterno


ntoExterno

seleccionar

activar movimiento externo


activar()

confirmar activado

desactivar movimiento externo


desactivar()

confirmar desactivado

Fuente. [Elaboración propia]


Caso de uso: Automatizar iluminación externo
Figura 3.13
Diagrama de Secuencia Automatizar Iluminación Externo

:IUAutomatizarIluminacionExter :IUSistema :IluminacionExterno


no

seleccionar

activar iluminacion externo


activar()

confirmar activado

desactivar iluminacion externo


desactivar()

confirmar desactivado

Fuente. [Elaboración propia]


Caso de uso: Monitorear la intensidad de iluminación

61
Figura 3.14
Diagrama de Secuencia: Monitorear la Intensidad de Iluminación

:IUMonitorearIntensidadIlumina :IUSistema :CalibracionIluminacion


ción

seleccionar

regular intencidad de iluminacion


regular()

confirmar la regulacion de temperatura

Fuente. [Elaboración propia]


Caso de uso: Monitorear la temperatura y humead
Figura 3.15
Diagrama de Secuencia: Monitorear la Temperatura y Humedad

:IUMonitorearTemperaturaHumead :IUSistema :TemperaturaHumead

seleccionar

Encender la temperatura y humadad


verificar()

confirmar la verificacion de temperatura y humedad

Fuente. [Elaboración propia]


Caso de uso: Automatizar cámara

62
Figura 3.16
Diagrama de Secuencia: Automatizar Cámara

:IUAutomatizarCámara :IUSistema :Cámara

seleccionar

activar camara
activar()

confirmar activado

desactivar camara
desactivar()

confirmar desactivado

Fuente. [Elaboración propia]

3.2.3 Diseño

En esta sección de construcción del sistema se modelan los diagramas de colaboración a


partir de los casos de uso obtenidos.

3.2.3.1 Diagramas de colaboración

Caso de uso: Administrar usuario.

Figura 3.17

63
Diagrama de Colaboración: Administrar Usuario

1 2 3
IUAdministrar Usuario IUConfigurar Datos Gestor de Usuario Usuario

4 5

IUBuscar

Editar
Actualizar

Fuente. [Elaboración propia]

Caso de uso: Administrar interruptores

Figura 3.18
Diagrama de Colaboración: Administrar Interruptores

1 2 3
IUAdministrar interruptores IUControl de interruptores Gestor de Interruptor Interruptor

4 5

IUBuscar

Activar
Desactivar

Fuente. [Elaboración propia]

Caso de uso: Administrar Sensores

64
Figura 3.19
Diagrama de Colaboración: Administrar Sensores

1 2 3
IUAdministrar Sensores IUControl de Sensores Gestor de Sensor Sensor

4 5

IUBuscar

Activar
Desactivar

Fuente. [Elaboración propia]

Caso de uso: Automatizar las Luces

Figura 3.20
Diagrama de Colaboración: Administrar Luces

1 2 3
IUAutomatizar luces IUControl de Foco Gestor de Foco Foco
4 5

IUBuscar

Encender
Apagar

Fuente. [Elaboración propia]

Caso de uso: Automatizar los ventiladores

65
Figura 3.21
Diagrama de Colaboración: Administrar los Ventiladores

1 2 3
IUAutomatizar ventiladores IUControl de Ventiladores Gestor de Ventiladores Ventilador

4 5

IUBuscar

Encender
Apagar

Fuente. [Elaboración propia]

Caso de uso: Automatizar la detección de movimiento externo

Figura 3.22
Diagrama de Colaboración: Automatizar la Detección de Movimiento Externo

1 2 3
IUAutomatizar deteccion IUControl de deteccion Gestor de deteccion de Deteccion de movimiento
de movimiento externo de movimiento externo movimiento externo externo
4 5

IUBuscar

Activar
Desactivar

Fuente. [Elaboración propia]

Caso de uso: Automatizar iluminación externo

66
Figura 3.23
Diagrama de Colaboración: Automatizar Iluminación Externo

1 2 3
IUAutomatizar iluminacion IUControl de iluminacion Gestor de iluminacion
Iluminacion externo
externo externo externo
4 5

IUBuscar

Encender
Apagar

Fuente. [Elaboración propia]

Caso de uso: Monitorear la intensidad de iluminación

Figura 3.24
Diagrama de Colaboración: Monitorear la Intensidad de Iluminación

1 2 3
IUMonitorear la intensidad IUControl de intensidad Gestor de Intensidad
Intensidad de iluminación
de iluminación de iluminación de iluminación
4 5

IUBuscar

Calibrar

Fuente. [Elaboración propia]

Caso de uso: Monitorear la temperatura y humead

67
Figura 3.25
Diagrama de Colaboración: Monitorear la Temperatura y Humead

1 2 3
IUMonitorear temperatura IUControl de temperatura Gestor de temperatura
Temperatura y humedad
y humead y humedad y humedad
4 5

IUBuscar

Encender

Fuente. [Elaboración propia]

Caso de uso: Automatizar cámara

Figura 3.26
Diagrama de Colaboración: Automatizar Cámara

1 2 3
IUAutomatizar cámara IUControl de cámara Gestor de Cámara Cámara

4 5

IUBuscar
Encender
Apagar

Fuente. [Elaboración propia]

68
3.2.3.2 Diseño de la base de datos

El diseño de la base de datos se mostrara en análisis general del sistema.


Figura 3.27
Base de Datos del Sistema

Usuario
-ID_Usuario : int -1
-Nombres : string Rol
-Apellidos : string -1
-ID_Rol : int
-Email : string * -NombreRol : string
-Usuario : string
-Contraseña : string *
-ID_Rol : int
+ValidarUsuario()
+ModificarUsuario()

Fuente. [Elaboración propia]

3.2.4 Pruebas

En esta sección se visualizara la interfaz del sistema.

3.2.4.1 Desarrollo de interfaces

En esta sección se visualizara la interfaz de identificación de usuario del sistema de la


granja de pollos.

69
Figura 3.28
Interfaz de Identificación de Usuario

Fuente. [Elaboración propia]


Figura 3.29
Interfaz de Autenticación Usuario

Fuente. [Elaboración propia]

70
Figura 3.30
Interfaz de Autenticación Errónea

Fuente. [Elaboración propia]


Figura 3.31
Acceso al Sistema de Automatización

Fuente. [Elaboración propia]

71
Figura 3.32
Interfaz de Editar Usuario

Fuente. [Elaboración propia]


Figura 3.33
Interfaz de Guardar Datos del Usuario

Fuente. [Elaboración propia]

72
Figura 3.34
Interfaz de Actualizar Datos del Usuario

Fuente. [Elaboración propia]

Figura 3.35
Interfaz de la Configuración del Interruptor

Fuente. [Elaboración propia]

73
Figura 3.36
Interfaz de la Configuración de Sensores

Fuente. [Elaboración propia]

3.2.4.2 Casos de prueba

Se harán pruebas de funcionamiento al sistema tomando en cuenta las acciones sistema


web, donde se clasifican por casos de uso.

74
Cuadro 3.1
Casos de Prueba Para la Verificación de Funcionalidades

Caso de prueba Descripción Resultados Resultados obtenidos


esperados

Es la autenticación Conexión a la Ingresar al sistema si el


de un usuario base de datos y inicio de sesión es
registrado, solicitud de correcto.
perteneciente al autorización para Si no son correctas
Ingresar al sistema municipio tiene un así ingresar al
entonces no ingresaran
usuario y una sistema y poder al sistema
contraseña. automatizar las
funcionalidades. Tiene que volver a
ingresar los datos para
el inicio de sesión.

Es el registro, Se llenan todos El sistema registra


modificación y los campos correctamente, si hay
actualización del requeridos y se un error de registro de
usuario. guardan los datos personales se
Administrar usuario correctamente los puede modificar
cambios satisfactoriamente.
realizados de lo Si no se llena
contrario envía un correctamente emite un
mensaje de error y mensaje de error.
no permita llenar
ningún dato de
registro.
Es la Se activan y El sistema guarda
configuración de desactivan correctamente los
los estados de los correctamente cambios realizados y si
Administrar interruptores del cada área con los no se ha realizado bien
interruptores galpón. cambios los cambios volvemos a
realizados. corregir y los
guardamos otra vez.

75
Es la Se activan y Con los cambios
configuración del desactivan cada realizados el sistema se
de los campos y el área con los guarda y se actualiza
estado del sensor cambios correctamente los
Administrar en el galpón. realizados se cambios realizados.
sensores guardan y se Si no se ha realizado
actualizan bien los cambios
satisfactoriamente. volvemos a corregir y
los guardamos otra vez.
Es el encendido y Se encienden las El sistema automatiza
apagado de la luz luces dentro de la correctamente el
dentro de la granja y luego se encendido y apagado de
Automatizar las granja. pude apagar. las luces desde como
luces también se pude
acceder desde un
dispositivo
satisfactoriamente.
Es el encendido y Se encienden las El sistema automatiza el
apagado de las ventiladoras encendido y apagado de
ventiladoras dentro de la granja las ventiladoras
Automatizar las dentro de la y luego se pude satisfactoriamente como
ventiladoras granja. apagar. también se pude activar
y desactivar desde un
dispositivo
correctamente.
Es la activación Se activara y se El sistema activa y
del sensor para la desactivaran el desactiva el sensor de
Automatizar la
detección de sensor de movimiento en la
detección de
movimiento de los movimiento para entrada de la granja
movimiento externa
alrededores de la la captura de satisfactoriamente,
granja. cualquier como también se pude
movimiento de activar y desactivar
Está situado en la
personas en el desde un dispositivo
puerta de la
pasillo de entrada correctamente.
granja.
a la granja.
Es el encendido Se enciende y se El sistema enciende y
de del área de la apaga la apaga la iluminación
Automatizar la
iluminación iluminación externa correctamente
iluminación externa
externa externa si en caso como también se pude
no se requiere encender y apagar
encender dentro desde un dispositivo
de la granja. satisfactoriamente.

76
Es el monitoreo de Se pude activar y El sistema activa y
la regulación de la desactivar como desactiva la calibración
Monitorear la
intensidad de también se pude de temperatura como
intensidad de
iluminación de los regular según a lo también se pude regular
iluminación
focos. que se requiere. al porcentaje que se
requiere poner la
intensidad de
iluminación la función
es correctamente.
Es el monitoreo de Se puede ver El sistema activa los
la temperatura y mediante el sensores de temperatura
Monitorear la
humedad. sistema web el y humedad.
temperatura y
estado de la
humead Se pude ver los estados
temperatura y de temperatura y
humedad. humedad
correctamente.

Es la Se puede El sistema puede activar


automatización y visualizar y desactivar la cámara
monitoreo de la directamente para la visualización del
Automatizar cámara cámara. desde la web lo estado de la granja de
que ocurre en la pollos directamente y
granja mediante la los resultados son
cámara. correctamente.

Fuente. [Elaboración propia]

3.3 Segundo Incremento

3.3.1 Implementar Mecanismos Necesarios Para Establecer Conexión Entre la


Raspberry Pi y el Sistema Web.

En esta sección se describirá el proceso de la conexión entre la Raspberry Pi y el sistema


web para la automatización de las respectivas áreas mencionadas, para poner en marcha con
el avance del proyecto.

3.3.2 Análisis

En esta sección se realizaran las respectivas conexiones y configuraciones para el


respectivo funcionamiento de la Raspberry Pi.

77
3.3.2.1 Conexión de Red y Cargador de Energía a la Raspberry Pi

Conectamos el cargador para darle energía, también el cable de red en la entrada de


Ethernet para la respectiva configuración e instalación de librerías en la Raspberry Pi.

Figura 3.37
Interfaz de Conexión de Red y Cargador de Energía a la Raspberry Pi

Fuente. [Elaboración propia]

3.3.2.2 Monitoreo de la Dirección IP a la Raspberry Pi

En esta sección se monitoriza los rangos de IP para la detección de la Raspberry Pi y así


poder configurar e instalar cualquier librería desde la terminal.

Angry IP Scanner utiliza diferentes hilos de conexión para cada IP para reducir el tiempo
de espera, y muestra también información general sobre el PC como el nombre de la
máquina, su grupo de trabajo en red y nombre del usuario que está conectado.

Usaremos Angriy IP, luego con esto va resolver el nombre de host para conectarnos
mediante SSH a la Raspberry Pi.

78
Figura 3.38
Intertfaz Angry IP Scanner

Fuente. [Elaboración propia]

3.3.2.3 Conexión Remota al Raspberry Pi usando SSH y la Configuración del Putty

Se utilizara el protocolo de comunicación SSH que nos permite conectarnos remotamente


con servidores o diferentes tipos de máquinas. En nuestro caso va a ser utilizado de manera
local en el proyecto y es usado ampliamente en diferentes lugares del mundo.

En general este programa permite hacer conexiones seguras de forma remota a nuestro
Raspberry Pi a través de cualquiera de los métodos. Esto quiere decir que, no necesitará
utilizar una segunda pantalla, teclado y mouse ya que se podrá operar remotamente a la
Raspberry Pi.

Para la respectiva conexión se requiere la dirección IP de la Raspberry Pi, usuario y


contraseña de la Raspberry Pi. Con esto podremos usar desde un ordenador sin tener
conectado un monitor, ni teclado, ni ratón. De esta forma se pueden hacer la mayoría de las
configuraciones.

79
Figura 3.39
Interfaz de Configuración del Putty

Fuente: [Elaboración propia]


En la figura 3.40 se puede visualizar que la conexión fue exitosa, aparecerá una terminal
solicitando el nombre del usuario y la contraseña para el ingreso para la respectiva
configuración e instalación de diferentes programas. Y ahora se encontrará en la línea de
comandos de Linux. Y tenesmos conectados a la Raspberry Pi, tengamos en cuenta que esta
es una conexión, Putty no ha sido configurado para activar el modo gráfico en modo
remoto, para esto es necesario seguir configurando en nuestra PC el Xming.

Figura 3.40
Visualización de Comando de Linux de la Raspberry Pi

Fuente. [Elaboración propia]

80
3.3.2.4 Conexión Remota al Raspberry Pi usando Xming

En esta sección se ejecutara el escritorio remoto del Raspberry Pi usando el sistema de


gestión gráfico llamado X11 o X Windows. Esta es una aplicación tipo cliente-servidor,
donde se necesitan instalar aplicaciones en ambos lados tanto en el servidor como en el
cliente.

El Raspberry Pi usa X Windows como el gestor de su ambiente gráfico, por ende no se


necesita instalar nada adicional. Sin embargo, para la PC con Windows, es necesario
instalar la aplicación Xming para que pueda interpretar los comandos recibidos por el
Raspberry Pi en un ambiente gráfico.

Hay que tener en cuenta que Xming transfiere la información gráfica a través de Putty, por
lo tanto este debe ser instalado con anterioridad.

En la figura 3.41, en esta ventana configuramos llenando todos los campos como se pude
visualizar, para ingresar a la pantalla del sistema operativo de la Raspberry Pi.

Figura 3.41
Configuración de Xming

Fuente: [Elaboración propia]

81
Se puede visualizar la pantalla después de realizar una serie de configuraciones para poder
trabajar con el proyecto.

Figura 3.42
Pantalla de la Raspberry Pi

Fuente. [Elaboración propia]

Se utilizaran programas de la figura 3.43 para el funcionamiento del Linux, Apache,


MySQLy PHP son un conjunto de componentes que debemos instalar en la Raspberry Pi
para poder crear un servidor Web.

 Apache: Servidor Web HTTP Fuente abierta.


 MySQL: Base de datos fuente abierta.
 PHP: Lenguaje de programación que forma parte del servidor web para crear webs
dinámicas.
 PHPmyAdmin: Sirve para administrar la base de datos a través de interfaz web.
Antes de comenzar con cualquier tipo de instalación se actualizara la Raspberry Pi:
ejecutamos este código en la terminal.

sudo apt-get upgrade


sudo apt-get update

82
Figura 3.43
Interfaz de Instalación de un Servidor Web

Fuente. [Elaboración propia]

3.3.3 Diseño

A continuación realizaran un análisis al procedimiento de un servidor web. PHPmyAdmin


es un software basado en PHP que sirve para administrar la base de datos MySQL a través
de interfaz web.

En la figura 3.44 se puede observar el procedimiento de un servidor web.

Figura 3.44
Interfaz de Arquitectura Cliente/ Servidor

Solicitud

Respuesta
PC Raspberry pi Servidor BD

Red

Fuente. [diymakers.es]

83
3.3.4 Código

Instalación de librerías y paquetes para el respectivo uso:


sudo apt-get install php5-curl
sudo apt-get install php5-dev
sudo apt-get install php5-gd
sudo apt-get install php5-imap
sudo apt-get install php5-ldap
sudo apt-get install php5-mysql
sudo apt-get install php5-odbc
sudo apt-get install mysql-server mysql-client php5-mysql
sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
En esta sección se otorgara permiso para poder utilizar el comando exec de PHP.

<?php Permisos:
sudo chmod 775 /var/www/
if ($_POST['on'] { sudo usermod -a -G www-data pi
exec("sudo python /var/www/on.py") sudo visudo
}else{exec("sudo python /var/www/off.py")}

Scripts para el encendido y apagado de los focos.

Se importara la librería tiempo para usar parones.


import time
import wiringpi2
Se creara una variable inicializada con la nomenclatura de Wiring pi
io=wiringpi2.GPIO(wiringpi2.GPIO.WPI_MODE_PINS)
Se establece el modo de operación del pin, en este caso es de salida
io.pinMode(7,io.OUTPUT)
Se creara el bucle de actuación
for x in range (0,3):
io.digitalWrite(7,io.HIGH)
time.sleep(5) io.digitalWrite(7,io.LOW) time.sleep(5)

84
3.3.5 Prueba

3.3.5.1 Creación de la Base de Datos

En primer lugar tendremos que acceder al Panel de Control del servidor.

Figura 3.45
Interfaz de Conexión al Servidor

Fuente: [Elaboración propia]


Ahora una vez comprobado la respuesta para ello, tendremos que ingresar en el navegador
la dirección URL (http://192.168.0.104/phpmyadmin/) de acceso al panel de administración
e introducir el usuario para autenticarse.

85
Figura 3.46
Interfaz de Inicio de Sesión del Servidor MySQL

Fuente. [Elaboración propia]

Podemos ver que ahora nos aparece una nueva base de datos en nuestro directorio.

Seguidamente vamos a añadir a nuestra base de datos una tabla llamada “usuarios” que va a
tener 7 campos de la cual se obtiene la siguiente estructura.

86
Figura 3.47
Estructuras de la Tabla Usuario

Fuente. [Elaboración propia]


Figura 3.48
Interfaz de la Tabla Campo

Fuente. [Elaboración propia]


En la base de datos deberá existir una tabla, que es la estructura que aloja realmente los
datos.

Como se muestra en eldiseño tenemos la “estructura básica” de nuestra tabla, pero aún sin
registro alguno, como ya prevemos en la definición de campos se encuentra implícito el
tipo de datos a usar.

87
Figura 3.49
Diseño de la Base de Datos

Fuente. [Elaboración propia]


Figura 3.50
Interfaz de Funcionamiento del Sistema

Fuente. [Elaboración propia]

88
3.4 Tercer Incremento

3.4.1 Desarrollar Circuitos Eléctricos

Se desarrollara los circuitos eléctricos necesarios para la automatización de luces,


ventiladores, detección de movimiento externa, iluminación externa, calibración de
intensidad de iluminación, temperatura, humedad y cámara con la Raspberry Pi.

3.4.1.1 Análisis de Requerimientos

En esta sección se mencionaran los requerimientos funcionales y no funcionales.

Requerimientos Funcionales

Desarrollar circuitos electrónicos

Circuito electrónico para las luces interno y externo

Circuito electrónico para los ventiladores

Circuito electrónico para la detección de movimiento externo

Circuito electrónico para cámara

Circuito electrónico para temperatura y humedad

3.4.1.2 Entrada y Salida de los Puertos

GPIO de entrada y salida es un puerto que sirve a la Raspberry Pi para comunicarse con
dispositivos externos. El puerto GPIO está formado por 40 pins los cuales se pueden
configurar como entradas o salidas digitales. También incorpora pins de masa y
alimentación de 5V y 3,3V, y pins de comunicación Serial, I2C y SPI pre configurado.

Estos pins trabajan a un voltaje de 3,3V y, los pins GPIO de la Raspberry Pi no tienen
ninguna protección de circuitería, por lo que hay que ir con cuidado a la hora de conectar
dispositivos a estos pins.

3.4.1.3 GPIO General (Entrada/salida)


Figura 3.51

89
GPIO General (Entrada/salida)

Fuente. [Elaboración propia]

3.4.2 Diseño

A continuación se realiza una prueba de control de un led que estará conectado a un pin del
puerto GPIO de la Raspberry Pi de tres maneras distintas: a través de la terminal, a través
de un script Python y a través de la librería.

Conectaremos un led con una resistencia de 220 ohms en serie entre el pin 4 y una masa del
puerto GPIO.

El esquema de conexión es el siguiente en la imagen 3.52:

Figura 3.52
Esquema de Conexión de Led

90
Fuente. [Elaboración propia]

3.4.2.1 Diagrama Electrónico de Iluminación

En el esquema del circuito viene una sola etapa de potencia para el encendido y apagado de
la iluminación, para disponer de más canales solo tiene que ir conectando más etapas a cada
uno de los pines del puerto GPIO, Para poder hacer funcionar el circuito hará falta un
programa hecho en lenguaje Python desde la Raspberry Pi el cual controlara la entrada
GPIO para controlar la iluminación.

Figura 3.53
Esquema del Circuito de Iluminación

91
Fuente. [Elaboración propia]

3.4.2.2 Diagrama Electrónico de DH11 Temperatura y Humedad

El sensor envía datos al micro controlador utilizando solo un pin. Lo primero que se realiza
es enviar datos al sensor.

Para inicializar se instala la biblioteca de Adafruid al sensor de temperatura directamente en


Raspbian. Se envía los datos del sensor a la frambruesa pi, se utiliza el tablero de 3.3 v y el
pin como entrada en el pin del GPIO de la Raspberry Pi.

Figura 3.54
Esquema del Circuito DH11 Temperatura y Humedad

Fuente. [Elaboración propia]

3.4.2.3 Diagrama Electrónico del Circuito PIR

92
En el esquema del circuito de la figura 3.55 del sensor de PIR, significa infrarrojo pasivo.

El sensor es considerado como pasivo porque no envía ninguna señal con el fin de detectar
el movimiento. Se ajusta a la firma infrarroja de una sala. Cualquier objeto que se mueve a
través de la sala de perturbará la firma infrarroja, y provocará un cambio de ser notado por
el módulo PIR.

A partir de tres cables de arranque, se conecta cada uno de los conectores del sensor PIR a
los pines correspondientes en el Raspberry Pi.

Figura 3.55

Esquema del Circuito Sensor PIR en la Raspberry Pi

Fuente: [Elaboración propia]

3.4.2.4 Diagrama Electrónico del Sensor de Luz LDR

93
A continuación en la figura 3.56, establecemos el modo GPIO a GPIO.BOARD esto
significa toda la numeración que se utiliza la numeración física de los pasadores. Dado que
sólo tenemos una entrada y pin de salida que sólo tenga que configurar una
variable. Establecer esta variable en el número del código PIN que ha actuado como el pin
de entrada / salida.

Figura 3.56
Esquema del Sensor de Luz LDR en Raspberry Pi

Fuente: [Elaboración propia]

3.4.2.5 Diagrama Electrónico de la Cámara

En la figura 3.57 de la placa de la cámara se conecta a la Frambuesa Pi a través de un cable


plano. Un extremo del cable de cinta va a la PCB cámara y el otro extremo unido a sí
mismo Frambuesa Pi hardware. Que necesita para obtener las conexiones de cable de cinta
de la manera correcta, o si la cámara no funcionará. En la PCB de la cámara, con el
respaldo azul en el cable debe estar mirando hacia fuera de la PCB, y en el hardware
Frambuesa Pi que debe estar hacia la conexión Ethernet.

Figura 3.57

94
Esquema del Circuito de la Cámara en Raspberry Pi

Fuente: [Elaboración propia]

3.4.3 Codificación

En esta sección se realiza la codificación de los puertos de GPIO.

3.4.3.1 Controlar GPIO a Través de un Script Python

Para poder controlar el puerto GPIO a través de Python, primero se realiza la descarga de la
librería para Python con este comando siguiente se realiza la instalación en la terminal:

sudo apt-get install python-dev


sudo apt-get install python-rpi.gpio

Una vez realizado la instalación y configuración de los puertos se crea un archivo


Python: sudo nano foco.py se ejecuta en la terminal antes de programar en Python.

import RPi.GPIO as GPIO #Libreria Python GPIO


import time #Libreria Time
GPIO.setmode(GPIO.BCM) #Establecemos el sistema de numeración de pins BCM
GPIO.setup(4, GPIO.OUT) #Ponemos el Pin GPIO4 como salida

95
while True:
print"ON"
GPIO.output(4, GPIO.HIGH)
time.sleep(1)
print"OFF"
GPIO.output(4, GPIO.LOW)
time.sleep(1)
GPIO.cleanup() #Reiniciar configuración pines GPIO
Script del sensor de temperatura y humedad.

Programa : Sensor de temperatura DHT11 com Raspberry Pi B+


import Adafruit_DHT
import RPi.GPIO as GPIO
import time
Define tipo de sensor
sensor = Adafruit_DHT.DHT11
GPIO.setmode(GPIO.BOARD)
Define a GPIO conectada
pino_sensor = 25
Script del sensor de detección de movimiento.

96
Figura 3.58
Interfaz del Funcionamiento del GPIO_PIR, Detección de Movimiento

Fuente: [Elaboración propia]

Figura 3.59
Interfaz del Funcionamiento del Acceso OffPir.py Detección de Movimiento

Fuente: [Elaboración propia]

97
3.4.3.2 Pruebas de Funcionamiento

En esta sección se realiza la comprobación de funcionamiento de cada área desde los


circuitos realizados.

En la figura 3.60 se pude visualizar el funcionamiento de la detección de temperatura y


humedad del clima interior de la granja de pollos mediante los circuitos realizados se pude
ver los resultados.

Figura 3.60
Interfaz de la Temperatura y Humedad

Fuente. [Elaboración propia]

98
Figura 3.61
Interfaz del Menú de Cámara

Fuente. [Elaboración propia]

99
Figura 3.62

Interfaz de Visualización de Granja Mediante Cámara

Fuente. [Elaboración propia]

Figura 3.63
Interfaz de Funcionamiento del Sistema

Fuente. [Elaboración propia]

100
Cuadro 3.2
Casos de Prueba Para la Verificación de Funcionalidades de los Circuitos

Caso de prueba Descripción Resultados Resultados obtenidos


esperados
Es la pulsación del Solicitud de Ingresar al sistema se
botón de encender automatización inicia sesión es correcta
Circuito de
la luz, en la página para el encendido y se puede encender las
iluminación
web de un usuario de la luz desde la luces desde el botón son
encender luces
perteneciente al página web. satisfactoriamente de
municipio. los resultados obtenidos
de los circuitos
desarrollados.
Es la pulsación del Solicitud de Ingresar al sistema se
botón de apagar la automatización iniciar sesión es
Circuito de
luz, en la página para el apagado de correcta y se puede
iluminación pagar
web de un usuario la luz desde la apagar las luces son
luces
perteneciente al página web. satisfactoriamente de
municipio. los resultados obtenidos
de los circuitos
desarrollados.
Es la pulsación del Solicitud de Ingresar al sistema se
botón de encender automatización inicia sesión es correcta
los ventiladores, para el encendido y se pude encender los
Circuito de en la página web de los ventiladores ventiladores desde el
encender los de un usuario desde la página botón son
ventiladores perteneciente al web. satisfactoriamente de
municipio. los resultados obtenidos
de los circuitos
desarrollados.

Es la pulsación del Solicitud de Ingresar al sistema se


botón de apagar automatización inicia sesión es correcta
los ventiladores, para el apagado de y se pude apagar los
Circuito de apagar en la página web los ventiladores ventiladores desde el
los ventiladores de un usuario desde la página botón son
perteneciente al web. satisfactoriamente de
municipio. los resultados obtenidos
de los circuitos
desarrollados.

Es la activación Se activara y se El sistema activa y


del sensor para la desactivaran el desactiva el sensor de
detección de sensor de movimiento en la

101
movimiento de los movimiento para entrada de la granja
Circuito del sensor
alrededores de la la captura de satisfactoriamente,
PIR, la detección de
granja. cualquier como también se pude
movimiento externa
Está situado en la movimiento de activar y desactivar
la personas en el desde un dispositivo
puerta de
pasillo de entrada correctamente.
granja.
a la granja.
Es el encendido Se enciende y se El sistema enciende y
de del área de la apaga la apaga la iluminación
Circuito de la
iluminación iluminación externa correctamente
iluminación externa
externa externa si en caso como también se pude
no se requiere encender y apagar
encender dentro desde el sistema web es
de la granja. satisfactoriamente.

Es la regulación Se pude activar y El sistema activa y


de la intensidad de desactivar como desactiva la calibración
Circuito de
iluminación al también se pude de la intensidad de
calibración de la
nivel que se regular. iluminación como
intensidad de
requiere. también se pude regular
iluminación
al porcentaje que se
requiere correctamente.

Es el monitoreo de Se puede ver el El sistema muestra el


la temperatura y estado de estado de temperatura y
Circuito de DH11
humedad en la temperatura y humedad. El
para la temperatura
página web de un humedad en la funcionamiento del
y humedad
usuario página web del circuito desarrollado las
perteneciente al funcionamiento en respuestas es
municipio. la granja. correctamente.

Es la pulsación del Se enciende y se El sistema de la cámara


botón de encender apaga la cámara si se enciende y se pude
y apagar la cámara en caso no se visualizar en directo,
Circuito de para el monitoreo requiere encender como también se apaga
encender la cámara de la página web dentro de la y el funcionamiento del
de un usuario granja. circuito desarrollado las
perteneciente al respuestas son
municipio. correctamente.

102
CONCLUSIONES

El trabajo presenta un prototipo de un sistema web para el monitoreo con el fin de regular
las condiciones climáticas y de generar vigilancia interna que permite regular la granja de
pollos de manera remota ya que este tipo de actividad estuvo gestionado por los sujetos que
trabajan en la granja y estos regulaban tanto los factores climáticos como la vigilancia
interna de forma tradicional y manual, por lo cual el Gobierno Autónomo Municipal de
Coripata sufría las consecuencias de los procesos y actividades que se desarrollan en ella.
El continuo crecimiento de la granja tanto en producto como en servicios hace que esta se
vea cada vez más vulnerable a los eventos de mortalidad de los pollos y la gestión
administrativa y de los procesos dentro de la misma, es así que los constantes cambios
climáticos que se presentan en la región como el invierno, verano, otoño y primavera,
hacen insuficiente el desarrollo de los procesos industriales de la crianza de pollos por lo
cual se implementó un sistema que realiza el monitoreo y la vigilancia de la variables
climáticas como la humedad, la temperatura entre otros y también se encarga de la
vigilancia interna como externa de la mima.

Para ello, se consideró como alternativa de bajo costo el uso de sistemas embebidos como
la Raspberry Pi el cual facilito la terminación del proyecto gracias a la cantidad de
información y de código libre que circula sobre estos en la red, además de permitir la
modificación y extensión para trabajos futuros.

Para garantizar el funcionamiento de cada uno de los sensores instalados se realizaron


pruebas en las que se verificaban la salida variable de los sensores respecto a los cambios
externos a los que se les exponía. Asimismo, se comprobó el funcionamiento continuo del
sistema al estar encendido por varias horas sin interrupción, el cual envió los datos
recogidos por los sensores sin ningún problema, además se constató que durante el período
de tiempo en que se mantuvo encendido el sistema, la base de datos recibió información,
guardó los datos y estos se vieron reflejados en el sitio web el cual permanecía activo y
funcional inmediatamente se conectaba la Raspberry Pi a internet.

Por último el Sistema web para el monitoreo de las condiciones climáticas y vigilancia
interna de la granja de pollos del Gobierno Autónomo Municipal de Coripata permite
controlar de manera remota la granja utilizando la Raspberry Pi, con sensores y actuadores

103
compatibles con este dispositivo. Por último se utilizó Raspberry PI porque su hardware
permite implementar un servidor Web y principalmente controlar sus entradas y salidas
(GPIO). Se realizó el modelado de negocio actual y alternativo según al análisis de todos
los procesos que involucran al sistema tomando en cuenta a todos los elementos como
análisis de requerimientos proporcionados por el Gobierno Autónomo Municipal de
Coripata. Se realizó la conexión entre la Raspberry Pi y el Sistema web, para la salida de
funcionamiento de la tarjeta, el desarrollo de circuitos eléctricos para la automatización de
luces, ventiladores, detección de movimiento externa, iluminación externa, calibración de
iluminación, control de humedad y temperatura y cámara para la implementación en los
galpones con la Raspberry Pi.

104
RECOMENDACIONES

Para garantizar el buen funcionamiento de la Raspberry Pi. Y proteger los archivos e un


posible daño por falta de energía es necesario contar con un circuito de potenciación, lo
cual permite colocar el sistema implementado en cualquier sitio.

Es posible hacerlo evolucionar o agregar funcionalidad al sistema web en la granja de


pollos basado en la tecnología Raspberry Pi. Con el fin de automatizar bebederos,
comederos y detección de gas y otros.

105
REFERENCIAS BIBLIOGRAFÍAS

[1] Debei, Haddadeh, Avison, (17 de agosto de 2008). Modelo de negocio. [Electrónico].
Disponible en: http://www.bdigital.unal.edu.co/5152/1/940794.2011.pdf

[2] Timmers, (1998). Los modelos de negocio para los mercados electrónicos.
[Electrónico]. Disponible en: http://www.bdigital.unal.edu.co/5152/1/940794.2011.pdf

[3] Zelkovitz, (1978). Ingeniería de software. [Electrónico]. Disponible en:


http://www.udea.edu.co/wps/portal/udea/web/inicio/investigacion/grupos-
investigacion/ingenieria-tecnologia/ingenieria-software

[4] Mitchel H., Levine, (2000). Análisis de los entregables producidos en la vida de
desarrollo de software Ciclo. [Electrónico]. Disponible en:
file:///C:/Users/Yola/Downloads/guia_de_ingenieria_del_software.pdf

[5] Boehm, (1976). El modelo en espiral. Disponible en http://modeloespiral.blogspot.com/

[6] Barry, Boehm, (1988). El Modelo Evolutivo Espiral. [Electrónico]. Disponible en:
http://www.ojovisual.net/galofarino/modeloespiral.pdf

[7] I. Jacobson, G. Booch y J.Rumbaugh Addison Wesley, (Pearson Education 1999).


Aanálisis de diseño de sistemas sexta edición. [Electrónico]. Disponible en:
https://drive.google.com/file/d/0BwWwTdM7msEKMXVSOHpOc05wNTg/view

[8] Rasmus, Lerdorf, (1995). PHP. [Electrónico]. Disponible


en: http://www.mclibre.org/consultar/php/lecciones/php_quees.html

[9] David A. Wheeler's https://es.wikipedia.org/wiki/NetBeans

[10] Andrew Troelsen (2008) https://msdn.microsoft.com/es-


es/library/fx6bk1f4(v=vs.90).aspx

[11] Megias J.,David, (26 de mayo de 2011). Bases de datos. [Electrónico]. Disponible en:
http://www.uoc.edu/masters/oficiales/img/913.pdf

[12] Worsley John, Drake Joshua D. (2002). PostgreSQL [Electrónico]. Disponible en:
http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-de-
datos/P06_M2109_02152.pdf

[13] JD Edwards, PeopleSoft. Oracle. [Electronica]. Disponible en:


http://www.oracle.com/technetwork/es/documentation/317505-esa.pdf

[13] Martin, Richard, (1994). Estrategias cliente / servidor [Electrónico]. Disponible en:
http://www.clubinvestigacioncr.com/docs/informe23.pdf

[14] Wiley. Introduction to Client / Server Systems. [Electrónico]. Disponible en:


http://oposicionestic.blogspot.com/2011/06/arquitectura-cliente-servidor.html

106
[15] (29 de febrero del 2012). La Fundación Raspberry Pi. [Electrónico]. Disponible en:
https://www.raspberrypi.org/

[16] Megias, J.,David. Servidor web. [Electrónico]. Disponible en: http://fpaez.com/como-


montar-un-servidor-web-en-raspberry-pi/ y

http://profesores.elo.utfsm.cl/~agv/elo322/1s15/projects/reports/Acceso_Remoto_Aplicado
_al_Protocolo_SSH.pdf

[17] Yukihiro Matsumoto. El lenguaje de programación Ruby. [Electrónico]. Disponible


en: http://www.desarrolloweb.com/articulos/1325.php

[18] Eduardo J. Carletti. Sensores. [Electrónico]. Disponible en: http://robots-


argentina.com.ar/Sensores_general.htm

[19] John Bardeen, William Bradford Technologies. [Electrónico]. Disponible


en: http://www.definicionabc.com/tecnologia/transistor.php

[20] Guido Rossum. Python. [Electrónico]. Disponible en

http://es.tldp.org/Tutoriales/Python/tut.pdf

[22] Anaya. (2002). Apache, php. [Electrónico]. Disponible en: www.mysql.com


http://www.monografias.com/trabajos23/modelos-de-negocio/modelos-de-
negocio.shtml#ixzz47sgppzSF

[23] Ian Gilfillan. (2003). Conexiones Remotas. [Electrónico]. Disponible en:

http://diymakers.es/conexion-remota-ssh-y-vnc/

[24] Dittich Stefan. Visual Studio. [Electrónico]. Disponible en:

https://www.visualstudio.com/

[25] OracleCorporation, (27 de mayo de 2015). Oracle. [Electrónico]. Disponible en:


http://www.oracle.com/technetwork/es/documentation/317497-esa.pdf

[26] T. Atomi, Arduino vs. Raspberry pi vs. beagle bone. Disponible en: http://e-
elektronic.blogspot.com/2013/08/arduino-vs-raspberri-pi-vs-beagle-bone.html

[27] Antonio Mónaco (2015 - 2015). Servidor basado en Raspberry pi con panel de gestión
centralizada. Disponible en: http://www.peatonet.com/servidor-basado-en-raspberry-pi-
con-panel-de-gestion-centralizada-2/

[28] Grupo de Hostienda, (2013). Desarrollo de aplicaciones Android, programación


Android. Disponible en: http://www.android-aplicaciones.com/category/desarrollos-
android/

107
[29] Yadira Pérez Agustí. 2008, febrero 28). Modelado de negocio y gestión de requisitos
como etapas imprescindibles para el desarrollo de los sistemas automatizados de
información. Disponible en: http://bvs.sld.cu/revistas/aci/vol17_3_08/aci09308.htm

[30] Grupo de Investigación en Sistemas e Información, “Avances en sistemas e


informática”, vol. 7, No.20, pp. 2-5. Marzo 2010.

[31] BOOCH Grady, RUMBAUGH James, JACOBSON Ivar, 2000 “El Lenguaje
Unificado de

Modelado (UML)” Pearson Educación, Madrid.

[32] SQL SERVER 2005 EXPRESS http://msdn.microsoft.com/vstudio/express/sql/ 20 de


Diciembre

[33] Yadira Pérez Agustí. (2008, Febrero 28). Modelado de negocio y gestión de requisitos
como etapas imprescindibles para el desarrollo de los sistemas automatizados de
información. Disponible en: http://bvs.sld.cu/revistas/aci/vol17_3_08/aci09.htm

[34] Desarrollo de aplicaciones Android, programación Android. Disponible en:


http://www.android-aplicaciones.com/desarrollos-android/

[35] T. Atomic, Arduino vs. Raspberry pi vs. beagle bone. Disponible en: http://e-
elektronic.blogspot.com/2013/08/arduino-vs-raspberri-pi-vs-beagle-bone.html

[36] Antonio Mónaco (2015 - 2015). Servidor basado en Raspberry pi con panel de gestión
centralizada. Disponible en: http://www.peatonet.com/servidor-basado-en-raspberry-pi-
con-panel-de-gestion-centralizada-2/

[37] [Electrónico]. Diagrama de flujo. Disponible en:


http://ww2.educarchile.cl/UserFiles/P0029/File/Objetos_Didacticos/ELO_12_ELE/Recurso
s_para_la_Actividad/Como_crear_un_Diagrama_de_Flujo.pdf

[38] Roger S. (2002). [Electrónico]. Ingeniería de software. Disponible en:


http://www.academia.edu/10841608/Ingenieria_de_software_un_enfoque_practico_7ed.Pre
ssman

[39] Vicente Eslava Muños, “patrones de arquitectura” en El nuevo PHP y Conceptos


avanzados. 1ª edición. España: Bubok Publishing S. L. , 2013

108
ANEXOS

También podría gustarte