• No results found

3.4 Communicative Purpose identification

3.4.2 Passage selection

3.2.1.9.1 Hoja De Datos

• 2 canales independientes protegidos con opto acopladores

• 2 Relés (Relays) de 1 polo 2 tiros

• El voltaje de la bobina del relé es de 12 VDC

• Led indicador para cada canal (enciende cuando la bobina del relé esta activa)

• Activado mediante corriente: el circuito de control debe proveer una corriente de 15 a 20 mA

• Puede controlado directamente por circuito lógicos

• Terminales de conexión de tornillo (clemas)

• Terminales de entrada de señal lógica con headers macho.

3.2.1.9.2 Funcionamiento

Tarjeta de relés opto acoplada, incluye 2 canales para ser controlados en forma remota. Ideal para controlar dispositivos en el hogar o en la industria. Cada canal es controlado por una entrada TTL, la cual puede ser fácilmente controlada por un microcontrolador o Arduino. Esta placa requiere de una alimentación de 12V.

4 CAPITULO IV 4.1 FASE DE ANALISIS

Para el desarrollo del prototipo fue necesario hacer una caracterización del problema por medio del estudio y análisis de los requerimientos, es decir la etapa de requerimientos. Para ello recolectamos información de las entidades de la región involucradas en el tema del agua lluvia y el sistema climático como por ejemplo Aguas & Aguas, la Carder, empresas

instaladoras de sistemas de captación de agua pluvial, experiencia de usuarios observación propia, etc.

4.1.1 REQUERIMIENTOS DE SOFTWARE

Fuente: Elaboración propia.

Para la elaboración del proyecto fue necesario seleccionar entre las diferentes tecnologías de hardware y software existentes en el mercado, dicha selección se realizó de acuerdo a factores importantes como: Facilidad de acceso, compatibilidad con distintos dispositivos (Sensores y actuadores), porque este tipo de plataformas son Open Source, de código de abierto, el lenguaje de programación tiene un nivel de aprendizaje medio bajo y son multiplataforma, los costos no son muy elevados, su consumo de energía es bastante reducido, también vale la pena aclarar que este tipo de tecnologías, cuentan con un gran número de seguidores a nivel mundial, lo cual facilita la resolución de dudas entre otras cosas, esto a su vez favorece la creación de frameworks para la interacción entre estos tipos de hardware.

4.1.1.1 IDE De Arduino

Fuente: Elaboración propia.

El entorno de desarrollo integrado IDE (Sigla en inglés de Integrated Development

Environment), es una aplicación compuesta por un conjunto de herramientas de desarrollo (Programación), este IDE puede dedicarse en exclusiva a un solo lenguaje de programación o bien utilizarse para varios lenguajes.

Consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI), además incorpora herramientas para cargar el programa ya compilado en la memoria flash del hardware. El lenguaje comúnmente más utilizado en este entorno de desarrollo es C++.

4.1.1.1.1 Algunas Razones Por Las Que Elegimos Utilizar Arduino

 Libre Y Extensible

El diseño de hardware de las placas, el entorno de desarrollo y el propio lenguaje de

programación pueden ser mejorados y ampliados por cualquier persona. Esto hace que exista un gran número de librerías de terceros, que puedan adaptarse mejor a nuestras necesidades.

 Tiene Una Gran Comunidad

Es utilizado por muchas personas alrededor del mundo, lo cual enriquece a una amplia documentación y colaboración continua.

 Es Multiplataforma

Podemos instalarlo y ejecutarlo en diferentes sistemas operativos como lo son: Windows, Linux y Mac OS X.

 Entorno y lenguaje de programación simple y claro

Por tener un nivel medio bajo de aprendizaje se hizo muy fácil utilizarlo e implementarlo, a la vez que es flexible y completo para usuarios avanzados, los cuales pueden aprovechar todas sus posibilidades, También cuenta con una alta documentación y ejemplos detallados de gran cantidad de proyectos.

4.1.1.2 Johnny – Five y Node.js

Fuente: Elaboración propia.

Es un framework de código abierto, creado para desarrollar soluciones en java scrpt para diferentes placas electrónicas como: Arduino, Raspberry, Beagle Bone etc. La librería de este framework fue desarrollada para programar java script ejecutando como Nodejs, su sintaxis es muy parecida a Jquery, lo cual la hace más entendible a personas adeptas a este lenguaje, aunque a las personas que inician con este framework se les hará muy sencillo trabajar con Johnny-five y Node.js. Además, esta librería tiene la posibilidad de manejar diferentes componentes electrónicos como: Sensores, motores, relays, displays entre otros. Debido a que Johnny-five fue diseñada 100% para robótica y optimizada para manejar los elementos mencionados anteriormente, solo con llamar una función se puede activar cualquiera de ellos.

