Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
CARRERA INGENIERIA DE SISTEMAS
PROYECTO DE GRADO
Tutor
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.
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
ix
ÍNDICE DE FIGURAS
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 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
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.
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.
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.
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.
“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.
1.2 Problema
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.3 Objetivos
5
1.4 Alcances y Límites
1.4.1 Alcances
1.4.2 Limites
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.
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:
Raspberry Pi
Cargador universal
Monitor
Teclado
Mouse
Micro SD
7
1.5.3 Factibilidad Operacional
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.
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.
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
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”.
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 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.
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.
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.
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
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]
Figura 2.2
Funcionamiento del Modelo Espiral
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.
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]
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].
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.
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
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
Hay una variedad de lenguajes de programación, donde se debe verificar si cumple con los
requisitos para alcanzar los requerimientos del proyecto.
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.
20
2.3.2.2 Visual Studio
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).
Hay una variedad de herramienta de desarrollo, donde se debe verificar si cumple con los
requisitos para alcanzar los requerimientos del proyecto. [33]
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
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
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.
23
Figura 2.4
Sistema de Gestión de Base de Datos Sistema Cliente-Servidor
Fuente: [11]
2.3.4.1 MySQL
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.
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.
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:
2.3.4.3 Oracle
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]
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.
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
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.
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.
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.
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]
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
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]
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.
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]
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.
Figura 2.8
Raspberry Pi 2 GPIO (General Purpose Input/output)
Fuente: [15]
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]
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
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]
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.
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.
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.
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]
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.
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 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]
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.
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.
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
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.
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.
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]
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.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.
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
2.7.4 Transistores
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.
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.
2.7.6 Protoboard
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.
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
2.7.8 Optoacoplador
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.
51
Figura 3.1
Modelo de Negocio Actual
Supervisor Empleado
Inicio
¿supervisor
recibe informe?
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
52
Figura 3.2
Modelo de Negocio Alternativo
Inicio
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
¿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
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
3.2.2 Análisis
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.
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
Figura 3.4
55
Diagrama de Casos de Uso del Actor Supervisor
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
57
Caso de uso: Ingresar al sistema
Figura 3.6
Diagrama de Secuencia Ingresar al Sistema
Ingresar datos
Verificar(usuario, contraseña)
Verificar usuario()
Autorizacion
Ingresar al sistema
configurar(usuario)
modificar()
actualizar_datos()
confirmar actualizacion
58
Figura 3.8
Diagrama de Secuencia Administrar Interruptor
control de datos
activarr interruptor
activar()
actualizar()
confirmar actualizacion
desactivar interruptor
desactivar()
actualizar()
confirmar actualizacion
control de datos
activarr sensor
activar()
actualizar()
confirmar actualizacion
desactivar sensor
desactivar()
actualizar()
confirmar actualizacion
59
Figura 3.10
Diagrama de Secuencia Automatizar Luces
seleccionar
encender foco
encender()
:Gestorluz
apagar foco
apagar()
confirmar apagado
seleccionar
encender ventilador
encender()
confirmar encendido
apagar ventilador
apagar()
confirmar apagado
60
Figura 3.12
Diagrama de Secuencia Automatizar Detección de Movimiento Externo
seleccionar
confirmar activado
confirmar desactivado
seleccionar
confirmar activado
confirmar desactivado
61
Figura 3.14
Diagrama de Secuencia: Monitorear la Intensidad de Iluminación
seleccionar
seleccionar
62
Figura 3.16
Diagrama de Secuencia: Automatizar Cámara
seleccionar
activar camara
activar()
confirmar activado
desactivar camara
desactivar()
confirmar desactivado
3.2.3 Diseño
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
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
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
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
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
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
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
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
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
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
68
3.2.3.2 Diseño de la base de datos
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()
3.2.4 Pruebas
69
Figura 3.28
Interfaz de Identificación de Usuario
70
Figura 3.30
Interfaz de Autenticación Errónea
71
Figura 3.32
Interfaz de Editar Usuario
72
Figura 3.34
Interfaz de Actualizar Datos del Usuario
Figura 3.35
Interfaz de la Configuración del Interruptor
73
Figura 3.36
Interfaz de la Configuración de Sensores
74
Cuadro 3.1
Casos de Prueba Para la Verificación de Funcionalidades
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.
3.3.2 Análisis
77
3.3.2.1 Conexión de Red y Cargador de Energía a la Raspberry Pi
Figura 3.37
Interfaz de Conexión de Red y Cargador de Energía a la Raspberry Pi
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
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.
79
Figura 3.39
Interfaz de Configuración del Putty
Figura 3.40
Visualización de Comando de Linux de la Raspberry Pi
80
3.3.2.4 Conexión Remota al Raspberry Pi usando Xming
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
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
82
Figura 3.43
Interfaz de Instalación de un Servidor Web
3.3.3 Diseño
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
<?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")}
84
3.3.5 Prueba
Figura 3.45
Interfaz de Conexión al Servidor
85
Figura 3.46
Interfaz de Inicio de Sesión del Servidor MySQL
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
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
88
3.4 Tercer Incremento
Requerimientos Funcionales
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.
89
GPIO General (Entrada/salida)
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.
Figura 3.52
Esquema de Conexión de Led
90
Fuente. [Elaboración propia]
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]
El sensor envía datos al micro controlador utilizando solo un pin. Lo primero que se realiza
es enviar datos al sensor.
Figura 3.54
Esquema del Circuito DH11 Temperatura y Humedad
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
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
Figura 3.57
94
Esquema del Circuito de la Cámara en Raspberry Pi
3.4.3 Codificación
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:
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.
96
Figura 3.58
Interfaz del Funcionamiento del GPIO_PIR, Detección de Movimiento
Figura 3.59
Interfaz del Funcionamiento del Acceso OffPir.py Detección de Movimiento
97
3.4.3.2 Pruebas de Funcionamiento
Figura 3.60
Interfaz de la Temperatura y Humedad
98
Figura 3.61
Interfaz del Menú de Cámara
99
Figura 3.62
Figura 3.63
Interfaz de Funcionamiento del Sistema
100
Cuadro 3.2
Casos de Prueba Para la Verificación de Funcionalidades de los Circuitos
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.
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.
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
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
[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
[6] Barry, Boehm, (1988). El Modelo Evolutivo Espiral. [Electrónico]. Disponible en:
http://www.ojovisual.net/galofarino/modeloespiral.pdf
[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] Martin, Richard, (1994). Estrategias cliente / servidor [Electrónico]. Disponible en:
http://www.clubinvestigacioncr.com/docs/informe23.pdf
106
[15] (29 de febrero del 2012). La Fundación Raspberry Pi. [Electrónico]. Disponible en:
https://www.raspberrypi.org/
http://profesores.elo.utfsm.cl/~agv/elo322/1s15/projects/reports/Acceso_Remoto_Aplicado
_al_Protocolo_SSH.pdf
http://es.tldp.org/Tutoriales/Python/tut.pdf
http://diymakers.es/conexion-remota-ssh-y-vnc/
https://www.visualstudio.com/
[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/
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
[31] BOOCH Grady, RUMBAUGH James, JACOBSON Ivar, 2000 “El Lenguaje
Unificado de
[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
[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/
108
ANEXOS