4.1.1.3 Lenguaje De Programación Html

Fuente: Elaboración propia.

Este lenguaje de marcas de hipertexto (Hypertext Markup language), utiliza etiquetas para definir la forma y funcionamiento de las páginas web, este contenido puede ser texto, imagen, video, hipervínculos etc. Permite a los navegadores interpretar la posición de cada uno de los elementos del DOM, para construir la página final, la cual será vista por el usuario.

4.1.1.4 JavaScript

Fuente: Elaboración propia.

Es un lenguaje de programación interpretado, se utiliza principalmente en su forma del lado del cliente, implementado como parte de un navegador web, permitiendo mejoras en la interfaz de usuario y creación de páginas web dinámicas.

Todos los navegadores modernos entienden e interpretan código JavaScript integrado en las páginas web. Para interactuar con una página web, se provee el lenguaje JavaScript de una implementación del Document Object Model (DOM).

Actualmente es ampliamente utilizado para enviar y recibir información del servidor, junto con la ayuda de otras tecnologías como Ajax, es decir que el código JavaScript corre tanto al lado del cliente como en el servidor.

4.1.2 REQUERIMIENTOS DE HARDWARE

4.1.2.1 Raspberry PI 3 Model B V1.2

Esta tarjeta fue utilizada para levantar el servidor web, mediante el Framework Johnny-five y el cual tiene incorporado Nodejs. Se comunica por medio USB a la consola serial del

Arduino, para así controlar los diferentes componentes.

4.1.2.2 Tarjeta Arduino Mega 2560

Esta tarjeta microcontroladora fue utilizada para dar control a los diferentes sensores y actuadores y poder tomar lectura del sensor de flujo y del sensor de ultrasonido, para ser mostrada en el display lcd.

4.1.2.3 Ethernet Shield W5100

Este módulo de arduino nos permitió poder conectar la tarjeta microcontroladora vía LAN y WAN, para así poder tener control sobre ella mediante cualquier dispositivo; ya sea

conectado a internet o en la red local.

4.1.2.4 Relay Shield

El módulo relay para Arduino, sirvió Para darle manejo y control a las electroválvulas y las motos bombas de agua.

4.1.2.5 Electroválvula

Este actuador fue el medio por el cual pudimos controlar el paso de agua a utilizar en determinado momento, ya que mediante programación se estableció que los dos sistemas de suministro de agua (Acueducto y agua pluvial) no se encuentren activos simultáneamente y a su vez poder controlar que servicio activar, por ejemplo: La ducha o la lavadora.

4.1.2.6 Sensor De Flujo

Este sensor nos capturo en tiempo real, la cantidad de agua utilizada en determinado servicio, para de esta manera tener un referente como usuario de lo que me he gastado en el mismo.

4.1.2.7 Sensor De Ultrasonido

Gracias a este dispositivo pudimos calcular el nivel de agua lluvia almacenada en tiempo real.

4.1.2.8 Display LCD

Este dispositivo nos permitió mostrar la información al usuario, enviada por los sensores de flujo y el HC- SR04.

4.1.3 REQUERIMIENTOS FUNCIONALES

4.1.3.1 Iniciar el sistema con un nombre de usuario y contraseña.

El software debe contener un método de autenticación para los usuarios, para este caso específico deberá ser un nombre de usuario y una contraseña.

4.1.3.2 Mostrar la cantidad de agua almacenada en tiempo real.

La parametrización del sistema debe permitir al usuario administrador y general, una vez se ingrese al sistema, conocer en tiempo real la cantidad de agua almacenada que tiene

almacenada el sistema de captación pluvial, a través de una pantalla LCD de visualización que este cerca y de fácil acceso a los servicios que se están utilizando.

4.1.3.3 Permitir activar el servicio deseado.

La aplicación debe contar con un diseño de interfaz gráfico de fácil uso, que permita al usuario administrador, interactuar de forma amigable con el sistema, en el momento de activar o desactivar el servicio deseado.

4.1.3.4 Visualizar el flujo de agua utilizado en el servicio activado.

La aplicación debe estar parametrizada de tal manera que permita a los dos tipos de usuarios (Administrador y general), observar en pantalla el flujo de agua utilizado para el servicio que está activo o está siendo utilizado al usuario contar con un diseño de interfaz gráfico de fácil uso, que permita al usuario administrador. La visualización debe ser en una pantalla lcd que este cerca y de fácil acceso a los servicios que están siendo utilizados.

4.1.3.5 Saber o conocer la cantidad de agua utilizada mientras el servicio estuvo activo. El software deberá permitir a los dos perfiles de usuario (Administrador y general), conocer la cantidad de utilizada, mientras un servicio determinado estuvo activo, dicha información debe ser en mostrada en una pantalla LCD que sea de fácil acceso a los servicios que están siendo utilizados.

4.1.3.6 Una vez uno de los sistemas (Pluvial o Acueducto) este activo el otro deberá estar inactivo.

El sistema tiene que estar parametrizado de tal forma que garantice que uno de los dos

servicios este activo, pero no los dos al mismo tiempo, cuando se active uno, inmediatamente se debe inactivar el otro servicio, dicho procedimiento debe ser transparente para el usuario.

4.1.3.7 Activar varios servicios para el uso de agua pluvial.

La aplicación deberá ser lo suficientemente flexible, amigable y clara, toda vez que, si cualquiera de los dos perfiles de usuario requiere activar varios servicios en su casa, para hacer uso del servicio de aguas lluvias, pueda realizar el procedimiento sin ningún inconveniente.

4.1.3.8 Mediante un led se debe identificar cuando uno u otro servicio está activo.

El sistema debe contar dentro de su arquitectura con dos Leds, que indiquen si un servicio

está o no activo y además los diferencie uno de otro, estos deben estar ubicados de forma visible para el usuario.

4.1.3.9 Conocer que servicios están activos.

La parametrización del sistema dentro de su funcionalidad, debe permitir a los dos perfiles de usuario, conocer que servicios están activos, para que este a su vez pueda tomar decisiones si se requieren en un momento determinado.

4.1.3.10 El usuario administrador tendrá control de todos los servicios.

La aplicación debe de contener dos tipos de usuarios, uno con perfil general y otro con el de administrador, el cual tendrá acceso a todas las funcionalidades del aplicativo, incluso las que tienen restricciones.

4.1.4 REQUERIMIENTOS NO FUNCIONALES O ATRIBUTOS DE CALIDAD

Id Escenario Drivers Relacionados Prioridad

Nombre del Escenario Atributo de calidad, Restricción y/o Requerimiento Funcional asociados al escenario

Importancia del escenario

1 SEGURIDAD

El prototipo desarrollado para el uso eficiente y aprovechamiento del recurso hídrico obtenido por un sistema de captación de aguas lluvias en una vivienda unifamiliar pareada, permite que a través de una aplicación web el usuario se pueda autenticar mediante una contraseña y un nombre de usuario.

El componente de seguridad permite configurar la cantidad de intentos fallidos de autenticación antes de bloquear una cuenta de usuario.

5

2 USABILIDAD

*El sistema debe implementar un esquema de autorización sobre sus diferentes funcionalidades,

verificando que los diferentes sus diferentes tipos, solo puedan ser invocadas por usuarios que tienen las autorizaciones correspondientes, por ejemplo: El usuario administrador sobre el general en este caso. Para un usuario las funcionalidades no autorizadas deben comportarse como

si no existieran, es decir deben ser transparentes.

*El sistema debe ser ágil en todo lo que respecta a su funcionamiento, dando una respuesta oportuna y de la manera eficiente al usuario que lo utiliza.

3 MANTENIBILIDAD

La aplicación fue desarrollada teniendo en cuenta, los principios de modularidad, que permitan la

reutilización y mantenimientos con costos y tiempos razonables. Brindando confianza al usuario que hace uso de ella.

5

4 FIABILIDAD

El sistema debe estar disponible con todas sus funcionalidades, de manera completa, sin interrupciones;

generando así una mayor confianza al usuario.

5

5 EFICIENCIA

La aplicación deberá ejecutar cada una de sus funcionalidades en el menor tiempo posible haciendo uso óptimo de los recursos de la infraestructura tecnológica.

5

6 PORTABILIDAD

La aplicación deberá ser compatible con los diferentes navegadores, podrá ser tipo responsive, para utilizarla desde un móvil.

5

7 ACCESIBILIDAD

La aplicación web debe ser de fácil ingreso a cualquier tipo de usuario siendo lo más amigable posible, en cada una de sus funcionalidades.

5

8 MODIFICABILIDAD

La aplicación debe estar sujeta a cualquier cambio en la infraestructura tecnológica dada la evolución de la misma, sin que se vea afectado su funcionamiento.

4.2 FASE DE DISEÑO

4.2.1 CASOS DE USO

4.2.1.1 (ACTOR) ARDUINO

4.2.1.1.1 Imagen 14: Caso de uso “Verificar O Medir Volumen De Agua Pluvial”

Caso De Uso 1. Imagen 14 2

4.2.1.1.2 Tabla 1: Caso de uso “Verificar O Medir Volumen De Agua Pluvial”

Caso de uso CU:1

Nombre Verificar O Medir Volumen De Agua Pluvial

Actor Arduino

Descripción

Una vez se conecta el sistema a la fuente eléctrica, este de inmediato a través de la tarjeta Arduino, verifica en el recipiente destinado al almacenamiento de agua lluvia, los niveles del mismo.

Precondición El usuario ya sea administrador o general debe conectar el sistema a la fuente eléctrica.

Poscondición

Fuente: Elaboración propia

uc Verificar o medir v olumen de agua pluv ial

Verificar o medir v olumen

de agua pluv ial Mostrar v olumen en LCD

Arduino

4.2.1.1.3 Imagen 15: Caso de uso “Activar Sistema De Agua Potable”

Caso De Uso 2. Imagen 15 3

4.2.1.1.4 Tabla 2: Caso de uso “Activar Sistema De Agua Potable”

Caso de uso CU:2

Nombre Activar Sistema De Agua Potable

Actor Arduino

Descripción

Después de que el sistema esté conectado a la fuente eléctrica, este podrá Activar el servicio de agua potable, mediante la puesta en marcha de las Electroválvulas identificadas como número 2, 3 y 4, dejándolo disponible para su posterior uso, adicional a ello se enciende un led que identifica que el servicio está activo y lo diferencia del servicio pluvial.

Precondición

El sistema de agua potable se activará, cuando el de agua pluvial se inactive, ya sea por orden del usuario administrador o porque su tanque de almacenamiento no tiene agua para utilizar.

Poscondición Cuando el sistema de agua pluvial este activo, el de agua potable estará inactivo.

Fuente: Elaboración propia

uc Activ ar sistema de agua potable

Activ ar sistema de agua potable

Activ ar LED

Activ ar Electrov alv ulas 2, 3, 4

Desactiv ar Sistema De Aguas Lluv ias Arduino

«extend»

«include»

4.2.1.1.5 Imagen 16: Caso de uso “Desactivar Sistema De Agua Lluvias”

Caso De Uso 3. Imagen 16 4

4.2.1.1.6 Tabla 3: Caso de uso “Desactivar Sistema De Agua Lluvias”

Caso de uso CU:3

Nombre Desactivar Sistema De Agua Lluvias

Actor Arduino

Descripción

Estando activo el sistema, este a su vez podrá Desactivar el servicio de agua pluvial, cerrando las Electroválvulas identificadas como número 1, 3 y 4, activando de manera inmediata el servicio de agua potable, adicional a ello se apaga el led que identifica que el servicio está inactivo y lo

diferencia del servicio de agua potable.

Precondición

El servicio de agua pluvial se desactivará, cuando el sistema detecte que no hay agua almacenada en el tanque destinado para la captación de dicho líquido, o cuando por algún motivo el usuario administrador decida hacerlo.

Poscondición Cuando el sistema de agua pluvial está inactivo, el de agua potable estará activo.

Fuente: Elaboración propia

uc Desactiv ar sistema de aguas lluv ias

Desactiv ar Aguas Lluv ias Activ ar Sistema De Agua Potable Arduino «include»

4.2.1.1.7 Imagen 17: Caso de uso “Desactivar Sistema De Agua Potable”

Caso De Uso 4. Imagen 17 5

4.2.1.1.8 Tabla 4: Caso de uso “Desactivar Sistema De Agua Potable”

Caso de uso CU:4

Nombre Desactivar Sistema De Agua Potable

Actor Arduino

Descripción

Estando activo el sistema, este a su vez podrá Desactivar el servicio de agua potable, cerrando las Electroválvulas identificadas como número 2, 3 y 4, activando de manera inmediata el servicio de agua pluvial, adicional a ello se apaga el led que identifica que el servicio está inactivo y lo

diferencia del servicio de agua pluvial.

Precondición

El servicio de agua potable se desactivará, cuando el sistema detecte que el de aguas lluvias está activo, o cuando por algún motivo el usuario

administrador decida hacerlo.

Poscondición Cuando el sistema de agua potable está inactivo, el de agua pluvial estará activo.

Fuente: Elaboración propia

uc Desactiv ar Sistema De Agua Potable

Desactiv ar Sistema De Agua Potable

Activ ar Sistema De Agua Pluv ial Arduino

4.2.1.1.9 Imagen 18: Caso de uso “Activar Sistema De Agua Pluvial”

Caso De Uso 5. Imagen 18 6

4.2.1.1.10 Tabla 5: Caso de uso “Activar Sistema De Agua Pluvial”

Caso de uso CU:5

Nombre Activar Sistema De Agua Pluvial

Actor Arduino

Descripción

Estando activo el sistema, este a su vez podrá Activar el servicio de agua pluvial, cerrando las Electroválvulas identificadas como número 2, 3 y 4, desactivando de manera inmediata el servicio de agua potable, adicional a ello se enciende el led que identifica que el servicio está activo y lo diferencia del servicio de agua potable.

Precondición

El servicio de agua pluvial se activará, cuando el sistema detecte que hay agua almacenada en el tanque destinado para la captación de dicho líquido, o cuando por algún motivo el usuario administrador decida hacerlo.

Poscondición Cuando el sistema de agua pluvial está activo, el de agua potable estará inactivo.

Fuente: Elaboración propia

4.2.1.2 (ACTOR) USUARIO GENERAL

uc Desactiv ar Sistema De Aguas Lluv ias

Activ ar Sistema De Agua Pluv ial

Desactiv ar Sistema De Agua Potable

Activ ar Electrov alv ula 1, 3, 4

Calcular Agua Usada Mostrar Datos Obtenidos Arduino «extend» «extend» «include» «include»

4.2.1.2.1 Imagen 19: Caso de uso “Loguearse en el Sistema”

Caso De Uso 6. Imagen 19 7

4.2.1.2.2 Tabla 6: Caso de uso “Loguearse en el Sistema”

Caso De Uso CU:6

Nombre Loguearse en el sistema

Actor Usuario General

Descripción

Este caso de uso permite a los usuarios validar su identidad ante el sistema, muestra en pantalla un cuadro de dialogo donde se digita el login de

usuario y contraseña para poder ingresar a la aplicación.

Flujo principal

1. Se ingresa login de usuario. 2. Se ingresa la contraseña.

3. El sistema da acceso a la aplicación.

Flujo alternativo

1. La contraseña es incorrecta.

1.1 Se muestra en pantalla un mensaje de error “Contraseña no coincide con el usuario, intente nuevamente”.

Precondición

Poscondición El sistema permite acceso a la aplicación.

Fuente: Elaboración propia

uc Loguin

Usuario General

4.2.1.2.3 Imagen 20: Caso de uso “Consultar La Cantidad De Agua Almacenada”

Caso De Uso 7. Imagen 20 8

4.2.1.2.4 Tabla 7: Caso de uso “Consultar La Cantidad De Agua Almacenada”

Caso De Uso CU:7

Nombre Consultar La Cantidad De Agua Almacenada

Actor Usuario General

Descripción

Este caso de uso permite a los usuarios, una vez logueados en el sistema, poder consultar la cantidad de agua almacenada en el sistema de captación pluvial.

Flujo principal

1. Se ingresa login de usuario. 2. Se ingresa la contraseña.

3. El sistema da acceso a la aplicación.

4. Se puede consultar la cantidad de agua almacena en el sistema de captación.

Flujo alternativo

Precondición El usuario debe estar debidamente logueado en el sistema. Poscondición

Fuente: Elaboración propia

uc Consultar Agua Almacenada

Usuario General

Login

Consultar Cantidad De Agua Almacenada

4.2.1.2.5 Imagen 21: Caso de uso “Notar Estado De Los Servicio On - Off”

Caso De Uso 8. Imagen 21 9

4.2.1.2.6 Tabla 8: Caso de uso “Notar Estado De Los Servicio On - Off”

Caso De Uso CU:8

Nombre Notar Estado De Los Servicio On - Off

Actor Usuario General

Descripción

Este caso de uso permite a los usuarios, una vez logueados en el sistema, poder observar el estado de los servicios, (On - Off) para este caso.

Flujo principal

1. Se ingresa login de usuario.