Home

Ingeniería Técnica en Informática de Gestión SITEMA DE

image

Contents

1. ID ultimaslect php Nombre E S Funci n N mero de registros a mostrar en cada gr fico El usuario puede escoger un valor de los siguientes en la lista desplegable Par metros ltima hora valor entrada Ultimas dos horas Ultimas cuatro horas Ultimas ocho horas Ultimas doce horas D A Muestra en pantalla la secci n Ultimas lecturas a partir de los datos suministrados por el escripci n gt eee as usuario que son recogidos de la lista desplegable y las casillas de selecci n disponibles Elementos menu php asociados sketchConsulta pde Tabla 65 ultimaslect php ID actual php Par metros Muestra en pantalla la secci n Estado actual en la que el usuario puede visualizar la lectura D pe a mas reciente enviada desde Arduino y el estado actual de las condiciones y sistemas del escripci n invernadero Esta p gina se autorefresca cada 30 segundos sin intervenci n del usuario Elementos menu php ultimosdatos php asociados estadoactual php Tabla 66 actual php ID temperaturas php pl Nombre E S Funci n Par metros 7 intervalo entrada N mero de d as sobre los que calcular estad sticas de temperatura Muestra en pantalla la secci n Temperaturas en la que el usuario puede acceder a diversa D ae informaci n relacionada con las temperaturas m nimas m ximas y medias tanto exteriores escripci n e f gt como interiores al invernadero calculadas so
2. ID establecerConexion Par metros D eer Si no se han recibido paquetes UDP desde la aplicaci n de escritorio en el tiempo escripci n y PF ee estipulado muestra la informaci n actual de la conexi n IP y puerto Procedimientos draw asociados Tabla 50 Procedimiento establecerConexion ID inicializaConfig Nombre E S Funcion Parametros A event entrada Evento t ctil D A Redefinici n del m todo que gestiona los eventos t ctiles en Android para simular las escripci n A funciones del rat n en Processing Procedimientos F draw asociados Tabla 51 Procedimiento dispatchTouchEvent ID inicializaConfig Nombre E S Funci n Par metros arrayCondiciones salida Condiciones m ximas y m nimas fijadas por el usuario para las variables estadoOrdenes salida Modo de control de los sistemas de riego y ventilaci n Descripci n Carga la configuraci n almacenada en el archivo config txt establecida por el usuario Procedimientos setup asociados draw Tabla 52 Procedimiento inicializaConfig ID inicializarAnimacion Nombre E S Funci n Par metros anRiego salida Frames de la animaci n de riego activo anVent salida Frames de la animaci n de ventilaci n activa Descripci n Carga en memoria las animaciones del riego y ventilaci n Procedimientos A setup asociados Tabla 53 Procedimiento inicializarAnimacion 92 ORTDUINO Miguel Angel Hernanz Hernanz
3. asociados Tabla 56 Procedimiento comprobarCondiciones ID dibujarEstadoOrdenes Nombre E S Funci n x entrada Coordenada de posici n en el eje X 7 y entrada Coordenada de posici n en el eje Y Par metros R ET estadoOrdenes entrada Modo de control de los sistemas de riego y ventilaci n animRiego entrada Array de frames de la animaci n de riego animVent entrada Array de frames de la animaci n de ventilaci n D e Muestra en pantalla la actividad de los sistemas de riego y ventilaci n mediante im genes escripci n est ticas inactivo o animaciones activo Procedimientos asociados mostrarlnicio 93 Tabla 57 Procedimiento dibujarEstadoOrdenes wt Miguel Angel Hernanz Hernanz ID dibujarDeposito Nombre E S Funci n x entrada Coordenada en el eje X del borde superior izq del dep sito y entrada Coordenada en el eje Y del borde superior izq del dep sito Par metros ancho entrada Ancho del dep sito en pixels alto entrada Alto del dep sito en pixels nivel entrada Nivel porcentual de llenado del dep sito Dibuja en la pantalla la representaci n gr fica del nivel de agua actual en el dep sito para Descripci n riego Se indica el porcentaje de llenado encima de la representaci n del nivel actual de agua La opacidad del color azul depende del valor del nivel mayor transparencia a menor nivel de llenado Proce
4. S Privilegios globales Marcar todos Desmarcar todos Nota Los nombres de los privilegios de MySQL est n expresados en ingl s Datos Estructura Administraci n Limites de recursos Y SELECT Y CREATE Y GRANT Y INSERT Y ALTER Y SUPER Nota si cambia los par metros de estas opciones a 0 Y UPDATE Y INDEX Y PROCESS Y DELETE Y DROP Y RELOAD MAX QUERIES PER HOUR 0 Y FILE Y CREATE TEMPORARY TABLES Y SHUTDOWN A Y SHOW VIEW Y SHOW DATABASES MAX UPDATES PER HOUR 0 Y CREATE ROUTINE Y LOCK TABLES Y ALTER ROUTINE Y REFERENCES MAX CONNECTIONS PER HOUR 0 Y EXECUTE Y REPLICATION CLIENT 2 Y CREATE VIEW Y REPLICATION SLAVE MAX USER_CONNECTIONS 0 Y EVENT V CREATE USER Y TRIGGER Ilustraci n 34 Creaci n del usuario hortelano en la base de datos Inver Este usuario es utilizado internamente en el c digo de la aplicaci n de escritorio y en la p gina web por lo cual es de gran importancia que se a ada a los permisos de la base de datos Inver para que se puedan llevar a cabo las tareas de inserci n y consulta de registros 27
5. ID salvarConfig Par metros Guarda la configuraci n sobre los rangos aceptables para las variables y el modo de PEN control de cada sistema en el archivo config txt del servidor Si la conexi n con la aplicaci n Descripci n Android est activa y se necesita salvar la configuraci n env a un mensaje hacia la aplicaci n Android para notificar este evento Procedimientos draw asociados Tabla 54 Procedimiento salvarConfig ID mostrarDatos P Nombre E S Funci n Par metros aa Sia arrayDatos entrada Datos de la ultima lectura de los sensores recibida Descripcion Muestra en pantalla los nombres de las variables y el ultimo valor recibido para cada una Procedimientos po R mostrarlnicio asociados Tabla 55 Procedimiento mostrarDatos ID comprobarCondiciones Nombre E S Funci n Par metros arrayCondiciones entrada Array con los rangos aceptables de las variables estCondiciones salida Estado de las condiciones del invernadero en c digo num rico Comprueba si el valor actual de las condiciones del invernadero se encuentra dentro de los ee rangos aceptables fijados por el usuario mostrando en pantalla el estado de las Descripci n condiciones mediante l neas de texto informativas junto a un icono representativo del estado actual Devuelve una cadena con el c digo del estado de las condiciones Procedimientos mostrarlnicio
6. Alerta activada a Leer selecci n Conexi n con BB DD Recibir datos solicitados de la base de datos T estado Usar log de error en vez de datos Ejecutar sketch a partir de datos facilitados SI Leer input y construir Nuevo ps de gt nueva consulta de usuario datok Ilustraci n 20 Diagrama de flujo de la p gina web 77 wc Miguel Angel Hernanz Hernanz 3 3 6 PROCEDIMIENTOS DE LA APLICACI N ARDUINO ID setup Parametros Pere Procedimiento de inicializaci n que es ejecutado autom ticamente cuando se inicia el Descripci n i dispositivo Arduino Solo puede ser ejecutado una vez Procedimientos a loop asociados Tabla 1 Procedimiento setup ID loop Par metros Descripci n Bucle del procedimiento principal Es invocado despu s de ejecutar el procedimiento setup setup Procedimientos lecturaSensores asociados recibirOrdenes ejecutarOrdenes Tabla 2 Procedimiento loop ID lecturaSensores Nombre E S Funcion pinLDR entrada pin de entrada analdgica del fotorresistor pinLM35 entrada pin de entrada analdgica del sensor de temperatura exterior r pinYeso entrada pin de entrada anal gica del sensor de humedad del suelo Par metros pinDHT entrada pin de entrada analogica del sensor de humedad ambie
7. Consumo de agua para riego Consumo total 467 unidades Consumo medio diario 51 9 unidades d a Previsi n de duraci n de agua restante 11 d as Ilustraci n 20 Secci n Consumo de agua 5 5 Secci n Temperaturas En esta secci n se muestran los registros de las temperaturas medias m nimas y m ximas correspondientes al intervalo de d as introducido en la caja de texto por el usuario Temperaturas registradas Temperatura interior media 22 1 C Temperatura interior m xima 23 C Temperatura interior m nima 21 C Temperatura exterior media 24 1 C Temperatura exterior m xima 26 C Temperatura exterior m nima 22 C Se muestran los datos del 12 04 2014 al 15 04 2014 3 d as N mero de d as Mostrar Ilustraci n 21 Secci n Temperaturas registradas 18 ORTDUINO Miguel Angel Hernanz Hernanz 5 6 Secci n Sobre Hortduino Aqu se explica brevemente el objetivo del sistema Hortduino su funcionamiento y las diferentes partes que lo componen Esta secci n es la primera en visualizarse por el usuario cuando se accede a la web en el navegador 6 GU A DE RESOLUCI N DE PROBLEMAS Problema Soluci n La aplicaci n de escritorio no puede conectar con Arduino Compruebe que el servidor XAMPP se encuentra en funcionamiento Compruebe que la direcci n IP y puerto de Arduino son correctos Aseg rese que el dispositivo Arduino se en
8. dd Descripci n y funcionalidad Esta aplicaci n se podr a considerar como el coraz n del sistema puesto que se encarga de las funciones principales como son la comunicaci n directa con el hardware Arduino y la interacci n con el usuario Desde esta aplicaci n se controlan los rangos aceptables de las variables monitorizadas humedad ambiental humedad del suelo suelo temperatura interior temperatura exterior y nivel de agua para riego as como el modo de funcionamiento de los sistemas de riego y ventilaci n ON OFF AUTO Estas condiciones y el estado actual de los sistemas de riego y ventilaci n son almacenados en sendos ficheros de texto dentro del servidor XAMPP cada vez que se modifican los par metros en la aplicaci n para mantener la consistencia de configuraciones y estados entre los subsistemas front end La interfaz se ha tratado de simplificar todo lo posible para hacerla intuitiva y sencilla a la vez que funcional En el manual de usuario se detalla mas en profundidad las distintas partes y controles disponibles en la interfaz de la aplicaci n amp Interacci n con otros sistemas La aplicaci n de escritorio se ocupa de enviar la informaci n a almacenar en la base de datos del servidor XAMPP y si existe una conexi n activa desde el dispositivo Android reenviar la informaci n recibida en tiempo real hacia el dispositivo conectado y ejecutar las rdenes recibidas desde el mismo en el hardware Arduino amp Lim
9. lecturas rdenes lecturas modo actual par metros de control configuraci n actualizada lectura configuraci n persistente Ilustraci n 13 Diagrama del Flujo de Datos Nivel 2 Control de condiciones 68 e Miguel Angel Hernanz Hernanz informaci n lecturas solicitud info actual solicitud de informaci n solicitud info hist rica registros informaci n consulta registros Ilustraci n 14 Diagrama del Flujo de Datos Nivel 2 Sistema de informaci n Se ha optado por desarrollar los Diagramas de Flujo de Datos hasta el nivel 2 para cada nodo mostrado en el DFD Nivel 1 pues este nivel ofrece una buena visi n del intercambio de informaci n en forma bastante concisa pero sin entrar en el nivel de detalle de niveles siguientes que supondr an explotar cada nodo de nivel 2 a un rbol demasiado grande y complejo 2 2 MODELO DE DATOS DEL SISTEMA El modelo de datos del sistema tiene como objetivo describir las estructuras de datos que existen en el sistema y la forma en que se relacionan as como las operaciones que se pueden efectuar sobre los datos Para describir estas estructuras se emplean Diagramas de Entidad Relaci n DER con los que se representan gr ficamente las entidades relevantes del sistema de informaci n junto a las interrelaciones y propiedades correspondientes En la siguiente ilustraci n aparece representado el diagrama Entidad Relaci n del
10. Mostrar elementos Reenviar lecturas graficos orden de recarga de configuracion i NO Cambios en Activar guardado configuraci n Estado de de configuraci n alerta si odo de control NO autom tico Ilustraci n 18 Diagrama de flujo de la aplicaci n de escritorio NO Orden de activar desactivar sistemas de riego y ventilaci n DUINO Miguel Angel Hernanz Hernanz 3 3 4 DIAGRAMA DE FLUJO DE LA APLICACI N ANDROID lt gt lt Enviar rdenes Cambio en las condiciones Enviar rden salvar configuraci n Recargar configuraci n Cargar configuraci n Recibir lecturas Establecer conexi n con Ap Escritorio Conexi n activa con Escritorio Mostrar configuraci n de red Activar recarga de configuraci n Orden de ap Escritorio SI Mostrar elementos gr ficos Cambiar A gt Orden de cambio configuraci n aAp Escritorio Condiciones Estado de alerta odo de control autom tico Ilustraci n 19 Diagrama de flujo de la aplicaci n Android 76 Miguel Angel Hernanz Hernanz DUINO 3 3 5 DIAGRAMA DE FLUJO DE LA P GINA WEB Mostrar secci n Sobre Hortduino A adir icono de alerta a Menu
11. Procedimientos draw asociados Tabla 21 Procedimiento comprobarCondiciones ID dibujarSelectorActualizacion Nombre E S Funci n XX entrada Posici n de la esquina superior izq del selector en el eje X y entrada Posici n de la esquina superior izq del selector en el eje Y N ancho entrada Ancho del selector Par metros alto entrada Alto del selector valor entrada Valor num rico a mostrar en la caja del selector texto entrada Texto que acompa a al selector id entrada Identificador nico del selector D eo ala Dibuja en la pantalla el selector de horas minutos o segundos seg n corresponda y los escripci n controles para modificar el intervalo de actualizaci n de los gr ficos en pantalla Procedimientos dibujarSelectoresAct asociados Tabla 22 Procedimiento dibujarSelectorActualizaci n ID dibujarSelectoresAct Nombre E S Funci n 7 x entrada Posici n de la esquina superior izq del selector en el eje X Par metros a A y entrada Posici n de la esquina superior izq del selector en el eje Y intervaloAct salida Intervalo de actualizaci n de los gr ficos en pantalla Dibuja en la pantalla los selectores para modificar el intervalo de actualizaci n de los Descripci n gr ficos en pantalla Si el usuario modifica el intervalo de actualizaci n devuelve el nuevo intervalo Procedimientos asociados draw dibujarSelec
12. Comentarios Usado por el caso de uso RF 28 Mostrar condiciones actuales del invernadero Tabla 43 Caso de uso RF 26 Comprobar condiciones 44 ORTDUINO Miguel Angel Hernanz Hernanz RF 27 Configurar rangos aceptables Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 26 Comprobar condiciones RF 35 Salvar la configuraci n Descripci n Muestra la configuraci n de los rangos m nimo y m ximo aceptables para cada variable Permite la modificaci n del valor mediante botones para aumentar o disminuir el valor mostrado Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n La aplicaci n muestra en pantalla los valores correspondientes a los rangos p1 de cada variable El usuario modificar ese valor mediante los botones situados a la derecha p2 en la aplicaci n escritorio o arrastrar con el dedo el tri ngulo indicador sobre la barra en la aplicaci n Android p3 La aplicaci n guarda la nueva configuraci n ver caso de uso
13. La distancia real se ajusta entre el rango m nimo del sensor 3cm y la profundidad de dep sito marcada por profDeposito El valor que se env a es el porcentaje de llenado del dep sito de 0 a 100 nivelH20 map retorno 58 3 profDeposito 100 0 47 ORTDUZNO Miguel Angel Hernanz Hernanz nivelH20 nivelH20 10 Multiplicaci n para ajustarse al formato usado en Processing if nivelH20 lt 0 nivelH20 0 Evitamos niveles negativos si el sensor lee fuera del rango Cuadro 1 M todo de lectura del sensor ultras nico El periodo de lectura de las variables se ajust a 1 5 segundos excepto en el caso de la humedad del suelo donde se ha espaciado la lectura hasta los 10 segundos con el fin de no provocar un desgaste prematuro en el sensor y ahorrar energ a Hay que destacar que en el caso del sensor de temperatura externa se detectaron fuertes variaciones en el valor ofrecido en la primera lectura efectuada en cada intervalo por lo que se aplic una correcci n consistente en realizar 10 lecturas consecutivas con un peque o retraso entre cada una y devolver la media del conjunto de datos para estabilizar las lecturas El procedimiento de lectura de sensores y composici n de los datos a enviar se detalla en el c digo fuente mas abajo void lecturaSensores int pinLDR int pinLM35 int pinYeso byte pinDHT DHTPIN byte tipoDHT DHTTYPE String datos unsigned long tiempo millis
14. OBJ 01 Recibir informaci n de sensores remotos OBJ 03 Almacenar la informaci n recibida Requisitos asociados RF 01 Recibir informaci n sobre luminosidad RF 02 Recibir informaci n sobre temperatura exterior RF 03 Recibir informaci n sobre temperatura interior RF 04 Recibir informaci n sobre humedad ambiental RF 05 Recibir informaci n sobre humedad del suelo RF 06 Recibir informaci n sobre nivel de agua RF 15 Almacenar lecturas y estados en la base de datos Descripci n El sistema deber almacenar y acceder a la informaci n enviada por los sensores remotos Datos espec ficos Valor de la luminosidad registrada en el sensor remoto Valor de la temperatura exterior registrada en el sensor remoto Valor de la temperatura interior registrada en el sensor remoto Valor de la humedad ambiental registrada en el sensor remoto Valor de la humedad del suelo registrada en el sensor remoto Valor del nivel de agua registrada en el sensor remoto Intervalo temporal Indefinido Importancia Importante Urgencia Alta Estado Validado Estabilidad Alta Comentarios La informaci n recibida sobre las lecturas de los sensores remotos es atribuible a la aplicaciones de escritorio Tabla 9 Requisitos de informaci n Informaci n sobre los sensores remotos 11 wc Miguel Angel Hernanz Hernanz RI 02 Informaci n sobre el estado actual de los sistemas de riego y ventila
15. Tabla 7 Asignaci n de valor a los atributos relativos al esfuerzo 40 e Miguel Angel Hernanz Hernanz En este proyecto en cuesti n al ser de tama o relativamente peque o y disponer de un solo desarrollador se ha optado por el modo org nico en el modelo intermedio de COCOMO Los valores de las constantes que aparecen en las f rmulas mostradas anteriormente son extra dos de la tabla siguiente Modo a b c d Org nico 3 20 1 05 2 50 0 38 Semilibre 3 00 1 12 2 50 0 35 Empotrado 2 80 1 20 2 50 0 32 Tabla 8 Valor de las constantes seg n modo de desarrollo Con la estimaci n del tama o de cada componente de este proyecto realizada anteriormente mediante el an lisis de puntos de funci n y los valores de las constantes referentes al esfuerzo personal y tiempo de desarrollo obtenidas de la tabla anterior la elecci n de los valores asociados a los atributos usados en el c lculo del multiplicador m X es el ltimo paso antes de aplicar las f rmulas vistas anteriormente para obtener los valores estimados para cada subsistema Subsistema Atributos Aplicaci n de Escritorio Aplicaci n Android P gina Web Fiabilidad 0 75 0 75 0 75 Tama o de la base de datos 0 94 0 94 0 94 Complejidad del producto 0 85 0 70 0 70 Restricciones en tiempo de ejecuci n 1 00 1 00 1 00 Restricciones de memoria virtual 1 00 1 00 1 00 Volatilidad de la m quina virtual 1 00 1 00 0 87 Tiempo de respuesta
16. UNIVERSIDAD DE VALLADOLID E U de Inform tica Segovia Ingenier a T cnica en Inform tica de Gesti n SITEMA DE GESTI N Y CONTROL DE INVERNADERO AUTOMATIZADO CON ARDUINO HORTDUINO Alumno Miguel Angel Hernanz Hernanz Tutor Fernando D az G mez BLOQUE I MEMORIA DEL PFC e Miguel Angel Hernanz Hernanz ndice de contenido TIRO UO CIN soleada 3 1 1 IDENTIFICACI N DEL PROYECTO FIN DE CARRERA cccocnccnconinncnonnconinncnononioninonininiss 3 1 2 ORGANIZACI N DE LA DOCUMENTACION csscssesssssssessessessessssessessesssssssessesseessesees 3 2 DESCRIPCI N GENERAL DEL PROYECTO ccssessessssssssssessessessesscsessecsessessesecsecssssssscssssseeeces 5 2 1 OBJETIVOS DEL PFC ccccscsssssscssssecsssocsesscsscscssscssssssncansnesecensesessocensacsasacsscacsncnssnsnassas 11 2 2 CUESTIONES METODOL GICAS cr 11 23 TECNOLOG AS DE DESARRO DO nt 13 3 DESCRIPCI N GENERAL DEL PRODUCTO cui 15 Died ERONTEN Drain aaa 16 3 1 1 Aplicaci n de ESCritOrio cceccecsesscesseessceseeseeeceeseseceeseceseeseeeseesecnsecseeeseeaeeeseeeeteeesaees 16 3 1 2 Aplicaci n para dispositivos ANCroid cccccesceescesseeseesceeseeecesecseeesecseeeseceeeeseenseeeesaes 17 O A NA 18 3 2 BACK EN Di ide 20 3221 ArQUINO cad is 20 A O 21 3 2 3 Servidor XAMPP idos 22 4 ARQUITECTURA DEL PROYECTO ii ad 23 4 1 Arquitectura interna del subsistema Arduino ceceeceeesseseeeeeneeseeseeseeaeeseeeeeceeaeeeeeneeeeneesaes 24
17. nombre equals TempExterior r 132 g 255 b 0 minSensor 5 118 ORTDUINO Miguel Angel Hernanz Hernanz maxSensor 50 else if nombre equals HumAmbiente r 170 g 237 b 250 minSensor 10 maxSensor 100 humAmbSeleccionada true else if nombre equals HumSuelo r 252 g 208 b 126 minSensor 0 maxSensor 1000 dibujarGrilla 10 5 maxSensor stroke r g b strokeWeight 2 zoomX ancho 2 margen num curveTightness 0 8 strokeJoin ROUND beginShape yPos map int datos 0 minSensor maxSensor alto 0 margen curveVertex xPos yPos for int i 0 i lt datos length 1 i yPos map int datos i minSensor maxSensor alto 0 margen if i datos length 2 amp amp xPos gt 750 xPos 763 Ajusta el fin de la linea del grafico al borde derecho de la grilla curveVertex xPos yPos xPos zoomX curveVertex xPos yPos endShape void graficarRiego int num Muestra la linea de actividad del riego float finLinea margen float inicioLinea margen String consulta SELECT EstadoRiego FROM SELECT FROM lecturas ORDER BY Indice DESC LIMIT num sub ORDER BY Indice ASC String temporal loadStrings http hortduino no ip biz consultar php consulta consulta String datos split temporal 0 strokeCap SQUARE zoomX ancho 2 margen num stroke 138 255 255 40 strokeWeight 30 for int i
18. 9 Acceptance Not Required for Having Copies You are not required to accept this License in order to receive or run a copy of the Program Ancillary propagation of a covered work occurring solely as a consequence of using peer to peer transmission to receive a copy likewise does not require acceptance However nothing other than this License grants you permission to propagate or modify any covered work These actions infringe copyright if you do not accept this License Therefore by modifying or propagating a covered work you indicate your acceptance of this License to do so 10 Automatic Licensing of Downstream Recipients Each time you convey a covered work the recipient automatically receives a license from the original licensors to run modify and propagate that work subject to this License You are not responsible for enforcing compliance by third parties with this License An entity transaction is a transaction transferring control of an organization or substantially all assets of one or subdividing an organization or merging organizations If propagation of a covered work results from an entity transaction each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party s predecessor in interest had or could give under the previous paragraph plus a right to possession of the Corresponding Source of the work from the predecessor in interest if the predecessor has it or can
19. Acci n p1 Se recibe un paquete UDP con la orden de desactivaci n del sistema de riego p2 Se desactiva el pin de salida asociado al actuador mec nico con 0 voltios El sistema de riego no est en funcionamiento Paso Acci n n a n a Rendimiento Inferior a 5 segundos Frecuencia esperada Dependiente de las condiciones ambientales Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 35 Caso de uso RF 18 Desactivar sistema de riego en Arduino 36 ORTDUINO Miguel Angel Hernanz Hernanz RF 19 Recibir rdenes en Arduino Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 11 Enviar lecturas a aplicaci n de escritorio RF 17 Activar sistema de riego RF 18 Desactivar sistema de riego RF 22 Activar sistema de ventilaci n RF 23 Desactivar sistema de ventilaci n RF 20 Enviar rdenes a Arduino Descripci n Activa o desactiva los sistemas de riego y ventilaci n Genera una petici n de envio de lecturas a la IP asociada al paquete UDP Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n c
20. Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n p1 Se recibe un paquete UDP con la orden de activaci n del sistema de riego p2 Se activa el pin de salida asociado al actuador mec nico con 5 voltios Postcondici n El sistema de riego est en funcionamiento Excepciones Paso Acci n n a n a Rendimiento Inferior a 5 segundos Frecuencia esperada Dependiente de las condiciones ambientales Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 34 Caso de uso RF 17 Activar sistema de riego en Arduino 35 wc Miguel Angel Hernanz Hernanz RF 18 Desactivar sistema de riego en Arduino Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n Requisitos asociados RF 19 Recibir rdenes en Arduino RF 20 Enviar rdenes a Arduino Descripci n Desactiva el sistema de riego accionando el actuador mec nico asociado Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Postcondici n Excepciones Paso
21. Par metros Ceres Procedimiento de inicializaci n que es ejecutado autom ticamente cuando se inicia la Descripci n aplicaci n de escritorio Inicializa variables y conexiones Procedimientos inicializarAnimacion inicializaConfig asociados draw Tabla 10 Procedimiento setup ID draw Parametros Bucle del programa principal Es invocado automaticamente despu s del procedimiento Descripci n setup y se encarga de establecer los intervalos para recepci n de lecturas env o de rdenes guardado de datos y mostrar los elementos gr ficos de la interfaz Procedimientos asociados enviarOrdenes salvarConfig inicializaConfig establecerUltimaAct establecerConexion dibujarBotonesyEstados dibujarGraficosyEjes dibujarSelectoresAct mostrarDatos almacenarLecturas comprobarCondiciones salvarLecturas Tabla 11 Procedimiento draw ID establecerConexion Parametros Descripci n Determina si la conexi n con el dispositivo Arduino est activa en funci n de la recepci n de paquetes UDP en un intervalo de tiempo fijado Si no se recibe el n mero de paquetes esperados se marca la conexi n como inactiva y se invoca el procedimiento que muestra la ventana de configuraci n de red Procedimientos A draw asociados Tabla 12 Procedimiento establecerConexion ID mostrarMenuConfigConex Par metros Muestra el men de configuraci n de red en el caso de q
22. Procedimiento dibujarEjes ID mostrarLeyenda Nombre E S Funci n x entrada Coordenada en el eje X del origen del eje X del gr fico F y entrada Coordenada en el eje Y del origen del eje Y del gr fico Par metros A ancho entrada Ancho del eje en pixels zoomEjeX entrada Separaci n entre valores del gr fico en el eje X texto entrada Texto que se muestra debajo del gr fico Descripci n Muestra la leyenda del gr fico debajo del eje X centrada respecto al su ancho Cantos stjaejes Tabla 32 Procedimiento mostrarLeyenda 86 wt Miguel Angel Hernanz Hernanz ID dibujarBoton Nombre E S Funci n x entrada Coordenada en el eje X del bot n y entrada Coordenada en el eje Y del bot n Par metros ancho entrada Ancho del bot n en pixels alto entrada Alto del bot n en pixels estadoOrdenes entrada Modo de control de los sistemas de riego y ventilaci n id entrada Identificador del bot n riego o ventilaci n Dibuja el bot n para cambiar el modo de control de los sistemas de riego y ventilaci n Descripci n El modo de control es mostrado como texto en el interior del bot n el cual presenta un color diferente para cada modo verde ON rojo OFF amarillo AUTO Procedimientos dibujarBotonesyEstados asociados Tabla 33 Procedimiento dibujarBoton ID punteroSobreBoton Nombr
23. Procedimiento dibujarGrafico wt Miguel Angel Hernanz Hernanz ID dibujarDeposito Nombre E S Funci n x entrada Coordenada en el eje X del borde superior izq del dep sito y entrada Coordenada en el eje Y del borde superior izq del dep sito Par metros ancho entrada Ancho del dep sito en pixels alto entrada Alto del dep sito en pixels nivel entrada Nivel porcentual de llenado del dep sito Dibuja en la pantalla la representaci n gr fica del nivel de agua actual en el dep sito para Descripci n riego Se indica el porcentaje de llenado encima de la representaci n del nivel actual de agua La opacidad del color azul depende del valor del nivel mayor transparencia a menor nivel de llenado Procedimientos dibujarGraficosyEjes asociados Tabla 30 Procedimiento dibujarDeposito ID dibujarEjes Nombre E S Funci n xPos entrada Coordenada en el eje X del origen del eje X del gr fico yPos entrada Coordenada en el eje Y del origen del eje Y del gr fico Par metros ancho entrada Ancho del eje en pixels alto entrada Alto del eje en pixels leyenda entrada Texto que se muestra debajo del gr fico Descripci n Dibuja en la pantalla los ejes X e Y que acompa an a los gr ficos de las variables Procedimientos dibujarGraficosyEjes asociados mostrarLeyenda Tabla 31
24. Sublicensing is not allowed section 10 makes it unnecessary 3 Protecting Users Legal Rights From Anti Circumvention Law No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996 or similar laws prohibiting or restricting circumvention of such measures When you convey a covered work you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work and you disclaim any intention to limit operation or modification of the work as a means of enforcing against the work s users your or third parties legal rights to forbid circumvention of technological measures 4 Conveying Verbatim Copies You may convey verbatim copies of the Program s source code as you receive it in any medium provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice keep intact all notices stating that this License and any non permissive terms 62 e Miguel Angel Hernanz Hernanz added in accord with section 7 apply to the code keep intact all notices of the absence of any warranty and give all recipients a copy of this License along with the Program You may charge any price or no price for each copy that you convey and you may offer support or warr
25. Tiempo transcurrido desde el inicio del loop char bufferTemp 5 Buffer para la conversi n float string float tempLM35 0 0 Temperatura exterior en grados celsius int humedadSuelo int sumTemps 0 int luminosidad analogRead pinLDR int humedadDHT dht readHumidity int tempDHT dht readTemperature lecturaPing if isnan humedadDHT isnan tempDHT Comprobaci n de que la lectura del sensor DHT11 es correcta Serial println Error de lectura en DHT11 humedadDHT 0 tempDHT 0 if tiempo actHumSuelo gt intervaloHumSuelo Lectura espaciada de la humedad del suelo para evitar electr lisis en los materiales actHumSuelo millis digitalWrite pin5V HIGH delay 5 humedadSuelo 1023 analogRead pinYeso Se resta la resistencia ofrecida por el sensor de yeso humedadSueloAnt humedadSuelo Conservar la lectura digitalWrite pin5V LOW else humedadSuelo humedadSueloAnt Mantenemos el valor de la anterior lectura en la variable humedadSuelo tempLM35 analogRead pinLM35 Descartamos la primera lectura por alta fluctuaci n 48 ORTDUINO Miguel Angel Hernanz Hernanz for int i 0 i lt 9 i Obtiene 10 muestras de temperatura para mayor precisi n sumTemps analogRead pinLM35 Las muestras son almacenadas en la variable sumTemps delay 100 Retardo para estabilizar las lecturas Correci n de mues
26. as N mero de dias Ilustraci n 41 Secci n Temperaturas Registradas de la p gina web ld Sobre Hortduino Aqu se explica brevemente el objetivo del sistema Hortduino su funcionamiento y las diferentes partes que lo componen Esta secci n es la primera en visualizarse por el usuario cuando se accede a la web en el navegador y es la nica no generada din micamente por el servidor Bienvenido a la p gina web del proyecto Hortduino Hortduino es un proyecto de control de invernadero para horticultura a peque a escala Este proyecto se basa Fundamentalmente en la conocida plataforma de open hardware Arduino empleada para monitorizar una serie de sensores que recogen datos sobre algunos de los principales factores intervinientes en el crecimiento y desarrollo de las plantas humedad ambiental y del suelo temperatura y luz solar as como otras variables tiles en la planificaci n como puede ser la cantidad de agua de riego usada en un determinado tiempo Los datos obtenidos de estas lecturas son enviados mediante paquetes UDP a la aplicaci n Processing que se ejecuta en el servidor remoto y se encarga de controlar los sistemas de riego y ventilaci n manual o autom ticamente en funci n de los valores m ximos y m nimos que el usuario ha fijado para las variables del sistema as como de enviar las lecturas de los sensores a una base de datos MySQL donde son almacenados para realizar consultas estad sticas sob
27. n PhPMyAdmin a la que se accede mediante el bot n Config de la secci n correspondiente a MySQL en el panel de control de XAMPP El password inicial del superusuario root est vac o por defecto por lo que es necesario establecer uno nuevo inmediatamente por motivos de seguridad 25 DUINO Miguel Angel Hernanz Hernanz phpMyAdmin Bienvenido a phpMyAdmin Idioma Language Espa ol Spanish k Iniciar sesi n Usuario root Contrase a llustraci n 32 Login en phpMyAdmin Para utilizar la base de datos Inver con sus tablas asociadas que se adjunta en la documentaci n contenida en el CD es necesario importarla a trav s de esta interfaz web Esta operaci n se realiza desde el bot n Importar en la parte superior de la p gina web PhPMyAdmin seleccionando el archivo inver sql en la ventana de selecci n desplegada desde el bot n Examinar como puede observarse en la siguiente ilustraci n Servidor 127 0 0 4 Bases de datos SQL Estado actual Usuarios i Exportar 5 Importar amp Configuraci n Importando al servidor actual El archivo puede ser comprimido gzip bzip2 zip o descomprimido Un archivo comprimido tiene que terminar en formato compresi n Por ejemplo sql zip Buscar en su ordenador No se ha seleccionado ning n archivo M ximo 2 048KB Conjunto de caracteres del archivo utf 8 z Importaci n parcial llustraci n 33 Importar base de datos
28. nuevosDatos false else La direcci n IP que se conecta datos pertenece al dispositivo Android ipExterna ipAdress udp send datos ipAdress port Reenvia los datos al dispositivo Android conectado if char mensaje 0 1 Se han recibido ordenes desde Android switch mensaje 1 case 48 estadoOrdenes 0 0 break case 49 estadoOrdenes 0 1 break case 50 estadoOrdenes 0 2 break switch mensaje 2 case 48 estadoOrdenes 1 0 break case 49 estadoOrdenes 1 1 break case 50 estadoOrdenes 1 2 break salvarConfig El mensaje recibido contiene ordenes nuevas y se necesita guardar la configuraci n y refrescar las condiciones recargarCondiciones true Cuadro 3 M todo receive empleado en la aplicacion de escritorio 4 DISE O DE LA BASE DE DATOS La informaci n recibida desde el dispositivo Arduino resulta de gran utilidad a largo plazo si se quiere analizar la evoluci n de los cultivos y calificar el resultado final de la cosecha en relaci n a las condiciones establecidas para su crecimiento Para este fin se dispuso de una nica tabla que almacena los registros con la siguiente estructura 52 e Miguel Angel Hernanz Hernanz Columna Tipo Nulo Predeterminado Indice int 11 No Fecha timestamp No CURRENT_TIMESTAMP Luminosidad int 4 No TempExterior float No Tempinterior int 3 No HumAm
29. paso a paso lo visto anteriormente a este proyecto Aunque el sistema Hortduino se compone de varios subsistemas diferenciados se considera el conjunto total de todos ellos para hacer el c lculo final de los Puntos de Funci n amp Aplicaci n de Escritorio o Entradas Direcci n IP y puerto para conexi n con Arduino en caso de error baja Salidas Pantalla de informaci n principal la cual incluye informaci n de los sensores en tiempo real gr ficos interactivos y tiempo de su ltima actualizaci n nivel de agua en dep sito estado de los sistemas de riego ventilaci n mensajes y alertas del estado de las variables alta Pantalla de configuraci n de red para conexi n con Arduino baja Peticiones de usuario m Activar desactivar sistemas de riego y ventilaci n baja Modificar los rangos aceptables de las variables baja Informacion sobre la posici n del puntero del rat n en las gr ficas baja m Cambiar el intervalo de actualizaci n de las gr ficas interactivas baja Archivos Base de datos de lecturas de los sensores media Archivo de configuraci n de rangos de las variables y estados baja Archivo de estado actual de las condiciones baja Interfaces externas m Comunicaci n por red mediante protocolo UDP baja m Comunicaci n con servicio MySQL remoto baja 34 e Miguel Angel Hernanz Hernanz amp Aplicaci n Android o Entradas m Selecci n de men de
30. scsccecsecsseseeseeseceeseeseeseeseeseeseecesceeeeeeaeeeaeeeaeeeaeees 44 Tabla 11 Costes de los recursos software eesesessssssesesesssscsesesesssesstsesssesssseseseestessessessessessesses 45 Tabla 12 Coste de los recursos HUMAMNOS cc ececeeeeeeseceeeneeseeseeseeseeseeseeceeaeeaeeceseeseeeneceaeesaeeeaeens 45 Tabla 13 Estructura interna de la base de datos ccceccesccesessceeseesseeseceecesecseceseceeeeseseeeeeeesneeenaees 52 ndice de cuadros de c digo Cuadro 1 M todo de lectura del sensor ultraS niCO ccoococnnncccononcconnncnononcnononcnnnonnnnonnnnnononcnrnananonos 47 Cuadro 2 Procedimiento de lectura de sensores en ATdUINO ooooocccnncccnononanonancnonnncconononannnanononoconon 48 Cuadro 3 M todo receive empleado en la aplicaci n de escCritOTTO oooococnnnnnnnnocononconncnannnnnnnno 51 fe Miguel Angel Hernanz Hernanz 1 INTRODUCCI N 1 1 IDENTIFICACI N DEL PROYECTO FIN DE CARRERA T tulo Sistema de gesti n y control de invernadero automatizado con Arduino Hortduino Autor Miguel Angel Hernanz Hernanz Director Fernando D az G mez Departamento Inform tica rea Ciencias de la Computaci n e Inteligencia Artificial 1 2 ORGANIZACI N DE LA DOCUMENTACI N La documentaci n del proyecto Hortduino se estructura en tres secciones siguiendo la recomendaci n de la gu a de Proyectos Fin de Carrera La primera secci n se corresponde con la memoria del proyect
31. void dibujarSelector stroke 250 text texto xPos displayWidth 2 textWidth texto 2 yPos tamFuente 2 dibujarCajaTexto xPos margen 2 yPos tamFuente tamFuente str minimo dibujarCajaTexto displayWidth margen textWidth str maximo 2 yPos tamFuente tamFuente str maximo dibujarLinea xPos yPos dibujarMarcador map minimo limiteMin limiteMax margen displayWidth margen yPos tamFuente 3 tamFuente 2 MIN id dibujarMarcador map maximo limiteMin limiteMax margen displayWidth margen yPos tamFuente 3 tamFuente 2 MAX id textSize tamText stroke 250 fill 2507 117 ORTDUINO Miguel Angel Hernanz Hernanz SKETCH ESTAD STICAS DE LA P GINA WEB Este sketch es invocado desde la secci n Estad sticas de la p gina web Su funci n es la de generar gr ficos representativos de las variables seleccionadas por el usuario recabando los datos pertinentes desde la base de datos float zoomX 3 Separaci n entre puntos del eje X float etiqueta 10 Espaciado de etiquetas en el gr fico float xPos 15 Posici n inicial de dibujado en el eje X float yPos 50 Posici n inicial de dibujado en el eje Y int ancho 800 int alto 480 int margen 38 Margen desde el borde String timeStamps boolean grillaDibujada false Indica si se ha dibujado la grilla de fondo boolean humAmbSeleccionada false Indica si hay que
32. 09 Mostrar modo de control del sistema de ventilaci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n Requisitos asociados RF 12 Reenviar lecturas a aplicaci n Android Descripci n Muestra el modo de control actual del sistema de ventilaci n alternando entre el modo manual ON y OFF y el modo autom tico AUTO Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n con servidor XAMPP Aplicaci n de escritorio Android en funcionamiento Secuencia normal Paso Acci n p1 La aplicaci n carga la configuraci n p2 Se muestra el modo de control actual del sistema de ventilaci n Postcondici n El modo de control del sistema de ventilaci n aparece en la interfaz Paso Acci n Excepciones 4 Sino es posible cargar la configuraci n se genera la configuraci n por P defecto con valores igual a 0 Rendimiento Instant neo Frecuencia esperada Un cambio por segundo Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios El modo de control viene representado en la interfaz de usuario por el texto y el color del bot n asociado a cada modo Tabla 26 Caso de uso RF 09 Mostrar modo de control del sistema de ventilaci n 27 wt Miguel Angel Hern
33. 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos Requisitos asociados RI 01 Informaci n procedente de los sensores remotos Descripci n Recibe en Arduino la informaci n de temperatura interior del sensor Precondici n Dispositivo Arduino en funcionamiento Secuencia normal Paso Acci n p1 Leer temperatura en el pin de entrada asignado p2 Guardar el valor obtenido en la variable correspondiente Postcondici n El valor de temperatura interior est disponible para su env o Excepciones Paso Acci n p1 Si el sensor envi una lectura err nea NaN el valor asignado es 0 Rendimiento Dentro del intervalo de tiempo asignado a la lectura de sensores Frecuencia esperada Una lectura cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 19 Caso de uso RF 02 Recibir informaci n sobre temperatura interior 20 ORTDUINO Miguel Angel Hernanz Hernanz RF 03 Recibir informaci n sobre temperatura exterior Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos Requisitos asociados RI 01 Informaci n procedente de los sensores remotos Descripci n Recibe en Arduino la informaci n de temper
34. 19 e Miguel Angel Hernanz Hernanz 3 2 BACK END 3 2 1 Arduino 4 Descripci n y funcionalidad El dispositivo Arduino es una plataforma de hardware libre asequible y ampliamente utilizada para toda clase de proyectos que tengan que ver con la presencia de sensores y actuadores mec nicos as como proyectos de rob tica y dom tica En nuestro caso es el encargado de recibir y transformar la informaci n obtenida en la lectura de los sensores y trasladarla a la aplicaci n de escritorio por medio de un shield Ethernet proporcionando la conectividad necesaria con el router Otra funci n importante que desarrolla este hardware es la de activar y desactivar los actuadores correspondientes a los sistemas de riego y ventilaci n en base a las rdenes recibidas desde la aplicaci n de escritorio El proyecto Hortduino usa un Arduino modelo Mega 2560 dotado de un microcontrolador ATmega 2560 Las caracter sticas f sicas de este hardware son explicadas en mayor detalle dentro del ap ndice correspondiente siendo las mas destacadas m Memoria flash 256KB 8 KB usados por el bootloader Memoria SRAM 8 KB Pines de entrada anal gicos 16 Pines de entrada salida digitales 54 Velocidad de reloj 16 Mhz Voltaje operativo 5 V l Interacci n con otros sistemas Los sistemas que interaccionan con el dispositivo Arduino son el array de sensores de donde se toman las lecturas ambientales y la aplicaci n de escritorio desde l
35. 4 1 Arquitectura interna del subsistema ArdUlNO oooocicnnonicnnnnennnnnonnennrn nan nncnn cano nn cnn rn cncnnccnnnannno 24 4 2 Arquitectura interna del subsistema Aplicaci n de ESCritOTlO oooononcononncnncnncnncnconnconnconncnnnos 25 4 3 Arquitectura interna del subsistema Aplicaci n Alddr0ld oocooonnoniccnocnnonoonconnconcnnnonnonnncnncnnnnnoo 27 4 4 Arquitectura interna del subsistema Servidor XAMPP ccscesseeseeseeeseeseeeseeseeeeeseenseeneees 29 5 DESPLIEGUE DEL PRODUCTO tica a oi 31 6 PLANIFICACI N Y PRESUPUESTO scssssssssssssessessessessussnseseesessesssssessesseesecsecsesssesseeseensenseses 32 6 1 ESTIMACI N DEL TAMANO usina 34 6 1 ESTIMACI N DELTA MAN Osiris 34 6 2 ESTIMACI N DEL COSTE DE DESARROLLO scssessssessessessessssscsessessessssnssesssssseteeess 39 6 3 ESTIMACI N DE TARDAS Laia 42 6 4 PRESUPUESTO DEL PROYECTO c cc cccescsscscssseseeseeseeseeseeseeecceseeeesecsecsecseeaessesseeseeseeaees 45 7 CUESTIONES DE DISE O E IMPLEMENTACI N RESENABLEG scsescssesessssssesesessesens 47 8 CONCLUSIONES Y POSIBLES AMPLIACIONES cccceccessssesseseeseeseeseeeeseesesseseseesseesseeeasees 55 SL CONCLUSIONES taa ieoia 55 8 2 POSIBLES AMPLIACIONES ececesesssssseseeseeceeseeesecsceseeneeseesceseeeesaseaeeaeeaeeaeeaseaseesseeeaeee 56 A R case eh eocee atte eee sa he western eno 58 DATE NO av oc 59 e Miguel Angel Hernanz Hernanz ndice de Ilustraciones Ilustraci n 1 Vista g
36. 42 ORTDUINO Miguel Angel Hernanz Hernanz RF 25 Mostrar datos de lecturas recibidas Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 34 Recibir lecturas de Arduino Descripci n Muestra en la interfaz los datos de la ltima lectura recibida de Arduino Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n 4 La aplicaci n de escritorio recibe un paquete UDP conteniendo los valores P de los sensores separados por comas Si la aplicaci n Android est en funcionamiento el paquete UDP es p2 E reenviado a la IP de la aplicaci n Android 3 El contenido del paquete UDP es troceado y asignado a cada variable P correspondiente usando el car cter coma como separador de valores p4 Se muestra en pantalla el nombre de cada variable junto con el valor asignado Postcondici n El usuario puede ver en la pantalla los datos de la ltima lectura recibida Excepciones Pa
37. 6 o superior Dispositivo Android Pantalla con resoluci n 640 x 480 p xeles 2 MB de espacio libre en almacenamiento interno Acceso Wi Fi o equivalente Tabla 1 Requisitos de hardware Requisitos de software Dispositivos Recursos asociados Sistema operativo Windows Linux o OSX PC Sefvidor XAMPP Acceso a red local Internet Sistema operativo Windows o Linux PC Cliente Java Runtime Environment versi n 7 o superior Acceso a red local Internet Android OS 2 3 6 o superior Acceso a red local Internet Dispositivo Android Tabla 2 Requisitos de software ORTDUINO Miguel Angel Hernanz Hernanz 3 APLICACI N DE ESCRITORIO Para ejecutar la aplicaci n de escritorio primero se ha de comprobar que el servidor XAMPP se encuentra en funcionamiento y es accesible Si se puede acceder a la p gina web de Hortduino todo indica que el servidor trabaja sin problemas Una vez comprobado lo anterior solamente es necesario hacer doble click en el icono de la aplicaci n para que sta se inicie DUINO Hortduino Si no es posible la comunicaci n con el dispositivo Arduino se mostrar una pantalla similar a esta ProcessingClier Esperando comunicaci n con Arduino en IP 192 168 1 111 puerto 9631 CONFIGURAR CONEXION Ilustraci n 1 Problemas de conexi n con Arduino En la pantalla anterior se muestra los datos de configuraci n de red que se est utilizando actualmente pa
38. Descripci n Cambia el modo de control del sistema de ventilaci n alternando entre el modo manual ON y OFF y el modo autom tico AUTO Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n con servidor XAMPP Aplicaci n de escritorio Android en funcionamiento Secuencia normal Paso Acci n p1 El usuario hace click o pulsa el bot n de control del sistema de ventilaci n p3 El estado del sistema de ventilaci n cambia p4 La nueva configuraci n se guarda en el archivo config txt del servidor Si el nuevo estado implica una activaci n o desactivaci n del sistema de p5 ventilaci n basado en las condiciones impuestas por el usuario las nuevas rdenes son enviadas a Arduino Postcondici n El modo de control del sistema de ventilaci n ha cambiado El nuevo modo de control aparece en la interfaz del usuario Excepciones Paso Acci n n a n a Rendimiento De uno a cinco segundos en ser efectivo en Arduino Frecuencia esperada Un cambio por segundo Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios El modo de control viene representado en la interfaz de usuario por el texto y el color del bot n asociado a cada modo Tabla 25 Caso de uso RF 08 Cambiar modo de control del sistema de ventilaci n 26 ORTDUINO Miguel Angel Hernanz Hernanz RF
39. HTMLS combinados con sketches implementados en Processing js para generar din micamente contenido informativo que sea de utilidad al usuario Las herramientas necesarias para que esto pueda llevarse a cabo son provistas por el servidor XAMPP en forma de servicio de motor de base de datos MySQL y servidor web Apache 113 ORTDUINO Miguel Angel Hernanz Hernanz 4 IMPLEMENTACI N En esta secci n se muestran los fragmentos de c digo y comentarios mas destacables relativos a las diferentes aplicaciones que componen el sistema Hortduino para ampliar lo mostrado en el apartado 7 Cuestiones de dise o e implementaci n rese ables del documento correspondiente al Bloque I de esta memoria CLASE BOT N DE LA APLICACI N ANDROID Esta sencilla clase implementa el objeto Bot n usado en la interfaz de la aplicaci n para dispositivos Android Tambi n establece los m todos para dibujar el bot n y controlar cu ndo se ha presionado class Boton float xPos float yPos int ancho int alto int tamFuente String texto int margen Boton float _xPos float yPos String texto int tamFuente int margen xPos _xPos yPos _yPos texto texto tamFuente tamFuente margen margen textSize tamFuente alto tamFuente margen 2 ancho int textWidth texto margen 2 textSize tamText boolean esPresionado float x y x xPos ancho 2 El punto x y referencia la esquina superio
40. Herramientas del sistema Conec desconectar sistemas de Instal Cancelar Ilustraci n 25 Instalaci n en Android II Ilustraci n 24 Instalaci n en Android Ill 21 Miguel Angel Hernanz Hernanz ORTDUINO 7 4 Instalaci n del servidor XAMPP El paquete XAMPP se puede descargar desde la p gina web de Apache Friends en el siguiente enlace https www apachefriends org es index html Se puede elegir el paquete correspondiente al sistema operativo sobre el cual se instalar XAMPP En este caso se utiliza Windows Una vez que se ha descargado el instalador del paquete XAMPP se procede a su instalaci n haciendo doble click sobre el paquete instalador lo que mostrar una pantalla similar a esta E i setup lalak Setup XAMPP Welcome to the XAMPP Setup Wizard 9 bitnami llustraci n 26 Instalaci n del servidor XAMPP I Para continuar con la instalaci n se hace click en el bot n Next en la parte inferior derecha de la ventana como se muestra en la anterior ilustraci n setup a lt gt om Select Components 5 Select the components you want to install dear the components you do not want to install Click Next when you are ready to continue 6 E Server Click on a component to get a detailed description Apache MySQL FileZilla FTP Server Mercury Mail Server Tomcat m Languages W
41. RF 14 Postcondici n Los nuevos rangos aceptables son aplicados y guardados en la configuraci n i Paso Acci n Excepciones n a n a Rendimiento Instant neo Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios Usado en los casos de uso RF 28 y RF 26 Tabla 44 Caso de uso RF 27 Configurar rangos aceptables 45 ORTDUINO Miguel Angel Hernanz Hernanz RF 28 Mostrar condiciones actuales del invernadero Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 26 Comprobar condiciones RF 30 Cargar configuraci n Descripci n Muestra en la interfaz la informaci n disponible sobre las condiciones actuales estados de los sistemas ltimos datos recibidos de los sensores y configuraci n de los rangos aceptables para cada variable Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n p1 La aplicaci n
42. Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a El sistema deber ser capaz de mostrar de forma gr fica informaci n relevante para el usuario en la p gina web asociada Esto contempla la ltima lectura recibida desde los Descripci n sensores remotos el estado de los sistemas de riego y ventilaci n las temperaturas registradas el nivel del dep sito para riego y el hist rico de la evoluci n de las variables monitorizadas Importancia Importante Urgencia Normal Estado Validado Estabilidad alta Comentarios n a Tabla 7 Objetivo del sistema Consulta de informaci n v a web OBJ 08 Informar sobre las condiciones actuales del invernadero Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n El sistema deber ser capaz de mostrar informaci n acerca de las condiciones de temperatura humedad y nivel de agua referentes al invernadero Importancia Importante Urgencia Alta Estado Validado Estabilidad alta Comentarios Este objetivo es atribuible a las aplicaciones de escritorio y Android y a la pagina web Tabla 8 Objetivo del sistema Informar sobre las condiciones actuales del invernadero 10 ORTDUINO Miguel Angel Hernanz Hernanz 1 3 REQUISITOS DE INFORMACI N RI 01 Informacion procedente de los sensores remotos Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados
43. a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n Requisitos asociados RF 19 Recibir rdenes en Arduino RF 20 Enviar rdenes a Arduino Descripci n Desactiva el sistema de ventilaci n accionando el actuador mec nico asociado Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n Se recibe un paquete UDP con la orden de desactivaci n del sistema de p1 ventilaci n p2 Se desactiva el pin de salida asociado al actuador mec nico con 0 voltios Postcondici n El sistema de ventilaci n no est en funcionamiento Excepciones Paso Acci n n a n a Rendimiento Inferior a 5 segundos Frecuencia esperada Dependiente de las condiciones ambientales Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 40 Caso de uso RF 23 Desactivar sistema de ventilaci n en Arduino 41 wt Miguel Angel Hernanz Hernanz RF 24 Establecer conexi n con Arduino Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 M
44. aplicaci n guarda los valores actuales de Guardado de la configuraci n configuraci n en el archivo de configuraci n del Vv servidor La aplicaci n guarda el estado actual de las Guardado de estado de condiciones y condiciones del invernadero y la actividad de los ii actividad de sistemas sistemas de riego y ventilaci n en el archivo correspondiente del servidor Las condiciones recibidas en las lecturas reenviadas por la aplicaci n de escritorio son comparadas con los valores fijados en la configuraci n de usuario sobre los rangos aceptables y el modo de funcionamiento de los xe bai sistemas Si se detectan cambios se Comprobaci n de condiciones A focus Vv activan desactivan los sistemas de riego y ventilaci n y se informa al usuario a trav s de la interfaz Con cada cambio se guardan la configuraci n el estado actual de los sistemas y las condiciones actuales del invernadero E s Si no es posible la conexi n con el servidor XAMPP la Conexi n con el servidor XAMPP p Y aplicaci n no se inicia Tabla 80 Bater a de pruebas de la aplicaci n Android II 129 ORTDUINO Miguel Angel Hernanz Hernanz P GINA WEB Prueba Resultado Validado Los botones mostrados en el men de la p gina web enlazan a la p gina web correspondiente El men Prueba de men permanece en una posici n est tica aunque el Vv contenido de la secci n mostrada no pueda se
45. autom tico o manual para el control del riego y la ventilaci n de modo que se active el sistema de riego si la humedad del suelo cae por debajo de un determinado valor m nimo aceptable o se accione el sistema de ventilaci n si la temperatura o humedad interior superan un l mite m ximo Para apoyar a la aplicaci n de escritorio la aplicaci n m vil ser una r plica en versi n reducida de las funcionalidades e interfaz de la aplicaci n de escritorio contando con las ventajas de movilidad que ofrecen los dispositivos ANDROID A diferencia de la aplicaci n de escritorio la aplicaci n m vil no tendr la funcionalidad de incorporar los datos recibidos a la base de datos externa pero si podr ajustar los rangos aceptables de las variables monitorizadas y activar desactivar los controles de riego y ventilaci n Por ltimo se dispondr de una p gina web donde el usuario podr visualizar gr ficamente la informaci n almacenada en la base de datos por la aplicaci n principal y tener acceso a estad sticas y gr ficos hist ricos de la evoluci n de las condiciones ambientales del cultivo durante diferentes periodos temporales En dicha p gina web se mostrar de forma din mica la ltima lectura recibida en los 30 segundos anteriores el estado de las alertas y sistemas de riego y ventilaci n el consumo de agua para riego y el porcentaje restante disponible en el dep sito A continuaci n se muestra de forma gr fica el dise o d
46. cambio de condiciones o configuraci n Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta 53 Tabla 52 Caso de uso RF 35 Salvar la configuraci n wt Miguel Angel Hernanz Hernanz RF 36 Establecer conexion ap escritorio Android Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de r v OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 12 Reenviar lecturas a aplicaci n Android RF 21 Enviar rdenes a aplicaci n de escritorio RF 30 Cargar la configuraci n RF 33 Mostrar configuraci n de red Descripci n Indica si la conexi n entre la aplicaci n de escritorio y la aplicaci n de Android est activa Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaciones de escritorio y Android en funcionamiento Secuencia normal Paso Acci n 4 La aplicaci n Android lee la direcci n IP a la que conectarse desde el P archivo P txt del servidor XAMPP p2 Se en
47. datos en Arduino Aprovechando la presencia de un z calo para la tarjeta de almacenamiento mini SD en la placa Arduino se podr a usar esta posibilidad con el fin de guardar una copia de los datos enviados por red en un archivo con formato CSV Comma Separated Values para el posterior tratamiento de los datos recopilados o bien almacenar las im genes que capture el sistema de supervisi n una vez implementado e instalado Adaptaci n de la interfaz de la aplicaci n Android a varias resoluciones El dise o de la interfaz actual de la aplicaci n est pensado para una resoluci n de pantalla de 640 x 480 pixeles ya que es la disponible en el dispositivo utilizado para las pruebas Para adaptar la interfaz a otras resoluciones ser an necesarios elementos gr ficos de varios tama os empleados en funci n de la informaci n que el dispositivo ofrece sobre la pantalla cambiar la disposici n relativa del texto y usar el tama o de fuente adecuado para cada caso Ampliar las opciones de configuraci n en la aplicaci n de escritorio Esta ampliaci n a adir a mas funcionalidades de configuraci n disponibles para el usuario en la ventana de la aplicaci n de escritorio acerca del tama o y capacidad del dep sito de riego estado de la conexi n con la aplicaci n Android sonidos de alerta etc 57 fe Miguel Angel Hernanz Hernanz 9 BIBLIOGRAFIA e Arduino The Arduino playground wiki en l nea http playground ardui
48. datos recibidos a Vv la interfaz de usuario ee PP F Se muestra correctamente la representaci n gr fica de Dibujar gr ficos de evoluci n temporal ae e bap Vv la evoluci n reciente de las variables monitorizadas El usuario desplaza el cursor por el rea Se muestra el valor del gr fico en el punto relativo a la de los gr ficos de evoluci n temporal posici n en el eje X del cursor del rat n Se muestra la representaci n gr fica del dep sito de Mostrar nivel de agua disponible P 9 P Vv agua junto a su nivel de llenado porcentual Activaci n del sistema de ventilaci n El sistema se activa correctamente en Arduino Vv Desactivaci n del sistema de riego El sistema se desactiva correctamente en Arduino Vv Desactivaci n del sistema de ventilaci n El sistema se desactiva correctamente en Arduino Vv ape EI dispositivo Arduino es accesible en la red Ethernet Conexion via Ethernet ia Pe Vv por la aplicaci n de escritorio 5 F Los paquetes UDP son recibidos en el dispositivo Envio de paquetes UDP via Ethernet pag P Vv Arduino iz Los paquetes UDP son recibidos en la aplicaci n de Recepci n de paquetes UDP v a Ethernet paq P Vv escritorio a Se muestran en la interfaz de usuario el estado de las Mostrar condiciones actuales del ae invernadero condiciones actuales del invernadero mediante texto e Vv im genes representativas Incluye mensajes de alerta El modo de funcionamiento actual de los sistemas de Mos
49. de actualizaci n de gr ficos Ilustraci n 8 Selectores de actualizaci n 10 e Miguel Angel Hernanz Hernanz 4 APLICACI N PARA DISPOSITIVOS ANDROID Esta aplicaci n es una r plica reducida de la aplicaci n de escritorio que proporciona las funciones mas importantes de control e informaci n todo ello en una interfaz mas compacta La aplicaci n para dispositivos Android se ejecuta pulsando sobre el icono disponible en el men de aplicaciones del smartphone representado por el icono en forma de H En la ilustraci n siguiente se indica por medio de una flecha roja para mayor claridad 4 1 Inicio de la aplicaci n Android gt ull 13 34 Hortduino Beta 1 0 EA gt Ilustraci n 9 Icono de la aplicaci n en Android Es necesario contar con conectividad v a Wi Fi o 3G para que la aplicaci n pueda iniciarse Si no se dispone de esta conectividad la aplicaci n fallar al iniciarse y se cerrar autom ticamente Al igual que la aplicaci n de escritorio esta aplicaci n depende para su inicio que el servidor XAMPP se encuentre disponible pues comparte configuraci n con la aplicaci n de escritorio y necesita tener acceso a dicho archivo Tambi n necesita de la ejecuci n de la aplicaci n de escritorio para recibir los datos enviados por Arduino y controlar los sistemas de riego y ventilaci n del invernadero Si la conexi n con esta ltima no es posible se muestra una pantalla de informaci n con
50. el desarrollo y los puntos de funci n obtenidos Esta relaci n est comprendida en una tabla construida por Capers Jones especialista en metodolog as de Ingenier a del Software donde aparece el valor por el que se deben multiplicar los puntos de funci n seg n el lenguaje usado 38 e Miguel Angel Hernanz Hernanz El lenguaje Processing es similar en estructura y sintaxis a Java por lo que emplearemos dicha relaci n en el c lculo del tama o de la Aplicaci n de Escritorio Se proceder de forma similar en el caso de la Aplicaci n Android ya que se usa el mismo lenguaje que en la Aplicaci n de Escritorio Para la p gina web se utiliza la equivalencia referida al lenguaje HTML en su versi n 3 0 A L neas de c digo por Lenguaje Nivel punto de funci n Java 6 53 HTML 3 0 22 15 Tabla 6 Extracto de la tabla de Capers Jones En la tabla de Capers Jones los lenguajes de mayor nivel se asocian con un n mero menor de l neas de c digo por punto de funci n En este caso los valores obtenidos de la tabla son 53 para Processing y 15 para HTML 3 0 lo que resulta en los siguientes tama os estimados para las distintas aplicaciones Aplicaci n de Escritorio 53 54 2862 l neas de c digo Aplicaci n Android 53 40 42 2142 l neas de c digo P gina Web 15 51 76 776 l neas de c digo 6 2 ESTIMACI N DEL COSTE DE DESARROLLO Obtenido el tama o relativo de cada aplicaci n o
51. el usuario desliza el tri ngulo indicador de m ximo o m nimo sobre una barra correspondiente a la condici n a configurar Mientras se desliza el tri ngulo el valor correspondiente al m ximo o m nimo va cambiando seg n la posici n del indicador HUMEDAD SUELO M5 HUMEDAD AMBIENTE Actualizaciones recibidas 23 TEMP INTERIOR Conectado a 83 43 23 114 TEMP EXTERIOR NIVEL AGUA Ilustraci n 33 Configuraci n de Ilustraci n 34 Informaci n de rangos en la aplicaci n Android conexi n con ap escritorio La opci n del men bajo el t tulo Informaci n muestra los datos de conexi n con la aplicaci n de escritorio mediante dos l neas de texto la primera contiene la direcci n IP desde la que se reciben las lecturas de los sensores y la segunda muestra el n mero de lecturas recibidas En caso de que la conexi n con la aplicaci n de SEE A A h i Esperando comunicaci n con escritorio no se pudiese establecer o se viese interrumpida se Ardoino mostrar a una pantalla de informaci n como la que aparece en IP 83 43 23 114 puerto 9631 la ilustraci n de la derecha indicando la direcci n IP y puerto desde los que se espera recibir las lecturas de datos Ilustraci n 35 Pantalla de problemas de conexi n 107 DUINO Miguel Angel Hernanz Hernanz 3 4 4 P GINA WEB Por sus caracter sticas la p gina web constituye un caso especial en lo relativo a las interfaces del proyecto Hortduino ya q
52. ellos se emplean Diagramas de Flujo de Datos a mas bajo nivel tiles para apreciar qu relaciones son establecidas y la informaci n con la que trabaja cada elemento de forma mas espec fica Lecturas de sensores Par metros de control y configuraci n Solicitud de informaci n Ordenes de control de sistemas Informaci n y condiciones del invernadero Ilustraci n 7 Diagrama de Contexto del sistema Nivel 0 Configuraci n de usuario Acciones Modificaci n de estado de sistemas Par metros y condiciones Par metros de control Solicitud de informaci n Configuraci n persistente Informaci n Datos de sensores Lecturas Lecturas Registros Ilustraci n 8 Diagrama de Flujo de Datos Nivel 1 66 e Miguel Angel Hernanz Hernanz Acciones Orden riego ON OFF Orden Ventilaci n ON OFF Ilustraci n 9 Diagrama de Flujo de Datos Nivel 2 Control de los sistemas del invernadero rdenes rdenes rdenes acciones Ilustraci n 10 Diagrama del Flujo de Datos Nivel 2 Gesti n de rdenes Datos de sensores Datos formateados Lecturas Ilustraci n 11 Diagrama del Flujo de Datos Nivel 2 Procesado de datos 67 TDUINO Miguel Angel Hernanz Hernanz lectura lectura gt lectura lectura lectura lectura llustraci n 12 Diagrama del Flujo de Datos Nivel 2 Gesti n de lecturas
53. estado actual de los sistemas de riego Y VOT ACI OMe iii a ta dto 12 Tabla 11 Requisitos de Informaci n Informaci n sobre el modo de control de los sistemas de ego y ventilacion io d 12 Tabla 12 Requisitos de Informaci n Informaci n sobre la configuraci n de rangos aceptables en Vara ol ani 13 Tabla 13 Requisitos de Informaci n Informaci n sobre el estado actual de las condiciones del VA VELMA EL id a 13 Tabla 14 Actores Usuario del sistema sceceessscsseeseeseeeeeceeeeeeecseesesaeeaeeseeeeeeeeaeeaseaeseseseaeeaees 14 Tabla 15 Actores Dispositivo Arduino cc eeesescceseeceeeeeeeseeseeseeseeseesesseeaeeaeeeeeeseaeeeeesareseeeaeens 14 Tabla 16 Actores Aplicaci n de eSCTItOTIO oooonononnnonicncnncnncnnnnonononononncononn nano nancnn conca rn rra conca 14 Tabla 17 Actores Aplicaci n ANdrOld ooononnncnnnnncnncnocncnnnnconononononnononncnn cnn cnn canon cnn rn non nr nc nnn nn ncrnncns 14 Tabla 18 Caso de uso RF 01 Recibir informaci n sobre luminosidad ooononcncnninncnmnnmonenncos 19 Tabla 19 Caso de uso RF 02 Recibir informaci n sobre temperatura IMterlOT oooooccncnncincnnnnnimmm 20 Tabla 20 Caso de uso RF 03 Recibir informaci n sobre temperatura exterior 21 Tabla 21 Caso de uso RF 04 Recibir informaci n sobre humedad ambiental oooonnonconnnnccnnnncnnnn s 22 Tabla 22 Caso de uso RF 05 Recibir informaci n sobre humedad del suelo ononononinioninn 23 Tabla 23 Caso de uso R
54. gr ficos temporales de las variables RF 12 Reenviar lecturas a aplicaci n Android RF 15 Almacenar lecturas y estados en la base de datos Descripci n Recibe las lecturas de los sensores enviadas por Arduino en la aplicaci n de escritorio Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n 4 La aplicaci n de escritorio mantiene un socket de escucha UDP en el puerto P especificado 2 Si recibe un paquete UDP procedente de la direcci n IP de Arduino se P continua en el siguiente paso p3 Si el tama o del paquete UDP es correcto se convierte la informaci n contenida a una cadena de texto se utiliza en otros procedimientos La cadena de texto es troceada usando el car cter como separador de p4 valores Los valores son incorporados a los arrays de las variables en la posici n correspondiente para dibujar los gr ficos temporales ver RF 31 Se marca la conexi n como activa y se reinicializa el contador de paquetes p5 esperados a 0 Postcondici n Los datos de los sensores enviados por Arduino son recibidos correctamente en la aplicaci n de escritorio Excepciones Paso Acci n p2 Si el paquete procede de otra direcci n IP se reenv a la ltima lectura p3 Si el tama
55. herramienta que forma parte del proyecto es razonable estimar el esfuerzo necesario para completar cada uno de estos elementos as como el tiempo necesario hasta su finalizaci n Para ello se har uso de un modelo matem tico que emplea la estimaci n del tama o del software medido en l neas de c digo LOC y una serie de atributos dependientes de la clasificaci n del proyecto en uno de los tres grupos planteados por este m todo Este modelo de estimaci n de costes en software denominado COCOMO Constructive Cost Model fue desarrollado por Barry W Bohem en el a o 1981 y define tres modos que representan el tipo de proyecto siendo e Modo Org nico peque o grupo de programadores trabajando en un proyecto de tama o peque o o medio con requerimientos medianamente flexibles e Modo Semilibre grupo mediano de programadores que incluye a personas de diferente experiencia con requisitos menos flexibles que en el modo org nico e Modo Empotrado combinaci n de los anteriores modos pero con requisitos estrictos 1 Tabla completa disponible en http www cs bsu edu homepages dmz cs697 langtbl htm 39 wt Miguel Angel Hernanz Hernanz Las formulas basicas que se emplean para el calculo del esfuerzo tiempo de desarrollo y personal requerido son las siguientes Esfuerzo requerido personas mes E a KI m X Tiempo de desarrollo meses Personal necesario desarrolladores donde Tdev c E
56. i i l i j 1 T 1 1 1 j j ji j jl 1 j lt lt extend gt gt ji i 1 V P gina Web i I lt lt include gt gt I i Ilustraci n 6 Diagrama de casos de uso del sistema simplificado 18 wt Miguel Angel Hernanz Hernanz 1 4 3 CASOS DE USO DEL SISTEMA RF 01 Recibir informaci n sobre luminosidad Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos Requisitos asociados RI 01 Informaci n procedente de los sensores remotos Descripci n Recibe en Arduino la informaci n de luminosidad del sensor Precondici n Dispositivo Arduino en funcionamiento Secuencia normal Paso Acci n p1 Leer luminosidad en el pin de entrada asignado p2 Guardar el valor obtenido en la variable correspondiente Postcondici n El valor de luminosidad est disponible para su env o Excepciones Paso Acci n n a n a Rendimiento Dentro del intervalo de tiempo asignado a la lectura de sensores Frecuencia esperada Una lectura cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 18 Caso de uso RF 01 Recibir informaci n sobre luminosidad 19 wc Miguel Angel Hernanz Hernanz RF 02 Recibir informacion sobre temperatura interior Version
57. icono con una X roja al lado del nombre de los servicios Apache y MySQL y aceptar la modificaci n TE xampp Control Panel v3 2 1 Compiled May 7th 2013 Il N Erir E XAMPP Control Panel v3 2 1 Conta Modules Service Module PID s Port s Actions Netstat 0 apache ahaa 80 443 stop Admin Conta Logs shen x MySQL 4028 3306 Stop Admin Config Logs Explorer XxX Filezilla Star Admin Con g Logs H Senices Mercury Admin Help X Tomcat Admin a ut 17 19 51 mysql Status change detected stopped 17 19 52 Apache Attempting to stop Apache PID 3700 17 19 52 Apache Attempting to stop Apache PID 3164 17 19 52 Apache Status change detected stopped 18 31 10 main Executing services msc 18 49 03 Apache Attempting to start Apache app 18 49 03 Apache Status change detected running 18 49 03 mysql Attempting to start MySQL app E 18 49 04 mysql Status change detected running E E Ilustraci n 31 Servicios Apache y MySQL en funcionamiento 24 e Miguel Angel Hernanz Hernanz Servicio Apache servidor web La configuraci n del servidor Apache permite establecer varios par metros relativos al control de listado de directorios el directorio usado por la p gina web para almacenar el contenido y el directorio de usuarios si hay mas de un usuario que guarde documentos en el directorio web Para configur
58. la ilustraci n 13 Las flechas indican que la tarea a la que apuntan necesita como requisito previo a su inicio la finalizaci n de la tarea de la cual procede la flecha 44 wt Miguel Angel Hernanz Hernanz 6 4 PRESUPUESTO DEL PROYECTO Cada recurso disponible lleva asociado un coste y un grado de uso que refleja su utilizaci n en la consecuci n de las tareas del proyecto en las que es empleado por lo que el coste total del proyecto ser la suma de los valores porcentuales de la utilizaci n sobre el coste de cada recurso En la siguientes tablas se recopilan todos los recursos utilizados en la realizaci n de este proyecto junto a su coste de adquisici n y porcentaje de utilizaci n Tambi n se indican los recursos humanos con el coste del personal por hora de trabajo Recurso Coste Utilizaci n Aa al Ordenador Personal 800 00 60 480 Smartphone Samsung Galaxy Mini II 110 00 25 27 5 Router TP LINK TD W8970 70 00 50 35 Placa Arduino Mega 2560 49 61 100 49 61 Shield Ethernet para Arduino 35 09 100 35 09 Sensor de temperatura y humedad DHT11 5 62 100 5 62 Sensor de temperatura National Semiconductor LM35 1 10 100 1 1 Sensor de distancia por ultrasonidos Seed U S 18 15 100 18 15 Sensor de humedad del suelo 0 00 100 0 Fotorresistencia GL5528 LDR 1 45 100 1 45 V lvula de solenoide 12V 9 07 80 7 26 Ventilador 12V 3 00 80 2 4 Rel s Grove Twig 5V 7 26 80 5 81 Breadboard mini para prototipado 12 10 1
59. la pantalla el selector correspondiente al rango m ximo o m nimo de la variable Descripci n indicada junto a los controles para su modificaci n permitiendo al usuario especificar el valor admisible Si el usuario cambia el valor mostrado se informa del cambio de condiciones al procedimiento salvarContfig Procedimientos asociados dibujarSelectores Tabla 26 Procedimiento dibujarSelector 84 ORTDUINO Miguel Angel Hernanz Hernanz ID dibujarSelectores Nombre E S Funci n 7 x entrada Posici n de la esquina superior izq del grupo en el eje X Par metros Za p TEREE y entrada Posici n de la esquina superior izq del grupo en el eje Y arrayCondiciones salida Array con los rangos aceptables de las variables Descripci n Dibuja en la pantalla el conjunto de selectores de rango para las variables monitorizadas Procedimientos dibujarSelector asociados Tabla 27 Procedimiento dibujarSelectores ID dibujarEstadoOrdenes Nombre E S Funci n x entrada Coordenada de posici n en el eje X y entrada Coordenada de posici n en el eje Y Par metros F E estadoOrdenes entrada Modo de control de los sistemas de riego y ventilaci n animRiego entrada Array de frames de la animaci n de riego animVent entrada Array de frames de la animaci n de ventilaci n D ad Muestra en pantalla la actividad de los sistemas de riego y ventilaci n medi
60. los datos usados para la conexi n como la mostrada en la figura 10 11 e Miguel Angel Hernanz Hernanz 4 2 Pantalla principal de la aplicaci n Android Esperando comunicaci n con Arduino IP 83 43 23 114 puerto 9631 Ilustraci n 10 Fallo en la conexi n Si los requisitos de conexi n antes mencionados se cumplen y la aplicaci n es iniciada por el usuario la pantalla mostrada en el dispositivo Android ser la siguiente HORTDUINO v1 0b Luminosidad 76 Temperatura exterior 23 0 C Temperatura interior 21 C Humedad interior 38 Humedad del suelo 0 Temperatura exterior OK Temperatura interior OK Humedad ambiental OK Nivel de agua para riego OK ry AUTO 5 OFF Riego Ventilaci n llustraci n 11 Pantalla principal de la app 12 e Miguel Angel Hernanz Hernanz Los elementos en la interfaz de usuario que aparecen en la pantalla son los mismos que en la aplicaci n de escritorio exceptuando los gr ficos de evoluci n de las variables que no han sido incluidos De arriba a abajo se presentan primero los datos reenviados por la aplicaci n de escritorio con la ltima informaci n recibida desde los sensores del invernadero A continuaci n aparece el estado de las condiciones actuales del invernadero representado por las l neas de texto descriptivas y las im genes asociadas a cada condici n Seguidamente se muestran los botones que seleccionan el modo de control de los sistemas
61. los objetivos a cumplir por el sistema Para ello se hace uso de una representaci n esquem tica empleando diagramas de casos de uso y listado de requisitos de forma tabulada En la especificaci n funcional del sistema se agrupan los modelos de datos y procesos presentes en el sistema bajo diagramas de flujo de datos DFDs y diagramas de entidad relaci n E R El dise o del sistema agrupa los dise os de la base de datos y las diversas aplicaciones disponibles para el usuario describiendo el flujo de trabajo y los procedimientos relativos a cada aplicaci n del sistema as como el dise o de las diferentes interfaces de usuario disponibles La implementaci n del sistema ofrece ejemplos del c digo interno de algunos de los procedimientos implementados en las aplicaciones Las pruebas del sistema recopila la fase de testeo de cada aplicaci n por separado y del sistema en su conjunto Por ltimo la tercera secci n contiene el manual de uso de las diferentes aplicaciones disponibles para el usuario as como la gu a de instalaci n y configuraci n del software necesario para su correcto funcionamiento e Miguel Angel Hernanz Hernanz 2 DESCRIPCI N GENERAL DEL PROYECTO El proyecto Hortduino derivado de las palabras Hortelano y Arduino nace de la idea de aplicar las nuevas tecnolog as y el concepto del Internet of Things IoT al mundo de la horticultura tradicional a peque a escala Los llamados huertos urbanos como a
62. n p1 Leer humedad ambiental en el pin de entrada asignado p2 Guardar el valor obtenido en la variable correspondiente Postcondici n El valor de humedad ambiental est disponible para su env o Excepciones Paso Acci n p1 Si el sensor env a una lectura err nea NaN el valor asignado es 0 Rendimiento Dentro del intervalo de tiempo asignado a la lectura de sensores Frecuencia esperada Una lectura cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 21 Caso de uso RF 04 Recibir informaci n sobre humedad ambiental 22 ORTDUINO Miguel Angel Hernanz Hernanz RF 05 Recibir informaci n sobre humedad del suelo Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos Requisitos asociados RI 01 Informaci n procedente de los sensores remotos Descripci n Recibe en Arduino la informaci n de humedad del suelo del sensor Precondici n Dispositivo en funcionamiento Secuencia normal Paso Acci n p1 Si se ha cumplido el intervalo de actualizaci n continuar p2 Activar el pin de salida a 5 voltios p3 Esperar 5 milisegundos para estabilizar p4 Leer valor recibido en el pin de entrada asignado p5 Desactivar el pin de salida con 0 voltios Postcondici
63. n El valor de temperatura exterior est disponible para su env o Excepciones Paso Acci n Si no se ha cumplido el intervalo de actualizaci n mantener la lectura 1 a P anterior para su env o Rendimiento Dentro del intervalo de tiempo asignado a la lectura de sensores Frecuencia esperada Una lectura cada 10 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios Lectura espaciada para evitar desgaste del sensor Tabla 22 Caso de uso RF 05 Recibir informaci n sobre humedad del suelo 23 wc Miguel Angel Hernanz Hernanz RF 06 Recibir informacion sobre nivel de agua Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos Requisitos asociados RI 01 Informaci n procedente de los sensores remotos Descripci n Recibe en Arduino la informaci n de nivel de agua del sensor Precondici n Dispositivo en funcionamiento Secuencia normal Paso Acci n p1 Cambiar el modo del pin asignado a modo salida OUTPUT p2 Activar el pin de salida a 5 voltios durante 15 milisegundos p3 Desactivar el pin de salida con 0 voltios p4 Esperar 20 milisegundos p5 Cambiar el modo del pin asignado a modo entrada INPUT p6 Recibir el eco de retorno en el pin asignado Calcular la distancia hast
64. n guarda el estado actual de las Guardado de estado de condiciones y condiciones del invernadero y la actividad de los actividad de sistemas sistemas de riego y ventilaci n en el archivo correspondiente del servidor Las condiciones recibidas en las lecturas enviadas por Arduino son comparadas con los valores fijados en la configuraci n de usuario sobre los rangos aceptables y el modo de funcionamiento de los sistemas Si se Comprobaci n de condiciones detectan cambios se activan desactivan los sistemas Y de riego y ventilaci n y se informa al usuario a trav s de la interfaz Con cada cambio se guardan la configuraci n el estado actual de los sistemas y las condiciones actuales del invernadero pz Si no es posible la conexi n con el servidor XAMPP la Conexi n con el servidor XAMPP P i Y aplicaci n no se inicia Tabla 78 Bater a de pruebas de la aplicaci n de escritorio Il 127 ORTDUINO Miguel Angel Hernanz Hernanz APLICACI N PARA DISPOSITIVOS ANDROID Prueba Resultado Validado sist Los datos recibidos son mostrados correctamente en Mostrar datos recibidos E Vv la interfaz de usuario Se muestra el menu de opciones con los botones Mostrar menu de opciones asociados cuando el usuario pulsa el bot n Vv correspondiente E Se muestra la representaci n gr fica del dep sito de Mostrar nivel de agua disponible P 9 P Vv agua junto a su
65. n por comas mediante el c digo 0 si el valor actual de dicha condici n se encuentra dentro del rango fijado por el usuario 1 si el valor actual es inferior al m nimo establecido y 1 si se supera el m ximo permitido para esa condici n Se usa para indicar el estado de las condiciones en la p gina web IPServer txt Este archivo es utilizado para actualizar la direcci n IP empleada en la inicializaci n de la aplicaci n Android Se modifica su contenido mediante la invocaci n a un script que la recupera mediante funciones PHP 18 e Miguel Angel Hernanz Hernanz Limitaciones y dependencias Para que la p gina web pueda ser mostrada en el navegador del usuario el servidor web Apache y su servicio asociado deben estar en ejecuci n en el host encargado de actuar como servidor Igualmente es cr tico que se encuentre en ejecuci n el motor MySQL para poder realizar consultas a la base de datos y mostrar los datos obtenidos en los sketches dispuestos en la web Se necesita un navegador que soporte HTML 5 para su correcta visualizaci n amp Usuarios La p gina web del proyecto Hortduino est dirigida a cualquier usuario que quiera consultar los datos disponibles contemplados en la secci n Descripci n y Funcionalidad descrita mas arriba Para ello el usuario ha de conocer la direcci n de la p gina web disponer de un navegador y conexi n a Internet o bien a la red Ethernet donde se encuentre el servidor XAMPP
66. o no es correcto se usa el valor 0 en todos los campos Rendimiento 1 5 segundos Frecuencia esperada Una lectura recibida cada 1 5 segundos como m ximo Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 51 Caso de uso RF 34 Recibir lecturas de Arduino 52 ORTDUINO Miguel Angel Hernanz Hernanz RF 35 Salvar la configuraci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Objetivos asociados OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de r v OBJ 06 Control automatizado de los sistemas de riego y ventilaci n Requisitos asociados RI 03 Informaci n sobre el m todo de control de los sistemas de riego y ventilaci n RI 04 Informaci n sobre la configuraci n de rangos aceptables de variables RI 05 Informaci n sobre el estado actual de las condiciones del invernadero RF 13 Guardar el estado de los sistemas de riego y ventilaci n RF 14 Guardar la configuraci n de los rangos aceptables RF 16 Guardar el estado actual de las condiciones RF 27 Configurar rangos aceptables RF 44 Establecer conexi n con el servidor XAMPP RF 21 Enviar rdenes a aplicaci n escritorio Descripci n Guarda la configuraci n y estado del sistema en el servidor XAMPP Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con
67. of its conditions Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License to the extent that they are valid under applicable law If additional permissions apply only to part of the Program that part may be used separately under those permissions but the entire Program remains governed by this License without regard to the additional permissions When you convey a copy of a covered work you may at your option remove any additional permissions from that copy or from any part of it Additional permissions may be written to require their own removal in certain cases when you modify the work You may place additional permissions on material added by you to a covered work for which you have or can give appropriate copyright permission Notwithstanding any other provision of this License for material you add to a covered work you may if authorized by the copyright holders of that material supplement the terms of this License with terms e a Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License or b Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it or e c Prohibiting misrepresentation of the origin of that material or requiring that modified versions of such material be marked in reasonable way
68. p5 La p gina web generada con toda la informaci n de los pasos anteriores se env a al navegador del usuario Postcondici n La p gina web solicitada se muestra en el navegador del usuario Excepciones Paso Acci n p2 Si se produce un error al consultar la base de datos se muestra en pantalla Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios Esta p gina se autorefresca cada 30 segundos para obtener la ltima informaci n recibida en el sistema Tabla 58 Caso de uso RF 41 Generar p gina web Estado Actual 59 wt Miguel Angel Hernanz Hernanz RF 42 Obtener datos de la base de datos Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 07 Consulta de informaci n v a web OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 40 Generar p gina web Consumo de Agua RF 41 Generar p gina web Estado Actual RF 43 Obtener input de usuario Descripci n Realiza una consulta en formato SQL a la base de datos y devuelve la informaci n requerida por el usuario a trav s de la p gina web Precondici n Conexi n con servidor XAMPP servicios MySQL y servidor web Apache Secuencia normal Paso Acci n 4 La p gina web que visita el usuario solicita informac
69. par metro puede ser adaptado en el c digo si se desea un numero mayor o menor de lecturas en un determinado periodo Cabe destacar que es necesario establecer una conexi n con el servidor para que la aplicaci n principal pueda inicializarse ya que la configuraci n de las variables y el estado de los sistemas de riego y ventilaci n se almacenan remotamente en dicho servidor e Miguel Angel Hernanz Hernanz env a_resultado_consulta_SQL pes 0 n solicita_contenido 1 emmm Hortduino Web Sensor AO lt ro ZA A CH AA XAMPP 1 envia_contenido 0 n E SERVER ze 0 n envia_consulta_SQL 1 WEB Ilustraci n 5 Modelo de negocio XAMPP Server Web El la ilustraci n n mero 5 se detalla la relaci n entre el servidor XAMPP y la p gina web donde el usuario puede consultar desde un navegador el estado actual del sistema y datos referentes a las variables monitorizadas El servidor XAMPP dispone de servicios Apache MySQL e int rprete PHP cuya combinaci n genera una p gina web din mica a petici n del usuario en la que ste puede seleccionar los datos a visualizar de forma gr fica Para la representaci n visual de los datos en pantalla se usan sketches programados en Processing js una adaptaci n del lenguaje Processing a JavaScript destinada a crear elementos incrustables en p ginas web usando la tecnolog a HTML 5 Estos sketches son capaces de generar una consulta SQ
70. para la inicializaci n de las aplicaciones Escritorio y Android amp Archivos de configuraci n Comprende los archivos de texto plano vistos anteriormente en la secci n 3 1 3 y su apartado Interacci n con otros sistemas El paquete XAMPP incluye en su instalaci n un panel de control desde el cual se administra y configura el funcionamiento de los diversos servicios que integra Esta cuesti n se aborda en la secci n correspondiente del manual de usuario para mayor claridad 30 ORTDUINO Miguel Angel Hernanz Hernanz 5 DESPLIEGUE DEL PRODUCTO El sistema de control de invernaderos Hortduino est pensado para su instalaci n en un invernadero de reducidas dimensiones Dadas las funciones de Hortduino es necesaria una infraestructura de red que soporte la comunicaci n entre los diferentes subsistemas que componen este proyecto ya sea mediante el uso de Internet o bien empleando una red Ethernet de rea local para el correcto funcionamiento del sistema DISPOSITIVO ANDROID SERVER P GINA WEB ARDUINO Ethernet Internet APLICACI N DE ESCRITORIO INVERNADERO Ilustraci n 12 Despliegue del sistema Hortduino Como se puede apreciar en la ilustraci n anterior los subsistemas que componen Hortduino se pueden encontrar en la misma red o en diferentes redes siempre que se puedan intercomunicar entre s Por cuestiones pr cticas en el desarrollo de este proyecto se ha optado por emplear un mismo equ
71. se env an a Arduino Rendimiento Inferior a 5 segundos Frecuencia esperada Cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 37 Caso de uso RF 20 Enviar rdenes a Arduino 38 ORTDUINO Miguel Angel Hernanz Hernanz RF 21 Enviar rdenes a aplicaci n de escritorio Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 29 Recibir rdenes desde Android RF 26 Comprobar condiciones RF 36 Establecer conexi n ap escritorio Android RF 35 Salvar la configuraci n Descripci n Env a nuevas rdenes a la aplicaci n de escritorio desde la aplicaci n Android Solicita el reenv o de las lecturas de sensores a la aplicaci n Android Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaciones de escritorio y Android en funcionamiento Secuencia normal Postcondici n Excepciones Paso Acci n Si el usuario cambia el modo de control a modo autom tico se eval an las p1 condiciones fijadas por el usuario en las variab
72. texto con formato de separaci n de campos por punto y coma Excepciones Paso Acci n p2 Si el archivo no existe es creado Si existe se sobrescribe Rendimiento Inferior a 5 segundos Frecuencia esperada n a Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios Este caso de uso es concurrente con RF 14 Tabla 30 Caso de uso RF 13 Guardar el estado de los sistemas de riego y ventilaci n 31 wt Miguel Angel Hernanz Hernanz Guardar la configuraci n de los rangos aceptables de las variables RE 14 monitorizadas Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 03 Almacenar informaci n recibida OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RI 04 Informaci n sobre la configuraci n de rangos aceptables de variables RF 35 Salvar configuraci n Descripci n Guarda la configuraci n actual de los rangos establecidos por el usuario para las variables monitorizadas Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplic
73. tiempo de desarrollo total del proyecto cambia a 5 67 1 17 2 14 10 meses 6 3 ESTIMACI N DE TAREAS Tras concretar el dise o y los requisitos que ha de cumplir el sistema en las primeras fases del proyecto se planea la ejecuci n de cada etapa dividiendo el trabajo a realizar en tareas diferenciadas y asignando a cada tarea un espacio temporal definido en funci n de varios factores Cada tarea posee caracter sticas tales como orden de ejecuci n simultaneidad prioridad o necesidad de que otra tarea se haya completado previamente La planificaci n del proyecto engloba el orden de dichas tareas y su duraci n haciendo posible un flujo de trabajo temporal A medida que se avanza en el desarrollo pueden surgir problemas en la consecuci n de algunas tareas que pueden extenderlas en el tiempo mas all de la previsi n temporal inicial que se les asign afectando al resto y a la estimaci n temporal total del proyecto Durante el desarrollo de este proyecto se ha considerado una jornada de trabajo de 4 horas diarias debido a restricciones de tiempo impuestas al autor por cuestiones ajenas a l Como se expuso anteriormente en el punto 2 2 la elaboraci n de la documentaci n se supedita a la terminaci n del proyecto para focalizar todo el esfuerzo en lo relativo a la implementaci n del software lo cual implica que durante la realizaci n del proyecto se generan esquemas y notas acerca de dise o implementaci n y pruebas de los dife
74. y carga de programas a la memoria flash del microcontrolador Debido a la limitaci n de memoria disponible asociada al uso de un microcontrolador los programas a ejecutar no deben sobrepasar los 248 KB de tama o total y se ven restringidos a usar una cantidad m xima de memoria de 8 KB para operar con datos en tiempo de ejecuci n La comunicaci n de la aplicaci n de escritorio con Arduino se efect a mediante el empleo de un shield Ethernet acoplado al dispositivo Arduino el cual proporciona las funciones b sicas de conectividad en red local La interfaz serial de Arduino se utiliza para labores de depuraci n de c digo o pruebas m Aplicaciones de escritorio y Android La aplicaci n de escritorio y la aplicaci n para dispositivos Android se han implementado usando el lenguaje Processing derivado de Java con sintaxis simplificada y modelo de programaci n visual Los programas en Processing se denominan sketches y son subclases de la clase PApplet de Java que implementa las interfaces relacionadas con eventos de rat n y teclado Para la ejecuci n de los programas Processing hace uso de la m quina virtual de Java por lo que ofrece las caracter sticas asociadas a ella como la compatibilidad con los sistemas operativos mas usados y la independencia del procesador presente en el dispositivo que ejecute el programa m Pagina Web y Servidor XAMPP La p gina web del proyecto Hortduino hace uso de los elementos disponibles en el lenguaje
75. 0 i lt datos length i if datos il equals 1 Se alarga la linea hasta encontrar un 0 inactividad finLinea zoomX if datos i 1 equals 0 i datos length 2 line inicioLinea 200 finLinea 200 inicioLinea finLinea else inicioLinea zoomX finLinea inicioLinea 119 DUINO Miguel Angel Hernanz Hernanz void graficarVent int num Muestra la l nea de actividad de la ventilaci n float finLinea margen float inicioLinea margen String consulta SELECT EstadoVent FROM SELECT FROM lecturas ORDER BY Indice DESC LIMIT num sub ORDER BY Indice ASC String temporal loadStrings http hortduino no ip biz consultar php consulta consulta String datos split temporal 0 strokeCap SQUARE zoomX ancho 2 margen num stroke 205 252 187 40 strokeWeight 30 for int i 0 i lt datos length i if datos i equals 1 Se alarga la l nea hasta encontrar un 0 inactividad finLinea zoomX if datos i 1 equals 0 i datos length 2 line inicioLinea 235 finLinea 235 inicioLinea finLinea else inicioLinea zoomX finLinea inicioLinea passa 55 535728 22 ASSESS SRS oS BSS SS a SSS SSeS SSeS ase Sosa sss SS void dibujarGrilla int divX int divY int maximo Rejilla del grafico float intervX ancho 2 margen divX Intervalos en los que dibujar las lineas
76. 0 87 0 87 1 00 Capacidad del analista 1 00 1 00 0 86 Experiencia en la aplicaci n 1 13 1 13 1 00 Calidad de los programadores 1 00 1 00 1 00 Experiencia en la m quina virtual 1 21 1 21 1 00 Experiencia en el lenguaje de programaci n 1 14 1 14 0 90 T cnicas actualizadas de programaci n 1 10 1 10 0 82 Uso de herramientas software 1 00 1 00 1 00 Limitaciones de tiempo de desarrollo 1 00 1 00 1 00 Multiplicador resultante 0 89 0 74 0 27 Esfuerzo persona mes 8 62 5 24 0 66 Tiempo de desarrollo mes 5 67 4 69 2 14 Personal necesario 1 52 1 12 0 31 Tabla 9 Atributos asignados para cada subsistema y previsiones 41 e Miguel Angel Hernanz Hernanz Analizando los datos obtenidos se observa que el tiempo estimado total para el desarrollo del proyecto es de aproximadamente 12 meses y medio Partiendo de la base de que el dise o y la funcionalidad de la aplicaci n Android replica las caracter sticas principales de la aplicaci n de escritorio en dispositivos m viles y que la implementaci n interna de dichas aplicaciones tiene bastantes puntos en com n como consecuencia de la reutilizaci n de c digo fuente la estimaci n de tiempo en el desarrollo de la aplicaci n Android ha de ser reducido al menos en un 75 para ajustarse a la realidad Este porcentaje se elije a partir de la proporci n de funciones que son comunes a las dos aplicaciones consideradas Con sta reducci n del tiempo de desarrollo de la aplicaci n Android el
77. 00 12 1 Set de jump cables breadboard 6 05 100 6 05 Resistencias el ctricas 0 40 100 0 4 Fuente de alimentaci n 9V 6 00 100 6 TOTAL 693 53 Tabla 10 Costes de los recursos hardware 45 wt Miguel Angel Hernanz Hernanz Recurso Coste Utilizaci n isaac al MS Windows 7 incluido en el coste del PC 0 00 100 0 Sublime Text 2 trial version 0 00 100 0 Processing 2 11 IDE 0 00 100 0 Arduino 1 0 5 IDE 0 00 100 0 Adobe Photoshop CS6 trial version 0 00 100 0 LibreOffice 4 2 0 00 100 0 GanttProject 2 7b 0 00 100 0 Fritzing 0 8 7b 0 00 40 0 XAMPP 1 8 3 0 00 100 0 Java JDK 1 7 0 45 0 00 80 0 yEd Graph Editor 3 12 2 0 00 100 0 Android SDK 0 00 80 0 TOTAL 0 Tabla 11 Costes de los recursos software Recurso Coste por hora de trabajo Desarrollador Analista Encargado de pruebas 12 Documentador 5 Tabla 12 Coste de los recursos humanos Seg n lo indicado en la tabla 11 los costes totales asociados al software empleado en este proyecto se reducen a 0 Esto es debido a la utilizaci n de programas y herramientas de acceso p blico gratuito o en su versi n de prueba lo cual reduce los costos empleados en licencias Con toda la informaci n expuesta anteriormente el coste total del proyecto resulta de la suma del coste de desarrollo indicado en la ilustraci n 13 y el coste de los recursos f sicos empleados durante su realizaci n re
78. 01x gt FC siendo FC los valores de ajuste de complejidad asignados a los Factores de Valor de Ajuste T cnico FVAT en una escala de significaci n de 0 a 5 representando 0 la ausencia de influencia y 5 una influencia muy fuerte 32 e Miguel Angel Hernanz Hernanz C lculo de los Puntos de Funci n No Ajustados Factor de ponderaci n Par metros de medici n Simple Medio Complejo Suma N mero de entradas de x3 x4 x6 usuario N mero de salidas de usuario x4 x5 x7 Numero de peticiones de x3 x5 x6 usuario N mero de archivos x7 x10 x15 Numero de interfaces x5 x7 x10 externas Cuenta Total PFNA Tabla 1 Obtenci n de los Puntos de Funci n No Ajustados Factores de Valor de Ajuste T cnico FVAT 1 Comunicaci n de datos 2 Proceso distribuido de datos 3 Rendimiento 4 Configuraci n 5 Volumen de transacciones 6 Entrada de datos en l nea 7 Dise o para la eficiencia del usuario final 8 Actualizaci n de datos en l nea 9 Complejidad del procesamiento 10 Reusabilidad del c digo 11 Facilidad de instalaci n 12 Facilidad de operaci n 13 Instalaci n m ltiple 14 Facilidad de cambio 15 Requerimientos de otras aplicaciones 33 wt Miguel Angel Hernanz Hernanz 6 1 ESTIMACI N DEL TAMA O Una vez se ha explicado el m todo a seguir para estimar los Puntos de Funci n se aplicar
79. 21 RF 22 RF 23 RF 24 RF 25 RF 26 RF 27 RF 28 RF 29 Tabla 66 Matriz de rastreabilidad objetivos requisitos 1 2 64 wt Miguel Angel Hernanz Hernanz 65 OBJ 01 OBJ 02 OBJ 03 OBJ 04 OBJ 05 OBJ 06 OBJ 07 OBJ 08 RF 30 RF 31 RF 32 RF 33 RF 34 RF 35 RF 36 RF 37 RF 38 RF 39 RF 40 RF 41 RF 42 RF 43 RF 44 RNF 01 RNF 02 RNF 03 RNF 04 Tabla 67 Matriz de rastreabilidad objetivos requisitos 2 2 ORTDUINO Miguel Angel Hernanz Hernanz 2 ESPECIFICACI N FUNCIONAL DEL SISTEMA 2 1 MODELO DE PROCESOS DEL SISTEMA En este apartado se abordan las funciones del sistema desde el punto de vista del desarrollador donde se define qu debe hacer el sistema internamente para cumplir los objetivos y funciones recogidos en los requisitos En primer lugar se presentan los Diagramas de Flujo de Datos DFD en los que se muestra la circulaci n de la informaci n dentro del sistema En el Diagrama de Flujo de Datos de nivel 0 tambi n llamado Diagrama de Contexto se indican las interacciones que realiza el sistema con las entidades externas del entorno ofreciendo una visi n general del sistema a nivel relacional Para detallar mas en profundidad los diversos subsistemas y el intercambio de informaci n entre
80. 3 2 12 13 21 11 13 26 11 13 2 12 13 5 02 14 11 12 13 16 12 13 20 12 13 25 12 13 1 01 14 22 01 14 5 02 14 24 02 14 12 02 14 12 02 14 17 02 14 24 02 14 20 03 14 26 02 14 6 03 14 17 03 14 20 03 14 28 04 14 25 03 14 1 04 14 31 03 14 7 04 14 8 04 14 17 04 14 28 04 14 11 07 14 24 04 14 11 07 14 10 14 30 22 25 27 30 33 38 20 75 77 224 71 91 95 97 77 104 115 Duraci n Cost 175 3 359 05 B anunuuy a una ss NN Ob BO WwW 175 119 Ilustraci n 13 Planificaci n de las tareas seg n las iteraciones propuestas 264 104 104 204 5 80 Se puede concluir a partir de las ilustraciones 13 y 14 que varias de las tareas relacionadas con las pruebas del software se superponen con algunas de las tareas de implementaci n de dicho software Esto se debe al proceso continuo de mejora y correcci n de errores que se ha usado durante el desarrollo de los diferentes subsistemas que componen Hortduino permitiendo a adir proceso retroalimentado 43 DUINO Miguel Angel Hernanz Hernanz 2014 noviembre diciembre enero febrero marzo abril mayo junio julio 192 Ilustraci n 14 Diagrama de Gantt En el diagrama de Gantt de la ilustraci n 14 se observa el desarrollo en el tiempo de las diferentes tareas con la numeraci n correspondiente a las indicadas en
81. 34 35 18 54 37 11 07 57 13 27 59 19 46 26 16 25 22 18 45 25 12 40 05 18 22 16 20 42 18 2014 04 11 2014 04 11 2014 04 12 20140412 2014 04 12 2014 04 13 201404 13 20140415 2014 04 15 2014 04 15 v Luminosidad E Riego activo Temperatura exterior C v Nivel de agua o Y Ventilaci n activa Y Temperatura interior C Humedad del suelo Y Humedad ambiental N mero de registros a mostrar 144 un dia X llustraci n 38 Secci n Estad sticas de la p gina web 110 ORTDUINO Miguel Angel Hernanz Hernanz l Estado actual Esta secci n se ha dise ado para incorporar a la web la informaci n mas reciente recibida por la aplicaci n escritorio as como el estado actual de las condiciones y sistemas del invernadero Se ha intentado mantener la apariencia establecida en las interfaces de las aplicaciones de escritorio y Android para crear una sensaci n de uniformidad en el sistema de cara al usuario Los sketches dispuestos en este apartado replican la informaci n ofrecida por los elementos de la interfaz de la aplicaci n de escritorio pero adaptados a la visualizaci n en la web No disponen de la capacidad de interactuar con las condiciones del sistema Estado Actual Luminosidad 58 Temperatura exterior 27 3 C Riego Temperatura interior 25 C Humedad ambiental 35 Humedad del suelo 44 Nivel de agua 450 Ventilaci n Datos recibidos el 15 07 2014 17 01 15 La informaci n mostrada
82. 7 Y Y v P 3 a oj E 3 gram Languages phpMyAdmin Webalizer Fake Sendmail S58 XAMPP Installer lt Back Next gt cancel Ilustraci n 27 Instalaci n del servidor XAMPP Il 22 e Miguel Angel Hernanz Hernanz La instalaci n ofrece una lista de componentes a instalar en el PC En este caso solamente es necesario marcar las opciones Apache MySQL PHP y phpMyAdmin ya que ser n los componentes que se utilizar n en el funcionamiento del sistema Hortduino Instalar la selecci n de componentes marcada por defecto como se puede ver en la ilustraci n 27 de la p gina anterior puede resultar til si se desean utilizar las funciones de por ejemplo el servidor FTP FileZilla que viene incluido dentro de XAMPP Please choose a folder to install XAMPP Select a folder C xampp XAMPP Installer Ilustraci n 28 Instalaci n del servidor XAMPP III Despu s de seleccionar los componentes necesarios aparece la selecci n del directorio donde se va a instalar el servidor XAMPP En este caso se dejar el que se muestra por defecto como se aprecia en la ilustraci n 28 Seguidamente el proceso de copiado de archivos dar comienzo seg n se muestra en la ilustraci n siguiente Welcome to XAMPP XAMPP is an easy to install Apache distribution containing MySQL PHP and Perl Installing XAMPP Install
83. Act coooooncncnnncninnnccnnonoonnonncononononn non ncnrnnnnonn nor ran nrann rra 82 Tabla 21 Procedimiento comprobarCondiciones cccccceseesscesesseeseeseeeeeaeeeseeeeeseceeeeseeeeeeeeseeeaees 83 Tabla 22 Procedimiento dibujarSelectorActualizaci n cocnononncnnnnnnnnnecocconcnncnncononnonncnnncnnccnnncnnnons 83 Tabla 23 Procedimiento dibujarSelectoresAct ccecceccesseessesseeseeesececeseecenseeeeeeseesseeeseeenseeesaeees 83 e Miguel Angel Hernanz Hernanz Tabla 24 Procedimiento dibujarBotonesyEstados cccccccescssseeseesseeseeeeeseeeeceseceeesesseeeeeseeeseaeees 84 Tabla 25 Procedimiento dibujarGraficosyEjes ccccccesessceseeeseesecsseeseeeneceeesecseeesesseeeecseeesneeesaees 84 Tabla 26 Procedimiento dibujarSelector cccesceecceseceseeseeeseeseeeseeseeeseeseeeseceeeeseeeeneeeseeeeseeenaeees 84 Tabla 27 Procedimiento dibujarSelectores ccccccsccesesseeeseeseesseeseceeeeseceeeeaeenseeaeceseceenseeesseeenentees 85 Tabla 28 Procedimiento dibujarEstadoOrdeneS ooconccincnoconononnnonncnncnoncnnnnnncnn non ncnn non crono nnrnnnrnnnnnnos 85 Tabla 29 Procedimiento dibujarGrafico csceccescesscessesseeseseseceecesecseeeseceeeeseceaesseeeeeeeeeeeeeteeenaees 85 Tabla 30 Procedimiento dibujarDeposito ecceeceescceeeseeseeeeesseeseceeeeseceeeseensessecnsesaeeeaeeesseeeneatees 86 Tabla 31 Procedimiento dibujarE jes ececeecseceseeteesesseseeseesesseeeeesceececseceesecseeseeateae
84. Agua FROM lecturas ORDER BY Fecha row mysqli_fetch array result Sconsumo 0 Santerior Srow NivelAgua while row mysqli _fetch_array result if Srow NivelAgua lt Santerior Sconsumo Santerior Srow NivelAgua Santerior Srow NivelAgua else Santerior Srow NivelAgua result mysqli_query conexion SELECT COUNT DISTINCT DATE Fecha FROM lecturas dias mysqli_fetch array result 0 SconsumoMedio round consumo dias 1 result mysqli_query conexion SELECT NivelAgua FROM lecturas ORDER BY Indice DESC LIMIT 1 nivelAguaActual mysqli_fetch array result 0 mysqli_close conexion eS lt html gt lt head gt lt title gt Horduino web Consumo de agua lt title gt lt meta name author content Miguel Angel Hernanz gt lt meta name description content Horduino Web Sensor gt lt meta name keywords content hortduino processing arduino sensor gt lt meta charset UTF 8 gt lt link rel icon type image png href images favicon png gt lt link rel stylesheet type text css href estilo css gt lt script type text javascript src scripts processing 1 4 1 min js gt lt script gt lt script type text javascript gt function mostrarDeposito var pjs Processing getInstanceBylId depositoagua var nivel lt php echo json encode nivelAguaActual gt pjs dibujarDeposito nivel lt script gt lt head
85. Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Postcondici n Excepciones Paso Acci n La aplicaci n de escritorio recopila la informaci n relativa a los rangos 4 aceptables de las variables monitorizadas en una cadena de texto Cada P valor se separa usando el caracter y ocupa una determinada posici n dentro de esta cadena Se a aden los c digos del modo de control de los sistemas de riego y p2 ventilaci n a la cadena del paso 1 de acuerdo con el formato num rico recogido en la descripci n del caso de uso RF 13 3 La cadena de texto construida en los pasos 1 y 2 se guarda en el archivo P config txt en el servidor XAMPP 4 La aplicaci n de escritorio re ne los c digos de estado de las condiciones P del invernadero separados por comas en una cadena de texto 5 Se a ade el estado actual de los sistemas de riego y ventilaci n con el P c digo de estado asociado a cada uno O inactivo 1 activo 6 La cadena de texto construida en los pasos 4 y 5 se guarda en el archivo P condiciones txt en el servidor XAMPP La configuraci n y el estado actual del sistema se ha guardado en los archivos correspondientes del servidor XAMPP Paso Acci n 3y4 Siel archivo no existe se crea Si existe el contenido es sobrescrito Rendimiento 5 segundos m ximo Frecuencia esperada Con cada
86. Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n El sistema deber mostrar la informaci n recibida de forma remota desde diversos sensores Importancia Importante Urgencia Alta Estado Validado Estabilidad alta Comentarios Este objetivo es atribuible a las aplicaciones de escritorio y Android Incluye la representaci n num rica y gr fica de los datos recibidos Tabla 2 Objetivo del sistema Mostrar informaci n de sensores remotos OBJ 03 Almacenar informacion recibida Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n El sistema deber ser capaz de almacenar los datos recibidos desde los sensores remotos en una base de datos Importancia Importante Urgencia Alta Estado Validado Estabilidad alta Comentarios Este objetivo es atribuible a la aplicaci n de escritorio Tabla 3 Objetivo del sistema Almacenar la informaci n recibida ORTDUINO Miguel Angel Hernanz Hernanz OBJ 04 Cambiar el estado de los sistemas de riego ventilacion Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n El sistema deber ser capaz de cambiar el estado de los sistemas de riego y ventilaci n del invernadero de forma remota a petici n del usuario Importancia Importante Urgencia Alta Estado Validado Estabilidad alta Comentarios Este objetivo es atribuible a
87. Despu s de importar la base de datos es necesario crear un usuario que tenga acceso a ella para realizar operaciones de consulta e inserci n Para esta operaci n se selecciona la base de datos Inver en el men situado en la parte izquierda de la p gina PHPMyAdmin y se hace click en el bot n con la etiqueta Privilegios Una vez dentro de esta opci n es necesario crear un usuario nuevo a trav s de la opci n Agregar usuario con las siguiente configuraci n Informaci n de usuario Nombre hortelano Contrase a hortelano Privilegios globales marcar todos 26 DUINO Miguel Angel Hernanz Hernanz En la ilustraci n de la siguiente p gina se pueden apreciar las opciones de configuraci n del usuario hortelano para la base de datos Inver del servidor para mayor claridad al Servidor Base de datos inver W Estructura SQL 4 Buscar Jj Generar una consulta 4 Exportar 5 Importar g Operaciones Privilegios Agregar usuario Informaci n de la cuenta Nombre de usuario Use el campo de texc y ae Servidor Cualquier servidor y Contrase a Use el campo de texc y Debe volver a escribir eccccccce Generar contrase a Generar Base de datos para el usuario Crear base de datos con el mismo nombre y otorgar todos los privilegios Otorgar todos los privilegios al nombre que contiene comod n username _ Otorgar todos los privilegios para la base de datos inver
88. ENE 124 e Miguel Angel Hernanz Hernanz ndice de ilustraciones Ilustraci n 1 Diagrama de subsistemas ccccesceeseescceseeseeeseesceeseceeceseceeeeseeeaecsesesecseeeesaeeestaeenaees 15 Ilustraci n 2 Diagrama de casos de uso de la aplicaci n de escritorio 15 Ilustraci n 3 Diagrama de casos de uso de la aplicaci n Android 16 Ilustraci n 4 Diagrama de casos de uso de la p gina Web ooooconccniconcciccnocnnononononncnnnonnono nono nnononnos 17 Ilustraci n 5 Diagrama de casos de uso de Arduino eceeeeceesseesceseceseeseeeseeseceseeaeeeeeseeeeseeeeenseenees 17 Ilustraci n 6 Diagrama de casos de uso del sistema simplificado oonconnnnnnnnnocnonoccnocnnarnnnnnnoos 18 Ilustraci n 7 Diagrama de Contexto del sistema Nivel O oionnoninniniccnnncnncnononconcnnconcnnonnnrnronnncnnno 66 Ilustraci n 8 Diagrama de Flujo de Datos Nivel Lo ee eeeecsseeseeseeseeseeseeeeeeceeeeeceeereeeeseeneeates 66 Ilustraci n 9 Diagrama de Flujo de Datos Nivel 2 Control de los sistemas del invernadero 67 Ilustraci n 10 Diagrama del Flujo de Datos Nivel 2 Gesti n de rdenes 67 Ilustraci n 11 Diagrama del Flujo de Datos Nivel 2 Procesado de datoS ooocociicnnnnonnnconmmmm 67 Ilustraci n 12 Diagrama del Flujo de Datos Nivel 2 Gesti n de lecturas 68 Ilustraci n 13 Diagrama del Flujo de Datos Nivel 2 Control de condicioneS ooncoonnnnnnnn 68 Ilustraci n 14 Diag
89. En caso contrario se espera hasta que se alcance La aplicaci n recibe la lectura de los sensores y almacena cada valor p1 recibido en el array correspondiente a cada variable en la posici n indicada por el ndice actual Se incrementa el ndice con cada recepci n de datos p2 Se trazan los ejes en las posiciones predefinidas para los dos gr ficos Para cada variable monitorizada se recorre el array correspondiente desde p3 la posici n inicial hasta el indice actual trazando curvas splines en las coordenadas calculadas con la funci n de ajuste al gr fico 4 Si el ndice actual no ha alcanzado el tama o m ximo fijado para el gr fico P se dibuja un punto del color del gr fico en el extremo del gr fico p5 Si el ndice ha alcanzado el tama o m ximo del gr fico se reinicializa a cero para apuntar al inicio del array Postcondici n Se dibujan los gr ficos y ejes correspondientes a cada variable en la interfaz Excepciones Paso Acci n p1 Si el indice supera el tama o del array el ndice se reinicializa a cero Si el ndice ha superado el tama o m ximo fijado para el gr fico se dibuja un punto de color blanco en la posici n actual de dibujado para indicar la posici n actual de redibujado del gr fico p4 Rendimiento La frecuencia de dibujado del gr fico es modificable Frecuencia esperada No definido Importancia Alta Urgencia Alta E
90. Estado actual del men presenta un icono parpadeante en caso de que se detecte una condici n an mala Esto puede ser de utilidad para informar inmediatamente al usuario cuando accede a la p gina web de que se necesita su atenci n urgentemente para corregir el problema Ultimas lecturas Estadisticas Estado actual La secci n mostrada al ingresar en la pagina es Sobre Hortduino donde se explica brevemente el objetivo del sistema Hortduino sus componentes y modo de funcionamiento Consumo de agua Temperaturas A continuaci n se detalla cada secci n del men de opciones id explicando los aspectos de dise o rese ables 1003 Ilustraci n 36 Men de la p gina web 108 DUINO Miguel Angel Hernanz Hernanz dd ltimas lecturas Esta secci n tiene como funci n ofrecer al usuario una visi n del comportamiento en el tiempo de las condiciones del invernadero en las ltimas 12 horas Para ello se han dise ado una serie de sketches que generan un gr fico con los valores presentados por la variable en cuesti n a partir del intervalo a mostrar y la informaci n almacenada en la base de datos El usuario puede escoger el espacio de tiempo a representar en el gr fico y tiene la posibilidad de mover el cursor del rat n sobre el gr fico para obtener el valor particular sobre ese punto del gr fico En la ilustraci n 34 se muestra el contenido y la estructura de la secci n Ultimas lecturas como se ver a en el
91. F modo manual encendido ON o modo autom tico AUTO El sistema de riego puede estar en modo manual apagado OFF modo manual encendido ON o modo autom tico AUTO Intervalo temporal Indefinido Importancia Importante Urgencia Alta Estado Validado Estabilidad Alta Comentarios La informaci n referente al estado actual de los sistemas de riego y ventilaci n es atribuible a las aplicaciones de escritorio y Android y p gina web Tabla 11 Requisitos de Informaci n Informaci n sobre el modo de control de los sistemas de riego y ventilaci n 12 ORTDUINO Miguel Angel Hernanz Hernanz RI 04 Informaci n sobre la configuraci n de rangos aceptables de variables Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 06 Control automatizado de los sistemas de riego ventilaci n OBJ 08 Informar sobre las condicione actuales del invernadero Requisitos asociados RF 14 Guardar configuraci n de los rangos aceptables de las variables Descripci n El sistema deber almacenar la configuraci n del usuario acerca del valor m ximo y m nimo aceptable para cada variable monitorizada Datos espec ficos Valor m ximo Valor m nimo Intervalo temporal Indefinido Importancia Importante Urgencia Alta Estado Validado Estabilidad Alta Comentarios La informaci n referente al estado actual de
92. F 06 Recibir informaci n sobre nivel de agUa oooonccnccionnoccnnoonccnnnncnnnnnos 24 Tabla 24 Caso de uso RF 07 Cambiar modo de control del sistema de riego ooooonconicnnnnicninnmnm 25 Tabla 25 Caso de uso RF 08 Cambiar modo de control del sistema de ventilaci n o 26 Tabla 26 Caso de uso RF 09 Mostrar modo de control del sistema de ventilaciOn eee 27 Tabla 27 Caso de uso RF 10 Mostrar modo de control del sistema de riego oooocnncninnnnnnnnccnnm 28 Tabla 28 Caso de uso RF 11 Enviar lecturas a aplicaci n de escritOTlO oooooconoconocnocnnoncnononncnncnnnooo 29 Tabla 29 Caso de uso RF 12 Reenviar lecturas a aplicaci n AddrOld oooconccinnnnnnnoocccoonnoconnncnnnnnos 30 Tabla 30 Caso de uso RF 13 Guardar el estado de los sistemas de riego y ventilaci n 31 Tabla 31 Caso de uso RF 14 Guardar la configuraci n de los rangos aceptables de las variables DOLO ZAC AS ii A Ai 32 Tabla 32 Caso de uso RF 15 Almacenar lecturas y estados en la base de datOS ooooconcccnnnccnnno 33 Tabla 33 Caso de uso RF 16 Guardar el estado actual de las condiciones del invernadero 34 Tabla 34 Caso de uso RF 17 Activar sistema de riego en ArdUiNO oooconcnncnnonincnioncnnnonncnnnonrnncnnnnono 35 Tabla 35 Caso de uso RF 18 Desactivar sistema de riego en ATdUINO ooooococnnccnocnnononnnonnconananonnnno 36 Tabla 36 Caso de uso RF 19 Recibir rdenes en ATAUINO oooocccccncnocnocnncncnn
93. FNA Complejo Suma 0 x6 9 0 x7 27 0 x6 7 0 x15 14 0 x10 5 Tabla 4 Calculo de los PFNA de la Pagina Web 37 e Miguel Angel Hernanz Hernanz Seguidamente se pasa a calcular la suma de los valores de ajuste de complejidad asignados a cada Factor de Valor de Ajuste T cnico seg n se ha considerado para cada subsistema Factores de Valor de Ajuste T cnico See ema P gina Web Comunicaci n de datos 5 5 5 Proceso distribuido de datos 1 1 0 Rendimiento 0 0 0 Configuraci n 1 0 0 Volumen de transacciones 1 1 1 Entrada de datos en l nea 4 4 4 Dise o para la eficiencia del usuario 4 4 3 Actualizaci n de datos en l nea 3 2 2 Complejidad del procesamiento 3 2 1 Reusabilidad de c digo 1 0 1 Facilidad de instalaci n 1 1 0 Facilidad de operaci n 0 0 0 Instalaci n m ltiple 0 0 0 Facilidad de cambio 0 0 0 Requerimiento de otras aplicaciones 1 1 1 Total 25 21 18 Tabla 5 Asociaci n de factores de complejidad por aplicaci n Los Factores de Ajuste T cnico obtenidos en la tabla anterior son usados para calcular los Puntos de Funci n ajustados mediante la relaci n vista anteriormente Aplicaci n de Escritorio PF 60 0 65 0 01 25 54 Aplicaci n Android PF 47x 0 65 0 01 21 40 42 P gina Web PF 62 0 65 0 01 18 51 46 Con los datos anteriores se puede aproximar el tama o del software resultante en l neas de c digo mediante la relaci n entre el lenguaje de programaci n empleado en
94. Informar sobre las condiciones actuales del invernadero Requisitos asociados RI 01 Informaci n procedente de los sensores remotos RF 34 Recibir lecturas de Arduino RF 44 Establecer conexi n con el servidor XAMPP Descripci n Guarda en la base de datos del servidor los datos de la lectura recibida y los estados actuales de los sistemas de riego y ventilaci n Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP servicio MySQL Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n p1 Determinar si se ha cumplido el intervalo de guardado fijado p2 La aplicaci n de escritorio se autentifica con el gestor de la base de datos Si hay conexi n con la base de datos se env a la consulta SQL para a adir p3 un nuevo registro a la base de datos compuesto por la lectura recibida y el estado de los sistemas de riego y ventilaci n p4 Se actualiza el temporizador usado en el intervalo de escritura Postcondici n La base de datos del servidor contiene un nuevo registro con la lectura recibida y el estado de los sistemas de riego y ventilaci n en el momento de la recepci n Excepciones Paso Acci n p2 Si no est disponible la conexi n se muestra un mensaje de error Rendimiento Inferior a 5 segundos Frecuencia esperada n a Importancia Alta
95. L en el servidor ejecutando una llamada a un script PHP a partir de los par metros seleccionados por el usuario y mostrar el resultado de forma gr fica El navegador web del usuario realiza peticiones de contenido al servidor donde son atendidas por el m dulo Apache y el int rprete PHP enviando la informaci n requerida para mostrar la p gina web Al emplear el lenguaje PHP se puede variar el contenido mostrado de forma din mica en funci n por ejemplo del estado de las alertas del sistema para mantener al usuario informado en todo momento de las condiciones y estado actual del invernadero 10 e Miguel Angel Hernanz Hernanz 2 1 OBJETIVOS DEL PFC Como ya se ha indicado anteriormente el objetivo del presente PFC es dise ar e implementar un sistema de control de invernadero apoyado en la plataforma de hardware Arduino El sistema ha de ser capaz de controlar los sistemas de riego y ventilaci n del invernadero de forma remota mediante el env o de rdenes ya sean manuales o como respuesta autom tica a un cambio en las condiciones establecidas por el usuario Mas concretamente el sistema a implementar ha de ser capaz de cumplir estos objetivos P Comunicaci n con el usuario a trav s de varias herramientas disponibles algunas de ellas capaces de interactuar de forma remota con el sistema P Automatizaci n de los sistemas de riego y ventilaci n en base a rangos aceptables de algunas variables monitorizadas P Almacenamien
96. NCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION 68 e Miguel Angel Hernanz Hernanz 16 Limitation of Liability IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MODIFIES AND OR CONVEYS THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 17 Interpretation of Sections 15 and 16 If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee END OF TERMS AND CONDITIONS 69 BLOQUE II DOCUMENTACI N T CNICA e Miguel Angel Hernanz Hernanz ndice de contenido 1 AN LISIS DE REQUISITOS DEL SISTEMA c cccccccssssssessessesessssesecsesessesscatscatsesavsesava
97. ORTDUINO Miguel Angel Hernanz Hernanz ID punteroSobreBoton Nombre E S Funci n x entrada Coordenada en el eje X Par metros y entrada Coordenada en el eje Y ancho entrada Ancho del bot n en pixels alto entrada Alto del bot n en pixels Descripci n Devuelve si el dedo del usuario se encuentra dentro del rea del bot n Procedimientos dibujarBotonOrdenes asociados Tabla 61 Procedimiento punteroSobreBoton ID receive Nombre E S Funcion Parametros F TE mensaje entrada Contenido del paquete UDP recibido Este procedimiento es el handler de la librer a UDP sobre eventos de recepci n de Descripci n datagramas Se ha ampliado para a adir la comprobaci n del contenido del paquete UDP recibido discriminando entre lecturas reenviadas y la orden de recarga de configuraci n Procedimientos asociados draw 95 Tabla 62 Procedimiento receive wt Miguel Angel Hernanz Hernanz 3 3 9 PROCEDIMIENTOS DE LA PAGINA WEB ID menu php Nombre E S Funci n Par metros 7 F a TE condiciones entrada Archivo de configuraci n de condiciones condiciones txt Muestra el men de contenidos de la p gina web Si se detecta un estado de alerta al Descripci n analizar el archivo de condiciones actuales del invernadero se a ade un icono informativo al bot n Estado Ac
98. P E Tdev a b c d son constantes definidas en la Tabla 8 correspondientes al modo de desarrollo KI es el n mero de l neas de c digo expresado en miles m X es el multiplicador que depende de 15 atributos considerados Para el c lculo del multiplicador m X se elige un valor asociado a cada factor considerado en el desarrollo de acuerdo a la tabla mostrada a continuaci n Hay que destacar que esta elecci n tiene carga subjetiva y est sujeta a la percepci n del desarrollador o a la experiencia previa en el desarrollo de proyectos similares Valor Atributos Muy Bajo Bajo Normal Alto Muy Alto Extra Fiabilidad 0 75 0 88 1 00 1 15 1 40 Tama o de la base de datos 0 94 1 00 1 08 1 16 Complejidad del producto 0 70 0 85 1 00 1 15 1 30 1 65 Restricciones en tiempo de ejecuci n 1 00 1 11 1 30 1 66 Restricciones de memoria virtual 1 00 1 06 1 21 1 56 Volatilidad de la m quina virtual 0 87 1 00 1 15 1 30 Tiempo de respuesta 0 87 1 00 1 07 1 15 Capacidad del analista 1 46 1 19 1 00 0 86 0 71 Experiencia en la aplicaci n 1 29 1 13 1 00 0 91 0 82 Calidad de los programadores 1 42 1 17 1 00 0 86 0 70 Experiencia en la m quina virtual 1 21 1 10 1 00 0 90 Experiencia en el lenguaje de programaci n 1 14 1 07 1 00 0 95 T cnicas actualizadas de programaci n 1 24 1 10 1 00 0 91 0 82 Uso de herramientas software 1 24 1 10 1 00 0 91 0 83 Limitaciones de tiempo de desarrollo 1 22 1 08 1 00 1 04 1 10
99. P de escucha para recibir datos y enviar rdenes y finalmente cargar la configuraci n de la aplicaci n guardada en el servidor XAMPP Control TouchEvent Simula el comportamiento del rat n mediante eventos de entrada t ctil de la librer a android view MotionEvent UDP Receive Handler Este m dulo es similar al empleado por la aplicaci n de escritorio Realiza funciones de recepci n de datos y su posterior conversi n para ser usados en la interfaz de la aplicaci n Salvar Configuraci n Al igual que en la aplicaci n de escritorio es el procedimiento encargado de guardar remotamente la configuraci n de la aplicaci n en el servidor XAMPP cuando ocurre un cambio significativo en ella 27 wt Miguel Angel Hernanz Hernanz Mostrar Ment Es el conjunto de procedimientos que generan un men en pantalla con varias opciones para el usuario Mostrar Nivel Dep sito Se encarga de dibujar una representaci n del dep sito de agua para riego y su porcentaje de llenado actual en la pantalla del dispositivo Mostrar Inicio Se ocupa de mostrar la pantalla inicial de la aplicaci n con informaci n relativa a los datos recibidos en tiempo real el estado nominal de las condiciones del invernadero las posibles alertas y el estado y funcionamiento de los sistemas de riego y ventilaci n todo ello de forma gr fica y compacta en la pantalla del dispositivo Se apoya en la clase Bot n implementada en la aplicaci n para m
100. PHP Su funci n es la de traducir y ejecutar en el servidor el c digo PHP de la p gina web a fin de generar din micamente un documento HTML con el resultado del procesamiento del archivo PHP que ser enviado por el servidor HTTP al navegador web del usuario dd Contenido Web Aqu se agrupan todos los recursos requeridos para mostrar la p gina web y su estructura en el navegador del usuario como pueden ser im genes archivos php correspondientes a cada secci n de la web applets y el archivo css de estilos visuales de la p gina 29 wt Miguel Angel Hernanz Hernanz dd Acciones PHP Es el conjunto de archivos usados por diferentes procedimientos para realizar acciones remotamente en el servidor mediante el empleo de los scripts contenidos en ellos A continuaci n se listan dichos archivos y sus funciones TP AccionesConfig php Es usado por la aplicaci n de escritorio para guardar y cargar la configuraci n de las variables supervisadas almacenadas en el archivo de texto plano config txt Tambi n actualiza el estado de las condiciones en el archivo de texto condiciones txt WM Consultar php Este script genera una consulta SQL a la base de datos del servidor y devuelve el resultado al procedimiento que la solicit Se emplea en varios sketches de la p gina web como medio de acceso al contenido de la base de datos WM GetIP php Devuelve la actual direcci n IP del servidor Es necesario
101. PHP se ejecuta siempre en el servidor y el resultado es devuelto en forma de p gina web al usuario 59 e Miguel Angel Hernanz Hernanz LICENCIA Preamble The GNU General Public License is a free copyleft license for software and other kinds of works The licenses for most software and other practical works are designed to take away your freedom to share and change the works By contrast the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program to make sure it remains free software for all its users We the Free Software Foundation use the GNU General Public License for most of our software it applies also to any other work released this way by its authors You can apply it to your programs too When we speak of free software we are referring to freedom not price Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software and charge for them if you wish that you receive source code or can get it if you want it that you can change the software or use pieces of it in new free programs and that you know you can do these things To protect your rights we need to prevent others from denying you these rights or asking you to surrender the rights Therefore you have certain responsibilities if you distribute copies of the software or if you modify it responsibilities to respect the freedom of others For example
102. Si se produce un error al consultar la base de datos se muestra en pantalla Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 56 Caso de uso RF 39 Generar p gina web Temperaturas 57 wt Miguel Angel Hernanz Hernanz RF 40 Generar pagina web Consumo de Agua Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 07 Consulta de informaci n v a web OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 42 Obtener datos de la base de datos Descripci n Genera la p gina web con la informaci n disponible sobre el nivel actual de agua en el dep sito de riego el consumo total y medio y la previsi n de duraci n del agua para riego en base al consumo y el nivel restante Precondici n Conexi n con servidor XAMPP servicios MySQL y servidor web Apache Secuencia normal Paso Acci n 4 El usuario accede con su navegador a la secci n Consumo de Agua de la P web p2 Se genera la p gina web en el servidor usando los datos obtenidos de la base de datos p3 Se env a la p gina web al navegador del usuario Postcondici n La p gina web solicitada se muestra en el navegador del usuario Excepciones Paso Acci n p2 Si se produce un error al consulta
103. TItOTTO oooonoccncnicnncnnnnnncnncnncnnccnrcnrrnn cnn cnn rancia nono 6 Ilustraci n 3 Ultima lectura recibida desde los SeNSOLeS ce esceeceeseeeseeseeeseeeeecseeeeeeseeseeeneenseesses 6 Ilustraci n 4 Gr ficos de las variables cccccsccseeseesceeseeeceeseceeceseceeeesecenesseseeesaeeeseeseecseseeeeseeneeeaeens 7 Ilustraci n 5 Controles de riego y ventilaci N ooooconnninnninnnocnnonconcnnnonncnnnonnnnnnonn ono non non nnnnnnnnrnnnannninss 8 Ilustraci n 6 Informaci n de condiciones actualeS oooooncnnncnicnnccnncncononononncnnnonnono non nn rnnnn nono nn nnnnannnns 8 Ilustraci n 7 Selectores de rangos aceptables cccceccssseesessceeseesceeseeeeeeseceessecesecseneeesneessneeeneeees 10 Ilustraci n 8 Selectores de actualiZaciOM ccececseessessceseeseeeseeseeseceeeeseceeeseesseesecneeeaeseseeeenseeseees 10 Ilustraci n 9 Icono de la aplicaci n en Android eeceeceescesceeeeseeeseeeeeeseeeceseeeeeseeneeeaeeneeensntensaes 11 Tlustracion 10 Fallo en la CONEXI N 0 ee ceeccescesceeseeseeeeeeseeececseeesecseeesecseeesecseeeaeensesseeeessaeessaeensaees 12 Ilustraci n 11 Pantalla principal de la appa ccceseesceeseeseeeseeeeeseeseceeecaeeesesseeeseceeeeaeeneeeaeesseeaees 12 Ilustraci n 12 Men de la aplicaciOn ececceeseeseseceeseessceseeeseeseceeceseceeeaeeeseeseceseeaecesesseeeaeeeeeeaeeaees 13 Hustracion 13 Dep sito al 80 cssscssescidiscsess cescaeesseetsiveessd Geueecsdenteat
104. UDP determinado para la recepci n del paquete que contiene las rdenes enviadas por la aplicaci n de escritorio 4 Ejecuci n Ordenes Implementa la traducci n de las rdenes recibidas mediante paquetes UDP a acciones f sicas en los actuadores de los sistemas de riego y ventilaci n si es necesario cambiar su estado 24 fe Miguel Angel Hernanz Hernanz 4 2 Arquitectura interna del subsistema Aplicaci n de Escritorio APLICACI N DE ESCRITORIO Mostrar Datos Comprobar Comprobar Conexi n Estados Condiciones Red Salvar Salvar Control Lecturas Configuraci n Interfaz Ilustraci n 9 Arquitectura interna de la Aplicaci n de Escritorio En la ilustraci n de mas arriba se observan los bloques funcionales de los que se compone la aplicaci n para escritorio Cada bloque representa un grupo de procedimientos relacionados a una tarea concreta Seguidamente se recoge la descripci n y funcionalidad de cada uno de estos conjuntos de procedimientos y funciones amp Inicializaci n Setup Se ocupa de establecer los valores iniciales de las variables empleadas resolver la conexi n a la base de datos remota y al hardware Arduino y cargar las configuraciones de la aplicaci n usando los archivos almacenados en el servidor dl UDP Receive Handler Este m dulo b sico de la librer a Hypermedia net UDP cumple una doble funci n por un lado se mantiene a la escucha de los paquetes UDP entrantes enviados desde el disposi
105. USUARIO En esta secci n se analiza la fase de dise o de las interfaces de usuario presentes en el sistema Hortduino desde el concepto inicial hasta su implementaci n final Cada herramienta disponible posee sus caracter sticas distintivas que influyen en el dise o de la interfaz de usuario ya sea por el m todo de interacci n con la aplicaci n entrada t ctil o mediante rat n y teclado o por la forma de presentaci n de la informaci n en pantalla 3 4 1 DISPOSITIVO ARDUINO El dispositivo Arduino no posee como tal una interfaz de usuario La nica forma de comunicaci n disponible con el usuario es mediante el empleo de programas o herramientas que permitan visualizar los mensajes de depuraci n emitidos por Arduino utilizados en tareas de correcci n de errores y pruebas del c digo que ejecuta en el microcontrolador Para acceder a esta interfaz se necesita establecer una conexi n entre el puerto serial de Arduino mediante el cable USB apropiado y la herramienta encargada de recibir los mensajes v a serial por ejemplo PuTTY 3 4 2 APLICACI N DE ESCRITORIO La aplicaci n de escritorio debe ser capaz de ofrecer en su interfaz la informaci n de las condiciones recientes y actuales del invernadero as como proporcionar elementos para interactuar con las condiciones aceptables de las variables y los m todos de control de los sistemas del invernadero Con estos dos objetivos en mente la interfaz ha de integrar los sigui
106. Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 32 Caso de uso RF 15 Almacenar lecturas y estados en la base de datos 33 ORTDUINO Miguel Angel Hernanz Hernanz RF 16 Guardar el estado actual de las condiciones del invernadero Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 03 Almacenar informaci n recibida OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RI 05 Informaci n sobre el estado actual de las condiciones del invernadero RF 35 Salvar la configuraci n Descripci n Guarda en el archivo condiciones txt es estado actual de las condiciones del invernadero con el siguiente formato 1 No se alcanza el nivel m nimo establecido para la condici n 0 Situaci n normal 1 Se ha superado el nivel m ximo permitido para la condici n Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n p1 Determinar si ha ocurrido un cambio en las condiciones actuales La aplicaci n de escritorio construye una cadena de texto con el valor p2 asociado al estado de cada condici n separado por comas y el estad
107. Y Estado actual de las condiciones de los par metros monitorizados incluyendo posibles alertas v_ Nivel de agua disponible en el dep sito de riego su duraci n aproximada con el consumo actual y el total consumido hasta ese momento Temperaturas m ximas medias y m nimas registradas El comportamiento de las variables y la actividad de los sistemas de riego y ventilaci n a lo largo de un intervalo de tiempo seleccionado por el usuario Mediante el uso del lenguaje de hojas de estilo en cascada CSS y las reglas definidas con ste en el archivo estilo css se separa el contenido de la p gina del aspecto visual facilitando as la posible modificaci n de los elementos visuales que componen la p gina sin alterar la funcionalidad o el contenido de la misma l Interacci n con otros sistemas Se puede considerar a la p gina web como la parte del subsistema Servidor XAMPP que es visible por el usuario y se comunica dentro de ese subsistema con los servicios MySQL y servidor web Dentro del directorio de la p gina web en el servidor se alojan tres ficheros de texto plano utilizados para almacenar configuraciones y estados Estos ficheros son ml Config txt Contiene los valores minimos y maximos aceptables para cada variable monitorizada separados por punto y coma Usado por la aplicacion de escritorio ML Condiciones txt Almacena el estado de las condiciones del invernadero en formato num rico usando separaci
108. a aplicaci n para dispositivos Android se dise con el objetivo de asemejarse a la de la aplicaci n de escritorio dado que cumplen casi las mismas funciones pero adaptada a la entrada t ctil De esta manera el usuario familiarizado con la aplicaci n de escritorio se adaptar r pidamente al uso de la aplicaci n Android a trav s de una interfaz con dise o y elementos muy similares Existen diferencias en la disposici n de los elementos en la interfaz de la aplicaci n Android respecto a la de la aplicaci n de escritorio ya que el tama o de la pantalla de estos dispositivos es notablemente inferior al de un monitor convencional para PC Por ello se ha optado por incluir algunos de los elementos de la interfaz dentro de un men sencillo para una correcta visualizaci n de la informaci n HORTDUINO v1 0b Luminosidad 76 Temperatura exterior 23 0 C Temperatura interior 21 C Humedad interior 38 Humedad del suelo 0 Temperatura exterior OK Temperatura interior OK Humedad ambiental OK Nivel de agua para riego OK Eyy AUTO 5 OFF Riego Ventilaci n menu llustraci n 29 Pantalla inicial de la aplicaci n Android Como se puede observar en la ilustraci n anterior la interfaz de la aplicaci n Android comparte numerosos elementos de dise o e informaci n con la aplicaci n de escritorio La interacci n del usuario con los botones de control de riego y ventilaci n se realiza por v a t ctil El e
109. a en la base de datos y por la p gina web si se desea consultar la informaci n almacenada en la base de datos La aplicaci n de escritorio es la pieza fundamental del sistema ya que interviene en las tres funciones b sicas que presenta el sistema Hortduino 73 fe Miguel Angel Hernanz Hernanz 3 3 2 DIAGRAMA DE FLUJO DEL DISPOSITIVO ARDUINO niciaizaci n Leer sensor humedad Leer sensor luminosidad MEA eer sensor nivel de agua Leer sensor temperatura en dep sito interior Se ha cumplido el intervalo de lectura N S Leer sensor humedad del Leer sensor temperatura suelo exterior l SI E Paquete UDP recibido Leer Ordenes Enviar lecturas NO Ejecutar Guardar rdenes rdenes Ilustraci n 17 Diagrama de flujo del dispositivo Arduino Agrupar datos de sensores NO SI 74 DUINO Miguel Angel Hernanz Hernanz 3 3 3 DIAGRAMA DE FLUJO DE LA APLICACI N DE ESCRITORIO Y Inicializaci n gt lt gt Enviar rdenes NO Cambio en las condiciones o guardar configuraci n activado NO Salvar configuraci n Recargar configuraci n si Cargar configuraci n Intervalo de actualizaci n gr fico NO Almacenar lecturas para gr ficos puerto Configurar IP y Activar recarga de configuracion Guardar lecturas en BB DD
110. a la superficie del agua empleando el tiempo de p7 retorno y la velocidad del sonido 29 cm milisegundo Devolver en la variable correspondiente el valor porcentual del nivel de agua pe bas ndose en el valor obtenido en paso 6 y la profundidad del dep sito Postcondici n El porcentaje de nivel de agua restante est disponible para su env o Excepciones Paso Acci n p8 Si el valor es negativo se retorna el valor 0 Rendimiento Dentro del intervalo de tiempo asignado a la lectura de sensores Frecuencia esperada Una lectura cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 23 Caso de uso RF 06 Recibir informaci n sobre nivel de agua 24 ORTDUINO Miguel Angel Hernanz Hernanz RF 07 Cambiar modo de control del sistema de riego Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar el estado de los sistemas de riego ventilaci n OBJ 06 Control automatizado de los sistemas de riego ventilaci n Requisitos asociados RF 26 Comprobar condiciones Descripci n Cambia el modo de control del sistema de riego alternando entre el modo manual ON y OFF y el modo autom tico AUTO Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n con servidor XAMPP Aplicaci n de escritori
111. a que se reciben las rdenes a ejecutar en los sistemas de riego y ventilaci n y hacia la que se env a la informaci n de las lecturas mediante paquetes de datos usando el protocolo de red UDP dd Limitaciones y dependencias La programaci n del microcontrolador se efect a empleando el entorno de desarrollo propio de Arduino para almacenar en la memoria flash del dispositivo el programa a ejecutar el cual es transferido al dispositivo por medio de un cable USB Dado que la memoria SRAM disponible es limitada se debe optimizar el c digo para que se nunca se exceda el tama o m ximo de la memoria usada en tiempo de ejecuci n Si esto sucediese el dispositivo mostrar a un ciclo de reinicializaci n continuo por la falta de memoria disponible para ejecutar las siguientes Instrucciones 20 e Miguel Angel Hernanz Hernanz El subsistema compuesto por el dispositivo Arduino los sensores y actuadores mec nicos depende de la aplicaci n de escritorio para conocer cu ndo se debe regular el comportamiento de los sistemas de riego y ventilaci n o hay indicios de un posible fallo en alg n sensor El uso de la librer a Ethernet udp h impone un tama o m ximo de datos por paquete UDP de 24 bytes que hay tomar en consideraci n a la hora de construir el datagrama para no exceder este tama o amp Usuarios Puede ser de utilidad al administrador del invernadero conocer c mo est trabajando internamente el dispositivo Arduino en lo qu
112. a un poco por debajo de su posici n normal else text texto ancho margen 5 1 else fi11 170 237 250 text texto ancho margent5 i 10 Escala de la humedad ambiente en azul claro para una mejor visualizaci n fi11 255 noFill contDivY humAmbSeleccionada false grillaDibujada true Evita que se dibuje tantas veces como opciones seleccionadas marque el usuario void mostrarVacio int num obtenerTimeStamps num dibujarGrilla 10 5 0 void muestraEstadisticas String seleccionadas int num background 60 grillaDibujada false String temporal split seleccionadas if temporal 0 mostrarVacio num obtenerTimeStamps num for int i 0 i lt temporal length 1 i graficar temporal i num 121 DUINO Miguel Angel Hernanz Hernanz PAGINA WEB DE CONSUMO DE AGUA A continuaci n se muestra un ejemplo de generaci n de p gina web din mica que utiliza los sketches implementados en Processing js en conjunci n con los datos obtenidos de la base de datos mediante consultas SQL invocadas en PHP para visualizar en pantalla el nivel de agua en el dep sito y los datos referentes al consumo lt DOCTYPE html gt lt php conexion mysqli_connect hortduino no 1p biz horrelano hortelano invar if mysqli_connect_errno echo Fallo al conectar con MySQL mysqli_connect_error result mysqli_query conexion SELECT Nivel
113. acceso a estad sticas y gr ficos hist ricos de la evoluci n de las condiciones ambientales del cultivo durante diferentes periodos temporales En dicha p gina web se mostrar de forma din mica la ltima lectura recibida en los 30 segundos anteriores el estado de las alertas y sistemas de riego y ventilaci n el consumo de agua para riego y el porcentaje restante disponible en el dep sito entre otra informaci n til para el usuario A continuaci n se enumeran los objetivos y requisitos del sistema tabulados de acuerdo a la plantilla recomendada en Metodolog a para la Elicitaci n de Requisitos de Sistemas Software A Dur n B Bernardez 2000 Se ha escogido esta forma de presentaci n por su claridad y estandarizaci n 1 Documento disponible en www si us es informes lsi 2000 10 pdf wc Miguel Angel Hernanz Hernanz 1 2 OBJETIVOS DEL SISTEMA OBJ 01 Recibir informaci n de sensores remotos Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n El sistema deber recibir la informaci n de forma remota desde diversos sensores Importancia Importante Urgencia Alta Estado Validado Estabilidad alta Comentarios Este objetivo es atribuible a las aplicaciones de escritorio y Android Tabla 1 Objetivo del sistema Recibir informaci n de sensores remotos OBJ 02 Mostrar informacion de sensores remotos Version 1 0
114. aci n de escritorio Android en funcionamiento Secuencia normal Paso Acci n La aplicaci n de escritorio construye una cadena de texto con las p1 condiciones del usuario sobre los rangos aceptables de las variables monitorizadas y el estado de los sistemas de riego y ventilaci n p2 La aplicaci n de escritorio escribe la cadena de texto en el archivo config txt Postcondici n El archivo config txt contiene la configuraci n y el modo de control de los sistemas en una l nea de texto con formato de separaci n de campos por punto y coma Excepciones Paso Acci n p2 Siel archivo no existe es creado Si existe se sobrescribe Rendimiento Inferior a 5 segundos Frecuencia esperada n a Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios Este caso de uso es concurrente con RF 13 Tabla 31 Caso de uso RF 14 Guardar la configuraci n de los rangos aceptables de las variables monitorizadas 32 ORTDUINO Miguel Angel Hernanz Hernanz RF 15 Almacenar lecturas y estados en la base de datos Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 03 Almacenar informaci n recibida OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n OBJ 08
115. ada en la aplicaci n Excepciones Paso Acci n Si no existe el archivo o la configuraci n no es v lida se asigna el valor 0 a p1 todas las condiciones y se crea el archivo aplicaci n de escritorio o se finaliza la aplicaci n aplicaci n Android Rendimiento Menor a 3 segundos Frecuencia esperada No definido Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios Este caso de uso es com n en la aplicaci n de escritorio y Android Tabla 47 Caso de uso RF 30 Cargar la configuraci n 48 ORTDUINO Miguel Angel Hernanz Hernanz RF 31 Mostrar gr ficos temporales de las variables Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 32 Cambiar intervalo de actualizaci n de gr ficos RF 34 Recibir lecturas de Arduino Descripci n Muestra los gr ficos de evoluci n temporal reciente de las variables monitorizadas en la aplicaci n de escritorio Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n Si se ha cumplido el intervalo de actualizaci n de gr ficos se procede al po paso 1
116. al Columna Tipo Nulo Predeterminado Enlaces a Comentarios Indice int 11 No lecturas gt Indice Unico autoincremento Fecha timestamp No CURRENT_TIMESTAMP Luminosidad int 4 No TempExterior float No Templinterior int 3 No HumAmbiente int 3 No HumSuelo int 4 No NivelAgua int 4 No EstadoRiego int 1 No EstadoVent int 1 No Tabla 68 Estructura interna de la base de datos La tabla actual de la base de datos es la encargada de almacenar la lectura mas reciente enviada por Arduino Posee una estructura id ntica a la tabla lecturas en la que se almacenan todas las lecturas recibidas pero con la peculiaridad de que s lo es usado un registro que se actualiza con la nueva informaci n recibida de forma mas regular que en la tabla lecturas 71 e Miguel Angel Hernanz Hernanz 3 2 DISE O DE LOS ARCHIVOS DE CONFIGURACI N Los archivos de configuraci n son los encargados de almacenar la configuraci n de los rangos aceptables para las condiciones supervisadas y el modo de control de los sistemas de riego y ventilaci n todo ello basado en la elecci n del usuario El formato usado en cada uno de ellos es el de valores num ricos separados mediante un caracter delimitador coma o punto y coma todo ello en una nica l nea de texto plano El orden espec fico en el que se aparecen los valores se asocia a cada variable mediante el siguiente convenio Archivo config tx
117. ampo dispuesto elige una p2 opci n de la lista desplegable o bien marca una o varias casillas de selecci n seg n corresponda El input del usuario se recoge y utiliza en la construcci n de la consulta SQL p3 que ser enviada desde la p gina web al servidor XAMPP Postcondici n La opci n elegida por el usuario es usada para mostrar la p gina web respectiva Excepciones Paso Acci n N a N a Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios Se considera input a toda entrada que el usuario pueda efectuar en la p gina web Tabla 60 Caso de uso RF 43 Obtener input de usuario 61 e Miguel Angel Hernanz Hernanz RF 44 Establecer conexi n con servidor XAMPP Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a OBJ 03 Almacenar la informaci n recibida Objetivos asociados OBJ 07 Consulta de informaci n v a web RF 15 Almacenar lecturas y estados en la base de datos Requisitos asociados RF 35 Guardar configuraci n Descripci n Obtiene la entrada del usuario en la p gina web Precondici n Paso Acci n La aplicaci n de escritorio solicita acceso a un archivo de configuraci n del Secuencia normal p1 servidor p2 El servidor XAMPP responde afirmativamente y concede acceso La aplicaci n de es
118. an un conjunto de selectores representados por tri ngulos sobre l neas horizontales Cada tri ngulo representa el valor m nimo color rojo o m ximo color verde que se permite sobre la variable en cuesti n antes de que se genere una alerta o entre en funcionamiento el riego ventilaci n autom tico Los valores mostrados en los extremos de la l nea horizontal de cada variable son el valor m nimo izquierda y el valor m ximo derecha Arrastrando el selector correspondiente se modifica el valor mostrado en cada caso La nueva configuraci n se hace efectiva al regresar a la pantalla principal de la aplicaci n 14 e Miguel Angel Hernanz Hernanz 4 6 Informaci n de conexi n Esta secci n ofrece datos acerca de la conexi n establecida con la aplicaci n de escritorio como la IP desde la que se reciben los datos y el numero de paquetes recibidos desde el inicio de la aplicaci n Actualizaciones recibidas 23 Conectado a 83 43 23 114 Ilustraci n 16 Informaci n de conexi n 5 PAGINA WEB La pagina web de Hortduino presenta una estructura simple y sencilla con un ment de opciones en la parte izquierda utilizado para elegir la secci n a mostrar en la parte central de la p gina 5 1 Secci n ltimas lecturas En esta secci n se presentan las ltimas lecturas recibidas mediante gr ficos Estos gr ficos pueden variar la cantidad de datos representados si se cambia el valor de la lista desplegable pu
119. ante im genes escripci n est ticas inactivo o animaciones activo Procedimientos dibujarBotonesyEstados asociados Tabla 28 Procedimiento dibujarEstadoOrdenes ID dibujarGrafico Nombre E S Funci n datosSensor entrada Array de datos recibidos del sensor liminferior entrada Valor m nimo de lectura del sensor limSuperior entrada Valor m ximo de lectura del sensor 2 objlnferior entrada Valor m nimo en el eje Y del gr fico Par metros objSuperior entrada Valor m ximo en el eje Y del gr fico r entrada Valor del componente rojo del color del gr fico gg entrada Valor del componente verde del color del gr fico bb entrada Valor del componente azul del color del gr fico yPos entrada Posici n de partida del gr fico en el eje Y Dibuja en la pantalla el gr fico de la variable en cuesti n a partir a los valores contenidos en el array de datos correspondiente empleando curvas construidas por mapeado de Descripci n rangos l mite y objetivo El tama o m ximo del gr fico respecto al eje X viene determinado por el numero de actualizaciones en pantalla permitidas Si se alcanza el n mero m ximo de stas el gr fico se redibuja desde el origen del eje Y manteniendo el trazado anterior y actualizando progresivamente la l nea en la posici n indicada por el punto blanco Procedimientos asociados dibujarGraficosyEjes 85 Tabla 29
120. anty protection for a fee 5 Conveying Modified Source Versions You may convey a work based on the Program or the modifications to produce it from the Program in the form of source code under the terms of section 4 provided that you also meet all of these conditions e a The work must carry prominent notices stating that you modified it and giving a relevant date b The work must carry prominent notices stating that it is released under this License and any conditions added under section 7 This requirement modifies the requirement in section 4 to keep intact all notices e c You must license the entire work as a whole under this License to anyone who comes into possession of a copy This License will therefore apply along with any applicable section 7 additional terms to the whole of the work and all its parts regardless of how they are packaged This License gives no permission to license the work in any other way but it does not invalidate such permission if you have separately received it ed If the work has interactive user interfaces each must display Appropriate Legal Notices however if the Program has interactive interfaces that do not display Appropriate Legal Notices your work need not make them do so A compilation of a covered work with other separate and independent works which are not by their nature extensions of the covered work and which are not combined with it such as to form a larger program in
121. anz Hernanz RF 10 Mostrar modo de control del sistema de riego Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n Requisitos asociados RF 12 Reenviar lecturas a aplicaci n Android Descripci n Muestra el modo de control actual del sistema de riego alternando entre el modo manual ON y OFF y el modo autom tico AUTO Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n con servidor XAMPP Aplicaci n de escritorio Android en funcionamiento Secuencia normal Paso Acci n p1 La aplicaci n carga la configuraci n p2 Se muestra el modo de control actual del sistema de riego Postcondici n El modo de control del sistema de riego aparece en la interfaz Paso Acci n Excepciones 4 Si no es posible cargar la configuraci n se genera la configuraci n por P defecto con valores igual a 0 Rendimiento Instant neo Frecuencia esperada Un cambio por segundo Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios El modo de control viene representado en la interfaz de usuario por el texto y el color del bot n asociado a cada modo Tabla 27 Caso de uso RF 10 Mostrar modo de control del sistema de riego 28 ORTDUINO Miguel Angel He
122. ar de utilidad para determinar el correcto funcionamiento de los sensores y detectar un posible fallo si se observan variaciones excesivas picos o lecturas an malas lo que indicar a un posible mal funcionamiento de hardware Al posicionar el cursor del rat n sobre el rea de los gr ficos se muestra el valor representado en ese punto de ambos gr ficos Cuando el trazado de los gr ficos alcanza el l mite derecho del eje X se redibujan comenzando de nuevo en la posici n de origen del eje X y se muestra un punto de color blanco sobre el gr fico para indicar la posici n de la ltima actualizaci n Las variables representadas en los gr ficos son la temperatura exterior verde temperatura interior azul claro luminosidad amarillo humedad ambiental azul oscuro y humedad del suelo naranja ORTDUZNO Miguel Angel Hernanz Hernanz 3 3 Controles y estados de los sistemas de riego y ventilaci n Esta parte de la interfaz de usuario es la encargada de indicar el estado de los sistemas de riego y ventilaci n mediante dos pares de iconos Los situados a la izquierda de la imagen act an a modo de bot n accionable por el usuario y alternan entre los estados ON OFF y AUTO con los colores verde rojo y mbar respectivamente estableciendo las rdenes a enviar al Arduino relativas a cada sistema Por otra parte los iconos situados a la derecha indican el estado actual del riego y la ventilaci n mostrando animaciones si los sistema
123. ar estos par metros es necesario pulsar sobre el bot n Config en la l nea del m dulo Apache y seleccionar la opci n Apache httpd conf del men desplegado con lo que se abrir el archivo de configuraci n en el editor de texto establecido por defecto en el sistema En el caso particular de Hortduino si la instalaci n de XAMPP se ha realizado en el directorio por defecto C xampp solamente ser necesario cambiar la secci n DocumentRoot y establecer las opciones de la siguiente forma DocumentRoot C xampp htdocs hortduino lt Directory C xampp htdocs hortduino gt Si la instalaci n de XAMPP se realiz en otro directorio hay que sustituir la ruta mostrada por la correspondiente al directorio de instalaci n Una vez establecidos estos cambios se guarda el fichero y se procede a copiar el directorio con el contenido de la p gina web de Hortduino en C xampp htdocs para que pueda ser mostrado en el navegador Int rprete PHP Para configurar el int rprete de PHP se procede de igual manera que para la configuraci n del servicio Apache pero se elige la opci n PHP php ini en el men que aparece despu s de hacer click sobre el bot n Config de la secci n Apache En la secci n Paths and directories se debe cambiar las l neas siguientes include path C xampp php PEAR doc_root user dir Servicio MySQL motor de base de datos La configuraci n de MySQL se realiza a trav s de la interfaz web de administraci
124. atura exterior del sensor Precondici n Dispositivo en funcionamiento Secuencia normal Paso Acci n p1 Leer temperatura exterior en el pin de entrada asignado y descartarla Leer temperatura exterior en el pin de entrada y sumar este valor a la p2 variable temporal p3 Esperar 100 milisegundos para estabilizar lecturas p4 Repetir los pasos 3 y 4 diez veces Asignar el valor de la variable temporal dividido entre diez al resultado ps devuelto Postcondici n El valor de temperatura exterior est disponible para su env o Excepciones Paso Acci n n a n a Rendimiento Dentro del intervalo de tiempo asignado a la lectura de sensores Frecuencia esperada Una lectura cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 20 Caso de uso RF 03 Recibir informaci n sobre temperatura exterior 21 wc Miguel Angel Hernanz Hernanz RF 04 Recibir informacion sobre humedad ambiental Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos Requisitos asociados RI 01 Informaci n procedente de los sensores remotos Descripci n Recibe en Arduino la informaci n de humedad ambiental del sensor Precondici n Dispositivo en funcionamiento Secuencia normal Paso Acci
125. biente int 3 No HumSuelo int 4 No NivelAgua int 4 No EstadoRiego int 1 No EstadoVent int 1 No Tabla 13 Estructura interna de la base de datos La clave primaria es Indice y se utiliza para indexar cada nuevo registro de forma un voca siendo autoincrementada al a adir nuevas entradas A parte de las columnas relativas a la fecha de la lectura y los valores registrados por los sensores se incluyen tambi n el nivel de agua y los estados del riego y la ventilaci n en el momento de la lectura Esto permite efectuar el c lculo del volumen de agua utilizado en un determinado periodo temporal y comprobar en qu momentos y durante cu nto tiempo han estado en funcionamiento el riego y la ventilaci n del invernadero ll INFORMACI N VISUAL EN LA P GINA WEB Con objeto de disponer de la informaci n relativa a las condiciones actuales y anteriores del invernadero en cualquier lugar la p gina web del proyecto Hortduino se dise para generar contenido til para el usuario de forma din mica a partir de la informaci n disponible almacenada en la base de datos del servidor Para este fin se idearon una serie de elementos que muestran los datos obtenidos por el sistema de forma gr fica e intuitiva para el usuario el cual puede visualizar diversos par metros relacionados entre s como por ejemplo la evoluci n temporal del valor de la humedad presente en el suelo frente al nivel restante de agua en el dep sito y los per
126. bla TES CSS aaa ai naci 99 Tabla 76 Bater a de pruebas de Arduino ccceececceeseesseeseesecesececeesecneeeseceseeseeeseeeeeseceeeseeneeeaeens 125 Tabla 77 Bater a de pruebas de la aplicaci n de escritorio D oooconcnnnnicninonocnoccnoncnncnnrnnnnncnnnnoos 126 Tabla 78 Bater a de pruebas de la aplicaci n de escritorio UD oonoononcnnninconnnnocnnoncornconcnronnnnnnnos 127 Tabla 79 Bater a de pruebas de la aplicaci n Android D oooconcnnnincnicniocnnononnconncnnonnno corr nconncnnnnos 128 Tabla 80 Bater a de pruebas de la aplicaci n Android TD ooooncnnnnnnnninnincnocnnoncononanonnconncnncnancnnnnos 129 Tabla 81 Bater a de pruebas de la P gina Web oooocncncninncnnnnnnonnnconcnncnoncnncnncononn canon noncrnonnnnnanns 130 e Miguel Angel Hernanz Hernanz 1 AN LISIS DE REQUISITOS DEL SISTEMA 1 1 INTRODUCCI N El presente Proyecto Fin de Carrera est dedicado a desarrollar un sistema de monitorizaci n y control de invernadero apoyado en la popular plataforma de hardware libre Arduino y en tecnolog as web Este sistema compuesto por tres aplicaciones diferenciadas recibir datos acerca de las principales variables implicadas en el crecimiento de los cultivos como pueden ser la humedad del suelo humedad ambiental y temperatura obtenidos mediante una red de sensores colocados en el invernadero La informaci n enviada desde los sensores ser procesada por la aplicaci n de escritorio la cual se encar
127. bre un n mero de d as ajustable por el usuario Elementos menu php asociados sketchConsulta pde Tabla 67 temperaturas php ID consumoagua php Par metros Muestra en pantalla la secci n Consumo de agua en la que aparece informaci n relativa al Descripci n nivel de agua en el dep sito consumo total consumo medio diario y previsi n de duraci n de agua restante Elementos menu php asociados sketchDeposito pde 97 Tabla 68 consumoagua php wt Miguel Angel Hernanz Hernanz ID index php Parametros Muestra en pantalla la secci n Sobre Hortduino en la que se muestra al usuario un breve Descripci n resumen informativo de los objetivos del sistema Hortduino las herramientas disponibles y el modo de funcionamiento interno del sistema Elementos Menuph asociados pop Tabla 69 index php ID estadoactual php Nombre E S Funci n e Estado actual de las condiciones registradas en el invernadero 2 condiciones txt entrada ree eos Parametros y actividad de los sistemas de riego y ventilaci n config txt entrada Archivo de configuraci n de rangos aceptables para variables y modos de control de los sistemas de riego y ventilaci n P gina auxiliar contenida dentro de la secci n Estado actual en la que se muestra el estado de las condiciones del invernadero y la configuraci n y actividad de los sistemas de rie
128. caci n de escritorio realiza consultas SQL que son atendidas por el servicio MySQL en ejecuci n en el servidor para incorporar las lecturas recibidas desde el hardware Arduino a la base de datos del servidor Esta aplicaci n tambi n solicita la lectura y modificaci n de los archivos de texto Config txt y Condiciones txt alojados en el servidor para recuperar o guardar seg n sea el caso la configuraci n de la aplicaci n usando para ello las funciones contenidas dentro de diversos scripts PHP En el caso de la p gina web se utiliza el servicio MySQL para recuperar los registros de la base de datos procesarlos y mostrar la informaci n requerida por el usuario en los diferentes sketches dispuestos en la web para tal fin dl Limitaciones y dependencias La potencia de procesamiento del host sobre el que se ejecuta el servidor XAMPP puede suponer una limitaci n a la hora de trabajar con una base de datos muy grande o un n mero elevado de conexiones concurrentes en la p gina web factor a tener en cuenta si se desea escalar el proyecto En lo respectivo a la dependencia hay que decir que aunque no es necesario contar con conectividad de red para poder hacer uso de las funciones y herramientas que ofrece el paquete XAMPP este proyecto se basa en la conexi n al servidor mediante Internet o red local para construir un sistema que puede ser controlado y observado de forma remota ll Usuarios El servidor XAMPP de este proyecto se gestio
129. carga la configuraci n Se muestra en pantalla el estado de las condiciones actuales nivel de agua p2 restante en el dep sito y los rangos fijados en la configuraci n p3 Se muestra en pantalla los botones y estados de los sistemas de r v p4 Se muestra en pantalla la ltima lectura recibida desde Arduino Postcondici n El usuario puede visualizar en pantalla la informaci n indicada en la descripci n Excepciones Paso Acci n n a n a Rendimiento Actualizaci n cada 1 5 segundos Frecuencia esperada En el intervalo de recepci n de lecturas Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 45 Caso de uso RF 28 Mostrar condiciones actuales del invernadero 46 ORTDUINO Miguel Angel Hernanz Hernanz RF 29 Recibir rdenes desde Android Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 12 Reenviar lecturas a aplicaci n Android RF 26 Comprobar condiciones RF 35 Salvar la configuraci n RF 36 Establecer conexi n aplicaci n de escritorio Android RF 14 Guardar la configuraci n de l
130. ccecceeccesseessesceeseceeeeseceseeseeesecseeesecseesseeseeesseeennaeeneaees 22 Ilustraci n 26 Instalaci n del servidor XAMPP 1 ce ccsseeseesseeceesseeseeeeceseceeeeseceeeeseseeeseesneesaeees 23 Ilustraci n 27 Instalaci n del servidor XAMPP TD oononicnnncnocnioncnononnonnnonncnnccnnonn nono n crono nrnnnnncnnnnnno 23 Ilustraci n 28 Instalaci n del servidor XAMPP II ccccccsccsssecssseeseccsseceseeessecesecesseeeesseeeeeesaees 24 Ilustraci n 29 Instalaci n del servidor XAMPP V cc cescesseesseeseesseeseceeceseceeeeseseseeseenseeseeensaees 24 Ilustraci n 30 Panel de control XAMPP cccccccccsscesseeseeseeeseceeeeseceseeseeesececesecseeeseeeeeeeeeentaeeesnees 25 Ilustraci n 31 Servicios Apache y MySQL en funcionamMientoO ococoncnicnnonconnnononnnonncnnnnnnnnnnoncnnnnnno 25 Ilustraci n 32 Login en phpMyAdmin cece ecsseeseeceseeeeeeceeceeeeceecsessesaeeaeeaeeeesseeaseaseeseeeeareneees 27 Tlustracion 33 Importar base de datos ccecesccessessceseesseeseeeeesecseeeseceeeesecsseeseescesseeeeeeaeeeseesrenseeaeees 27 Ilustraci n 34 Creaci n del usuario hortelano en la base de datos Inver ccessceesseeeeteeeeeeees 28 ORTDUINO Miguel Angel Hernanz Hernanz 1 INTRODUCCI N Este manual de usuario explica el uso e instalaci n de las diversas herramientas disponibles para el usuario del sistema Hortduino En las cuatro secciones siguientes se detalla por separado el proceso de in
131. cci n de las variables a graficar De esta manera si el usuario selecciona alguna variable del grupo izquierdo Luminosidad Nivel de agua o Humedad del suelo se mostrar la escala relativa a esas variables en el eje Y izquierdo En el caso de las variables del grupo derecho se mostrar la escala de temperatura en el eje Y derecho si se selecciona al menos una de las variables de temperatura Para el caso especial de la humedad ambiental su escala se representa en el eje Y derecho con un color azul claro que acompa a al color del gr fico relativo a la humedad ambiental 16 ORTDUINO Miguel Angel Hernanz Hernanz La actividad de los sistemas de riego y ventilaci n es representada en el gr fico de estad sticas mediante los rect ngulos de color azul y verde claro que aparecen en la zona central del gr fico Los valores de la luminosidad y humedad del suelo no tienen asociados unidades de medida est ndar sino que representan una medida perceptual sobre la condici n que simbolizan Asi la luminosidad puede variar desde el valor 0 noche sin luna hasta el valor 1000 luz solar directa con muchos valores intermedios y la humedad del suelo puede tomar valores desde 0 ausencia total de humedad hasta 1000 saturaci n del sensor seg n la conductividad relativa a la presencia de agua en el cuerpo del sensor 5 3 Secci n Estado actual Esta secci n es de car cter meramente informativo y recopila la ltima lectura recibida desde l
132. ce from a network server at no charge e c Convey individual copies of the object code with a copy of the written offer to provide 63 e Miguel Angel Hernanz Hernanz the Corresponding Source This alternative 1s allowed only occasionally and noncommercially and only if you received the object code with such an offer in accord with subsection 6b d Convey the object code by offering access from a designated place gratis or for a charge and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge You need not require recipients to copy the Corresponding Source along with the object code If the place to copy the object code is a network server the Corresponding Source may be on a different server operated by you or a third party that supports equivalent copying facilities provided you maintain clear directions next to the object code saying where to find the Corresponding Source Regardless of what server hosts the Corresponding Source you remain obligated to ensure that it is available for as long as needed to satisfy these requirements e Convey the object code using peer to peer transmission provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d A separable portion of the object code whose source code is excluded from the Corresponding Source as a System Lib
133. chasrcshs cess aah eps eta esa earee ica aecameegese eee eae emai 5 3 1 ltima lectura recibida de los SensOres c scsccscssssssssessessessssessesssssessessesesssssssscsessesssssseesscseens 6 3 2 Graficos de evoluci n reciente de las variableS ooooonnoncnnncinnnncnncnoocnoonoononanoononononrnrnnnnnnnn conos 7 3 3 Controles y estados de los sistemas de riego y ventilaci N ooooonconcnnnnnncnncnnonoonoonncononncnncnnnnos 8 3 4 Condiciones actuales del invernadero ccccecesseeseessceseeseeeseceeeseceeesseceeeeaeeeneeseeeseeeeeeeseneees 8 3 5 Selectores de condiciones aceptables y actualizaci n oconcnncnnnnncnncnocnnncnncncnrnonnrnrnnnnonnnonnos 10 4 APLICACI N PARA DISPOSITIVOS ANDROID cscssssssssssessessessssssscsessessesssessssesesasseseeeseees 11 4 1 Inicio de la aplicaci n Android cceceesceeseesececeeseeseeseeeseeseceseeseceseceeeaesesesaeesseeeneaeesstneeeaaes 11 4 2 Pantalla principal de la aplicaci n Alddr0ldO ooonnonnnicnnncnnccncnocnoncononnnononnnnn nono nonn nono nonccnn caian 12 4 3 Men de la aplicaci n ooonoconononononinonoonconnnoncnnnonnnnncon cono nnononn nro r nan non nrnn rra n ran non ron rra eesse roesai 13 4 4 Nivel de agua disponible en el dep sitO ooooncnnnonicnnncnocnoonconcnnnonnnonnonononncnn nn nono non nrnnncnnrannnno 14 4 5 Cambiar los rangos aceptables de las COMCICIONES cescesceesceseeeceeseeeseeseeeseeeenseesenseeneees 14 4 6 Informaci n de CONCXION cceccc
134. ci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 05 Mostrar el estado de los sistemas de riego ventilaci n Requisitos asociados RF 13 Guardar estado de los sistemas de riego y ventilaci n Descripci n El sistema deber almacenar el estado de actividad de los sistemas de riego y ventilaci n Datos espec ficos El sistema de ventilaci n puede estar en funcionamiento o no El sistema de riego puede estar en funcionamiento o no Intervalo temporal Presente Importancia Importante Urgencia Alta Estado Validado Estabilidad Alta Comentarios La informaci n referente al estado actual de los sistemas de riego y ventilaci n es atribuible a las aplicaciones de escritorio y Android y a la p gina web Tabla 10 Requisitos de Informaci n Informaci n sobre el estado actual de los sistemas de riego y ventilaci n RI 03 Informaci n sobre el modo de control de los sistemas de riego y ventilaci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 06 Control automatizado de los sistemas de riego ventilaci n Requisitos asociados RF 13 Guardar estado de los sistemas de riego y ventilaci n Descripci n El sistema deber almacenar el modo de control de control de cada sistema Datos espec ficos El sistema de ventilaci n puede estar en modo manual apagado OF
135. ci n 26 Selectores Si la conexi n al dispositivo Arduino no fuese posible la interfaz mostrar a un mensaje de informaci n como el de la Ilustraci n 25 con los datos de conexi n usados y ofrecer a la posibilidad de ajustarlos haciendo click en el bot n Configurar Conexi n El aspecto en conjunto de la interfaz de la aplicaci n de escritorio se puede apreciar en la Ilustraci n 26 de la p gina siguiente Con todos los elementos comentados anteriormente se ha querido obtener una interfaz sencilla pero completa intuitiva y de f cil manejo para el usuario de la aplicaci n 103 ORTDUINO Miguel Angel Hernanz Hernanz ProcessingClient ULTIMA ACTUALIZACION Luminosidad 66 oF Riego Temperatura exterior 23 0 C r ke Temperatura interior 21 C Ventilacion z nedad elo n Humedad interior 38 io Ju Humedad del suelo O Humedad suelo ma Temperatura int min Temperatura int ma Temperatura ext min Temperatura ext ma Nivel de agua r Nivel de agua min LUMINOSIDAD Y TEMPERATURA Humedad int mi Humedad int ma 49 4 4 4 4 4 4 4 4 4 os a Horas Ma v a Minutos gua para riego OK Pn LIF Intervalo de actualizaci n de gr ficos HUMEDAD Esperando comunicaci n con Arduino en IP 192 168 1 111 puerto 9631 CONFIGURAR CONEXIO Ilustraci n 28 Error de conexi n 104 e Miguel Angel Hernanz Hernanz 3 4 3 APLICACI N ANDROID La interfaz de l
136. ci n IP que lo solicit Despu s del env o los datos son borrados Procedimientos ejecutarOrdenes asociados Tabla 6 Procedimiento enviarDatos ID ejecutarOrdenes 7 Nombre E S Funci n Par metros A ae ordenes entrada Ordenes a ejecutar en los sistemas de riego y ventilaci n Si se han recibido rdenes este procedimiento cambia el estado de los sistemas de riego y Descripci n ventilaci n bas ndose en el c digo correspondiente dentro del paquete de rdenes e invoca al procedimiento de env o de datos Procedimientos loop enviarDatos asociados estadoRiego estadoVentilaci n Tabla 7 Procedimiento ejecutarOrdenes ID estadoRiego Nombre E S Funcion Parametros ordenes entrada Ordenes a ejecutar en los sistemas de riego y ventilaci n Descripci n Activa o desactiva el sistema de riego bas ndose en la orden recibida Procedimientos E ejecutarOrdenes asociados Tabla 8 Procedimiento estadoRiego ID estadoVent Nombre E S Funcion Parametros P A ordenes entrada Ordenes a ejecutar en los sistemas de riego y ventilaci n Descripci n Activa o desactiva el sistema de ventilaci n bas ndose en la orden recibida Procedimientos F ejecutarOrdenes asociados 79 Tabla 9 Procedimiento estadoVent wt Miguel Angel Hernanz Hernanz 3 3 7 PROCEDIMIENTOS DE LA APLICACI N DE ESCRITORIO ID setup
137. ci n de escritorio Esto se hace para evitar rdenes contradictorias que afectar an al normal funcionamiento del sistema 28 e Miguel Angel Hernanz Hernanz 4 4 Arquitectura interna del subsistema Servidor XAMPP SERVIDOR XAMPP Servicio Servidor Int rprete MySQL HTTP PHP Contenido Acciones Archivos Web PHP Configuraci n Ilustraci n 11 Arquitectura interna del Servidor XAMPP El servidor XAMPP es un conjunto de servicios y herramientas formado por el sistema de gesti n de bases de datos MySOL el servidor web Apache y los int rpretes para lenguajes PHP y Perl todo ello bajo un mismo paquete que se instala en el PC destinado al rol de servidor En el caso del proyecto Hortduino es el encargado de mantener la base de datos y los servicios que son necesarios para que otros subsistemas puedan inicializarse y operar correctamente hospedar el contenido de la p gina web y almacenar los archivos de configuraci n que mantienen la coherencia interna entre los diferentes subsistemas amp Servicio MySQL Este m dulo est compuesto por los servicios necesarios para operar con la base de datos y se encarga de tareas como la realizaci n de consultas o el soporte de conexiones de usuarios a la base de datos dd Servidor HTTP Se trata del servicio encargado de responder a las peticiones HTTP efectuadas desde el navegador web del usuario solicitando el env o del contenido y estructura de la p gina web amp Int rprete
138. ciados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 03 Almacenar informaci n recibida OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RI 02 Informaci n sobre el estado actual de los sistemas de riego y ventilaci n RI 03 Informaci n sobre el m todo de control de los sistemas de riego y ventilaci n RF 35 Salvar configuraci n Descripci n Guarda el estado actual de los sistemas de riego y ventilaci n en un archivo con el formato 1 ON O 0FF 2 AUTO Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio Android en funcionamiento Secuencia normal Paso Acci n La aplicaci n de escritorio construye una cadena de texto con las p1 condiciones del usuario sobre los rangos aceptables de las variables monitorizadas y el modo de control de los sistemas de riego y ventilaci n p2 La aplicaci n de escritorio escribe la cadena de texto en el archivo config txt Postcondici n El archivo config txt contiene la configuraci n y el modo de control de los sistemas en una l nea de
139. ciona las caracter sticas requeridas para el funcionamiento del sistema y supone un ahorro en el volumen de datos a transmitir al prescindir de las funcionalidades asociadas al protocolo TCP como son el establecimiento previo de la conexi n y la confirmaci n de llegada de cada paquete enviado El m todo perteneciente al handler de escucha UDP receive de la librer a hypermedia net para Processing puede ampliar su funcionalidad incorporando mas instrucciones a adidas por el desarrollador que ejecuten tareas auxiliares cada vez que hay un evento de recepci n de datagramas en el puerto de escucha A continuaci n se muestra el c digo que emplea este handler en la aplicaci n de escritorio void receive byte mensaje String ipAdress int port Handler por defecto de la libreria UDP que se activa en el evento de recepci n de datagramas if ipAdress equals ip La direcci n IP que manda el mensaje es la del Arduino if mensaje length gt 11 nuevosDatos true conexion true Si recibe un paquete UDP marca la conexi n como activa paquetesEsperados 0 y pone a cero el contador de paquetesEsperados datos new String mensaje arrayDatos splitTokens datos Trocea la cadena de entrada a un array usando una coma como separador de valores 51 ORTDUZNO Miguel Angel Hernanz Hernanz else printin Array datos incompleto for int i 0 i lt 6 i arrayDatos i 0
140. cogido en la suma total de la tabla 10 3359 05 693 53 4052 58 46 ORTDUINO Miguel Angel Hernanz Hernanz 7 CUESTIONES DE DISE O E IMPLEMENTACI N RESE ABLES 4 COMPONENTES DEL PROTOTIPO HARDWARE El mercado de sensores electr nicos cuenta con un amplio abanico de opciones disponibles en lo que respecta a la medici n de diferentes variables f sicas Para este proyecto se realiz un inventario preliminar de sensores bas ndose principalmente en la relaci n precisi n precio y en la documentaci n disponible sobre ellos En el caso del sensor para medir la humedad del suelo se opt por la fabricaci n propia En la construcci n de este sensor se emplearon materiales asequibles y de uso com n como son el yeso y clavos galvanizados Este sensor de la humedad del suelo es de tipo resistivo ya que se basa en la conductividad a trav s de l en funci n de la humedad presente en el suelo que es absorbida por capilaridad hacia el cilindro de yeso Durante el periodo de pruebas se detect corrosi n en uno de los clavos debido a la reacci n electrol tica que aparece al hacer circular corriente el ctrica entre los dos terminales Para solucionar este problema se opt por construir un nuevo sensor reemplazando los clavos galvanizados que actuaban como terminales en el sensor por dos barras de grafito material mucho mas resistente a ste fen meno pero que posee una resistividad propia superior a la del acero galvan
141. cos informativos que el usuario puede variar para observar la evoluci n en el tiempo de las condiciones del invernadero Qu requisitos necesita el sistema Hortduino Se ha tratado de que los costes asociados a la puesta en marcha de este sistema sean asequibles incluyendo en la medida de lo posible herramientas software con licencias gratuitas y dispositivos hardware econ micos Los requisitos espec ficos de hardware y software para el funcionamiento del sistema Hortduino son mostrados en las tablas respectivas a continuaci n e Miguel Angel Hernanz Hernanz 2 REQUISITOS M NIMOS Requisitos de hardware Instalaci n en el invernadero Recursos asociados Arduino MEGA 2560 Dispositivo Arduino Sensor de temperatura exterior National Semiconductor LM35 Sensor de humedad ambiental y O DHT11 Sensor temperatura interior Sensor de luminosidad Fotorresistencia Sensor de humedad del suelo Sensor de yeso construcci n propia Sensor de nivel de agua Seed Ultrasonic Sensor Activadores de los sistemas Rel s de 5V x2 Sistema de ventilaci n Ventilador 12 V Sistema de riego Bomba de agua 12V Dispositivos Recursos asociados Procesador de al menos 500 Mhz PC Servidor XAMPP 128 MB Memoria RAM 256 MB recomendados 300 MB de espacio libre en el disco duro 128 MB Memoria RAM 256 MB recomendados PC Cliente 140 MB de espacio libre en el disco duro Versi n de Android 2 3
142. critorio y pagina web tienen acceso al servidor XAMPP y pueden Postcondici n desarrollar sus funciones Paso Accion Excepciones p2 Si el servidor XAMPP no responde ninguna aplicaci n se ejecuta Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta El servidor XAMPP es junto a la aplicaci n de escritorio uno de los componentes Comentarios i ae f cr ticos que son imprescindibles para el funcionamiento de Hortduino Tabla 61 Caso de uso RF 44 Establecer conexi n con servidor XAMPP 62 ORTDUINO Miguel Angel Hernanz Hernanz 1 5 REQUISITOS NO FUNCIONALES RNF 01 Interoperabilidad Objetivos asociados Requisitos asociados Descripci n El sistema debe contar con una herramienta que proporcione movilidad e independencia al usuario y que contenga las funciones esenciales de control y supervisi n del invernadero complement ndose con la aplicaci n principal La configuraci n de los sistemas del invernadero y los par metros de control ha de ser persistente entre sesiones y aplicaciones Comentarios Tabla 62 Requisito no funcional RNF 01 Interoperabilidad RNF 02 Accesibilidad de la informaci n Objetivos asociados Requisitos asociados Descripci n El sistema debe suministrar la informaci n requerida por los usua
143. ctividad ecol gica y saludable han experimentado un crecimiento notable en los ltimos a os dentro de los n cleos de poblaci n mas grandes Los alimentos cultivados por este m todo son considerados generalmente de gran calidad y son numerosos los restaurantes de renombre que cultivan sus propias materias primas en huertos propios y especializados para ofrecer una experiencia nica a sus clientes El presente Proyecto Fin de Carrera est dedicado a desarrollar un sistema de monitorizaci n y control de invernadero apoyado en la popular plataforma de hardware libre Arduino y en tecnolog as web Este sistema compuesto por tres aplicaciones diferenciadas recibir datos acerca de las principales variables implicadas en el crecimiento de los cultivos como pueden ser la humedad del suelo humedad ambiental y temperatura obtenidos mediante una red de sensores colocados en el invernadero La informaci n enviada desde los sensores ser procesada por la aplicaci n de escritorio la cual se encargar de su almacenamiento en una base de datos externa y de la automatizaci n y control del riego y ventilaci n mediante sendos actuadores mec nicos Esta aplicaci n de escritorio tambi n ser capaz de mostrar los datos recibidos por red desde los sensores en tiempo real y establecer las condiciones m ximas y m nimas que se han de mantener para cada variable alertando al usuario si se encuentran fuera de rango El usuario podr seleccionar el modo
144. ctual de la Web ooocnononinnnnnnnconncncnoccnnconcononcnnncnorarannn coran cono nonnos 111 Ilustraci n 40 Secci n Consumo de Agua de la p gina Web oooooconicnncnocnnononcnocnconconnonnncnnnnnnnnnos 111 Ilustraci n 41 Secci n Temperaturas Registradas de la pagina web 112 Ilustraci n 42 Secci n Sobre Hortduino de la p gina Web ooooconccnncnincnncononcncnonnnoncnrnonnnconononcnnoo 112 e Miguel Angel Hernanz Hernanz ndice de tablas Tabla 1 Objetivo del sistema Recibir informaci n de sensores TEMOtOS ooonncnocnccnonacocananananncnnnonnos 8 Tabla 2 Objetivo del sistema Mostrar informaci n de sensores TEeMOtOS oooonccocnonocaninancnnconcnncnnnnns 8 Tabla 3 Objetivo del sistema Almacenar la informaci n recibida 8 Tabla 4 Objetivo del sistema Cambiar estado de los sistemas de riego ventilaci n 9 Tabla 5 Objetivo del sistema Mostrar el estado y modo de funcionamiento de los sistemas de tiego Y VentillaciMa epee nee a eee 9 Tabla 6 Objetivo del sistema Control automatizado de los sistemas de riego ventilaci n 9 Tabla 7 Objetivo del sistema Consulta de informaci n Via Web oocicncinnononnnenancncreciannan 10 Tabla 8 Objetivo del sistema Informar sobre las condiciones actuales del invernadero 10 Tabla 9 Requisitos de informaci n Informaci n sobre los sensores remotos 11 Tabla 10 Requisitos de Informaci n Informaci n sobre el
145. cuenta con el respaldo de una gran comunidad mundial de aficionados que ofrecen multitud de ejemplos y tutoriales algunos de los cuales han sido de gran ayuda en la elaboraci n de este proyecto Otro factor que hace interesante a esta plataforma es que sigue la filosof a OpenHardware similar a la conocida OpenSource en lo relacionado al software que posibilita las modificaci n por parte de los usuarios de las especificaciones del hardware sin restricci n alguna adapt ndose a multitud de configuraciones espec ficas que se requieran y favoreciendo la innovaci n en el dise o P Internet of Things El llamado Internet of Things es un concepto interesante sobre el que se ha profundizado al realizar este proyecto En un mundo cada vez mas interconectado entre s las aplicaciones del IoT abarcan mbitos tan diferentes como el control ambiental la seguridad ciudadana gesti n energ tica eficiente dom tica aplicaciones m dicas control de tr fico e infraestructuras entre otras muchas reas en las que se puede incorporar Aplicar este concepto a la vida diaria puede suponer una mejora en la calidad de vida y en el entorno que nos rodea por ello el JoT es un campo de trabajo con posibilidades de cara al futuro P Entornos de desarrollo Mientras se tomaba contacto con la plataforma Arduino y su lenguaje en lo relativo a encontrar formas de comunicaci n entre el dispositivo y el PC el lenguaje Processing apareci recomendado en la refe
146. cuentra en funcionamiento y tiene conectividad de red Compruebe que el puerto 9631 UDP est abierto en la configuraci n del router de usuario para la direcci n IP de Arduino La aplicaci n Android no puede conectar con la aplicaci n de escritorio Aseg rese de que la aplicaci n de escritorio est funcionando correctamente Compruebe que el servidor XAMPP se encuentra en funcionamiento Compruebe que el puerto 9631 UDP est abierto en la configuraci n del router de la aplicaci n de escritorio La aplicaci n Android no se inicia en el smartphone Aseg rese de que el dispositivo tiene conectividad de red Wi Fi o 3G La aplicaci n Android se cierra despu s de mostrar una pantalla en negro Compruebe que el servidor XAMPP se encuentra en funcionamiento y es accesible de manera externa Los datos recibidos por la aplicaci n de escritorio no se guardan en la base de datos Compruebe en el panel de control del servidor XAMPP que el servicio MySQL est en ejecuci n La p gina web muestra mensajes de errores Compruebe en el panel de control del servidor XAMPP que el servicio MySQL est en ejecuci n El archivo condiciones txt est da ado o no es accesible en el servidor El archivo config txt est da ado o no es accesible en el servidor La configuraci n de la aplicaci n de escritorio o Android no se mantiene entre sesiones Compruebe que el archivo config txt en
147. de cada sistema on gt A La actividad o inactividad de los sistemas de riego Mostrar la actividad o inactividad de los BOR i go y A ventilaci n es mostrada en la interfaz del usuario Vv sistemas de riego y ventilaci n i Mane mediante animaciones de imagenes F Los valores m ximos y m nimos relativos a cada Cambiar los rangos aceptables de las a variable son alterados por el usuario mediante los Vv variables monitorizadas a controles t ctiles dispuestos en la interfaz Mostrar los rangos aceptables de las Se muestran en pantalla los valores m ximos y v variables monitorizadas m nimos permitidos de las variables monitorizadas El sistema afectado cambia su modo de control con cada pulsaci n rotando entre ON OFF y AUTO Las Cambiar el modo de control de los j rdenes relativas al nuevo estado son enviadas a la Vv sistemas de riego y ventilaci n aplicaci n de escritorio y ejecutadas en el dispositivo Arduino Tabla 79 Bater a de pruebas de la aplicaci n Android I 128 ORTDUINO Miguel Angel Hernanz Hernanz APLICACI N PARA DISPOSITIVOS ANDROID Prueba Resultado Validado Recepci n del mensaje de recarga de La configuraci n de usuario es recargada desde el v configuraci n archivo de configuraci n Notificaci n de actualizaci n de la El aviso de recarga de configuraci n es enviado a la 7 configuraci n a la aplicaci n de escri
148. de conjunto destinadas a valorar el correcto funcionamiento de todas las aplicaciones del sistema al mismo tiempo a trav s de las interacciones que se producen entre ellas Para la realizaci n de las pruebas se han empleado diferentes entornos de ejecuci n en funci n de la naturaleza de la aplicaci n Arduino Android y escritorio de Windows Para las pruebas de la aplicaci n Android se utiliz un dispositivo Samsung Galaxy Mini 2 debido a que el emulador provisto en el SDK de Android presentaba un funcionamiento lento y a veces no respond a de acuerdo a lo esperado mientras que en el smartphone si En el caso del dispositivo Arduino las pruebas iniciales se efectuaron mediante la conexi n serial a PC para despu s proceder con el testeo de env o y recepci n de paquetes UDP mediante red Ethernet Para las pruebas de la p gina web se utiliz el navegador Mozilla Firefox en su versi n 29 y el navegador Internet Explorer 10 Las versiones anteriores del navegador Internet Explorer pueden no soportar determinados elementos presentes en el est ndar de HTMLS por lo que se desaconseja su utilizaci n para visualizar la p gina web A continuaci n se presentan el listado en forma de tablas de las pruebas realizadas al sistema divididas por aplicaci n 124 ORTDUINO Miguel Angel Hernanz Hernanz ARDUINO Prueba Resultado Validado Conexi n v a serial con PC Actividad regist
149. de riego y ventilaci n Pulsando sobre cada bot n se alterna el modo entre manual ON OFF o autom tico AUTO Las im genes que aparecen al lado de los botones muestran la actividad de los sistemas por medio de animaciones 4 3 Men de la aplicaci n En la parte inferior de la pantalla aparece el bot n para acceder al men de opciones el cual muestra una pantalla similar a esta NIVEL DE AGUA CONDICIONES RMACION Ilustraci n 12 Men de la aplicaci n A IMPORTANTE Para retornar a la pantalla anterior ha de emplearse siempre el bot n VOLVER que aparece en la parte inferior de la pantalla en todas las secciones del men Si se pulsa el bot n de retorno en el smartphone gt la aplicaci n se cerrar 13 wt Miguel Angel Hernanz Hernanz 4 4 Nivel de agua disponible en el dep sito Si se pulsa sobre el bot n NIVEL DE AGUA se accede a la representaci n gr fica del dep sito de agua para riego que muestra el nivel porcentual actual El color del relleno var a con el nivel actual del dep sito para mayor claridad visual Ilustraci n 13 Dep sito al 80 Ilustraci n 14 Dep sito al 45 4 5 Cambiar los rangos aceptables de las condiciones s HUMEDAD SUELO HUMEDAD AMBIENTE TEMP INTERIOR TEMP EXTERIOR Ilustraci n 15 Configuraci n de NIVEL AGUA rangos aceptables Para cambiar los valores m ximos y m nimos aceptables en cada variable supervisada se emple
150. definido Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 49 Caso de uso RF 32 Cambiar intervalo de actualizaci n de gr ficos 50 ORTDUINO Miguel Angel Hernanz Hernanz RF 33 Mostrar configuraci n de red Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 36 Establecer conexi n aplicaci n de escritorio Android RF 24 Establecer conexi n con Arduino Descripci n Muestra la ventana de configuraci n de red al usuario Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n p1 Se muestra en pantalla la direcci n IP usada para conectar a Arduino El usuario introduce la nueva direcci n IP y guarda los cambios pulsando p2 ENTER La nueva direcci n IP introducida es usada para conectar p3 Se muest
151. desde Android 47 wt Miguel Angel Hernanz Hernanz RF 30 Cargar la configuraci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 28 Mostrar condiciones actuales del invernadero RF 36 Conexi n aplicaci n de escritorio Android Descripci n Carga la configuraci n de las condiciones y estados desde un archivo Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n p1 La aplicaci n lee la l nea del archivo config txt del servidor p2 Se trocea la linea anterior a un array usando como separador el car cter Se asigna a cada variable monitorizada el valor del rango m ximo y m nimo p3 que resulta de la descomposici n de la cadena del paso 2 4 Se asigna el valor correspondiente al estado del sistema de riego contenido P en la cadena de texto del paso 2 p5 Se asigna el valor correspondiente al estado del sistema de ventilaci n contenido en la cadena de texto del paso 2 Postcondici n La configuraci n ha sido carg
152. diendo escoger un intervalo de 1 2 4 8 o 12 horas 111 98 95 90 75 70 62 50 25 2 Ar 128 Luminosidad Ilustraci n 17 Gr fico de Luminosidad 15 ORTDUINO Miguel Angel Hernanz Hernanz El usuario puede desplazar el cursor del rat n sobre el rea del gr fico para visualizar el valor num rico asociado a la posici n actual del cursor se alado por una l nea vertical del mismo color del gr fico como puede verse en la ilustraci n 17 5 2 Secci n Estad sticas La secci n de estad sticas muestra un nico espacio en el que son mostrados varias representaciones gr ficas a la vez correspondientes a las variables elegidas por el usuario empleando las casillas de selecci n El intervalo temporal representado se puede variar mediante la lista desplegable que aparece debajo del rea de selecci n de variables Estad sticas o 0 13 40 45 16 34 35 18 54 37 11 07 57 13 27 59 19 46 26 16 25 22 18 45 25 12 40 05 18 22 16 20 42 18 2014 04 11 2014 04 11 2014 04 11 201404 12 201404 12 2014 04 12 2014 04 13 20140413 20140415 2014 04 15 2014 04 15 vi Luminosidad E Riego activo Temperatura exterior C v Nivel de agua o vi Ventilaci n activa v Temperatura interior C Humedad del suelo Y Humedad ambiental N mero de registros a mostrar 144 un dia X Ilustraci n 18 Gr fico general de estad sticas Las escalas mostradas a izquierda y derecha del eje Y est n ligadas a la sele
153. dimientos asociados an Tabla 58 Procedimiento dibujarDeposito ID dibujarBotonOrdenes Nombre E S Funci n x entrada Coordenada en el eje X del borde superior izq del depdsito y entrada Coordenada en el eje Y del borde superior izq del depdsito Parametros ancho entrada Ancho del dep sito en pixels alto entrada Alto del dep sito en pixels estadoOrdenes entrada Modo de control de los sistemas de riego y ventilaci n id entrada Identificador del bot n Muestra en la posici n indicada de la pantalla el bot n de cambio de modo correspondiente Descripci n al sistema en cuesti n Si el usuario cambia de modo el texto interior y el color del bot n cambian para reflejar el estado actual Procedimientos mostrarlnicio asociados punteroSobreBoton Tabla 59 Procedimiento dibujarBotonOrdenes ID enviarOrdenes S Nombre E S Funci n Par metros f ordenes entrada Contenido a enviar en el paquete UDP Si ha transcurrido el intervalo fijado para el env o de rdenes este procedimiento construye Descripci n el paquete UDP a enviar conteniendo las rdenes a ejecutar en Arduino Dichas rdenes depender n del modo de control activo y de las condiciones de ese momento Despu s de su env o a la aplicaci n de escritorio las rdenes son borradas Procedimientos asociados draw Tabla 60 Procedimiento enviarOrdenes 94
154. do de las condiciones en la interfaz del usuario Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n La aplicaci n de escritorio compara el valor establecido por el usuario en los p1 rangos m nimo y m ximo de cada variable con el valor asociado a esa variable recibido en la ltima lectura Si se cumplen las condiciones para activar o desactivar los sistemas de p2 riego y ventilaci n y el modo est fijado en autom tico para ese sistema se activa o desactiva seg n corresponda Asigna a las variables encargadas de mostrar el estado de las condiciones p3 del invernadero el valor resultante de la comparaci n del paso 1 ver descripci n de los valores en el caso de uso RF 16 Muestra en pantalla la informaci n sobre cada condici n usando el valor p4 reais asociado a cada una en el paso anterior usando imagenes y texto Postcondici n La aplicaci n genera una cadena de texto con el estado de las condiciones actuales La aplicaci n detecta si se ha producido un cambio en las condiciones actuales Excepciones Paso Acci n n a n a Rendimiento 1 5 segundos Frecuencia esperada Cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta
155. e riego y ventilaci n para dar un mayor nfasis a esta informaci n ya que es de vital importancia que el usuario conozca estos datos a primera vista Para la representaci n de las condiciones presentes en el invernadero tambi n se han utilizado im genes descriptivas que hacen mas f cil la identificaci n de las condiciones an malas en el invernadero Todo ello forma un conjunto de informaci n que es ofrecida de modo claro y directo al usuario con el uso de elementos visuales f cilmente reconocibles 8 2 POSIBLES AMPLIACIONES Y MEJORAS Sistemas de humidificaci n y regulaci n de luz Para completar el control sobre las variables del invernadero estos dos nuevos sistemas podr an ser implementados en un futuro como reguladores del crecimiento de las cosechas El sistema de humidificaci n se apoyar a en las lecturas del sensor de humedad interior para actuar sobre pulverizadores que aumentasen la cantidad de vapor de agua presente en el aire del interior del invernadero Por otra parte el sistema de regulaci n de luz controlar a varios servomotores encargados del cierre o apertura de las mallas de sombreado Registro de alertas y notificaciones v a Twitter Otra funcionalidad que se podr a integrar en el sistema Hortduino es la capacidad de alertar al usuario v a Twitter cuando alguna de las condiciones del invernadero se encontrase en situaci n de alerta Estas alertas se registrarian en una tabla de la base de datos para
156. e E S Funci n x entrada Coordenada en el eje X Parametros y entrada Coordenada en el eje Y ancho entrada Ancho del bot n en pixels alto entrada Alto del bot n en pixels Descripci n Devuelve si el puntero del rat n se encuentra dentro del rea del bot n ire ate mouseClicked Tabla 34 Procedimiento punteroSobreBoton ID punteroSobreTrianguloArriba Nombre E S Funci n x1 entrada Coordenada en el eje X del punto 1 y1 entrada Coordenada en el eje Y del punto 1 Par metros x2 entrada Coordenada en el eje X del punto 2 y2 entrada Coordenada en el eje Y del punto 2 x3 entrada Coordenada en el eje X del punto 3 y3 entrada Coordenada en el eje Y del punto 3 Descripci n Devuelve si el puntero del rat n se encuentra dentro del rea del tri ngulo superior del selector Procedimientos asociados dibujarSelectorActualizacion dibujarSelector 87 Tabla 35 Procedimiento punteroSobreTrianguloArriba wc Miguel Angel Hernanz Hernanz ID punteroSobreTrianguloAbajo Nombre E S Funci n x1 entrada Coordenada en el eje X del punto 1 y1 entrada Coordenada en el eje Y del punto 1 Par metros x2 entrada Coordenada en el eje X del punto 2 y2 entrada Coordenada en el eje Y del punto 2 x3 entrada Coordenada en el eje X del punto 3 y3 entrada Coordenada en el eje Y del punto 3 Descripci n Devuelve si el puntero del rat n se encuentra dentro del rea del tri ngulo
157. e encarga de hospedar la p gina web as como la base de datos utilizada para almacenar las lecturas enviadas desde la aplicaci n de escritorio Estas funciones cuentan con sus respectivos servicios en ejecuci n en el servidor Tambi n provee los ficheros de configuraci n a las aplicaciones que hacen uso de ellos 23 fe Miguel Angel Hernanz Hernanz 4 1 Arquitectura interna del subsistema Arduino ARDUINO Inicializaci n Lectura de Setup Sensores Recepci n Ejecuci n Ordenes Ordenes Ilustraci n 8 Arquitectura interna del subsistema Arduino Como se puede apreciar en la ilustraci n anterior el subsistema que engloba al dispositivo Arduino y los sensores est compuesto por cuatro m dulos que agrupan diferentes procedimientos encargados de las diferentes tareas que es capaz de llevar a cabo el hardware dd Inicializaci n Setup Este procedimiento contiene la inicializaci n del dispositivo Arduino estableciendo los pines de entrada salida utilizados y los valores iniciales de las variables Se ejecuta autom ticamente al inicio del programa y no puede ser invocado posteriormente dd Lectura de sensores Agrupa las tareas de conversi n y muestreo de las se ales recibidas desde los sensores en los intervalos de lectura establecidos y el env o hacia la aplicaci n de escritorio de estos datos l Recepci n Ordenes Incluye las funciones de la librer a Ethernet Udp que implementa la escucha en un puerto
158. e esos sistemas activado o desactivado Salvar Configuraci n Este procedimiento guarda la configuraci n de la aplicaci n remotamente en el servidor si se produce alg n cambio en los valores m nimos y m ximos aceptables de las variables o si se cambia el modo de actuaci n de los sistemas de riego y ventilaci n Dada la limitaci n del lenguaje Processing a la hora alterar el contenido de un archivo remoto se ha optado por el empleo de scripts en PHP que realicen esta funci n al ser invocados desde la aplicaci n de escritorio 26 fe Miguel Angel Hernanz Hernanz 4 3 Arquitectura interna del subsistema Aplicaci n Android APLICACI N PARA DISPOSITIVOS ANDROID Inicializaci n Control UDP Receive Salvar Setup TouchEvent Handler Configuraci n Mostrar Mostrar Mostrar Nivel Dep sito Inicio Selectores Comprobar Comprobar Conexi n Enviar Estados Condiciones Red Ilustraci n 10 Arquitectura interna de la Aplicaci n para Android Como ya se ha indicado anteriormente la aplicaci n para dispositivos Android es una adaptaci n de la aplicaci n de escritorio al entorno Android pero con algunas limitaciones y funcionalidades que la hacen ligeramente diferente de la aplicaci n de escritorio La arquitectura de este subsistema se detalla a continuaci n dd Inicializaci n Setup Procedimiento que se encarga de establecer las variables del programa a los valores iniciales necesarios poner en marcha el socket UD
159. e hardware del proyecto se han empleado los siguientes elementos en la construcci n del prototipo hardware Placa Arduino MEGA 2560 R3 con microcontrolador ATMega integrado Shield Ethernet compatible con Arduino Sensor de temperatura y humedad DHT11 Sensor de temperatura National Semiconductor LM35 Sensor de humedad del suelo de fabricaci n propia Sensor de medici n de distancia por ultrasonidos Fotorresistencia mini Rel s v lvula de solenoide y ventilador 12V Cableado breadboard y resistencias el ctricas Para el desarrollo y pruebas del software han sido necesarios los recursos y herramientas enumerados a continuaci n PC dedicado a tareas de programaci n y servidor Smartphone Samsung Galaxy Mini II con Android 2 3 para el desarrollo de la aplicaci n Android y las correspondientes pruebas Router TP LINK TD W8970 Wi Fi para las comunicaciones por red Editor de c digo Sublime Text 2 versi n de prueba Entorno de desarrollo Arduino 1 0 5 Entorno de desarrollo Processing 2 1 1 Java JDK 1 7 0 45 y Android SDK Tools Servicio de redireccionamiento DNS No IP org gratuito Fritzing 0 8 7 usado en el dise o del prototipo hardware LibreOffice 4 2 para labores de documentaci n Adobe Photoshop CS6 trial para la creaci n de las ilustraciones que acompa an la documentaci n diversas im genes auxiliares en la p gina web y algunos elementos gr ficos de las aplicaciones 14 DUINO Miguel Ange
160. e l neas de texto que muestran el estado actual junto a las im genes descriptivas asociadas a ese estado Variando el color de la l nea informativa y la imagen mostrada se alerta al usuario si alguna condici n establecida no se cumple por no llegar al valor m nimo color de l nea azul o superar el l mite m ximo permitido color rojo Temperatura exterior Temperatura interior Humedad ambiental OK Nivel de agua para riego OK Ilustraci n 25 Informaci n sobre condiciones del invernadero 102 ORTDUINO Miguel Angel Hernanz Hernanz Como ltimo elemento de la interfaz se presentan los diferentes selectores que indican los valores m ximo y m nimo permitidos para cada variable monitorizada as como el control del intervalo de actualizaci n de los gr ficos vistos anteriormente El usuario puede cambiar el valor mostrado en cada caja mediante los tri ngulos dispuestos en la parte derecha del valor mostrado Se puede mantener el bot n del rat n pulsado sobre el tri ngulo para incrementar o decrementar el valor de forma continuada ULTIMA ACTUALIZ 1014 19 33 11 Humedad suelo min Humedad suelo max Temperatura int min Temperatura int max 4 gt 4b 4b 4d 4d Temperatura ext min Temperatura ext max Nivel de agua max Nivel de agua min Humedad int min Humedad int max avis a poras o y y 5 a Minutos o v An Segundos g v Intervalo de actualizaci n de gr ficos Ilustra
161. e proporciona diferentes datos empleados por la aplicaci n como por ejemplo la alteraci n de los rangos aceptables de las variables controladas Numero de salidas de usuario Son las salidas que proporcionan al usuario informaci n sobre la aplicaci n en forma de pantallas mensajes informes etc Los elementos de datos particulares dentro de un informe no se cuentan de forma separada e Numero de peticiones de usuario Las peticiones del usuario son aquellas entradas que producen la generaci n de respuestas autom ticas del software en forma de salida interactiva e Numero de archivos Cada uno de los archivos l gicos que forman parte del sistema englobando en este concepto a las bases de datos Numero de interfaces externas Se consideran todas las interfaces usables por el sistema que se utilizan para transmitir informaci n a otro sistema Una vez que se han recopilado todos los elementos referentes a los puntos anteriores se asocia a cada uno un factor de complejidad alta media o baja en funci n del criterio adoptado Este criterio es un tanto subjetivo ya que est abierto a interpretaciones personales sobre lo que se considera complejo o sencillo A continuaci n se obtienen los Puntos de Funci n No Ajustados como la suma resultante de rellenar la Tabla 1 que asocia cada par metro con su factor de complejidad Para obtener los Puntos de Funci n ajustados se emplea la siguiente relaci n PF PFNA x 0 65 0
162. e respecta a los datos enviados y a las rdenes recibidas Esto se consigue mediante el uso de un cliente que soporte el protocolo de comunicaci n de puerto serie local como la aplicaci n PuTTY mediante el cual se puede acceder a los datos que maneja Arduino en modo debug conectando el dispositivo a un PC a trav s de un cable USB 3 2 2 Sensores amp Descripci n y funcionalidad El array de sensores es un conjunto de actuadores mec nicos y diversos sensores electr nicos capaces de medir diferentes variables Cada sensor dispuesto tiene la capacidad de transmitir la medici n efectuada de diferentes maneras en funci n del tipo de sensor La informaci n t cnica referente a cada sensor se incluye en el ap ndice correspondiente A continuaci n aparecen los diferentes sensores usados en el proyecto e National Semiconductor LM35 temperatura exterior e Grove Temperature and Humidity Sensor temperatura y humedad interior e Fotorresistencia CdS intensidad lum nica e Seeed Ultrasonic Sensor nivel de agua en el dep sito de riego e Sensor de humedad del suelo basado en la conductividad del yeso h medo l Interacci n con otros sistemas El subsistema de sensores y actuadores solamente se comunica con el dispositivo Arduino mediante los cables conectados a las diferentes entradas y salidas de las que dispone el hardware amp Limitaciones y dependencias La principal limitaci n de este subsistema es la precisi n
163. easeneaees 79 Tabla 9 Procedimiento estado Velt ooononicnnniconccocnnonononnnononnnnnnonononnonn conc nono non ncn non non nann nan nannncnnncns 79 Tabla 10 Procedimiento Setup ccceccceccescesscesseeseeseceseeseceseeseeesecseeesecseenseceaeeaeceseseeeeseeensaeeeseeenaees 80 Tabla 11 Procedimiento draw cceceseessseceecseesecseceesesseeseeseeseeeceeceececsecsesesaessessesseeseeaesaaeeeeeeaees 80 Tabla 12 Procedimiento establecerComexion ccceccesceeseesseeseeeeesecseeeseeseenseceeeeseceeeeneeessneeseaeees 80 Tabla 13 Procedimiento mostrarMenuConfigCone cccccsccesessceeceeseeeseesecesecseceseseeessesenenseeseaees 80 Tabla 14 Procedimiento inicializaCon lB coconcconncnnonnnnnonnnnncnncnncnncnncnn con onn cnn rn cnn nn canario nn nranncnnnns 81 Tabla 15 Procedimiento imicializarAnimaciOn ccccceceesseesceseeeceeseeeeeeseeeseeseecseceeeeseeceeeseaeensaees 81 Tabla 16 Procedimiento almacenarLecturas c cccceccescseseeseseseesececeesceeseesecececseceeeeaeeeseseesnseeneesaaees 81 Tabla 17 Procedimiento salvarLecturas cccccceccesesseeseceseeseceseeseceseeseceeecaecesesseeeaeseesaeeeeeeeenenaees 82 Tabla 18 Procedimiento salvarConfig ceeeseesceeceseeeceeceeeeeecseesecsesaeeaeeaeeeeecesaeeseeaeeeaeesaeeeaeees 82 Tabla 19 Procedimiento mostrarDatos c cc ccsccessessceseeeeeeseeeeeeseeesecseeesecacenseceeeeaeceaeessaeeessneessatees 82 Tabla 20 Procedimiento establecerUltima
164. eezs E S E E ten avert sa 14 Tu straci n 14 DepGsito l 45 Mi vvciesseescceiscussscoteisessvetsciceeud caniesdendsaceazs Dead arado sai iaa caia 14 Ilustraci n 15 Configuraci n de rangos aceptables ccccecceeseesseeseesseeseeeeeeseeeeeeseceeeseseeeeeenaeees 14 Ilustraci n 16 Informaci n de COMEXION escceseeseeeceeseeeseeseececseceseesececeeaeeesessesesecseeeseseeeeeenaeees 15 Ilustraci n 17 Gr fico de Luminosidad ccecceccessssceeseceseeseceeeeseeceesececesseesseeseeeseceeeseeeeeaeessaeees 15 Ilustraci n 18 Gr fico general de estadisticas ice sccesesseesceeceeeeeceeceeeeeecseeaessesaeeaeeseeeseaeeeeeeaees 16 Ilustraci n 19 Secci n Estado Actual mostrando un mensaje de alerta ooooonnncnncnnconnccnnccnnonnnoos 17 Ilustraci n 20 Secci n Consumo de agua sccescesscessessseseeeeeeseseeeeseceeesseceeeseeecesaeeeeeeaeeeeeeeenseeeees 18 Ilustraci n 21 Secci n Temperaturas TegistradaS cococninninninnnnnnnnnncenocnncnncnncnrcnncnn conca non nannnnnnnnns 18 Ilustraci n 22 Entorno de desarrollo de Arduimo ceccceceescesseeseesceeseceeeeseeeeeseeeseeeaeeeseeesseeensaeees 20 Ilustraci n 23 Instalaci n en Android 1 ccceescsesesseeeseeseeeceeseceeesecseeeseceeeeaeceseeaeceeeseeesesereeaeenees 22 Ilustraci n 24 Instalaci n en Android IID ceecceseeseesecsseeseceeceseeeceesececesseceeeeseeeseessenseeaeenaeensaeees 22 Ilustraci n 25 Instalaci n en Android I c
165. el bot n de acceso al men draw Procedimientos mostrarDatos asociados comprobarCondiciones dibujarEstadoOrdenes Tabla 45 Procedimiento mostrarlnicio ID mostrarMenu Par metros Descripci n Muestra el men de opciones en forma de varios botones Procedimientos draw asociados dibujarBotonesMenu Tabla 46 Procedimiento mostrarMenu ID mostrarMenulnfo Par metros A Muestra la direcci n IP a la que se conecta y el n mero de actualizaciones recibidas Solo Descripci n se usa a modo de comprobaci n Procedimientos draw asociados dibujarBotonesMenu Tabla 47 Procedimiento mostrarMenulnfo ID dibujarBotonesMenu Par metros An Presenta en pantalla los botones correspondientes a cada opci n del men y controla la Descripci n ES opci n elegida por el usuario Procedimientos P mostrarMenu asociados Tabla 48 Procedimiento dibujarBotonesMenu ID dibujarSelectores Parametros Muestra la pantalla de configuraci n de los rangos m ximos y m nimos para cada variable Descripci n del invernadero Si el usuario modifica alguno de estos valores se activa el guardado de la nueva configuraci n en el servidor a trav s de la aplicaci n de escritorio Procedimientos asociados draw 91 Tabla 49 Procedimiento dibujarSelectores ORTDUINO Miguel Angel Hernanz Hernanz
166. el directorio htdocs hortduino del servidor XAMPP no est protegido contra escritura Se muestran lecturas err neas en la aplicaci n de escritorio o Android Verifique que los sensores del invernadero est n correctamente conectados y no existen interferencias 19 ORTDUINO Miguel Angel Hernanz Hernanz 7 MANUAL DE INSTALACI N En esta secci n se explica c mo instalar las diferentes herramientas software del sistema Hortduino La instalaci n de los sensores y sistemas de riego y ventilaci n no se abordan en este manual y ser n responsabilidad del usuario 7 1 Programaci n de Arduino Para cargar el programa en el dispositivo Arduino necesitaremos instalar el IDE y los drivers de Arduino en el PC Este proceso est explicado en detalle dentro del tutorial Getting Started with Arduino on Windows de la p gina web de Arduino AA Henin i die Archivo Editar Sketch Herramientas Ayuda Hortduino include lt EthernetUdp h gt include lt Ethernet h gt include lt SPI h gt include lt stdlib h gt include lt DHT h gt include lt SD h gt define DHTPIN 2 Digita sensor DHT11 define DHTTYPE DHT11 ipo de sensor de la familia DHT const int chipSelect 4 DHT dht DHTPIN DHTTYPE int pinLDR 8 Analog pin int pinLM35 9 j Analog pi int pinYeso 14 Analog pin 4 mH Ilustraci n 22 Entorno de desarrollo de Arduino Una vez instalado y configurado el entorno de de
167. el sistema en su conjunto y las relaciones entre las diferentes partes en una serie de ilustraciones las cuales son resultantes de la fase inicial de dise o e Miguel Angel Hernanz Hernanz envia_datos Hortduino Web Sensor a consulta_SQL solicita HTML XAMPP SERVER PAGINA WEB conexi n_activa envia_estados_y_datos envia_ordenes APLICACI N DE ESCRITORIO 4000000000 OO i i l envia_lecturas ARDUINO MEGA 2560 reenvia_lecturas envia_ordenes SAMSUNG DISPOSITIVO ANDROID Ilustraci n 1 Vista general del sistema y sus componentes Miguel Angel Hernanz Hernanz ORTDUINO En la anterior ilustraci n la vista general del sistema se pueden observar c mo se relacionan entre s las diferentes partes de las que se compone el sistema Seguidamente veremos en detalle cada relaci n de forma mas espec fica y pormenorizada 1 envia_lecturas 1 conecta 0 1 envia_ordenes 1 A _ _ MMMMMMNA 3000 ARDUINO APLICACI N MEGA 2560 ESCRITORIO Ilustraci n 2 Modelo de negocio Arduino Aplicaci n escritorio En la ilustraci n 2 se aprecia con mas detalle la relaci n entre el dispositivo Arduino MEGA 2560 y la aplicaci n de escritorio El hardware env a la informaci n recibida desde los diferentes sensores mediante un paquete UDP transferido por red hasta la aplicaci n de escritorio la cual es
168. ene como ventajas el poder cambiar o a adir nuevas caracter sticas no concebidas en la fase inicial de requisitos haciendo que el producto final se adec e a las necesidades del usuario y permitiendo que el desarrollador pueda centrarse primero en las partes del sistema que mejor conoce en vez de trabajar sobre el sistema entero El desarrollo del software en este proyecto se divide en sucesivas iteraciones o bloques temporales en las cuales se dise an y a aden funcionalidades mejorando si es necesario las ya existentes Para cada iteraci n se ejecutan bater as de pruebas a fin de comprobar su funcionalidad A continuaci n se detallan las iteraciones ocurridas a lo largo del desarrollo del software 11 e Miguel Angel Hernanz Hernanz 1 Estudio previo En la primera fase se recaba informaci n acerca de la plataforma hardware Arduino y sus herramientas de desarrollo as como del entorno de programaci n propio Tambi n se propone un posible inventario con los componentes requeridos para la base hardware del proyecto 2 Iteraci n I La primera iteraci n consiste b sicamente en conectar y enviar informaci n desde el hardware Arduino hacia el equipo donde se reciben los datos Esta comunicaci n se produce mediante el uso de un puerto serial ya que es la forma mas b sica de env o de datos que posee la plataforma Arduino 3 Iteraci n II En esta iteraci n se trata fundamentalmente el dise o de la interfaz de
169. eneral del sistema y SUS COMPONENTES oooocccnccnoconononnconnonncon nono non nonnnnnncnncrannnnnnnss 5 Ilustraci n 2 Modelo de negocio Arduino Aplicaci n eSCTritOTi0 ce eeeseseeseeteeeeeceeceeeneeeeneeeaee 6 Ilustraci n 3 Modelo de negocio Aplicaci n escritorio Dispositivo Android ee eeeeeeeeeteeeee 7 Ilustraci n 4 Modelo de negocio Aplicaci n escritorio XAMPP Server 8 Ilustraci n 5 Modelo de negocio XAMPP Server Web cceccessssseeseeeseeeeeseeseeeseeeensessneeenteeensas 9 Ilustraci n 6 M dulos y funciones del sistema eccecceeceeseseceeseeeeeesececeeseececseeeseeaeceseeneenseeaeees 14 Ilustraci n 7 Arquitectura del Proyecto HoOrtduUINO oooconoccnncnnnnocnncnonocnnrnnonnncorcnncnn conc conc cnornonnnnno 22 Ilustraci n 8 Arquitectura interna del subsistema ATdUIN O oooonconccncnnccnccncconcnnnononncnnonnonnonn nc no nana 23 Ilustraci n 9 Arquitectura interna de la Aplicaci n de EscCritOTTO ooooccicnnnicnnnnnnnnnnneneeneereanccnnno 24 Ilustraci n 10 Arquitectura interna de la Aplicaci n para Alddr0ld occonnonnnicnnnncnoconococnncnnonanancnananns 26 Ilustraci n 11 Arquitectura interna del Servidor XAMPP ecscsscssesceseeseeseeseeeeeeeeeeseeneeeeeenees 28 Ilustraci n 12 Despliegue del sistema HoOrtduUiNO cococccicnicnncnocnnoncnnonnranrcnn corona cnnonn on cnncn conc rancia 30 Ilustraci n 13 Planificaci n de las tareas seg n las iteracione
170. entes elementos visuales Informacion de los datos mas actuales sobre las variables monitorizadas Informacion de la evoluci n reciente de los datos sobre cada variable Informacion y control del modo de funcionamiento de los sistemas de riego y ventilaci n as como su actividad en ese momento Informaci n sobre la disponibilidad de agua para riego en el dep sito Informaci n sobre el estado de las condiciones del invernadero alertas incluidas Informaci n y control de los rangos establecidos para cada variable Informaci n y control sobre el intervalo de actualizaci n de la informaci n reciente Mediante el empleo del lenguaje Processing y aprovechando las funcionalidades que ofrece en lo relacionado con la creaci n de entornos visuales se realiz una primera aproximaci n al dise o de la interfaz de la aplicaci n de escritorio comenzando por mostrar la informaci n de los datos recibidos desde Arduino en la ventana de la aplicaci n de escritorio 100 ORTDUINO Miguel Angel Hernanz Hernanz Luminosidad 66 Temperatura exterior 23 0 C Temperatura interior 21 C Humedad interior 38 Humedad del suelo O Ilustraci n 21 Informaci n actual de los sensores A medida que se incorporaron los nuevos elementos visuales se hizo patente la necesidad de adaptar la informaci n mostrada a la manera mas visual posible optando por el empleo de elementos gr ficos cuando se conside
171. er L_ Ilustraci n 29 Instalaci n del servidor XAMPP IV 23 DUINO Miguel Angel Hernanz Hernanz 7 5 Configuraci n de los servicios del servidor XAMPP Una vez concluida la instalaci n del servidor XAMPP se iniciar el panel de control desde el que se podr controlar y configurar los distintos servicios que se hayan instalado Los valores de configuraci n de los servicios Apache y MySQL para Hortduino son descritos mas adelante 3 2 1 Compiled May 7th 2013 XAMPP Control Panel v3 2 1 Module PID s Port s Actions Apache Admin MySQL Admin Config Logs FileZilla Admin Config Logs Mercury Admin Tomcat Admin 17 19 39 Apache Attempting to start Apache app 17 19 40 Apache Status change detected running 17 19 40 mysql Attempting to start MySQL app 17 19 40 mysql Status change detected running 17 19 51 mysql Attempting to stop MySQL PID 3552 17 19 51 mysql Status change detected stopped 7 Apache Attempting to stop Apache PID 3700 17 Apache Attempting to stop Apache PID 3164 17 19 52 Apache Status change detected stopped Ilustraci n 30 Panel de control XAMPP Desde el panel de control de XAMPP se puede iniciar o parar los servicios a voluntad del usuario pero es conveniente que dichos servicios se inicien como procesos del sistema autom ticamente sin intervenci n del usuario Para ello es necesario hacer click sobre el
172. es Procedimiento de inicializaci n que es ejecutado autom ticamente cuando se inicia la Descripci n aplicaci n de escritorio Inicializa variables y conexiones Procedimientos draw inicializaConfig asociados a i a inicializarAnimacion Tabla 42 Procedimiento setup ID draw Parametros Bucle del programa principal Es invocado automaticamente despu s del procedimiento Descripci n setup y se encarga de establecer los intervalos para recepci n de lecturas env o de rdenes y mostrar los elementos gr ficos de la interfaz Procedimientos enviarOrdenes salvarConfig inicializaConfig establecerConexion mostrarlnicio asociados mostrarMenu dibujarDeposito dibujarSelectores mostrarMenulnfo Tabla 43 Procedimiento draw ID dispatchTouchEvent Nombre E S Funci n Par metros E event entrada Evento t ctil D E Redefinici n del m todo que gestiona los eventos t ctiles en Android para simular las escripci n funciones del rat n en Processing Procedimientos asociados draw Tabla 44 Procedimiento dispatchTouchEvent 90 ORTDUINO Miguel Angel Hernanz Hernanz ID mostrarlnicio Par metros Muestra la pantalla principal de la aplicaci n con la informaci n recibida desde la aplicaci n Descripci n de escritorio los controles y estados de los sistemas de riego y ventilaci n y
173. escesceeseesseeseeseceseeeeeseceeesecseeeseceseeseceseeseceaesaeeesececeseeneeeaeeates 15 PAGINA MER A A A RA 15 5 1 Secci n ltimas lecturas c ccccscsssssssssssssssssessesssssssssssssssssssssssavsssssssssssssssssssssssesssssssensesscesens 15 5 2 SECCION Estadistica iii A ita 16 3 3 S ccion Estado td ii db 17 5 4 Secci n Consumo de agua sceeessesecsscecsecceeceeceeceecneesecsesseeaesseeeceeeeeeeeseeeeeeseseaeeeeseaeenaeeeas 18 5 5 Secci n TOPES nile ede Reese cee 18 5 6 Secci n Sobre Hold ii i ads EEEE E EE Shae EE 19 6 GU A DE RESOLUCI N DE PROBLEMAS ccscssssssssessesssssessssecsessesssssssucsessessssussecsessessssecseess 19 TMANUAL DE INSTALACI N aa 20 7 1 Programaci n de ATdUIMO siii e a E dida 20 7 2 Instalaci n de la aplicaci n de eSCTItOTIO ooooocociccnonnnononnconnnoncnncnon cnn conncnn non nonno nono nan rrnnnrnnnss 20 7 3 Instalaci n de la aplicaci n ANdrOiO oocoonncnoccnonioononnnononnnconononcnnonnronnrnncnn non nnn nro nnan cnn nn ran nnnnns 21 7A Instalaci n del servidor XAMPP 4 scsscscecestessesssescusasesecs consis ionar r iki E iE PESAS 22 7 5 Configuraci n de los servicios del servidor XAMPP cccccsscesceeseeseeeeeeteeeseeseeeeeeeesneeeeee 25 e Miguel Angel Hernanz Hernanz ndice de ilustraciones Ilustraci n 1 Problemas de conexi n con ATdUiNO ooooccccnoconononncononononnnoononnnonncnnnonn non nrnn non rca non nnnnncnnns 5 Ilustraci n 2 Ventana de la aplicaci n de esC
174. esesaeeaeeaees 86 Tabla 32 Procedimiento mostrarLeyenda eseceeesessessesseeseeseeseeseeeeeeesceeeeeseeaeeesateaseaeseeeeneees 86 Tabla 33 Procedimiento dibujarBoton eceeceecsceseceeenseseeseeseeseeseeeeeseeaeeecseceseeseeeeseseeaeeaeenaees 87 Tabla 34 Procedimiento punteroSobreBoton ceceseesessesseeseeseeeeeceseeeeececeseeeesaesseeaesesaeeateaeeaes 87 Tabla 35 Procedimiento punteroSobreTrianguloArTiba cononcnnnnnncnnonncnncnonccncnncnnorn non nonanncncnncrnnnnns 87 Tabla 36 Procedimiento punteroSobreTrianguloAbajo ccccscceceessescceseeeceeseeeeeeaeceeeeeeeeeesneessaeees 88 Tabla 37 Procedimiento enviarOrdenes cccceseescesseeseeeseesceesecseceseeseceaeceeeseeeeceseceeeeseseneeeenseeaees 88 Tabla 38 Procedimiento mouseClicked ooooonconocniccnocononooncoonnononnonncononononn non non nro n cnn nonn ron rra n rra nnrnnnns 88 Tabla 39 Procedimiento mouseReleased ococonccncnicnocnnononcononnnnnnnnonanncnnconcnncnnon nc ncnon nro conc rn n cri ncrnnno 88 Tabla 40 Procedimiento keyReleased ececcescessssseesecesceseceseeseeesecsecesecaeceseeseeeaeeseeseceeeeaeeneeeaees 89 T bla 41 Procedimiento TECELVE uti A A 89 Tabla 42 Procedimiento Setup oir id cidad 90 T bla 43 Procedimiento dl Wie 90 Tabla 44 Procedimiento dispatchTouchEVent ccccceccescesssesseeseeseceseceeeseceeeeseceeesseeesseeeesteeesaees 90 Tabla 45 Procedimiento mostrar niciO ooononcncnnonoonncnnnnoncn
175. esponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source The Corresponding Source for a work in source code form is that same work 2 Basic Permissions All rights granted under this License are granted for the term of copyright on the Program and are irrevocable provided the stated conditions are met This License explicitly affirms your unlimited permission to run the unmodified Program The output from running a covered work is covered by this License only if the output given its content constitutes a covered work This License acknowledges your rights of fair use or other equivalent as provided by copyright law You may make run and propagate covered works that you do not convey without conditions so long as your license otherwise remains in force You may convey covered works to others for the sole purpose of having them make modifications exclusively for you or provide you with facilities for running those works provided that you comply with the terms of this License in conveying all material for which you do not control copyright Those thus making or running the covered works for you must do so exclusively on your behalf under your direction and control on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you Conveying under any other circumstances is permitted solely under the conditions stated below
176. gar de su almacenamiento en una base de datos externa y de la automatizaci n y control del riego y ventilaci n mediante sendos actuadores mec nicos Esta aplicaci n de escritorio tambi n ser capaz de mostrar los datos recibidos por red desde los sensores en tiempo real y establecer las condiciones m ximas y m nimas que se han de mantener para cada variable alertando al usuario si se encuentran fuera de rango El usuario podr seleccionar el modo autom tico o manual para el control del riego y la ventilaci n de modo que se active el sistema de riego si la humedad del suelo cae por debajo de un determinado valor m nimo aceptable o se accione el sistema de ventilaci n si la temperatura o humedad interior superan un l mite m ximo Para apoyar a la aplicaci n de escritorio la aplicaci n m vil ser una r plica en versi n reducida de las funcionalidades e interfaz de la aplicaci n de escritorio contando con las ventajas de movilidad que ofrecen los dispositivos ANDROID A diferencia de la aplicaci n de escritorio la aplicaci n m vil no tendr la funcionalidad de incorporar los datos recibidos a la base de datos externa pero si podr ajustar los rangos aceptables de las variables monitorizadas y activar desactivar los controles de riego y ventilaci n Por ltimo se dispondr de una p gina web donde el usuario podr visualizar gr ficamente la informaci n almacenada en la base de datos por la aplicaci n principal y tener
177. gel Hernanz Hernanz 12 No Surrender of Others Freedom If conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not excuse you from the conditions of this License If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations then as a consequence you may not convey it at all For example if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program 13 Use with the GNU Affero General Public License Notwithstanding any other provision of this License you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work and to convey the resulting work The terms of this License will continue to apply to the part which is the covered work but the special requirements of the GNU Affero General Public License section 13 concerning interaction through a network will apply to the combination as such 14 Revised Versions of this License The Free Software Foundation may publish revised and or new versions of the GNU General Public License from time to time Such new versions will be similar in spirit to the prese
178. get it with reasonable efforts You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License For example you may not impose a license fee royalty or other charge for exercise of rights granted under this License and you may not initiate litigation including a cross claim or counterclaim in a lawsuit alleging that any patent claim is infringed by making using selling offering for sale or importing the Program or any portion of it 66 e Miguel Angel Hernanz Hernanz 11 Patents A contributor is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based The work thus licensed is called the contributor s contributor version A contributor s essential patent claims are all patent claims owned or controlled by the contributor whether already acquired or hereafter acquired that would be infringed by some manner permitted by this License of making using or selling its contributor version but do not include claims that would be infringed only as a consequence of further modification of the contributor version For purposes of this definition control includes the right to grant patent sublicenses in a manner consistent with the requirements of this License Each contributor grants you a non exclusive worldwide royalty free patent license under the contributor s essential patent claims to make use sel
179. go y Descripci n ventilaci n mediante im genes representativas El usuario puede mover el cursor del rat n encima de los elementos gr ficos para obtener una explicaci n del significado de la imagen mostrada Elementos actuan ph asociados pop Tabla 70 estadoactual php ID ultimosdatos php Par metros P gina auxiliar contenida dentro de la secci n Estado actual que se muestra la ltima Descripci n lectura recibida de los sensores almacenada en la tabla actual de la base de datos del servidor Elementos actual ph asociados pop Tabla 71 ultimosdatos php ID sketchDeposito pde y Nombre E S Funci n Par metros a A valor entrada Nivel actual del dep sito de agua para riego D er Dibuja en el elemento canvas de la pagina web la representaci n gr fica del nivel de agua escripci n He presente en el dep sito ElSmentos consumoagua ph asociados gua php Tabla 72 sketchDeposito pde 98 ORTDUINO Miguel Angel Hernanz Hernanz ID sketchConsulta pde Nombre E S Funci n Par metros id entrada Nombre de la variable a graficar num entrada N mero de registros a utilizar en el gr fico Dibuja en el elemento canvas de la p gina web la representaci n gr fica del la variable D a seleccionada empleando para ello el n mero de registros indicado Tambi n muestra los escripci n a valores que componen el gr fico si el usuario
180. grupados bajo el paquete de desarrollo web XAMPP La comunicaci n entre el dispositivo Arduino la aplicaci n de escritorio y la aplicaci n Android utiliza el protocolo UDP sobre Ethernet mediante la biblioteca UDP Hypermedia net para Processing y EthernetUDPh para Arduino Se ha elegido este protocolo de red por su buen ajuste a las caracter sticas t cnicas de este proyecto siendo las principales expuestas a continuaci n Y Intercambio r pido de informaci n usando un solo paquete UDP lo que evita el establecimiento de una conexi n previa handshaking y la sobrecarga asociada al uso del protocolo TCP 20 bytes para el header en TCP 8 bytes usados en el header UDP con el correspondiente ahorro en el tr fico de datos enviados por la red v La p rdida de un paquete en la red no supone una problema cr tico puesto que el env o de datos y rdenes se realiza de forma casi continua En vez de solicitar el reenv o si se emplease el protocolo TCP los datos recibidos en el servidor son reemplazados por la siguiente lectura con valores pr cticamente id nticos a los del paquete perdido En el caso del env o de rdenes se presenta una situaci n similar ya que son enviadas al hardware de forma continuada Ethernet Header 14 bytes IP Header 20 bytes UDP Header 8 bytes Estructura interna de un paquete UDP 1 472 bytes 8 954 bytes Ethernet Trailer 4 bytes 13 wt Miguel Angel Hernanz Hernanz En lo que respecta al soport
181. gt lt body onload mostrarDeposito gt lt iframe name dummie src dummie php width 0 height 0 style border none z index 1 position absolute gt lt iframe gt 122 Miguel Angel Hernanz Hernanz ORTDUINO lt iframe falso para forzar la carga de sketches gt lt div id container gt lt div style display block margin 0 auto width 65 height 13em vertical align middle gt lt div id cabecera gt lt img id logo src images Hortlogo png height 150 width 150 gt Hortduino Web Sensor lt div gt lt div gt lt php include menu php gt lt div id containerSketches gt lt p gt Consumo de agua para riego lt p gt lt div id riego gt lt canvas style display inline block float left id depositoagua data processing sources scripts sketchDeposito sketchDeposito pde gt lt canvas gt lt br gt lt br gt lt p gt Consumo total lt php echo consumo gt unidades lt p gt lt p gt Consumo medio diario lt php echo consumoMedio gt unidades d amp iacute a lt p gt lt p gt Previsi amp oacute n de duraci amp oacute n de agua restante lt php echo round nivelAguaActual consumoMedio gt d amp iacute as lt p gt lt div gt lt br gt lt br gt lt div gt lt br gt lt p class imagencentrada gt Hortduino usa tecnolog amp iacute a de lt br gt lt br gt lt img src images poweredby png width 290 height 32 style text align center ma
182. horizontales y verticales float intervY alto 2 margen divY String texto String fecha String hora int contDivY 0 Contador de las divisiones en eje Y int contDivX 0 Contador de las divisiones en eje X int puntero 0 stroke 80 strokeWeight 1 if grillaDibujada maximo lt 100 for float i margen i lt ancho it intervX Lineas verticales if contDivX lt divX 1 if grillaDibujada line i margen i alto margen puntero int map i margen ancho margen 0 timeStamps length texto timeStamps puntero hora texto substring texto indexOf 1 fecha texto substring 0 texto indexOf if grillaDibujada text hora i textWidth hora 2 alto margen 20 if grillaDibujada text fecha i textWidth fecha 2 alto margen 30 120 ORTDUINO Miguel Angel Hernanz Hernanz contDivX for float i margen i lt alto it intervY Lineas horizontales if contDivY lt divY 1 if grillaDibujada line 0 margen i ancho margen i if maximo 0 texto str maximo maximo divY contDivY Escala en el eje Y else texto if maximo gt 100 amp amp grillaDibujada text texto margen 2 1 2 else if humAmbSeleccionada La humedad ambiental 10 100 no comparte escala con los sensores de temperatura 0 50 if maximo 0 text texto C ancho margen 5 1 La escala de la humedad ambiental se muestr
183. i n de la base de datos P para mostrar en el navegador 2 Se genera una consulta SQL que es enviada al servicio MySQL del servidor P XAMPP p3 Se procesa la consulta por el motor MySQL y el resultado es devuelto a la p gina web que lo solicitaba Postcondici n Los datos requeridos son enviados al destino p gina web o sketch Excepciones Paso Acci n p3 Si se produce un error al consultar la base de datos se muestra en pantalla Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 59 Caso de uso RF 42 Obtener datos de la base de datos 60 wt Miguel Angel Hernanz Hernanz RF 43 Obtener input de usuario Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 07 Consulta de informaci n v a web OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 37 Generar p gina web Ultimas Lecturas RF 38 Generar p gina web Estad sticas RF 39 Generar p gina web Temperaturas Descripci n Obtiene la entrada del usuario en la p gina web Precondici n Conexi n con servidor XAMPP servicios MySQL y servidor web Apache Secuencia normal Paso Acci n p1 El usuario accede con su navegador a la p gina web El usuario introduce un valor num rico en el c
184. i n del servidor XAMPP 75 i 0 Integraci n de la libreria Bezier SQL en la Aplicaci n de Escritorio 82 o Pruebas de interaci n base de datos Aplicaci n de Escritorio 57 Iteraci n IV 224 o An lisis de requisitos de la Aplicaci n Android 58 Dise o de la interfaz de usuario de la Aplicaci n Android 60 Implementaci n de la Aplicaci n Android 68 Pruebas de la Aplicaci n Android 87 E e Iteraci n V 88 i An lisis de requisitos de la p gina Web 91 Dise o de la p gina Web 95 Dise o de los elementos gr ficos y logos 206 Maquetaci n de la estructura de la p gina Web en archivo CSS 97 o Dise o de los sketches de datos 104 o Implementaci n de los sketches para la p gina Web 108 B Pruebas de acceso y usabilidad 114 E e Documentaci n 115 i Obtenci n de esquemas y notas para elaborar la documentaci n ar S nuevas funcionalidades al software a medida que son descubiertas nuevas necesidades en este o Elaboraci n de la documentaci n final del proyecto Fecha de inicio 11 11 13 11 11 13 11 11 13 11 11 13 15 11 13 15 11 13 22 11 13 27 11 13 3 12 13 3 12 13 12 12 13 16 12 13 23 12 13 26 12 13 2 01 14 23 01 14 6 02 14 6 02 14 10 02 14 12 02 14 18 02 14 24 02 14 24 02 14 27 02 14 7 03 14 10 03 14 21 03 14 21 03 14 26 03 14 26 03 14 2 04 14 2 04 14 9 04 14 18 04 14 11 11 13 11 11 13 25 04 14 Fecha de fin Antecesores 11 07 14 14 11 13 14 11 13 14 11 1
185. if you distribute copies of such a program whether gratis or for a fee you must pass on to the recipients the same freedoms that you received You must make sure that they too receive or can get the source code And you must show them these terms so they know their rights Developers that use the GNU GPL protect your rights with two steps 1 assert copyright on the software and 2 offer you this License giving you legal permission to copy distribute and or modify it For the developers and authors protection the GPL clearly explains that there is no warranty for this free software For both users and authors sake the GPL requires that modified versions be marked as changed so that their problems will not be attributed erroneously to authors of previous versions Some devices are designed to deny users access to install or run modified versions of the software inside them although the manufacturer can do so This is fundamentally incompatible with the aim of protecting users freedom to change the software The systematic pattern of such abuse occurs in the area of products for individuals to use which is precisely where it is most unacceptable Therefore we have designed this version of the GPL to prohibit the practice for those products If such problems arise substantially in other domains we stand ready to extend this provision to those domains in future versions of the GPL as needed to protect the freedom of users Finally e
186. imiteMax minimo constrain minimo limiteMin maximo arrayCondiciones id 1 minimo if int cadena 1 this id amp amp identmaxmin MAX amp amp cadena 0 equals MAX fill 89 240 89 x constrain mouseX margen displayWidth margen triangle x y x ancho 2 ytancho xtancho 2 y ancho stroke 250 textSize tamFuente 2 text identmaxmin x textWidth identmaxmin 2 y ancho tamFuente 2 Muestra MAX o MIN debajo del triangulo marcador maximo int map mouseX margen displayWidth margen limiteMin limiteMax maximo constrain maximo minimo limiteMax arrayCondiciones id maximo if identmaxmin MAX fill 89 240 89 else fill 240 104 89 noStroke 116 ORTDUINO Miguel Angel Hernanz Hernanz triangle x y x ancho 2 ytancho xtancho 2 ytancho stroke 250 textSize tamFuente 2 text identmaxmin x textWidth identmaxmin 2 y ancho tamFuente 2 private void dibujarCajaTexto float x float y int tamFuente String valor int ancho tamFuente 2 int alto tamFuente 3 2 stroke 250 fall 100 strokeWeight 1 rect x y ancho alto fill 250 5 text valor x ancho 2 textWidth valor 2 y alto tamFuente 3 8 private void dibujarLinea float x float y stroke 150 strokeWeight 7 line x margen y tamFuente 3 displayWidth margen y tamFuente 3 strokeWeight 2
187. inferior del selector Procedimientos dibujarSelectorActualizacion asociados dibujarSelector Tabla 36 Procedimiento punteroSobreTrianguloAbajo ID enviarOrdenes Mi Nombre E S Funci n Par metros ordenes entrada Contenido a enviar en el paquete UDP Si ha transcurrido el intervalo fijado para el env o de rdenes este procedimiento construye Descripci n el paquete UDP a enviar conteniendo las rdenes a ejecutar en Arduino Dichas rdenes depender n del modo de control activo y de las condiciones de ese momento Despu s de su env o las rdenes son borradas Procedimientos i draw asociados Tabla 37 Procedimiento enviarOrdenes ID mouseClicked Parametros ar Cambia el estado del modo de control de los sistemas de riego y ventilaci n si el usuario Descripci n 8 hace click con el rat n encima de los botones correspondientes Procedimientos draw asociados punteroSobreBoton Tabla 38 Procedimiento mouseClicked ID mouseReleased Par metros Descripci n Informa si el bot n del rat n no est presionado Procedimientos draw asociados Tabla 39 Procedimiento mouseReleased 88 ORTDUINO Miguel Angel Hernanz Hernanz ID keyReleased Par metros Descripci n Almacena la ltima tecla pulsada en el teclado Procedimientos draw asociados Tab
188. ing occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term regardless of how the transaction is characterized the Corresponding Source conveyed under this section must be accompanied by the Installation Information But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product for example the work has been installed in ROM The requirement to provide Installation Information does not include a requirement to continue to provide support service warranty or updates for a work that has been modified or installed by the recipient or for the User Product in which it has been modified or installed Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network Corresponding Source conveyed and Installation Information provided in accord with this section must be in a format that is publicly documented and with an implementation available 64 e Miguel Angel Hernanz Hernanz to the public in source code form and must require no special password or key for unpacking reading or copying 7 Additional Terms Additional permissions are terms that supplement the terms of this License by making exceptions from one or more
189. iodos en los que el sistema de riego ha estado activo Aprovechando las oportunidades ofrecidas por el lenguaje Processing y su integraci n en la web usando el lenguaje HTML 5 se opt por la combinaci n de ambos en el dise o de los sketches que muestran la informaci n al usuario en detrimento de otros m todos de generaci n de gr ficos basados en el empleo de librer as gr ficas predefinidas de terceros Ante el problema de representar comparativamente en un mismo gr fico variables que usan diferentes rangos y unidades de medida se recurri a la agrupaci n de los par metros que utilizan las mismas unidades de medida en las partes derecha e izquierda de la gr fica correspondientes al eje Y en la secci n Estad sticas de la p gina web 53 e Miguel Angel Hernanz Hernanz Las variables pertenecientes a cada grupo est n diferenciadas por su ubicaci n en la leyenda del gr fico lo que hace sencillo su distinci n Para mayor claridad la numeraci n de la escala en el eje Y correspondiente solo aparece si se ha seleccionado la variable a mostrar en la leyenda del gr fico ahorrando informaci n innecesaria que pueda llevar a confusi n ll CONFIGURACIONES Y ESTADOS En lo referente a la informaci n relativa a las condiciones actuales del invernadero se emplean varios ficheros de texto plano que sirven como elemento sincronizador entre los diferentes subsistemas de Hortduino Estos ficheros son actualizados por la aplicaci
190. ipo para albergar los subsistemas Aplicaci n de Escritorio y Servidor XAMPP El dispositivo Arduino tambi n se conecta en red local para realizar las pruebas pertinentes Los sensores encargados de medir las condiciones ambientales son instalados en lugares estrat gicos del invernadero y su entorno de acuerdo a su cometido espec fico como se explica en el apartado 3 2 2 31 e Miguel Angel Hernanz Hernanz 6 PLANIFICACI N Y PRESUPUESTO En la fase de planificaci n del proyecto resulta de gran utilidad conocer el tama o aproximado en l neas de c digo que ocupar el sistema ya que dicho tama o es un factor es clave a la hora de estimar el tiempo y el coste total del proyecto Para ello se emplear una metodolog a que estima este par metro en funci n de los elementos l gicos que se utilizan en el sistema y de valoraciones subjetivas de su complejidad Esta metodolog a se conoce por Estimaci n por Puntos de Funci n Function Point Analysis y fue definida por primera vez en el a o 1979 por Allan J Albrecht en el simposio de IBM sobre desarrollo de aplicaciones La m trica del punto funci n asigna una cantidad de puntos al software seg n la complejidad de los datos que maneja y los procesos que son realizados sobre esos datos todo ello desde el punto de vista de la funcionalidad ofrecida al usuario Los par metros sobre los cuales se trabaja son Numero de entradas de usuario Se cuenta cada entrada de usuario qu
191. itOrTO oooooconicnnncnncnnocnocnonnonrnconcnnnonncnnrcnncnnnonnnnnnnns 104 Ilustraci n 28 Error de COMCXION ceeeesessesseesessesseeseeseeseceececesecseesecseeseeseeseeaeeseeseeeeeaeeeaeenaeenas 104 Ilustraci n 29 Pantalla inicial de la aplicaci n ANdrOldO oooconcniconocinoninononnnononnnonnconocononnnonnncannnnns 105 Ilustraci n 30 Men de la aplicaci n Android cececceeseeseeseesseeseeeeeeseceeeeseceeeeeeeesaeessneeeseeenees 106 Ilustraci n 31 Nivel de agua en la aplicaci n Android 45 c cceccescesseesseeseeseeeseeseeeseeseesseeneees 106 Ilustraci n 32 Nivel de agua en la aplicaci n Android 80 ceccescesseesseeseeseeeseeseeeseeeeeeseeseens 106 Ilustraci n 33 Configuraci n de rangos en la aplicaci n ANdrOld ooocnnnionninniocnocnconcconcnnnnnnonnnos 107 Ilustraci n 34 Informaci n de conexi n CON ap CSCTILOLIO cceccesceeeeseeeseeteeeseeseenseesteeeeneeeeaes 107 Ilustraci n 35 Pantalla de problemas de CONEXl N oooconccncnncnicnconononnnonnonorn non nn cnn cnncnncnn conc nn ncnnncnnn 107 Ilustraci n 36 Men de la pagina Web ec eeeeeeeeeeesseeneesetseeseeseeseeseeaceaeeacseeeasseseeeeeaeeatentees 108 Ilustraci n 37 Secci n Ultimas Lecturas de la p gina Web ooonconccnnnincnncnnononononnnonnnononnncnnccnn ccoo 109 Ilustraci n 38 Secci n Estadisticas de la p gina WeD ccscceseeseeseeeeeeseeseeesececeesecneeeseeeneeeeaes 110 Ilustraci n 39 Secci n Estado A
192. itaciones y dependencias Hay que destacar que es indispensable para el inicio de la aplicaci n de escritorio que los servicios del servidor web Apache y el motor MySQL del servidor XAMPP se encuentren en ejecuci n ya que es necesario establecer la direcci n IP donde se encuentra conectado el hardware Arduino para la interacci n con el mismo De otro modo la aplicaci n fallar al arrancar Al estar basada en Java es necesario que se encuentre instalado el Entorno de Tiempo de Ejecuci n Java Runtime Environment de Java en el equipo donde se ejecute esta aplicaci n y que se disponga de conexi n a la red Ethernet en la cual se encuentra conectado el hardware del sistema E Usuarios Esta aplicaci n est orientada a los administradores encargados del invernadero pues es la pieza b sica del sistema Hortduino en lo referido al software 16 ORTDUINO Miguel Angel Hernanz Hernanz 3 1 2 Aplicaci n para dispositivos Android amp Descripci n y funcionalidad La aplicaci n para dispositivos Android se concibi como un complemento a la aplicaci n de escritorio dado el enorme n mero de dispositivos con dicho sistema operativo presentes en el mercado En esta aplicaci n se replican las funcionalidades principales de la aplicaci n de escritorio en un formato compacto y adaptado a la entrada t ctil En la secci n correspondiente a esta aplicaci n dentro del manual de usuario se aborda su uso y disposici n de los elemen
193. itorio lt lt include gt gt Ilustraci n 2 Diagrama de casos de uso de la aplicaci n de escritorio 15 DUINO Miguel Angel Hernanz Hernanz lt lt extend gt gt y lt lt e d gt gt xten y lt lt include gt gt N N lt lt include gt gt lt lt include gt gt ae lt lt include gt gt lt lt include gt gt Y j j j j j j 1 j j 1 lt lt include gt gt lt lt include gt gt Aplicaci n Android lt lt includes gt gt lt lt include gt gt lt lt includes gt gt lt lt include gt gt el aaas lt lt include gt gt A ENEN llustraci n 3 Diagrama de casos de uso de la aplicaci n Android 16 DUINO Miguel Angel Hernanz Hernanz lt lt include gt gt lt lt include gt gt P gina Web lt lt include gt gt Ilustraci n 4 Diagrama de casos de uso de la p gina Web lt lt include gt gt Arduino Ilustraci n 5 Diagrama de casos de uso de Arduino 17 DUINO Miguel Angel Hernanz Hernanz lt Arduino fi lt lt include gt gt l l D lt lt include gt gt Aplicaci n Escritorio Aplicaci n Android lt lt lt extend gt gt o lt lt extend gt gt lt lt include gt gt Usuario MN y j lt lt include gt gt i
194. izado por lo que fue preciso efectuar la calibraci n de la medici n a partir de los nuevos valores obtenidos reemplazando una de las resistencias del prototipo Para simular el comportamiento del nivel de agua en el dep sito de riego se emple un potenci metro capaz de variar su resistencia y ofrecer distintos valores en el pin de entrada asignado en la placa Arduino Al necesitar una soluci n mas realista al problema de calcular el nivel de agua para riego se opt por utilizar un sensor de distancia por ultrasonidos Este sensor funciona por pulsos ultras nicos que son emitidos perpendicularmente a la superficie del agua contenida en el dep sito con el objetivo de medir el tiempo transcurrido entre el env o del pulso y el retorno del eco al rebotar en el agua La ventaja de este sensor frente a otras soluciones propuestas es la adaptaci n a dep sitos de diferente profundidad hasta 4 metros modificando ligeramente el c digo de la aplicaci n de escritorio mostrado a continuaci n void lecturaPing unsigned long retorno 0 Distancia calculada en cm pinMode pinEco OUTPUT digitalWrite pinEco LOW delayMicroseconds 2 digitalWrite pinEco HIGH Pulso gt delayMicroseconds 15 digitalWrite pinEco LOW Fin del pulso delayMicroseconds 20 pinMode pinEco INPUT Retorno del eco lt retorno pulseln pinEco HIGH Velocidad del sonido 29 cm milisegundos 58 ida y vuelta
195. l offer for sale import and otherwise run modify and propagate the contents of its contributor version In the following three paragraphs a patent license is any express agreement or commitment however denominated not to enforce a patent such as an express permission to practice a patent or covenant not to sue for patent infringement To grant such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party If you convey a covered work knowingly relying on a patent license and the Corresponding Source of the work is not available for anyone to copy free of charge and under the terms of this License through a publicly available network server or other readily accessible means then you must either 1 cause the Corresponding Source to be so available or 2 arrange to deprive yourself of the benefit of the patent license for this particular work or 3 arrange in a manner consistent with the requirements of this License to extend the patent license to downstream recipients Knowingly relying means you have actual knowledge that but for the patent license your conveying the covered work in a country or your recipient s use of the covered work in a country would infringe one or more identifiable patents in that country that you have reason to believe are valid If pursuant to or in connection with a single transaction or arrangement you convey or propagate by
196. l Hernanz Hernanz 3 DESCRIPCI N GENERAL DEL PRODUCTO Desde el punto de vista relativo al usuario el sistema resultante se divide en dos grandes partes diferenciadas el back end que comprende todos los procesos no visibles por el usuario y el front end que es el encargado de la interacci n con el usuario mediante las interfaces propias de cada herramienta BACK END SENSORES ARDUINO SERVIDOR XAMPP Almacenar datos Recuperar datos Refrescar IP Servicio MySQL Servicio web Convertir lecturas sensores Lectura de valores Enviar datos Ejecutar ordenes Recibir rdenes Mostrar informaci n se lid Enviar rdenes o actual pairs Recibir lecturas OST ar gramos Recibir lecturas Mostrar nivel de agua as Reenviar lecturas Comprobar condiciones Mostrar temperaturas A ee Comprobar condiciones e Cambiar condiciones Mostrar hist rico Cambiar condiciones Ilustraci n 6 M dulos y funciones del sistema En la anterior ilustraci n se puede apreciar la separaci n en los subsistemas back end y front end explicada anteriormente y los diferentes m dulos que est n relacionados entre s mediante procesos de comunicaci n y o intercambio de datos Dado que el presente proyecto pose varios subsistemas diferenciados vamos a tratar cada una de ellos por separado a la hora de describir su funcionalidad y composici n 15 e Miguel Angel Hernanz Hernanz 3 1 FRONT END 3 1 1 Aplicaci n de Escritorio
197. l invernadero Comentarios ninguno Tabla 14 Actores Usuario del sistema ACT 02 Dispositivo Arduino Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripcion Este actor representa al dispositivo Arduino conectado en red Comentarios ninguno Tabla 15 Actores Dispositivo Arduino ACT 03 Aplicaci n de escritorio Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n Este actor representa a la aplicaci n de escritorio Comentarios ninguno Tabla 16 Actores Aplicaci n de escritorio ACT 04 Aplicaci n Android Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n Este actor representa a la aplicaci n Android manejada por un usuario desde un dispositivo compatible Comentarios ninguno Tabla 17 Actores Aplicaci n Android 14 DUINO Miguel Angel Hernanz Hernanz 1 4 2 DIAGRAMAS DE CASOS DE USO Sistema Hortduino jj 1 i i 1 I j N i Sss lt lt include gt gt T I S lt lt include gt gt SS lt lt include gt gt a i ji f 47 si i aS a 1 ae OC AE 1 EN 1 I f 1 _RF 25 Mostrar datos de la ultima lectura gt 4A mn i lt lt include gt gt lt lt include gt gt lt lt include gt gt lt lt extend gt gt Aplicaci n de Escr
198. la 40 Procedimiento keyReleased ID receive Nombre E S Funci n r mensaje entrada Contenido del paquete UDP Par metros a z P IPAdress entrada Direcci n IP del dispositivo Arduino port entrada Puerto del dispositivo Arduino Este procedimiento es el handler de la librer a UDP sobre eventos de recepci n de datagramas Se han incluido varias funcionalidades extra dentro de este procedimiento para ampliar su utilidad Comprueba si la direcci n que envi el paquete UDP se corresponde con la aplicaci n Android Si esto se cumple se examina el paquete para determinar si contiene la orden de recargar la configuraci n desde el archivo config txt modificado por la aplicaci n Android previamente para mantener la consistencia Descripci n de configuraci n entre las aplicaciones o simplemente es una petici n de reenv o de lecturas Si la direcci n remitente del paquete UDP es la del dispositivo Arduino el mensaje se divide mediante el caracter separador y los valores son almacenados en las posiciones correspondientes a las variables en un array Cada vez que se registra un evento de recepci n el contador de paquetes esperados empleado en el procedimiento establecerConexion se inicializa a O Procedimientos asociados draw 89 Tabla 41 Procedimiento receive wt Miguel Angel Hernanz Hernanz 3 3 8 PROCEDIMIENTOS DE LA APLICACI N ANDROID ID setup Par metros Cer
199. la aplicaci n de escritorio con los valores correspondientes a cada variable en una cadena de texto separados por comas Excepciones Paso Acci n p3 Sino se han recibido rdenes las lecturas de sensores son descartadas Rendimiento En el intervalo fijado para su env o M nimo 1 5 segundos Frecuencia esperada Un env o por intervalo fijado 40 env os por minuto m ximo Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 28 29 Caso de uso RF 11 Enviar lecturas a aplicaci n de escritorio wt Miguel Angel Hernanz Hernanz RF 12 Reenviar lecturas a aplicaci n Android Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 34 Recibir lecturas de Arduino RF 29 Recibir rdenes desde aplicaci n Android RF 26 Comprobar condiciones Descripci n Reenv a las lecturas recibidas en la aplicaci n de escritorio a la ap Android Precondici n Dispositivo Arduino en fu
200. la p gina web con la informaci n de las ltimas lecturas en forma de gr ficos ajustables por el usuario Precondici n Conexi n con servidor XAMPP servicios MySQL y servidor web Apache Secuencia normal Paso Acci n 4 El usuario accede con su navegador a la secci n Ultimas Lecturas de la P web p2 Se genera la p gina web en el servidor usando el valor por defecto 1 hora y se env a al navegador del usuario El usuario puede variar el intervalo temporal a mostrar en los gr ficos p3 seleccionando uno de los valores en la lista desplegable Esto genera una petici n al servidor web con el nuevo intervalo elegido El servidor consulta a la base de datos para extraer los datos requeridos por p4 A el usuario y los env a al navegador Postcondici n La p gina web solicitada se muestra en el navegador del usuario Excepciones Paso Acci n p2 Si se produce un error al consultar la base de datos se muestra en pantalla Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios El usuario puede desplazar el cursor del rat n por encima de los gr ficos para obtener valores mas precisos Tabla 54 Caso de uso RF 37 Generar p gina web Ultimas Lecturas 55 wt Miguel Angel Hernanz Hernanz RF 38 Generar pagina web Estadisticas Versi
201. la responsable de procesar la informaci n recibida y actuar en base a los par metros establecidos por el usuario Esta aplicaci n env a un paquete UDP con las rdenes a ejecutar por el hardware como por ejemplo activar el sistema de riego cuando las condiciones establecidas o el usuario as lo indiquen Hay que destacar que antes del env o o recepci n de paquetes UDP se debe establecer una conexi n entre estos dos elementos Si no es posible esta conexi n la aplicaci n de escritorio mostrar un mensaje de advertencia y el men de configuraci n de conexi n IP puerto El hardware Arduino provisto de un shield Ethernet para su comunicaci n en red solamente enviar los datos si se ha establecido dicha conexi n e Miguel Angel Hernanz Hernanz APLICACI N ESCRITORIO vo ooo envia_ordenes X AM P P SERVER SAMSUNG obtiene_IP DISPOSITIVO ANDROID Ilustraci n 3 Modelo de negocio Aplicaci n escritorio Dispositivo Android Como podemos observar en la Ilustraci n 3 el dispositivo Android recibe los datos procesados por la aplicaci n de escritorio la cual act a en modo de data relaying reenviando la informaci n recibida desde el dispositivo Arduino hacia el cliente Android conectado a la aplicaci n de escritorio A su vez este cliente es capaz de establecer remotamente en la aplicaci n de escritorio los rangos aceptables de las variables monitorizadas y cambiar el estado de los sis
202. la versi n 2 3 6 o superior de dicho sistema operativo Otra limitaci n a destacar est relacionada con el uso del lenguaje Processing para la conversi n de la aplicaci n de escritorio hacia el entorno Android al no usar el API de Android la interfaz de la aplicaci n ha de adaptarse por medios propios a la resoluci n y densidad de la pantalla del dispositivo que la ejecute amp Usuarios Al ser una aplicaci n pr cticamente id ntica a la aplicaci n de escritorio en lo que respecta a funcionalidad y apariencia este software est orientado al administrador encargado del invernadero 17 e Miguel Angel Hernanz Hernanz 3 1 3 P gina Web dd Descripci n y funcionalidad El principal cometido de la p gina web es el de servir como herramienta de observaci n sobre la evoluci n en el tiempo de los par metros relativos al invernadero controlados por el sistema Hortduino y actuar como plataforma para acceder a la informaci n almacenada en la base de datos De esta manera el usuario puede visualizar la informaci n de manera gr fica y valorar el desarrollo de los cultivos en funci n de las condiciones establecidas en el sistema Al ser una p gina web creada de forma din mica mediante el lenguaje PHP se ofrece al usuario la posibilidad de comprobar desde cualquier lugar donde se disponga de un navegador web y conexi n a Internet la informaci n siguiente vY Estado actual de los sistemas de riego y ventilaci n
203. las aplicaciones de escritorio y Android Tabla 4 Objetivo del sistema Cambiar estado de los sistemas de riego ventilaci n OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de riego ventilaci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripci n F sistema deber ser capaz de mostrar el estado de los sistemas de riego y ventilaci n el invernadero Importancia Importante Urgencia Alta Estado Validado Estabilidad alta Comentarios Este objetivo es atribuible a las aplicaciones de escritorio y Android Tabla 5 Objetivo del sistema Mostrar el estado y modo de funcionamiento de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego ventilaci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a El sistema deber ser capaz de cambiar el estado de los sistemas de riego y Descripci n ventilaci n del invernadero de forma remota en base a los par metros establecidos por el usuario Importancia Importante Urgencia Alta Estado Validado Estabilidad alta Comentarios Este objetivo es atribuible a las aplicaciones de escritorio y Android Tabla 6 Objetivo del sistema Control automatizado de los sistemas de riego ventilaci n wc Miguel Angel Hernanz Hernanz OBJ 07 Consulta de informacion via web
204. las dos aplicaciones en lo relativo a la configuraci n actual del sistema se modifica el sistema de env o de rdenes de la siguiente manera e Sila aplicaci n Android cambia la configuraci n env a un mensaje a la aplicaci n de escritorio utilizando el campo SelectorSistema con el valor 1 para notificar a la aplicaci n de escritorio que debe guardar la nueva configuraci n indicada en los campos siguientes del mensaje en el archivo de configuraci n del servidor e Sila aplicaci n de escritorio realiza un cambio en la configuraci n mientras la aplicaci n Android est conectada se sustituye el mensaje conteniendo los datos recibidos desde Arduino por un mensaje que solo contiene el car cter c para indicar que la aplicaci n de Android debe recargar la configuraci n desde el archivo almacenado en el servidor Dada la naturaleza de trabajo casi en tiempo real del sistema es necesario que el env o de los datos recabados por los sensores y la generaci n de las respuestas del sistema en forma de rdenes sean efectuadas de forma r pida para adaptarse a un cambio de condiciones A esto se suma la necesidad de que ante un fallo en la comunicaci n entre Arduino y el dispositivo del usuario los datos recibidos mas recientemente tengan prioridad sobre aquellos que no llegaron a tiempo al destino descart ndose estos ltimos Por estos motivos fue elegido el protocolo de comunicaci n en red UDP frente al protocolo TCP puesto que propor
205. lecci n de variables a mostrar en la obtener los datos requeridos de la base de datos por dd secci n Estad sticas medio del sketch Una vez obtenidos los datos se dibujan los gr ficos correspondientes a la selecci n del usuario La secci n Estado actual es generada correctamente a partir de la informaci n disponible en la tabla actual de va de la base de datos y los archivos de configuraci n Generaci n de la secci n Estado actual a y gu y Vv condiciones actuales del invernadero La informaci n mostrada se actualiza correctamente cada 30 segundos ee sa La secci n Consumo de agua es generada por medio Generaci n de la secci n Consumo de Mara de la recopilaci n de datos en la tabla lecturas de la Vv agua base de datos La secci n Temperaturas es generada por medio de la Generaci n de la secci n Temperaturas recopilaci n de datos en la tabla lecturas de la base de Vv datos P La secci n Sobre Hortduino es mostrada Mostrar la secci n Sobre Hortduino Vv correctamente Acceso a la pagina web mediante un La pagina web no se muestra correctamente Se navegador que no soporta contenido de necesita actualizar el navegador del usuario a una x HTML5 versi n mas reciente Tabla 81 Bater a de pruebas de la P gina Web 130 BLOQUE III MANUAL DE USUARIO E INSTALACI N e Miguel Angel Hernanz Hernanz ndice de contenido INTRODUCCION ia 3 2 REQUISITOS M NIMOS ia 4 3 APLICACI N DESCRITO O yhoo
206. lemento extra de la interfaz es el bot n Menu situado en la parte inferior de la pantalla que da acceso a otras opciones informativas y de control como se ver a continuaci n 105 e Miguel Angel Hernanz Hernanz El men de la aplicaci n Android ofrece al usuario la posibilidad de visualizar en pantalla el nivel de agua en el dep sito de riego modificar los rangos aceptables de las condiciones del invernadero y acceder a informaci n sobre la conexi n con la aplicaci n de escritorio NIVEL DE AGUA CONDICIONES INFORMACION Ilustraci n 30 Men de la aplicaci n Android Al igual que en la aplicaci n de escritorio la representaci n del nivel actual de agua en el dep sito de riego se muestra con el mismo esquema visual En las siguientes ilustraciones se puede apreciar el efecto de transparencia sobre el color del relleno del dep sito con niveles diferentes Ilustraci n 31 Nivel de Ilustraci n 32 Nivel de agua en la aplicaci n agua en la aplicaci n Android 45 Android 80 106 ORTDUINO Miguel Angel Hernanz Hernanz Al acceder a la opci n del men Condiciones se muestran al usuario los selectores de rangos aceptables de las variables Este elemento ha sido redise ado con respecto a su hom logo en la aplicaci n de escritorio para adaptarlo al tama o y resoluci n de la pantalla del dispositivo Android La forma en la que se alteran los valores de los rangos tambi n ha sido redise ada ahora
207. les monitorizadas y se asigna el valor num rico correspondiente a la orden a enviar 1 ON O OFF para cada sistema Si el usuario cambia el modo de control a modo manual se asigna el valor p2 num rico correspondiente a la orden a enviar 1 ON O OFF para cada sistema La aplicaci n Android construye el paquete UDP a enviar con tres bytes el primero indica si se ha modificado la configuraci n general en la aplicaci n p3 Android 1 o simplemente se solicita el reenv o de las lecturas recibidas 0 y a continuaci n seguir n las rdenes para el sistema de riego 0 1 y el sistema de ventilaci n 0 1 p4 El paquete UDP con las rdenes es enviado a la aplicaci n de escritorio Arduino recibe las rdenes a ejecutar Arduino env a las lecturas de los sensores a la IP de la aplicaci n de escritorio Paso Acci n Si se han efectuado cambios en la configuraci n de la aplicaci n de escritorio se actualiza el estado y configuraci n del sistema recargando la configuraci n en la aplicaci n Android Rendimiento Inferior a 5 segundos Frecuencia esperada Cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 38 39 Caso de uso RF 21 Enviar rdenes a aplicaci n de escritorio wt Miguel Angel Hernanz Hernanz RF 22 Activar sistema de ventilaci n en Arduino Versi n 1 0 Autores Miguel Angel Hernanz Her
208. lor 0 en caso contrario E Archivo ip txt Este archivo contiene la direcci n IP de la aplicaci n de escritorio Es necesario para indicar a la aplicaci n Android la direcci n a la cual tiene que solicitar el reenv o de las lecturas y se genera mediante la invocaci n del script PHP getip php que escribe en el archivo una l nea de texto con formato de direcci n IP cuatro grupos de tres d gitos separados por puntos 72 be Miguel Angel Hernanz Hernanz 3 3 DISENO DE LAS APLICACIONES 3 3 1 DIAGRAMA DE PAQUETES Ilustraci n 16 Diagrama de paquetes En la anterior ilustraci n se puede ver la divisi n en paquetes del sistema Hortduino y sus dependencias Los paquetes representan las capacidades disponibles en el sistema y muestran en su interior las herramientas encargadas de las funciones en cada caso Para las labores de monitorizaci n la aplicaci n de escritorio es la encargada de las funciones de supervisi n de las condiciones del invernadero recibidas en las lecturas que el dispositivo Arduino env a a dicha aplicaci n de forma peri dica Las funciones de control pueden ser ejecutadas por la aplicaci n de escritorio o bien por la aplicaci n para dispositivos Android actuando a trav s de la aplicaci n de escritorio Por ltimo las tareas sobre manejo de informaci n pueden ser efectuadas por las aplicaciones de escritorio y Android para visualizar datos en tiempo real y guardar la informaci n recibid
209. los sistemas de riego y ventilaci n es atribuible a las aplicaciones de escritorio y Android Tabla 12 Requisitos de Informaci n Informaci n sobre la configuraci n de rangos aceptables en variables RI 05 Informaci n sobre el estado actual de las condiciones del invernadero Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 16 Guardar el estado actual de las condiciones del invernadero Descripci n El sistema deber almacenar el estado de las condiciones actuales Datos espec ficos L mite m ximo sobrepasado Condici n normal L mite m nimo no alcanzado Intervalo temporal Presente Importancia Importante Urgencia Alta Estado Validado Estabilidad Alta Comentarios La informaci n referente al estado de las condiciones actuales del invernadero es atribuible a la aplicaci n de escritorio aplicaci n Android y p gina web Tabla 13 Requisitos de Informaci n Informaci n sobre el estado actual de las condiciones 13 del invernadero wc Miguel Angel Hernanz Hernanz 1 4 REQUISITOS FUNCIONALES 1 4 1 DEFINICION DE ACTORES ACT 01 Usuario del sistema Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Descripcion Este actor representa a la persona encargada de la supervision de
210. metros IP y puerto a los que conectar Salvar Lecturas Mediante el empleo de la librer a de bezier data SOL este procedimiento se ocupa de construir y enviar una consulta en lenguaje SQL al servicio MySQL del servidor XAMPP para la inclusi n de los datos contenidos dentro de esa consulta en la base de datos Esta acci n se realiza en intervalos de tiempo fijados Mostrar Datos Cumple la funci n de mostrar los datos obtenidos por red en tiempo real sobre las variables supervisadas as como de informar al usuario de la hora y fecha en la que fue recibida la ltima lectura Control Interfaz Es un conjunto de procedimientos que se ocupan de mostrar y actualizar en la interfaz de la aplicaci n diferentes controles y elementos informativos para el usuario como pueden ser o Graficos representativos de la evoluci n temporal sobre algunas de las variables supervisadas Humedad ambiental y del suelo luminosidad temperatura interior y exterior as como los controles para alterar el intervalo de tiempo transcurrido entre cada actualizaci n o Nivel actual en porcentaje del dep sito de agua para riego o Valores fijados de los rangos escogidos para cada variable y sus correspondientes selectores para modificarlos o Estados y alertas de las condiciones actuales registradas o Botones para el cambio de modo de control en los sistemas de riego y ventilaci n del invernadero as como animaciones para informar del estado actual d
211. metros y su complejidad se calculan los Puntos de Funci n No Ajustados empleando la Tabla 1 para cada subsistema 36 wt Miguel Angel Hernanz Hernanz Par metros de medici n N mero de entradas N mero de salidas N mero de peticiones N mero de archivos N mero de interfaces externas Aplicaci n de Escritorio Simple 1 x3 1 x4 4 x3 2 x7 2 x5 Factor de ponderaci n Medio 0 x4 0 x5 0 x4 1 x10 0 x7 Cuenta Total PFNA Complejo Suma 0 x6 3 1 x7 11 0 x6 12 0 x15 24 0 x10 10 Tabla 2 C lculo de los PFNA de la Aplicaci n de Escritorio Par metros de medici n N mero de entradas N mero de salidas N mero de peticiones N mero de archivos N mero de interfaces externas Aplicaci n Android Simple 1 x3 3 x4 1 x3 1 x7 1 x5 Factor de ponderaci n Medio 0 x4 0 x5 1 x4 0 x10 0 x7 Cuenta Total PFNA Complejo Suma 0 x6 3 1 x7 19 1 x6 13 0 x15 7 0 x10 5 Tabla 3 C lculo de los PFNA de la Aplicaci n Android Par metros de medici n N mero de entradas N mero de salidas N mero de peticiones N mero de archivos N mero de interfaces externas P gina Web Factor de ponderaci n Simple Medio 3 x3 0 x4 3 x4 3 x5 1 x3 1 x4 2 x7 0 x10 1 x5 0 x7 Cuenta Total P
212. mueve el puntero del rat n sobre el rea del gr fico Elementos ultimaslect ph asociados pmp Tabla 73 sketchConsulta pde ID sketchEstadisticas pde Nombre E S Funci n Par metros seleccionados entrada Conjunto de variables seleccionadas para mostrar en el gr fico num entrada N mero de registros a utilizar en el gr fico Este sketch se ocupa de las labores de representaci n del conjunto de variables escogido por el usuario dentro del elemento canvas de la p gina Estadisticas php Las tareas que realiza el sketch son Obtener las marcas de tiempo de los registros almacenados en la base de datos Descripci n en funci n del intervalo elegido Dibujar los ejes rejilla y las escalas asociadas en funci n de las variables a mostrar en el gr fico Trazar las representaciones gr ficas del conjunto de variables suministradas empleando los colores asociados a cada variable Plementos estadisticas php asociados Tabla 74 sketchEstadisticas pde ID estilo css Par metros D eer Archivo de hoja de estilos en cascada CSS utilizado para controlar la apariencia global de escripcion pe E la pagina web mediante reglas de estilo aplicadas a cada elemento estructural menu php index php estadisticas php Elementos ultimaslect php P consumoagua php asociados temperaturas php actual php estadoactual php ultimosdatos php 99 Tabla 75 estilo css e Miguel Angel Hernanz Hernanz 3 4 DISE O DE LAS INTERFACES DE
213. n Env a nuevas rdenes a la aplicaci n de escritorio Solicita el reenv o de las lecturas de sensores a la IP de origen del paquete UDP Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n Si el usuario cambia el modo de control a modo autom tico se eval an las p1 condiciones fijadas por el usuario en las variables monitorizadas y se asigna el valor num rico correspondiente a la orden a enviar 1 ON O OFF para cada sistema Si el usuario cambia el modo de control a modo manual se asigna el valor p2 num rico correspondiente a la orden a enviar 1 ON O 0FF para cada sistema La aplicaci n de escritorio construye el paquete UDP a enviar con tres p3 bytes el primero ser el valor 1 y a continuaci n seguir n las rdenes para el sistema de riego 0 1 y el sistema de ventilaci n 0 1 p4 El paquete UDP con las rdenes es enviado a la IP de Arduino Postcondici n Arduino recibe las rdenes a ejecutar Arduino env a las lecturas de los sensores a la IP de la aplicaci n de escritorio Excepciones Paso Acci n Si se han recibido rdenes en la aplicaci n de escritorio provenientes de la i aplicaci n Android se actualiza el estado y configuraci n del sistema de acuerdo a stas se guarda la configuraci n y
214. n de Escritorio y la aplicaci n para dispositivos Android a trav s de la anterior con el objeto de hacer persistente la configuraci n actual de rangos aceptables y el estado de los sistemas de riego y ventilaci n Al estar compuestos por texto plano es posible simular diversos escenarios tiles a la hora de ejecutar las pruebas de cada sistema dl LENGUAJES EMPLEADOS La elecci n del lenguaje Processing para este proyecto se ha justificado anteriormente en el punto 2 3 de la la secci n TECNOLOGIAS DE DESARROLLO bas ndose principalmente en la buena integraci n con Arduino y las posibilidades de portar la aplicaci n al entorno Android Desgraciadamente este lenguaje no proporciona funciones en su API para guardar informaci n directamente en un archivo remoto lo cual es necesario para el funcionamiento del sistema Hortduino dado su car cter distribuido La posibilidad de leer la informaci n contenida en un archivo alojado en otra m quina si que est disponible en la API de Processing por lo que es la nica posibilidad de trabajar con ficheros externos Para subsanar este problema se implement un m todo basado en la invocaci n remota de un script PHP que es capaz de ejecutar las funciones de carga guardado de la configuraci n elegida por el usuario sobre los valores m nimos y m ximos de las variables y actualizar el estado de las condiciones actuales todo ello dependiendo de los argumentos suministrados a dicho script De e
215. na por parte del administrador o la persona encargada de la log stica del invernadero 22 fe Miguel Angel Hernanz Hernanz 4 ARQUITECTURA DEL PROYECTO El proyecto Hortduino sigue una arquitectura dirigida por eventos apoyada en el uso de varias tecnolog as que permiten generar una reacci n ante un cambio significativo en el estado del sistema En la siguiente ilustraci n se muestra un esquema general de la arquitectura utilizada en Hortduino SERVIDOR APLICACI N HARDWARE ARDUINO DE ESCRITORIO Y Processing Client SENSORES P GINA ARCHIVOS DE CONFIGURACI N APLICACI N ANDROID Ilustraci n 7 Arquitectura del Proyecto Hortduino Mediante el uso de la librer a Hypermedia net udp para el entorno de desarrollo de Processing se logra que la aplicaci n de escritorio se comunique usando el protocolo de red UDP con el dispositivo Arduino y la aplicaci n para dispositivos Android A su vez el dispositivo Arduino emplea la librer a Ethernet udp con similar funcionalidad que la anterior pero adaptada al lenguaje de programaci n del microcontrolador que posee Arduino El empleo de otra librer a para el entorno Processing es la encargada de que las consultas SQL para a adir los datos registrados por la aplicaci n de escritorio sean ejecutadas por el motor MySQL del servidor XAMPP y se incorporen dichas lecturas a la base de datos alojada en el mismo servidor En lo respectivo al servidor XAMPP s
216. nanz Fuentes n a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 19 Recibir rdenes en Arduino RF 20 Enviar rdenes a Arduino Descripci n Activa el sistema de ventilaci n accionando el actuador mec nico asociado Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n Se recibe un paquete UDP con la orden de activaci n del sistema de p1 ventilaci n en Arduino p2 Se activa el pin de salida asociado al actuador mec nico con 5 voltios Postcondici n El sistema de ventilaci n est en funcionamiento Excepciones Paso Acci n n a n a Rendimiento Inferior a 5 segundos Frecuencia esperada Dependiente de las condiciones ambientales Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 39 Caso de uso RF 22 Activar sistema de riego en Arduino 40 ORTDUINO Miguel Angel Hernanz Hernanz RF 23 Desactivar sistema de ventilaci n en Arduino Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n
217. navegaci n baja o Salidas Pantalla de informaci n principal la cual incluye informaci n de los sensores en tiempo real estado de los sistemas de riego ventilaci n mensajes y alertas del estado de las variables alta Nivel de agua en dep sito baja Informacion de conexi n baja Ment de navegaci n baja o Peticiones de usuario Activar desactivar sistemas de riego y ventilaci n media Modificar los rangos aceptables de las variables alta Mostrar men de opciones baja o Archivos Archivo de configuraci n IP baja o Interfaces externas Comunicaci n por red mediante protocolo UDP baja 35 e Miguel Angel Hernanz Hernanz dd P gina Web o Entradas Selecci n de intervalo en ltimas Lecturas baja m Selecci n de intervalo y variables en Estad sticas baja m Selecci n de intervalo en Temperaturas baja o Salidas Secci n ltimas Lecturas media m Secci n Estad sticas media Secci n Estado Actual media m Secci n Consumo de Agua baja Secci n Temperaturas baja m Secci n Sobre Hortduino baja o Peticiones de usuario m Cambiar la p gina visualizada baja Selecci n de las variables a mostrar en Estad sticas media o Archivos Archivo de estado actual de condiciones baja Archivo de hoja de estilos en cascada CSS baja o Interfaces externas m Comunicaci n con servicio MySQL remoto baja Una vez determinados los par
218. navegador del usuario Lecturas de sensores 326 registros en la base de datos Ultimas 8 horas v 601 625 622 623 622 570 571571 522 522 525 525 525 111 95 75 62 cs 8 Luminosidad Nivel de Agua IE al ee ee RL a LL RADA SS _ _ o o Temperatura Interior C Temperatura Exterior C se si Se ey Sf any Rhy ej Se shy es Sei lt 2 Humedad Ambiente Humedad Suelo Ilustraci n 37 Secci n Ultimas Lecturas de la pagina web 109 ORTDUINO Miguel Angel Hernanz Hernanz l Estadisticas El dise o de esta secci n intenta responder a la necesidad de representar la evoluci n de varias variables en un mismo gr fico lo que permite al usuario analizar el comportamiento de unas variables frente a otras A modo de ejemplo el usuario puede mostrar la evoluci n de la luminosidad frente a las temperaturas interior y exterior registradas en el invernadero obteniendo as informaci n acerca de la capacidad de aislamiento t rmico que proporciona el invernadero frente a las condiciones exteriores cuando no hay luz solar disponible Esta funcionalidad se ve ampliada frente a la ofrecida en la secci n ltimas lecturas al disponer de un rango temporal mayor en el que mostrar la evoluci n de las variables supervisadas as como la posibilidad de mostrar los periodos de actividad de los sistemas de riego y ventilaci n o 13 40 45 2014 04 11 Estad sticas 16
219. ncionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio Android en funcionamiento Secuencia normal Paso Acci n p1 Se recibe un paquete solicitando el reenv o de las lecturas El paquete con las lecturas enviado por Arduino es reenviado a la direcci n p2 IP que solicita las lecturas Postcondici n Se recibe un paquete UDP en la aplicaci n Android con los valores correspondientes a cada variable en una cadena de texto separados por comas o bien el caracter c Excepciones Paso Acci n Si la aplicaci n de escritorio produce un cambio en la configuraci n de p2 modos de control y rangos aceptables cuando la aplicaci n Android est solicitando lecturas se env a un paquete que contiene el caracter c a la aplicaci n Android para que recargue la configuraci n Rendimiento En el intervalo fijado para su recepci n M nimo 1 5 segundos Frecuencia esperada Un env o por intervalo fijado 40 env os por minuto m ximo Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 29 Caso de uso RF 12 Reenviar lecturas a aplicaci n Android 30 ORTDUINO Miguel Angel Hernanz Hernanz RF 13 Guardar el estado de los sistemas de riego y ventilaci n Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos aso
220. nclude anything other than the work as a whole that a is included in the normal form of packaging a Major Component but which is not part of that Major Component and b serves only to enable use of the work with that Major Component or to implement a Standard Interface for which an implementation is available to the public in source code form A Major Component in this context means a major essential component kernel window system and so on of the specific operating system 1f any on which the executable work runs or a compiler used to produce the work or an object code interpreter used to run it 61 e Miguel Angel Hernanz Hernanz The Corresponding Source for a work in object code form means all the source code needed to generate install and for an executable work run the object code and to modify the work including scripts to control those activities However it does not include the work s System Libraries or general purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work For example Corresponding Source includes interface definition files associated with source files for the work and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require such as by intimate data communication or control flow between those subprograms and other parts of the work The Corr
221. nivel de llenado porcentual Ba yg gt AR La orden de activaci n es enviada a la aplicaci n de Activaci n del sistema de ventilaci n ete f we 3 Vv escritorio y se ejecuta en el dispositivo Arduino Bay r La orden de activaci n es enviada a la aplicaci n de Activaci n del sistema de riego en y ve Y escritorio y se ejecuta en el dispositivo Arduino ee F La orden de desactivaci n es enviada a la aplicaci n Desactivaci n del sistema de riego e Ae f Vv de escritorio y se ejecuta en el dispositivo Arduino see d er La orden de desactivaci n es enviada a la aplicaci n Desactivaci n del sistema de ventilaci n rae a ee Vv de escritorio y se ejecuta en el dispositivo Arduino Conexi n con aplicaci n de escritorio La aplicaci n de escritorio es accesible Vv F R Los paquetes UDP son recibidos en la aplicaci n de Env o de paquetes UDP v a Ethernet paq P Vv escritorio P Los paquetes UDP son recibidos en la aplicaci n Recepci n de paquetes UDP v a Ethernet paq P Vv Android oo Se muestran en la interfaz de usuario el estado de las Mostrar condiciones actuales del ae E invernadero condiciones actuales del invernadero mediante texto e Y im genes representativas Incluye mensajes de alerta El modo de funcionamiento actual de los sistemas de Mostrar modo de funcionamiento de los ere nee riego y ventilaci n es representado correctamente en Y sistemas de riego y ventilaci n los botones de control
222. nncnnccnnrnnonoronra norris 37 Tabla 37 Caso de uso RF 20 Enviar rdenes a ArdUiMO ooonccnccnccnccnnconcnncnnnnnonncnnonnonconcnncnn cano nncnncnnno 38 Tabla 38 Caso de uso RF 21 Enviar rdenes a aplicaci n de escritOTTO oooooncciccnnocccoonccnnnnnninnnoo 39 Tabla 39 Caso de uso RF 22 Activar sistema de riego en ArdUiNO ooooonccocnnoninnnnononnnonnconccnnnnonnnnnoo 40 Tabla 40 Caso de uso RF 23 Desactivar sistema de ventilaci n en Arduino 41 e Miguel Angel Hernanz Hernanz Tabla 41 Caso de uso RF 24 Establecer conexi n con ArdUINO ooocoococnnoncononononnconnconn conan nnnnnncnnnnnnos 42 Tabla 42 Caso de uso RF 25 Mostrar datos de lecturas recibidaS ooooooncnnnnncnnnnnocnocncncnonncanconnnnno 43 Tabla 43 Caso de uso RF 26 Comprobar COndiciones ccccceseeseeseeeeesceeseeeeeeseeseeesseeessneeesaeees 44 Tabla 44 Caso de uso RF 27 Configurar rangos aceptables ooooonoconicnncnncnncnnocnonncnnnonncnrcnnnonnncnnnno 45 Tabla 45 Caso de uso RF 28 Mostrar condiciones actuales del invVernadero ooonnnnicnnciinmmmm 46 Tabla 46 Caso de uso RF 29 Recibir rdenes desde AlddrOld ooooncniccnionnocnonncononononncnnncncnnnnnnnnnoo 47 Tabla 47 Caso de uso RF 30 Cargar la configuraciOn cccceccesceesesseseseeeeeseeeeeseeeenseeseenseenseenaees 48 Tabla 48 Caso de uso RF 31 Mostrar gr ficos temporales de variables 49 Tabla 49 Caso de uso RF 32 Cambiar intervalo de actualizaci n de gr fiCOS oo
223. nnnononnncnnncnnnon 63 Tabla 63 Requisito no funcional RNF 02 Accesibilidad oooooconnnnicnnnnnonnnoniocnonnconcnnncnnonncnnnrnnnnno 63 Tabla 64 Requisito no funcional RNF 03 Dise o de la interfaz de usuario 63 Tabla 65 Requisito no funcional RNF 04 Respuesta T pida oooooonocninnnccnoonnocononononononnonnnncononncnnnnnno 63 Tabla 66 Matriz de rastreabilidad objetivos requisitos l 2 oononnconncnnnnncnncnnoconononrnnancnonanonnncononno 64 Tabla 67 Matriz de rastreabilidad objetivos requisitos 2 2 ocoocnconocnncnocnncnoocnonncnrcnoncnronononnnnonnnnos 65 Tabla 1 Procedimiento Setup saa cionales sey ERASERS AOTEA 78 Tabla 2 Procedimiento ldo0P csi recta aida tii daria diana 78 Tabla 3 Procedimiento lecturaSemsores ccccscesseeseesseeseseeeesececeeseesceeseeseesecesecseceaeceeseaeseeesaeeneaees 78 Tabla 4 Procedimiento lecturaPing eeeecsescesessseneesesseeseeseeseeeceeeececeeceeecaecaesaeeaesaeeaesaeeaeenees 78 Tabla 5 Procedimiento lecturaSensores ceeecesesessesseeseeseeseeseeceeecececeneseesaeeseeseeaeeaeeseeaeeeseneeaeees 79 Tabla 6 Procedimiento enviar Datos ceesssessesesseeseeseeseeseeseesceeceececeseceecaeeneesessecsessesseeaeeneeaeeees 79 Tabla 7 Procedimiento ejecutarQOrdeneS o ooocccocnnonionnnononncnnnonnonnnonnnonncnn ono rcn nro nc nn rro nnnn rra rrnn ran nro 79 Tabla 8 Procedimiento estadoRicgo ececccescssccsssesseeeeseeeseeseeesecseeesececesseceseeseeeseseeeeseeseeen
224. no cc e Arduino Arduino language reference en linea http arduino cc en Reference HomePag rocessing Processing 2 language reference en linea P http processing org reference Stephane Cousot UDP library for Processing en linea http ubaa net shared processing udp index htm e Daniel Shiffman Learning Processing en l nea http www learningprocessing com e Processing js team Processing js Quick Start en linea http rocessingjs org articles p5QuickStart html e Apache Friends XAMPP Installer en l nea https www apachefriends org index html e Refnes Data W3Schools Online CSS reference en l nea http ww w3schools com cssref default as e The PHP Group PHP documentation and reference en l nea http hp net docs ph W3C Consortium HTMLS5 online reference en linea http dev w3 org html15 html author 58 e Miguel Angel Hernanz Hernanz 10 ANEXO GLOSARIO dd Internet of Things IoT El denominado Internet de las cosas es un concepto que se refiere a la interconexi n de objetos cotidianos con identificadores nicos formando una red capaz de albergar generar y transmitir datos entre los elementos que la conforman sin necesidad de actuaci n humana dd Data relaying Se denomina as a la retransmisi n de datos que efect a un intermediario entre el emisor y el receptor sin alterar el contenido de dichos datos a IP Una direcci n IP es una etiqueta n
225. nonnnnnonnnnnnnnnncnncnn conc nono non nc ne nanncrancnnncns 91 Tabla 46 Procedimiento mostrarMenu ssessceseeceeceeceeceeceeceecseceesesseeseeseeaeeaeeeseaeeeaeeeaeenaeeeaeens 91 Tabla 47 Procedimiento mostrarMenulnfo ccccceccesceeceseeeceeseeeseeseeesecseeeseeseeeaeceeeaeeeseaesseeeeees 91 Tabla 48 Procedimiento dibujarBotonesMeNnU eceseseeceeeeeeeeeeeeseeseeseeseeeeeseeseeeeeaeeesereaeeaees 91 Tabla 49 Procedimiento dibujarSelectores ccessceseeseeseeeeeceeeeeeceeeseesesseeaeeseeseeeeeaeeaeeaeeeseseaeenaees 91 Tabla 50 Procedimiento establecerConexin ceccesseeseesseeseeseeeseceeeeseeeeeeseececeeceeeeseeenseessnees 92 Tabla 51 Procedimiento dispatch TouChEVent ccesessssesceeesceeceeceeceeceeeeesecaeeaesseeeateneeeeaeeeaeen 92 Tabla 52 Procedimiento inicializaCon B ocononcnncnnnnconcnncnonccnnoncnnncnnrnnnnno nora crono crono nc nora rn rca 92 Tabla 53 Procedimiento imicializarAnimacion ccccesccseeseeeseesececeeseeceeseceseeseenseeecesesessesessatees 92 Tabla 54 Procedimiento salvarConfiB coconconnnnnocnnnncnoconnnoncnnonnnrnon nono nnnnn cnn cnn canon conc rn non nr na nna nn nc rin 93 Tabla 55 Procedimiento mostrarDatos csseeseeseeceeeeceeecesceeeecseceenessesseeseeaeeaeeaceaeceaeseaeeeaeeeaeens 93 Tabla 56 Procedimiento comprobarCondiciones cccccesseseeseesseeseeeeeseeeeeseceeeeseceeeeaeeeseneenaeeaees 93 Tabla 57 Procedimiento dibujarEstad
226. nt version but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Program specifies that a certain numbered version of the GNU General Public License or any later version applies to it you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation If the Program does not specify a version number of the GNU General Public License you may choose any version ever published by the Free Software Foundation If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used that proxy s public statement of acceptance of a version permanently authorizes you to choose that version for the Program Later license versions may give you additional or different permissions However no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version 15 Disclaimer of Warranty THERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMA
227. ntal y temperatura interior tipoDHT entrada tipo de sensor de la familia DHT datos salida cadena de texto con las lecturas formateadas de los sensores Descripci n Genera una lectura con los valores recibidos en los pines indicados en el intervalo fijado Procedimientos loop asociados lecturaPing Tabla 3 Procedimiento lecturaSensores ID lecturaPing Par metros C lculo porcentual de nivel de agua en el dep sito de riego mediante env o y recepci n de Descripci n pulsos ultras nicos El valor devuelto es usado en el procedimiento lecturaSensores para componer la lectura Procedimientos asociados lecturaSensores Tabla 4 Procedimiento lecturaPing 78 ORTDUINO Miguel Angel Hernanz Hernanz ID recibirOrdenes E Nombre E S Funci n Par metros z ordenes salida Ordenes recibidas en formato num rico 3 bytes D bee da Extrae las rdenes a ejecutar del paquete UDP si ste est disponible en el buffer de escripci n entrada Si no se ha recibido dicho paquete UDP las rdenes anteriores son mantenidas Procedimientos asociados loop Tabla 5 Procedimiento lecturaSensores ID enviarDatos Nombre E S Funcion Parametros datos entrada Datos formateados de la lectura de sensores D Seer Crea un paquete UDP conteniendo los datos formateados de la lectura de sensores y lo escripcion te aa env a a la direc
228. o actual de los sistemas de riego y ventilaci n activo o inactivo p3 Se escribe la cadena en el archivo condiciones txt Postcondici n El archivo condiciones txt contiene una cadena num rica con los valores representativos del estado de cada condici n y de la actividad de los sistemas de riego y ventilaci n La cadena debe contener un total de 6 comas separadoras Excepciones Paso Acci n p2 Si el archivo no existe es creado Si existe se sobrescribe Rendimiento Inferior a 5 segundos Frecuencia esperada n a Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 33 Caso de uso RF 16 Guardar el estado actual de las condiciones del invernadero 34 ORTDUINO Miguel Angel Hernanz Hernanz RF 17 Activar sistema de riego en Arduino Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 19 Recibir rdenes en Arduino RF 20 Enviar rdenes a Arduino Descripci n Activa el sistema de riego accionando el actuador mec nico asociado Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio
229. o la segunda se centra en la documentaci n t cnica y la tercera contiene el manual de usuario La primera secci n de esta memoria incluye la introducci n e identificaci n del Proyecto Fin de Carrera PFC y otros elementos como dll La descripci n general del PFC incluyendo los objetivos propuestos y cuestiones metodol gicas relativas al mismo as como el marco tecnol gico en el que se desarrolla amp La descripci n del software implementado en el PFC destacando las funcionalidades b sicas del producto y la interacci n con usuarios y otros sistemas Tambi n se detalla la arquitectura y los m todos empleados en el desarrollo del proyecto amp Planificaci n y presupuesto del proyecto mediante el uso del an lisis por puntos de funci n y modelo constructivo de costes COCOMO Constructive Cost Model amp Cuestiones de implementaci n y dise o a destacar en el desarrollo del software y del prototipado del hardware amp Conclusiones y posibles ampliaciones propuestas dd Bibliograf a referencias web y recursos empleados en la realizaci n de este proyecto wt Miguel Angel Hernanz Hernanz La segunda secci n recoge la documentaci n t cnica del proyecto y est enfocada desde el punto de vista del desarrollador Contiene detalles relativos al an lisis y dise o del sistema Hortduino divididos en varias secciones An lisis de los requisitos del sistema donde se estudian las funciones que ha de tener y
230. o Android en funcionamiento Secuencia normal Paso Acci n p1 El usuario hace click o pulsa el bot n de control del sistema de riego p3 El estado del sistema de riego cambia p4 La nueva configuraci n se guarda en el archivo config txt del servidor Si el nuevo estado implica una activaci n o desactivaci n del sistema de p5 riego basado en las condiciones impuestas por el usuario las nuevas rdenes son enviadas a Arduino Postcondici n El modo de control del sistema de riego ha cambiado El nuevo modo de control aparece en la interfaz del usuario Excepciones Paso Acci n n a n a Rendimiento De uno a cinco segundos en ser efectivo en Arduino Frecuencia esperada Un cambio por segundo Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios El modo de control viene representado en la interfaz de usuario por el texto y el color del bot n asociado a cada modo Tabla 24 Caso de uso RF 07 Cambiar modo de control del sistema de riego 25 wt Miguel Angel Hernanz Hernanz RF 08 Cambiar modo de control del sistema de ventilacion Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar el estado de los sistemas de riego ventilaci n OBJ 06 Control automatizado de los sistemas de riego ventilaci n Requisitos asociados RF 26 Comprobar condiciones
231. oOrdenes cceccceseesseeseessceseeeeeesececeeseeeeeeeeeeeessseeesneeesaees 93 Tabla 58 Procedimiento dibujarDeposito eccceececscceeeseseceeseeeseeseceeceseeeeeseeeseeaeenseeeenseeesseeesentees 94 Tabla 59 Procedimiento dibujarBotonOrdeneS oooconccnnionononoonconncnnonononnoonnonnnonncnnn ran nn ron nrnnn nn nano 94 Tabla 60 Procedimiento enviarOrdenes eeeeesesseesseseesesseeseeseeseecceceessecsceseeseeseeseesesseeaeeaeeaeeaes 94 Tabla 61 Procedimiento punteroSobreBoton cccececccessesceeseessceseeseenseeeeeseceeeeseceeeeseeeseeseenseesees 95 Tabla 62 Procedimiento reCeive es seeeesessesseeeeseesceeceeceeceecseesesecseesessesseeseeaeeaeeaseneceaeesaeenaeesaeens 95 TALA da 96 Tabla 64 e8tadisticas Php neissen oeseri niee EN ETE NEE E ia dirt 96 Tabla 65 ultimaslect Dhu dre tc in qe airada 97 Tabla 66 actual lip ivonne id aida sins 97 Tabla 67 Temperaturas Php ieir riae iE EENE Ni aeaaea 97 Tabla 68 consumoagua php eeeceeseesessesseeseeseesceccscceececsecsesaecaeesecaecaeeseeaeeeeseeaseeseseatesaeeeaeeeatens 97 Tabla 69D e EAA 98 Tabla 70 estadoactual php a 98 Tabla 71 ultimosdatos PhP init odias las 98 Tabla 72 sketchDeposito pde iii ninia ias 98 Tabla 73 sketehConsulta pde ocio iii de E R ati 99 wc Miguel Angel Hernanz Hernanz Tabla 74 sketchEstadisticas pde ccccccescesseessesceeseeeecesecseeesseeeeesecesecsecesecseeeseceeeeaecnseeeseeensaeecsaeees 99 Ta
232. on 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 07 Consulta de informaci n v a web OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 43 Obtener input de usuario Descripci n Genera la p gina web con la informaci n gr fica sobre la evoluci n de las variables monitorizadas y el estado de los sistemas a lo largo de un periodo de tiempo modificable por el usuario Precondici n Conexi n con servidor XAMPP servicios MySQL y servidor web Apache Secuencia normal Paso Acci n p1 El usuario accede con su navegador a la secci n Estad sticas de la web Se genera la p gina web en el servidor usando el valor por defecto medio p2 d a y se env a al usuario El usuario puede variar el intervalo temporal a mostrar en el gr fico de p3 estad sticas as como seleccionar las variables a mostrar Esto genera una petici n al servidor web con las opciones escogidas por el usuario El servidor consulta a la base de datos para extraer los datos requeridos por p4 z el usuario y los env a al navegador Postcondici n La p gina web solicitada se muestra en el navegador del usuario Excepciones Paso Acci n p2 Si se produce un error al consultar la base de datos se muestra en pantalla Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta U
233. on servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n Si existe un paquete UDP disponible en el buffer de entrada se copia su 1 ave P contenido en la variable que mantiene la ltima orden activa p2 El primer byte del mensaje se descarta El sistema de riego se activa 1 o desactiva 0 seg n el segundo byte del p3 mensaje El sistema de ventilaci n se activa 1 o desactiva 0 usando el tercer byte p4 del mensaje Postcondici n El sistema de riego est en funcionamiento Excepciones Paso Acci n p1 Si no hay un paquete UDP disponible se mantiene la ltima orden recibida Rendimiento Inferior a 5 segundos Frecuencia esperada Cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 36 Caso de uso RF 19 Recibir rdenes en Arduino 37 wt Miguel Angel Hernanz Hernanz RF 20 Enviar ordenes a Arduino Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 19 Recibir rdenes en Arduino RF 24 Establecer conexi n con Arduino RF 26 Comprobar condiciones Descripci
234. oooonnonncinnncmmmm 50 Tabla 50 Caso de uso RF 33 Mostrar configuraci n de red eeeeeeeecseeneeeeeeeeeeseeeeeseeeeeaeeeseees 51 Tabla 51 Caso de uso RF 34 Recibir lecturas de Arduino cceecceceeseeeeeeeeseeseeeseeeeeeseeeeeeseensensees 52 Tabla 52 Caso de uso RF 35 Salvar la ConfiguraciONn ccecessssseeseeseeeeseeeeeeceeceeeenseceneeneeeeaeees 53 Tabla 53 Caso de uso RF 36 Establecer conexi n ap escritorio ANdrOlO oocooccnncnncnnocnoonnonnnconnnno 54 Tabla 54 Caso de uso RF 37 Generar p gina web Ultimas LecturaS ooococcnnicncnncnconnerencincananaos 55 Tabla 55 Caso de uso RF 38 Generar p gina web EsStad StiCAS oononcncncnonnnenaeeencnncnncnn 56 Tabla 56 Caso de uso RF 39 Generar p gina web Temperaturas cccccccescesesseeseeeeeteeeteeseeesseees 57 Tabla 57 Caso de uso RF 40 Generar p gina web Consumo de Agua ccecceecesseeseeeteeteeeteeeeseees 58 Tabla 58 Caso de uso RF 41 Generar p gina web Estado Actual ooooonnconcnicnnniocononcocnoonnccnnnccnnnnos 59 Tabla 59 Caso de uso RF 42 Obtener datos de la base de datoS ooconicnincnicnnocnocncocncnoncnnnnnnonnnono 60 Tabla 60 Caso de uso RF 43 Obtener input de USUAL TO ooooonccnocnconconnoononononncnnnconcnn non ncnn nro nonnnnrnnnnnnns 61 Tabla 61 Caso de uso RF 44 Establecer conexi n con servidor XAMPP ccccesseeseeseeteeteeeees 62 Tabla 62 Requisito no funcional RNF 01 Interoperabilidad oooononconncnnnncnicnocnnononnono
235. opyright law except executing it on a computer or modifying a private copy Propagation includes copying distribution with or without modification making available to the public and in some countries other activities as well To convey a work means any kind of propagation that enables other parties to make or receive copies Mere interaction with a user through a computer network with no transfer of a copy is not conveying An interactive user interface displays Appropriate Legal Notices to the extent that it includes a convenient and prominently visible feature that 1 displays an appropriate copyright notice and 2 tells the user that there is no warranty for the work except to the extent that warranties are provided that licensees may convey the work under this License and how to view a copy of this License If the interface presents a list of user commands or options such as a menu a prominent item in the list meets this criterion 1 Source Code The source code for a work means the preferred form of the work for making modifications to it Object code means any non source form of a work A Standard Interface means an interface that either is an official standard defined by a recognized standards body or in the case of interfaces specified for a particular programming language one that is widely used among developers working in that language The System Libraries of an executable work i
236. or on a volume of a storage or distribution medium is called an ageregate if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation s users beyond what the individual works permit Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate 6 Conveying Non Source Forms You may convey a covered work in object code form under the terms of sections 4 and 5 provided that you also convey the machine readable Corresponding Source under the terms of this License in one of these ways e a Convey the object code in or embodied in a physical product including a physical distribution medium accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange b Convey the object code in or embodied in a physical product including a physical distribution medium accompanied by a written offer valid for at least three years and valid for as long as you offer spare parts or customer support for that product model to give anyone who possesses the object code either 1 a copy of the Corresponding Source for all the software in the product that is covered by this License on a durable physical medium customarily used for software interchange for a price no more than your reasonable cost of physically performing this conveying of source or 2 access to copy the Corresponding Sour
237. os rangos aceptables de las variables Descripci n Env a el paquete con las rdenes a ejecutar en el dispositivo Arduino a la aplicaci n de escritorio Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaciones de escritorio y Android en funcionamiento Secuencia normal Paso Acci n La aplicaci n de escritorio detecta un paquete procedente de una IP distinta p1 a la asignada al dispositivo Arduino p2 Se extraen del paquete recibido los tres bytes que lo componen Si en el primer byte se encuentra un 1 se consideran que los dos bytes p3 f restantes son nuevas rdenes p4 Se asigna el valor del segundo byte al estado del sistema de riego p5 Se asigna el valor del tercer byte al estado del sistema de ventilaci n p6 La bandera de recarga de configuraci n se activa Postcondici n El usuario puede visualizar en pantalla la informaci n indicada en la descripci n Excepciones Paso Acci n p3 Si el valor del primer byte es 0 se reenv a la ltima lectura como en RF 12 Rendimiento Actualizaci n cada 1 5 segundos Frecuencia esperada En el intervalo de recepci n de lecturas Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 46 Caso de uso RF 29 Recibir rdenes
238. os sensores de Arduino el estado de actividad y modo de funcionamiento de los sistemas de riego y ventilaci n y las condiciones actuales del invernadero Si se produce una situaci n de alerta en alguna de las condiciones el men de la parte derecha mostrar un icono de advertencia 4 y aparecer un mensaje en color rojo dentro de sta secci n indicando el problema encontrado Estado Actual Luminosidad 58 Temperatura exterior 27 3 C Riego Temperatura interior 25 C Humedad ambiental 35 Ventilaci n Humedad del suelo 44 Nivel de agua 450 Datos recibidos el 15 07 2014 17 01 15 La informaci n mostrada se actualiza cada 30 segundos ALERTA Humedad del suelo baja Ilustraci n 19 Secci n Estado Actual mostrando un mensaje de alerta Las condiciones actuales est n representadas gr ficamente mediante las im genes vistas en la p gina 8 de este manual Si se mueve el cursor del rat n sobre las im genes y se deja all durante unos instantes aparece la descripci n y estado actual de la condici n en forma de mensaje debajo del cursor del rat n 17 ORTDUINO Miguel Angel Hernanz Hernanz 5 4 Secci n Consumo de agua La secci n consumo de agua muestra datos relevantes sobre el nivel de agua disponible en el dep sito para riego el consumo total de agua consumo medio diario y la previsi n de agua restante calculada con el consumo medio diario y el nivel de agua restante en el dep sito
239. ostrar informaci n de sensores remotos OBJ 03 Almacenar informaci n recibida OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 34 Recibir lecturas de Arduino RF 20 Enviar rdenes a Arduino RF 33 Mostrar configuraci n de red Descripci n Indica si hay comunicaci n disponible entre Arduino y la aplicaci n de escritorio Precondici n Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n La aplicaci n de escritorio env a paquetes UDP a la direcci n IP de Arduino 1 R P con las rdenes a ejecutar p2 Se espera la respuesta del dispositivo Arduino en el socket de escucha UDP La conexi n se define activa si el n mero de paquetes esperados es menor p3 o igual a dos Postcondici n El sistema de riego no est en funcionamiento Excepciones Paso Acci n Si el n mero de paquetes esperados es mayor a dos se muestra el men p3 de configuraci n de red Rendimiento Inferior a 3 segundos Frecuencia esperada Cada intervalo de solicitud de lecturas env o de rdenes Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 41 Caso de uso RF 24 Establecer conexi n con Arduino
240. ostrar los diferentes botones accesibles por el usuario los cuales son capaces de cambiar el modo de funcionamiento del riego y la ventilaci n del invernadero y acceder al men de la aplicaci n Mostrar selectores Este conjunto de procedimientos dibuja los sliders sobre los cuales el usuario puede fijar el valor m ximo y m nimo aceptable para cada variable monitorizada por el sistema Hortduino Para ello hace uso de la clase propia Selector que se ha implementado espec ficamente con este fin Comprobar Estados Comprueba el estado del sistema de riego y ventilaci n del invernadero actuando de acuerdo al modo de funcionamiento establecido por el usuario Tambi n muestra la actividad de dichos sistemas de forma visual Comprobar Condiciones Son los procedimientos encargados de alertar al usuario si alguna de las condiciones establecidas sobre los par metros supervisados por el sistema Hortduino se encuentra fuera de los valores permisibles fijados por el usuario Conexi n Red Es el procedimiento que se ocupa de alertar si la conexi n con el servidor XAMPP y la aplicaci n de escritorio no se ha podido iniciar o ha sufrido una interrupci n Enviar Ordenes Se encarga de enviar las nuevas rdenes por red a la aplicaci n de escritorio si se detecta un cambio en las condiciones establecidas por parte del usuario Hay que destacar que las rdenes enviadas desde esta aplicaci n tienen prioridad sobre las relativas a la aplica
241. otando entre ON OFF y AUTO Las v sistemas de riego y ventilaci n rdenes relativas al nuevo estado son enviadas y ejecutadas en el dispositivo Arduino Mostrar fecha y hora de la ltima Se muestra en la interfaz de usuario la fecha y hora en j actualizaci n de los gr ficos evolutivos la que se actualizaron los gr ficos por ltima vez Tabla 77 Bater a de pruebas de la aplicaci n de escritorio I 126 ORTDUINO Miguel Angel Hernanz Hernanz APLICACI N DE ESCRITORIO Prueba Resultado Validado sie z Los nuevos estados de los sistemas de riego y Recepci n de rdenes procedentes de la a E E Ae Beads a ventilaci n son aplicados Se guarda la configuraci n y Vv aplicaci n Android 4 Ae A se actualizan las condiciones si es necesario Notificaci n de actualizaci n de la El mensaje de notificaci n de cambios en la 2 configuraci n a la aplicaci n Android configuraci n es enviado a la aplicaci n Android Fallo en la conexi n con el dispositivo Se muestra la pantalla de configuraci n de los valores s Arduino de conexi n en la interfaz de usuario Cambio en la configuraci n de los valores Los nuevos valores son aplicados y se reintenta la v de conexi n de red conexi n con Arduino a ae Se comprueban las condiciones relativas al sistema de Activaci n del sistema de ventilaci n de adas A ir ventilaci n y el modo de control actual y se env an la
242. poder incorporar dicha informaci n al hist rico de actividad del invernadero si se quiere consultar mas adelante 56 e Miguel Angel Hernanz Hernanz Q Control directo de los sistemas desde la Web Esta nueva funcionalidad a adir a la posibilidad de que un usuario previamente autentificado en una conexi n segura con la p gina web accediera a los controles de los sistemas de riego ventilaci n y pudiese cambiar los valores aceptables para las variables supervisadas Captura de im genes interiores Mediante el uso de una c mara sencilla el usuario podr ver en todo momento el estado de crecimiento de los cultivos desde una ubicaci n lejana Este sistema puede aportar funciones de seguridad y vigilancia remota as como construir un time lapse del desarrollo de la cosecha con las im genes obtenidas a partir de la c mara en intervalos regulares a lo largo de d as o meses lt Sistema aut nomo de alimentaci n Para dotar al sistema Hortduino de una fuente de energ a limpia este sistema ser a el encargado de almacenar la energ a solar recibida durante el d a en una bater a para su uso nocturno Tambi n contar a con un m dulo propio en la interfaz de las aplicaciones con funciones de informaci n de la carga actual de la bater a tasa de recarga coste por tiempo de funcionamiento ahorrado al sistema y origen de la energ a que se utiliza actualmente red el ctrica o generaci n propia lt gt Almacenaje de
243. procuring conveyance of a covered work and grant a patent license to some of the parties receiving the covered work authorizing them to use propagate modify or convey a specific copy of the covered work then the patent license you grant is automatically extended to all recipients of the covered work and works based on it A patent license is discriminatory if it does not include within the scope of its coverage prohibits the exercise of or is conditioned on the non exercise of one or more of the rights that are specifically granted under this License You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software under which you make payment to the third party based on the extent of your activity of conveying the work and under which the third party grants to any of the parties who would receive the covered work from you a discriminatory patent license a in connection with copies of the covered work conveyed by you or copies made from those copies or b primarily for and in connection with specific products or compilations that contain the covered work unless you entered into that arrangement or that patent license was granted prior to 28 March 2007 Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law 67 e Miguel An
244. que ofrece cada sensor en la medida de la variable de la que se ocupa En general los rangos de medida de los sensores son adecuados para el modelo de temperatura y humedad que cabr a esperar en el entorno de un invernadero salvo en el caso de la fotorresistencia empleada en la medici n de la luminosidad la cual posee una precisi n baja en sus lecturas debido a su reducido coste que no la hace apta si se necesita una precisi n aceptable en la medici n de la intensidad lum nica 21 e Miguel Angel Hernanz Hernanz amp Usuarios No hay usuarios que puedan hacer uso de este subsistema 3 2 3 Servidor XAMPP dd Descripci n y funcionalidad Este subsistema est compuesto principalmente por el paquete de desarrollo web XAMPP y el PC donde se ejecuta dicho software El servidor XAMPP es el encargado de proporcionar los servicios b sicos que usan el subsistema de la p gina web y de la aplicaci n de escritorio como son el motor MySQL de la base de datos el int rprete PHP y el servicio web Tambi n se ocupa de hospedar la base de datos usada en el proyecto para almacenar las lecturas el contenido y los recursos de la p gina web y los archivos de configuraci n mencionados anteriormente en el apartado 3 1 3 l Interacci n con otros sistemas El servidor XAMPP se relaciona b sicamente con dos sistemas la aplicaci n de escritorio y la p gina web la cual se puede considerar embebida dentro del servidor XAMPP La apli
245. r izquierda del bot n y yPos alto 2 if presionado amp amp mouseX gt x amp amp mouseX lt x ancho amp amp mouseY gt y amp amp mouseY lt y alto return true else return false 114 ORTDUINO Miguel Angel Hernanz Hernanz void dibujarBoton La referencia para dibujar el bot n es su centro float x y x xPos ancho 2 El punto x y referencia la esquina superior izquierda del bot n y yPos alto 2 stroke 255 fill 100 rect x y ancho alto margen 2 fill 250 textSize tamFuente text texto xPos textWidth texto 2 yPos tamFuente 2 margen 2 textSize tamText CLASE SELECTOR DE LA APLICACI N ANDROID La clase Selector es la encargada de proporcionar las funcionalidades necesarias para dibujar en pantalla el selector asociado a cada variable y modificar los valores m ximo y m nimo a voluntad del usuario empleando para ello la entrada t ctil del dispositivo Android class Selector float xPos float yPos int ancho int alto int minimo int maximo int margen int limiteMin int limiteMax int id int tamFuente String texto Selector float _xPos float yPos String texto int tamFuente int margen int id int limiteMin int limiteMax int minimo int maximo xPos _xPos yPos _yPos texto texto margen margen minimo minimo maximo maximo limiteMin _limiteMin limi
246. r visualizado completamente sin hacer scroll El icono de alerta aparece sobre la secci n Estado Mostrar de icono de alerta en el men actual de la p gina web si se produce una situaci n de Vv alerta obtenida del archivo de condiciones actuales 2 M La secci n ltimas lecturas es generada Generaci n de la secci n Ultimas lecturas Vv correctamente incluyendo los sketches de consulta Conexi n con el servicio MySQL no Pe ySQ La p gina web muestra el log de errores generado Vv disponible Archivo de configuraci n no disponible La p gina web muestra el log de errores generado Vv Se genera un mensaje de error si se produce una No existen registros en la base de datos e ge J Error SI Sep Vv divisi n por cero o excepci n similar Desplazamiento del cursor del rat n sobre Se muestra una linea vertical en la posici n actual del v los sketches de consulta cursor del rat n indicando el valor puntual del gr fico 7 El nuevo valor del rango a utilizar en los sketches es Cambio en el valor de n mero de j Ex E recogido por la p gina web y se genera una nueva Vv registros a mostrar oct ay consulta que modifica la informaci n presentada La secci n Estad sticas muestra el sketch utilizado Generaci n de la secci n Estad sticas para la visualizaci n de las variables elegidas por el Vv usuario con el contenido vacio La pagina web recopila las casillas marcadas y el rango temporal a utilizar y construye una consulta para Se
247. r la base de datos se muestra en pantalla Rendimiento Indeterminado Frecuencia esperada Indeterminado Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 57 Caso de uso RF 40 Generar p gina web Consumo de Agua 58 ORTDUINO Miguel Angel Hernanz Hernanz RF 41 Generar p gina web Estado Actual Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 07 Consulta de informaci n v a web OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 43 Obtener estados y condiciones Descripci n Genera la p gina web con la informaci n disponible sobre el nivel actual de agua en el dep sito de riego el consumo total y medio y la previsi n de duraci n del agua para riego en base al consumo y el nivel restante Precondici n Conexi n con servidor XAMPP servicios MySQL y servidor web Apache Secuencia normal Paso Acci n p1 El usuario accede con su navegador a la secci n Estado Actual de la web El servidor lee las condiciones actuales del archivo condiciones txt y la p2 configuraci n del archivo config txt 3 El servidor asocia a cada condici n y estado la imagen correspondiente en P funci n del c digo num rico asignado 4 El servidor obtiene los estados y las condiciones de la ltima lectura P registrada en la base de datos
248. ra conectar con Arduino Se puede modificar esta configuraci n pulsando en el bot n CONFIGURAR CONEXION que aparece en la parte inferior de la pantalla Para cambiar la direcci n IP se debe escribir la nueva direcci n IP a utilizar en la conexi n y pulsar Intro para almacenar los datos La misma operaci n se aplica para el puerto En el caso de que no se pueda conectar por red con el dispositivo Arduino es aconsejable comprobar la Gu a de resoluci n de problemas incluida en este documento para establecer la causa que provoca esta ausencia de conexi n Si todo funciona correctamente la aplicaci n de escritorio mostrar en su ventana una interfaz de control y supervisi n similar a la de la ilustraci n siguiente Miguel Angel Hernanz Hernanz ProcessingClient Luminosidad 66 oF Riego Temperatura exterior 23 0 C Temperatura interior 21 C Auro Ventilaci n Humedad interior 38 Humedad del suelo O Humedad suelo max Humedad suelo min Temperatura int min Temperatura int max Temperatura ext min Temperatura ext max Nivel de agua max Nivel de agua min LUMINOSIDAD Y TEMPERATURA Humedad int min Temperatura exterior OK Humedad int max tura interior O ad ambiental C 4 4 4 4 4 4 4 4 4 4 b a Horas o y yO M i o v inutos A Segundos ha ww HUMEDAD Intervalo de actualizaci n de gr ficos Ilustraci n 2 Ventana de la aplicaci n de escritorio Aqui el usuario
249. ra en pantalla el puerto usado para conectar a Arduino El usuario introduce el nuevo puerto y guarda los cambios pulsando pa ENTER El nuevo puerto se usa en la conexi n Postcondici n Los datos usados para conectar a Arduino han sido cambiados ap Escritorio Se muestra la pantalla de espera con la informaci n de conexi n Android Excepciones Paso Acci n p2 En la aplicaci n Android no se puede modificar la IP p4 En la aplicaci n Android no se puede modificar el puerto Rendimiento Si el contador de paquetes esperados supera el l mite de 2 3 segundos Frecuencia esperada No definido Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 50 Caso de uso RF 33 Mostrar configuraci n de red 51 wt Miguel Angel Hernanz Hernanz RF 34 Recibir lecturas de Arduino Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 05 Mostrar el estado y modo de funcionamiento de los sistemas de r v OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 26 Comprobar condiciones RF 25 Mostrar datos de lecturas recibidas RF 24 Establecer conexi n con Arduino RF 31 Mostrar
250. rada en el puerto serial asignado Vv Lectura sensor de luminosidad Lectura recibida correctamente Vv Lectura sensor de temperatura interior Lectura recibida correctamente Vv Lectura sensor de temperatura exterior Lectura recibida correctamente Vv Lectura sensor de humedad ambiental Lectura recibida correctamente Vv Lectura sensor de humedad del suelo Lectura recibida correctamente Vv Lectura del sensor ultras nico Lectura recibida correctamente Vv Activaci n del sistema de riego El sistema se activa correctamente despu s de unos 3 gt segundos Activaci n del sistema de ventilaci n El sistema se activa correctamente despu s de unos 3 i segundos eee El sistema se desactiva correctamente despu s de Desactivaci n del sistema de riego Y unos 3 segundos Desactivaci n del sistema de ventilaci n El sistema se desactiva correctamente despu s de y unos 3 segundos Conexi n v a Ethernet El dispositivo Arduino es visible en la red Ethernet Vv Envio de paquetes UDP via Ethernet Los paquetes UDP son recibidos en el PC correctamente Recepci n de paquetes UDP v a Ethernet Los paquetes UDP son recibidos en Arduino y correctamente Tabla 76 Bater a de pruebas de Arduino 125 ORTDUINO Miguel Angel Hernanz Hernanz APLICACI N DE ESCRITORIO Prueba Resultado Validado ar Los datos recibidos son mostrados correctamente en Mostrar
251. rama del Flujo de Datos Nivel 2 Sistema de informaci n 69 Ilustraci n 15 Diagrama Entidad Relaci n del sistema ee eeceeseseeeseeteeteesceseeseeeseeeneeeeeeeaeees 70 Ilustraci n 16 Diagrama de paquetes cccceccesceeseesseeseeseceseeseceseeseeeseceeeaeceeeseceeeeeeaeensaeeseneeensaees 73 Ilustraci n 17 Diagrama de flujo del dispositivo ATdUINO cooononicnnocnocnnononononncnoncnnconncnnnnncnnnccnnnnno 74 Ilustraci n 18 Diagrama de flujo de la aplicaci n de escritOTlO oooococnncnicnicnnnnnnennnnnenornnrnnancnnnons 75 Ilustraci n 19 Diagrama de flujo de la aplicaci n AldrOld oocononnnnnnncnicncnncnccnonconcnn ron conorn nro nonnncnnno 76 Ilustraci n 20 Diagrama de flujo de la p gina Web ooococincnncnncnncnnnnnnnenncnncnncnnncnc cnn cnncnncnnrnnonnaronao 77 Ilustraci n 21 Informaci n actual de los SCNSOLES ceseeeeseteeeseeseeseeseeseeaceeceeeeeeeeeeneeseeaeentees 101 Ilustraci n 22 Graficos de evoluci n temporal de las variables 101 Ilustraci n 23 Controles y actividad de los sistemas remotoS oooocnonncnocnnoncoononncornnononancnnconnnnonos 102 Ilustraci n 24 Nivel de agua en depOsito ececcesscescesseeseeescesecseceseceeeeseceeeeseceeeseeeceneeesueeeseeenses 102 Ilustraci n 25 Informaci n sobre condiciones del inverdadeTO ococononinnicnnonononnnocanonnnnnanonccnnnnnns 102 IMustraci n 26 electores asistan taa intra diia 103 Ilustraci n 27 Interfaz de la aplicaci n de esCr
252. rary need not be included in conveying the object code work A User Product is either 1 a consumer product which means any tangible personal property which is normally used for personal family or household purposes or 2 anything designed or sold for incorporation into a dwelling In determining whether a product is a consumer product doubtful cases shall be resolved in favor of coverage For a particular product received by a particular user normally used refers to a typical or common use of that class of product regardless of the status of the particular user or of the way in which the particular user actually uses or expects or is expected to use the product A product is a consumer product regardless of whether the product has substantial commercial industrial or non consumer uses unless such uses represent the only significant mode of use of the product Installation Information for a User Product means any methods procedures authorization keys or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made If you convey an object code work under this section in or with or specifically for use in a User Product and the convey
253. rase apropiado con objeto de crear una interfaz intuitiva y de f cil comprensi n por parte del usuario Siguiendo esta idea los datos referidos a la evoluci n reciente de las variables supervisadas se adaptaron a un dise o en forma de gr fico continuo permitiendo apreciar visualmente el comportamiento y los cambios en el valor de las variables mediante la interacci n del cursor del rat n con el rea de los gr ficos Se opt por la agrupaci n de las variables monitorizadas en dos gr ficos en base a criterios de relaci n por dos motivos evitar la sobrecarga de la ventana de informaci n y facilitar la comparaci n de variables que comparten alg n tipo de relaci n como la unidad de medida com n LUMINOSIDAD Y TEMPERATURA HUMEDAD Ilustraci n 22 Gr ficos de evoluci n temporal de las variables Por ese motivo en el gr fico evolutivo de las temperaturas se incluye la luminosidad presenten en el invernadero ya que la radiaci n solar tiene una relaci n directa con la temperatura del interior y exterior del invernadero La humedad del suelo se presenta junto con la humedad ambiental en el mismo gr fico para observar el efecto de la transpiraci n de las plantas y la evaporaci n del agua presente en el suelo hacia la atm sfera interior del invernadero 101 ORTDUZNO Miguel Angel Hernanz Hernanz Para incorporar a la interfaz los elementos de control e informacion de la actividad de los sistemas remotos de riego y ven
254. rduino y el PC o dispositivo Android del usuario emplea un formato de datos muy sencillo basado en valores num ricos ordenados y separados por comas todo ello es agrupado en una variable de tipo string que es enviada al dispositivo de destino Temperatura Temperatura Humedad Humedad Luminosidad Exterior Interior Ambiental Suelo Nivel Agua Para el env o de rdenes se ha adoptado un sistema basado en tres d gitos que codifican la orden a ejecutar en el dispositivo Arduino de la siguiente forma Selector Ordeniisaa Orden Sistema 9 Ventilaci n 50 ORTDUINO Miguel Angel Hernanz Hernanz El primer campo siempre contiene un 1 para se alizar una nueva orden a los sistemas de riego y ventilaci n El valor 0 est reservado para otro tipo de rdenes a sistemas que se implementen en una posible ampliaci n El segundo campo contiene un 1 si la activaci n del sistema de riego es necesaria y un 0 en caso contrario De forma similar la ltima posici n de las rdenes indica con un 1 la activaci n del sistema de ventilaci n o la desactivaci n del mismo si toma el valor 0 La aplicaci n de escritorio tiene la capacidad de reenviar la informaci n recibida si registra un mensaje procedente de una IP distinta a la especificada para el dispositivo Arduino Esto permite a la aplicaci n Android mostrar los mismos datos que maneja la aplicaci n de escritorio Para mantener la sincronizaci n entre
255. re los mismos Tambi n se dispone de una aplicaci n para dispositivos Android con la que supervisar los datos obtenidos por la aplicaci n Processing en tiempo real y cambiar remotamente el modo de control manual o autom tico sobre el riego y la ventilaci n o los valores m nimos y m ximos del rango aceptable espec fico de cada una de las condiciones de las variables monitorizadas Las acciones de esta aplicaci n tienen prioridad sobre las rdenes de la aplicaci n Processing si ndo necesario que sta est activa en todo momento para obtener los datos de los sensores y poder controlar las rdenes Va Ilustraci n 42 Secci n Sobre Hortduino de la pagina web 112 e Miguel Angel Hernanz Hernanz 3 5 ENTORNO TECNOL GICO DEL SISTEMA El entorno tecnol gico en el que se basa el sistema Hortduino se puede dividir en tres partes diferenciadas asociadas a cada componente espec fico del sistema m Dispositivo Arduino MEGA 2560 El hardware Arduino se basa en un conjunto de componentes electr nicos ensamblados sobre una placa y conectados a un microcontrolador el cual se puede programar para que lleve a cabo operaciones mas o menos complejas e interact e con elementos externos conectados a este hardware Para la tarea de programaci n del microcontrolador Arduino cuenta con un entorno de desarrollo integrado propio que utiliza el lenguaje C C y el compilador avr gcc proporcionando capacidades de depuraci n
256. rencia de Arduino como candidato a implementar esta tarea El entorno de desarrollo de Processing est basado en Java lo cual proporciona al desarrollador una extensa documentaci n disponible con tutoriales y ejemplos que hacen el desarrollo de las tareas mas sencillo Por su parte el lenguaje Arduino usa como base Wiring un framework para la programaci n de microcontroladores basado en C C Ambos lenguajes 55 ORTDUINO Miguel Angel Hernanz Hernanz comparten muchos puntos en com n pero con algunas diferencias menores lo que result en una mayor fluidez en las tareas de programaci n y testeo Hay que destacar que aunque no se ha hecho uso de este recurso en el proyecto existe un firmware espec fico para el microcontrolador llamado Firmata que proporciona acceso a las funciones propias del lenguaje Arduino desde Processing sin tener que programar previamente el microcontrolador pero limitando la comunicaci n entre los dos dispositivos al puerto serial P Interfaces simples y sencillas La facilidad de utilizaci n de una aplicaci n depende directamente del dise o de la interfaz que sta ofrece al usuario El dise o de las interfaces de las aplicaciones escritorio y Android fue el resultado de la incorporaci n sucesiva de los diferentes elementos que las componen enfatizando en la claridad y el aspecto visual sencillo e intuitivo Se decidi incluir im genes animadas en la representaci n del estado de los sistemas d
257. rentes subsistemas para luego ser recopiladas e integradas en la documentaci n final del PFC La duraci n de este proyecto es de 175 d as no consecutivos con periodos de inactividad debidos a factores externos como la espera por la entrega de componentes hardware necesarios en la construcci n del prototipo hardware y cuestiones ajenas al proyecto En la siguientes ilustraciones se reflejan la consecuci n de las tareas listadas bajo la descomposici n de cada iteraci n y su planificaci n en forma de diagrama de Gantt 42 DUINO Miguel Angel Hernanz Hernanz ID Nombre 192 e Proyecto Hortduino O Fase de estudio 2 Estudio del problema 3 o Estudio de la plataforma de hardware Arduino 7 E e Iteraci n 1 10 o Ensamblaje del prototipo hardware inicial 14 o Instalaci n y configuraci n del entorno de desarrollo Arduino 16 Pruebas de conexi n y recepci n de datos desde Arduino 20 E e Iteraci n II 22 0 An lisis de requisitos de la Aplicaci n de Escritorio 25 o Instalaci n y configuraci n del entorno de desarrollo Processing 27 Dise o conceptual y funcional de la interfaz de usuario 30 o Dise o de la estructura de datos para las lecturas de sensores 33 Dise o del protocolo de comunicaci n con el prototipo hardware 38 Implementaci n de la Aplicaci n de Escritorio 52 Pruebas de la aplicaci n de escritorio 71 Iteraci n III 73 Dise o de la base de datos 77 Instalaci n y configurac
258. rgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 55 Caso de uso RF 38 Generar p gina web Estad sticas 56 ORTDUINO Miguel Angel Hernanz Hernanz RF 39 Generar p gina web Temperaturas Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 07 Consulta de informaci n v a web OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 43 Obtener input de usuario Descripci n Genera la p gina web con la informaci n disponible sobre la evoluci n de las temperaturas del invernadero en un intervalo modificable por el usuario Precondici n Conexi n con servidor XAMPP servicios MySQL y servidor web Apache Secuencia normal Paso Acci n p1 El usuario accede con su navegador a la secci n Temperaturas de la web Se genera la p gina web en el servidor usando el valor por defecto un d a p2 z y se envia al usuario El usuario puede variar el intervalo temporal a mostrar introduciendo un p3 valor en el campo N mero de d as Esto genera una petici n al servidor web con el intervalo de d as escogido por el usuario El servidor consulta a la base de datos para extraer los datos requeridos por p4 A el usuario y los env a al navegador Postcondici n La p gina web solicitada se muestra en el navegador del usuario Excepciones Paso Acci n p2
259. rgin 0 auto gt lt p gt lt div gt lt body gt lt html gt En el c digo anterior se hace uso del script processing 1 4 1 min js quees el encargado de convertir el c digo escrito en Processing a JavaScript y ejecutarlo en el elemento canvas asociado dentro del cuerpo de la p gina web Todas las secciones de la p gina web de Hortduino emplean los estilos recogidos en el archivo de hojas de estilo en cascada estilo css para facilitar los cambios visuales y agilizar la escritura del c digo fuente En elementos puntuales como puede ser un p rrafo espec fico se opta por los estilos en l nea para no sobrecargar excesivamente el archivo de estilo 123 e Miguel Angel Hernanz Hernanz 5 PRUEBAS DEL SISTEMA Con objeto de verificar que las diferentes partes del sistema cumplen las funciones requeridas correctamente y se integran sin problemas se dise aron una serie de pruebas con las que testear las funcionalidades y puntos cr ticos Las pruebas realizadas son v Pruebas estructurales en las que se centra la atenci n en comprobar los flujos de ejecuci n dentro de la aplicaci n software que se producen entre los procedimientos v Pruebas unitarias que tienen por objetivo testear cada m dulo independientemente de su relaci n con el resto v Pruebas de integraci n en las cuales se comprueba el funcionamiento de todos los m dulos que componen la aplicaci n en su conjunto global y de una sola vez v Pruebas
260. rios en medios que puedan ser de f cil acceso simult neo como una p gina web La informaci n debe permanecer disponible por tiempo indeterminado para futuras consultas Comentarios Tabla 63 Requisito no funcional RNF 02 Accesibilidad RNF 03 Dise o de la interfaz de usuario Objetivos asociados Requisitos asociados Descripci n El sistema debe proporcionar herramientas con interfaces sencillas de manejar pero que contengan las funcionalidades requeridas de control y supervisi n Comentarios Tabla 64 Requisito no funcional RNF 03 Dise o de la interfaz de usuario RNF 04 Respuesta rapida Objetivos asociados Requisitos asociados Descripci n El sistema debe ser capaz de responder con rapidez a los cambios detectados en las condiciones del invernadero y aplicar los cambios que el usuario considera oportunos Comentarios Tabla 65 Requisito no funcional RNF 04 Respuesta r pida 63 wc Miguel Angel Hernanz Hernanz 1 6 MATRIZ DE RASTREABILIDAD OBJETIVOS REQUISITOS OBJ 01 OBJ 02 OBJ 03 OBJ 04 OBJ 05 OBJ 06 OBJ 07 OBJ 08 RI 01 RI 02 RI 03 RI 04 RI 05 RF 01 RF 02 RF 03 RF 04 RF 05 RF 06 RF 07 RF 09 RF 10 RF 11 RF 12 RF 13 RF 14 RF 15 RF 16 RF 17 RF 18 RF 19 RF 20 RF
261. rnanz Hernanz RF 11 Enviar lecturas a aplicaci n de escritorio Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 01 Recibir informaci n de sensores remotos OBJ 02 Mostrar informaci n de sensores remotos OBJ 03 Almacenar informaci n recibida OBJ 04 Cambiar el estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 19 Recibir rdenes Descripci n Env a las lecturas efectuadas en los sensores a la aplicaci n de escritorio Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino y aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio Android en funcionamiento Secuencia normal Paso Acci n 4 Si se ha sobrepasado el intervalo de actualizaci n Arduino lee los sensores P Si no se cumple la anterior condici n espera hasta su cumplimiento 2 Arduino recopila la informaci n de la lectura de sensores en una cadena de P texto con valores num ricos separados por comas p3 Si la aplicaci n de escritorio ha mandado rdenes las lecturas son enviadas a la direcci n IP desde la que se envi el paquete de rdenes p4 Se actualiza el temporizador usado en el intervalo de actualizaci n Postcondici n Se recibe un paquete UDP en
262. s Y forma autom tica H we rdenes correspondientes al dispositivo Arduino e caia Se comprueban las condiciones relativas al sistema de Desactivaci n del sistema de ventilaci n ie zi ventilaci n y el modo de control actual y se env an las Y de forma autom tica H A a rdenes correspondientes al dispositivo Arduino ee Se comprueban las condiciones relativas al sistema de Activaci n del sistema de riego de forma E EN riego y el modo de control actual y se env an las Vv automatica A me F rdenes correspondientes al dispositivo Arduino it ode Se comprueban las condiciones relativas al sistema de Desactivaci n del sistema de riego de A A or ventilaci n y el modo de control actual y se env an las Vv forma autom tica E A a rdenes correspondientes al dispositivo Arduino La aplicaci n intenta realizar la conexi n a la base de Conexi n con la base de datos del datos empleando el usuario y password establecidos y servidor XAMPP Si no es posible se muestra un mensaje de error en debug La aplicaci n carga los valores de configuraci n de Carga e inicializaci n de la configuraci n rangos aceptables y modos de control desde el archivo Y de usuario de configuraci n del servidor Si no es posible la carga se emplea la configuraci n nula por defecto La aplicaci n guarda los valores actuales de Guardado de la configuraci n configuraci n en el archivo de configuraci n del Y servidor La aplicaci
263. s as different from the original version or e d Limiting the use for publicity purposes of names of licensors or authors of the material or e e Declining to grant rights under trademark law for use of some trade names trademarks or service marks or e f Requiring indemnification of licensors and authors of that material by anyone who conveys the material or modified versions of it with contractual assumptions of liability to the recipient for any liability that these contractual assumptions directly impose on those licensors and authors All other non permissive additional terms are considered further restrictions within the meaning of section 10 If the Program as you received it or any part of it contains a notice stating that it is governed by this License along with a term that is a further restriction you may remove that term If a license document contains a further restriction but permits relicensing or conveying under this License you may add to a covered work material governed by the terms of that license document provided that the further restriction does not survive such relicensing or conveying If you add terms to a covered work in accord with this section you must place in the relevant source files a statement of the additional terms that apply to those files or a notice indicating where to find the applicable terms Additional terms permissive or non permissive may be stated in the form of a separately writ
264. s desde los sensores son almacenadas por la aplicaci n de escritorio en una base de datos para facilitar su posterior tratamiento las configuraciones y estado actual del invernadero son almacenados en sendos archivos de texto requeridos para el inicio y configuraci n de las aplicaciones de escritorio y Android 70 e Miguel Angel Hernanz Hernanz 3 DISE O DEL SISTEMA 3 1 DISE O DE LA BASE DE DATOS Con la informaci n disponible en el diagrama Entidad Relaci n se procede al dise o de la base de datos destinada a almacenar la informaci n enviada desde el dispositivo Arduino Para cada variable se tiene en cuenta el rango m ximo que pueden alcanzar los valores que ofrece cada sensor para asignar el tipo de campo correspondiente Dado que nicamente se considera la entidad Array de sensores como objeto de almacenaje ser necesaria una nica tabla para pasar del modelo Entidad Relaci n al modelo relacional Adem s de la informaci n procedente de las lecturas la base de datos utilizar dos campos extra a adidos para posibilitar consultas mas espec ficas un ndice que se asignar de manera un voca a cada registro a adido a la base de datos y ser la clave primaria para acceder a la tabla y la marca de tiempo time stamp en la que se incorpora el nuevo registro a la base de datos A partir de lo anterior la estructura de las tablas de la base de datos se ha establecido de la siguiente forma Tablas lecturas y actu
265. s diferentes partes del software 12 e Miguel Angel Hernanz Hernanz 2 3 TECNOLOG AS DE DESARROLLO Para el desarrollo del proyecto Hortduino se han utilizado varias herramientas y tecnolog as de uso p blico y gratuito siguiendo la filosof a del software libre El microcontrolador ATmega2560 instalado en el Arduino se ha programado usando el entorno de desarrollo propio de Arduino el cual est escrito en Java y basado en otros lenguajes similares como Processing el compilador avr gcc y otros programas open source La aplicaci n de escritorio est programada en Processing un lenguaje similar a Java y elegido por su buena capacidad de interacci n con el hardware Arduino y por ofrecer la posibilidad de migrar las aplicaciones al entorno Android de manera sencilla pero con algunas limitaciones La interfaz de usuario ha sido dise ada a partir de las herramientas que ofrece Processing para mostrar elementos gr ficos en pantalla En la construcci n de la p gina web se ha utilizado HTML en su versi n 5 PHP para la generaci n din mica de contenido y Processing js empleado en los applets o sketches encargados de representar gr ficamente los datos La maquetaci n y dise o visual de la web se separa del contenido de la misma a trav s del uso del archivo CSS hoja de estilos en cascada asociado a la p gina web Los servicios correspondientes a estas herramientas y el motor SQL de la base de datos son ejecutados en el servidor a
266. s est n activos en ese momento oF Riego AD SEP Auto Ventilaci n Ilustraci n 5 Controles de riego y ventilaci n En el modo autom tico el sistema de ventilaci n responde autom ticamente a las condiciones impuestas sobre humedad ambiental y temperatura interior mientras que el sistema de riego controla la humedad del suelo Las condiciones de activaci n de los sistemas de riego y ventilaci n dependen de los valores fijados por el usuario mediante los selectores 3 4 Condiciones actuales del invernadero La informaci n referente a las condiciones actuales del invernadero es mostrada mediante mensajes de texto e im genes descriptivas del estado actual de cada condici n Si se produce una alerta en el estado de las condiciones el texto y la imagen mostrada cambian para informar al usuario de que se ha producido una situaci n que requiere su atenci n Temperatura exterior OK Temperatura interior OK Humedad ambiental OK Nivel de agua para riego Ok Ilustraci n 6 Informaci n de condiciones actuales Estas condiciones son comprobadas cada vez que llega una nueva lectura desde los sensores actualizando la informaci n mostrada consecuentemente wt Miguel Angel Hernanz Hernanz Temperatura exterior o temperatura inferior al m nimo o temperatura nominal om o temperatura superior al maximo Temperatura interior temperatura inferior al m nimo o temperatura nominal 4 o tempera
267. s propuestaS cecccceeseeeeseeeeeeees 42 Ilustraci n 14 Diagrama de Ganitt ccccesecceeseessceseeeeeeseceeeseceeeseceecseceeecseceeeseeesesseceseeeeeaeessaeees 43 Ilustraci n 15 Vista esquem tica del prototipo hardware inicial ooonncnnnnncnncncnnnnononnncnnnnrcnnnnn 49 ndice de tablas Tabla 1 Obtenci n de los Puntos de Funci n No AjustadoS ooccncciccnncnnonononoononononncnn noo nonnnnonancnnns 32 Tabla 2 C lculo de los PFNA de la Aplicaci n de EscrItOliO oonoccnccnnnncnncnnncnccnnonnrnnononanconncnnnons 36 Tabla 3 C lculo de los PFNA de la Aplicaci n ANdrO0lO oooconcncconnccnnononconnnnnononn nan nannnc nro nncnn cronos 36 Tabla 4 C lculo de los PFNA de la P gina Web ooococincnionicnccnnnccnncnncnornnccnnconcnncnncnn cnn cnncnncrn canon 36 Tabla 5 Asociaci n de factores de complejidad por aplicaci n ooconocnnncnnnncnnconcnonncnrnonncnnncrnnncnos 37 Tabla 6 Extracto de la tabla de Capers Jones ccceccesscessesceeseceseesececeeseenseeseceseeseceseseensesneeeaeensaees 38 Tabla 7 Asignaci n de valor a los atributos relativos al esfuerzo ooncncnnnnononononononcnncnarncnnnons 39 Tabla 8 Valor de las constantes seg n modo de desarrollo oonocononcnnncninnionnocnnocoornconcnnncononnnonnnnno 40 Tabla 9 Atributos asignados para cada subsistema y previSIONES oooonccocnononnnonnanocanacnncnncnncancconnons 40 Tabla 10 Costes de los recursos hardware
268. salida Array de valores de temperatura interior humDTH salida Array de valores de humedad ambiental humSuelo salida Array de valores de humedad del suelo nivelH20 salida Array de valores del nivel de agua en dep sito Guarda en los arrays utilizados para mostrar los gr ficos temporales las lecturas recibidas Descripci n si se ha cumplido el intervalo de actualizaci n de gr ficos Cada lectura se guarda en la posici n indicada por el par metro indice En caso de que indice alcance el tama o de actualizaciones de pantalla fijado es reiniciado a 0 Procedimientos asociados draw 81 Tabla 16 Procedimiento almacenarLecturas ORTDUINO Miguel Angel Hernanz Hernanz ID salvarLecturas Nombre E S Funci n Par metros datos entrada Datos de la ltima lectura de los sensores recibida a aes Guarda la ultima lectura recibida en la base de datos del servidor en el intervalo fijado para Descripci n E ello mediante una consulta en SQL Procedimientos A draw asociados Tabla 17 Procedimiento salvarLecturas ID salvarConfig Parametros Guarda la configuraci n sobre los rangos aceptables para las variables y el modo de eee control de cada sistema en el archivo config txt del servidor Si la conexi n con la aplicaci n Descripci n Android est activa y se necesita salvar la configuraci n env a un mensaje hacia la aplicaci n Android para notificar e
269. sarrollo de Arduino se procede a cargar el archivo hortduino ino abierto en la aplicaci n Arduino en el dispositivo empleando para ello el bot n Cargar de la barra de botones de la aplicaci n 7 2 Instalaci n de la aplicaci n de escritorio La aplicaci n de escritorio requiere del entorno Java Runtime Environment versi n 7 o superior el cual puede ser descargado de https www java com es download Es necesario que se mantenga el contenido y estructura del directorio de la aplicaci n para su correcto funcionamiento 20 ORTDUINO Miguel Angel Hernanz Hernanz 7 3 Instalaci n de la aplicaci n Android Para instalar la aplicaci n en el dispositivo Android es necesario copiar el archivo de paquete de aplicaci n Hortduino 1 0 beta apk en el almacenamiento interno y ejecutar su instalaci n con la utilidad Instalador del paquete de Android al 17 27 Uso de acciones completas fr Instalador del paquete EM Verificar e instalar Establ como predet Ilustraci n 23 Instalaci n en Android I Se mostrar un mensaje de informaci n sobre los permisos que requiere la aplicaci n sobre conexi n a la red y el sistema de archivos Pulse en nstal y se finaliza la instalaci n ag il 17 35 Bl Preparando tarjeta SD Desea instalar esta aplicaci n Permitir a esta aplicaci n Almacenamiento dificar eli ontenidos del Aplicaci n instalada Comunicaci n por red Internet sin l mites
270. se actualiza cada 30 segundos ALERTA Humedad del suelo baja Ilustraci n 39 Secci n Estado Actual de la web dd Consumo de agua La idea detr s de esta secci n es mostrar al usuario informaci n til acerca del nivel de agua para riego disponible en el dep sito Al valor porcentual del nivel mostrado en las interfaces de la aplicaci n de escritorio y Android se suma el consumo total de agua registrado el consumo medio por d a y la duraci n estimada del agua restante en el dep sito Consumo de agua para riego Consumo total 467 unidades Consumo medio diario 51 9 unidades d a Previsi n de duraci n de agua restante 11 dias Ilustraci n 40 Secci n Consumo de Agua de la p gina web 111 Miguel Angel Hernanz Hernanz ORTDUINO dd Temperaturas Esta secci n est pensada para mostrar al usuario informaci n acerca de los valores significativos de las temperatura registradas por los sensores Se ofrece informaci n sobre la temperatura interior y exterior m nima m xima y media en el intervalo de tiempo que introduzca el usuario en el campo dispuesto a tal fin Temperaturas registradas Temperatura interior media 22 1 C Temperatura interior m xima 23 C Temperatura interior m nima 21 C Temperatura exterior media 24 1 C Temperatura exterior m xima 26 C Temperatura exterior m nima 22 C Se muestran los datos del 12 04 2014 al 15 04 2014 3 d
271. sistema Hortduino 69 ORTDUINO Miguel Angel Hernanz Hernanz Estado actual Estado temperatura interior Estado temperatura exterior P gina Web Estado humedad ambiental Estado humedad del suelo Estado nivel de agua Actividad del riego Actividad de ventilaci n 1 n guarda lecturas 1 n 0 n env a lecturas 0 1 1 1 lt _carga guarda Aplicaci n Android 1 1 Servidor XAMPP conecta 1 1 z lee 1 1 Array de sensores Configuraci n de condiciones 1 Luminosidad Temperatura Interior maxima Temperatura Interior Temperatura Interior minima 1 1 Temperatura Exterior Temperatura Exterior maxima z Humedad Ambiental Temperatura Exterior minima Configuraci n de IP Direcci n IP de ap escritorio Humedad del suelo Nivel de agua Humedad Ambiental m xima Humedad Ambiental minima Humedad del suelo m ximia Humedad del suelo minima Nivel de agua m ximo Nivel de agua minimo llustraci n 15 Diagrama Entidad Relaci n del sistema En el diagrama de la ilustraci n anterior se han obviado algunos atributos de poca importancia para el sistema de datos como pueden ser direcciones IP y puertos con objeto de simplificar y facilitar la lectura del diagrama Entidad Relaci n En este proyecto se ha optado por una aproximaci n mixta en lo referente al almacenamiento persistente de los diferentes datos usados por el sistema mientras que las lecturas enviada
272. so Acci n 1 Si el paquete UDP no es de la longitud esperada se sustituyen todos los P datos por ceros y se muestra un error p1 Si no se recibe ning n paquete se muestra el men de configuraci n de red o un mensaje de espera Rendimiento 1 5 segundos Frecuencia esperada Cada 1 5 segundos Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 42 Caso de uso RF 25 Mostrar datos de lecturas recibidas 43 ORTDUINO Miguel Angel Hernanz Hernanz RF 26 Comprobar condiciones Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 02 Mostrar informaci n de sensores remotos OBJ 04 Cambiar estado de los sistemas de riego y ventilaci n OBJ 06 Control automatizado de los sistemas de riego y ventilaci n OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 34 Recibir lecturas de Arduino RF 08 Cambiar el modo del sistema de ventilaci n RF 07 Cambiar el modo del sistema de riego RF 20 Enviar rdenes a Arduino RF 12 Reenviar lecturas a aplicaci n Android RF 27 Configurar rangos aceptables de las variables RF 28 Mostrar condiciones actuales del invernadero Descripci n Comprueba las condiciones actuales del invernadero para activar desactivar los sistemas de riego y ventilaci n si se ha seleccionado el modo autom tico Muestra de forma gr fica el esta
273. ssssesscessesscesscsscesscescessceseesecesecsecesecasessesseeeenaes 73 3 3 2 DIAGRAMA DE FLUJO DEL DISPOSITIVO ARDUINO cccccccccssccessceesseeeesees 74 3 3 3 DIAGRAMA DE FLUJO DE LA APLICACI N DE ESCRITORIO ocociniccincccinconcnos 75 3 3 4 DIAGRAMA DE FLUJO DE LA APLICACI N ANDROID ccccccsesseseseseseseseeees 76 3 3 5 DIAGRAMA DE FLUJO DE LA P GINA WEB scscsssssssesssessesessesvssestsncsvsneaceveees 77 3 3 6 PROCEDIMIENTOS DE LA APLICACI N ARDUINO cccscscssessssesseseseseesesessees 78 3 3 7 PROCEDIMIENTOS DE LA APLICACI N DE ESCRITORIO c cscsesssesseeeeeee 80 3 3 8 PROCEDIMIENTOS DE LA APLICACI N ANDROID cccsscscssessssessseseseeseseesees 90 3 3 9 PROCEDIMIENTOS DE LA PAGINA WEB cccsssssssesessssessesecstseseesesetsesssecsvacaeaveeee 96 3 4 DISE O DE LAS INTERFACES DE USUARIO cecccssccessssessesceesesesesecsvscsesesvevevsceeeees 100 3 4 1 DISPOSITIVO ARDUINO o ooooococononoononnonnonanonnconncononononnnonnonanonnnonnnnonnnona conan conan nono nnoo 100 3 4 2 APLICACI N DE ESCRITORIO uni n 100 3 4 3 APLICACI N ANDO tad 105 DM Ae AIA E ota 108 ltimas VC PA a a 109 Estadistica card in AAA ia 110 Estado act renean a E a a e E A ESES 111 AAA TS 111 A NO 112 Sobre HOLA o OOO PPPPAO O AO57 705 O0o oe sieer a hioin n een r Eae SEEE a Seven eases 112 LIMPLEMENTA CT ON radial ii 114 S PRUEBAS DEL SISTEMA 233420350 sccacciccosersaccuatescoacecdtessreseesnseesds4 ases E E G
274. sta manera s lo hay que recurrir a la funci n de Processing que efect a la lectura de informaci n de un archivo remoto para que el int rprete PHP ejecute la acci n requerida remotamente con los par metros suministrados y genere el resultado en el archivo remoto objeto de la modificaci n solicitada ll APLICACI N PARA DISPOSITIVOS ANDROID Esta aplicaci n se idea como una extensi n de la aplicaci n principal de escritorio tras descubrir la f cil adaptaci n de las aplicaciones construidas con Processing al entorno Android Los nicos problemas encontrados son los referentes a la interfaz de usuario ya que no se pueden 2 Idea extra da de http www learningprocessing com 54 e Miguel Angel Hernanz Hernanz utilizar los componentes disponibles en la GUI de Android para mostrar botones o elementos gr ficos interactivos al ser el m todo de dibujado en pantalla incompatible con Processing por lo que se ha implementado su funcionalidad y comportamiento en clases espec ficas para esta aplicaci n El resultado obtenido no es del todo ptimo de cara al usuario pero es aceptable en el desempe o de la aplicaci n 8 CONCLUSIONES Y POSIBLES AMPLIACIONES 8 1 CONCLUSIONES P Plataforma de desarrollo Open Hardware La plataforma de hardware libre Arduino posee un gran potencial en proyectos relacionados con todo tipo de actividades que incluyan la adquisici n de datos a trav s de sensores Adem s de su bajo coste Arduino
275. stado Validado Estabilidad Alta Comentarios n a Tabla 48 49 Caso de uso RF 31 Mostrar gr ficos temporales de variables wt Miguel Angel Hernanz Hernanz RF 32 Cambiar intervalo de actualizacion de graficos Version 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 08 Informar sobre las condiciones actuales del invernadero Requisitos asociados RF 31 Mostrar gr ficos temporales de las variables Descripci n Cambia el intervalo de dibujado actualizaci n de los gr ficos temporales Precondici n Dispositivo Arduino en funcionamiento Conexi n disponible con Arduino Conexi n disponible con aplicaci n de escritorio Conexi n con servidor XAMPP Aplicaci n de escritorio en funcionamiento Secuencia normal Paso Acci n 4 Se muestra en pantalla los selectores de actualizaci n para cada unidad de P tiempo horas minutos y segundos p2 El usuario modifica el intervalo usando los botones de incremento y decremento en cada unidad de tiempo mostrada Se convierte cada intervalo modificado a milisegundos y se combinan en la p3 variable encargada de controlar si se ha cumplido el intervalo de actualizaci n de gr ficos Postcondici n La configuraci n de actualizaci n de gr ficos temporales ha sido cambiada Paso Acci n Excepciones N a N a Rendimiento No definido Frecuencia esperada No
276. stalaci n y su uso con Im genes y textos descriptivos Qu es Hortduino Hortduino es un sistema de gesti n y control remoto de invernadero El t rmino Hortduino viene de la uni n de las palabras hortelano y Arduino la popular plataforma de open hardware de bajo coste Este sistema cuenta con varias herramientas que ayudan al usuario a mantener las condiciones ptimas del crecimiento de la cosecha y recogen datos tiles para analizarlos y extraer conclusiones sobre el resultado obtenido Qu puede hacer Hortduino El sistema Hortduino es capaz de automatizar tareas como el riego o la ventilaci n del invernadero en base a los par metros fijados por el usuario sobre las condiciones supervisadas Tambi n ofrece informaci n recibida desde los sensores instalados en tiempo casi real y de manera continuada por lo que el usuario est informado en todo momento de las condiciones presentes del invernadero Esta informaci n se puede recibir en cualquier ubicaci n si el usuario emplea la aplicaci n Android del sistema para por ejemplo recibir la informaci n y controlar el invernadero desde un smartphone que cuente con el sistema operativo Android mientras se encuentra lejos del invernadero Si se desea acceder a los registros pasados de la informaci n generada por Hortduino la p gina web pone a disposici n del usuario una serie de secciones individuales en la que se presentan la informaci n obtenida de los sensores en gr fi
277. ste evento Procedimientos draw asociados receive Tabla 18 Procedimiento salvarConfig ID mostrarDatos Nombre E S Funci n Par metros E arrayDatos entrada Datos de la ltima lectura de los sensores recibida Descripci n Muestra en pantalla los nombres de las variables y el ltimo valor recibido para cada una Procedimientos draw asociados Tabla 19 Procedimiento mostrarDatos ID establecerUltimaAct A Nombre E S Funci n Par metros ae re ultimaAct salida fecha y hora de la recepci n de la ltima lectura de los sensores Descripci n Muestra en pantalla la fecha y hora de la recepci n de la ltima lectura de los sensores Procedimientos asociados draw Tabla 20 Procedimiento establecerUltimaAct 82 ORTDUINO Miguel Angel Hernanz Hernanz ID comprobarCondiciones Nombre E S Funci n Par metros arrayCondiciones entrada Array con los rangos aceptables de las variables estCondiciones salida Estado de las condiciones del invernadero en c digo num rico Comprueba si el valor actual de las condiciones del invernadero se encuentra dentro de los oi rangos aceptables fijados por el usuario mostrando en pantalla el estado de las Descripci n condiciones mediante l neas de texto informativas junto a un icono representativo del estado actual Devuelve una cadena con el c digo del estado de las condiciones
278. t lt luminosidad gt lt temperatura interior gt lt temperatura exterior gt lt humedad ambiental gt lt humedad del suelo gt lt nivel de agua gt lt modo de control sistema riego gt lt modo de control sistema ventilaci n gt El c digo asociado a los modos de control de los sistemas de riego y ventilaci n establece las siguientes convenciones e 0 El sistema se establece en modo apagado OFF manualmente por el usuario e 1 El sistema se establece en modo encendido ON manualmente por el usuario e 2 El sistema se establece en modo de funcionamiento autom tico AUTO y act a en base a la configuraci n aceptable de rangos que el usuario ha establecido Archivo condiciones txt lt estado temperatura interior gt lt estado temperatura exterior gt lt estado humedad ambiental gt lt estado humedad del suelo gt lt estado nivel de agua gt lt actividad sistema de riego gt lt actividad sistema de ventilaci n gt El c digo interno para representar cada estado se establece en lo siguiente e 1 El estado actual indica que no se alcanza el valor m nimo establecido para esa variable e 0 El estado actual indica una situaci n normal dentro de los rangos permitidos 1 El estado actual indica que se ha sobrepasado el limite m ximo fijado para esa variable Para indicar la actividad de los sistemas de riego y ventilaci n se utiliza el valor 1 si el sistema en cuesti n se encuentra activo en ese momento y el va
279. teMax _limiteMax tamFuente _tamFuente id _id textSize tamFuente ancho displayWidth 2 margen alto 2 tamFuente 115 Miguel Angel Hernanz Hernanz DUINO private String selectorPresionado float x float y int ancho int idnt String maxmin Devuelve en un string el 1D del selector presionado String resultado NONE 0 if punteroSobreBoton int x ancho 2 int y ancho ancho idnt this id resultado maxmin idnt sltrPresionado true Indica que hay un selector que esta siendo presionado return resultado private void dibujarMarcador float x float y int ancho String identmaxmin int idSelector Muestra los tri ngulos indicadores sobre la linea if sltrPresionado selectorpres selectorPresionado x y ancho this id identmaxmin String cadena split selectorpres if touchEvent MOVE amp amp cadena 0 equals NONE noStroke if int cadena 1 this id amp amp identmaxmin MIN amp amp cadena 0 equals MIN fill 240 104 89 x constrain mouseX margen displayWidth margen triangle x y x ancho 2 ytancho xtancho 2 y ancho stroke 250 textSize tamFuente 2 text identmaxmin x textWidth identmaxmin 2 y ancho tamFuente 2 Muestra MAX o MIN debajo del triangulo marcador minimo int map mouseX margen displayWidth margen limiteMin l
280. temas de riego y ventilaci n a voluntad del usuario Todas las ordenes recibidas en la aplicaci n de escritorio son transmitidas en el siguiente intervalo temporal disponible hacia el hardware Arduino de modo que sean ejecutadas lo antes posible Miguel Angel Hernanz Hernanz ORTDUINO La aplicaci n que se ejecuta en el dispositivo Android debe conocer la IP de la aplicaci n de escritorio para recibir la informaci n procesada sto se consigue ejecutando un script PHP en el servidor que recaba la IP asignada en ese momento y la almacena en un fichero de texto plano El contenido del fichero es le do por la aplicaci n Android durante su inicializaci n 1 envia_datos 0 n conecta ooo XAMPP APLICACION envia_configuraci n SERVER ESCRITORIO 1 1 Ilustraci n 4 Modelo de negocio Aplicaci n escritorio XAMPP Server La interacci n entre la aplicaci n de escritorio y el servidor XAMPP se efect a fundamentalmente mediante el env o de datos y el intercambio de la configuraci n almacenada en los archivos dispuestos para tal fin Los datos enviados por la aplicaci n de escritorio son incluidos en la estructura de la consulta SQL que se ejecuta en el m dulo MySQL del servidor incorpor ndose stos a la base de datos como resultado de dicha consulta El env o de datos se establece inicialmente en un intervalo temporal adecuado 10 minutos para no crear una base de datos demasiado grande aunque este
281. ten license or stated as exceptions the above requirements apply either way 65 e Miguel Angel Hernanz Hernanz 8 Termination You may not propagate or modify a covered work except as expressly provided under this License Any attempt otherwise to propagate or modify it is void and will automatically terminate your rights under this License including any patent licenses granted under the third paragraph of section 11 However if you cease all violation of this License then your license from a particular copyright holder is reinstated a provisionally unless and until the copyright holder explicitly and finally terminates your license and b permanently if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation Moreover your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means this is the first time you have received notice of violation of this License for any work from that copyright holder and you cure the violation prior to 30 days after your receipt of the notice Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License If your rights have been terminated and not permanently reinstated you do not qualify to receive new licenses for the same material under section 10
282. tiene a su disposici n la informaci n sobre los diversos aspectos del invernadero y los controles para establecer las condiciones aceptables y los modos de control de los sistemas de riego y ventilaci n Los diferentes elementos que componen la interfaz son explicados en detalle a continuaci n 3 1 ltima lectura recibida de los sensores En la zona superior izquierda de la ventana se muestra la informaci n mas reciente recibida desde los sensores Estos datos se reciben pr cticamente en tiempo real desde los sensores conectados al hardware Arduino con una frecuencia aproximada de 1 5 segundos entre actualizaciones Luminosidad 66 Temperatura exterior 23 0 C Temperatura interior 21 C Humedad interior 38 Humedad del suelo O Ilustraci n 3 Ultima lectura recibida desde los sensores e Miguel Angel Hernanz Hernanz 3 2 Gr ficos de evoluci n reciente de las variables Debajo de la informaci n mas reciente se dibujan las gr ficas correspondientes a los valores de luminosidad y temperaturas y a los valores de la humedad ambiental y del suelo Estas dos gr ficas no tienen escala definida y se utilizan principalmente para observar las oscilaciones de las variables monitorizadas en un espacio de tiempo que el usuario puede definir utilizando los controles situados en la parte inferior derecha de la ventana LUMINOSIDAD Y TEMPERATURA HUMEDAD Ilustraci n 4 Gr ficos de las variables Pueden result
283. tilaci n se opt por un conjunto de botones acompa ados de animaciones que representasen su funcionamiento o no en ese instante oF Riego Auto Ventilaci n 4 SEP Ilustraci n 23 Controles y actividad de los sistemas remotos Cada bot n refleja con el color y el texto interior el modo de control del sistema correspondiente pudiendo establecerse en manual ON OFF o autom tico AUTO Si el sistema se encuentra en funcionamiento la imagen del lado derecho mostrar dicha actividad en forma de animaci n como gotas que caen del tubo o por el giro del ventilador Con el objetivo de informar al usuario del nivel de agua disponible para riego de forma visual se dise una representaci n sencilla del dep sito junto al nivel actual de agua contenida en el mismo El nivel representado var a su altura dependiendo del valor porcentual que se reciba desde el sensor y el porcentaje num rico es mostrado justo por encima del nivel porcentual actual El color del relleno del dep sito var a su transparencia basado en el nivel de contenido actual mayor transparencia a menor nivel para mejorar la representaci n contribuyendo a la percepci n del nivel por el usuario 57 Ilustraci n 24 Nivel de agua en dep sito En el caso de las condiciones del invernadero se aplica la misma filosof a visual que hemos visto hasta ahora La representaci n del estado de las condiciones actuales del invernadero emplea un conjunto d
284. tivo Arduino para convertirlos en datos usables por la aplicaci n y por otra parte monitoriza la conexi n del dispositivo Android a la aplicaci n para reenviar las lecturas obtenidas y recabar las rdenes enviadas desde dicho dispositivo Enviar Ordenes Este procedimiento se encarga de enviar las rdenes generadas por la aplicaci n de escritorio al dispositivo Arduino seg n el intervalo de tiempo fijado Tambi n se ocupa de recargar las condiciones para reflejar los posibles cambios de estado si es necesario dd Comprobar Estados Se trata de los procedimientos implicados en actualizar el estado de los sistemas de riego y ventilaci n en base al modo de funcionamiento establecido por el usuario mediante los botones correspondientes en la interfaz 25 wt Miguel Angel Hernanz Hernanz Comprobar Condiciones Comprende el procedimiento que compara los valores actuales de las variables monitorizadas con los rangos fijados por el usuario de la aplicaci n Se encarga de informar al usuario activando alertas visuales en la interfaz de la aplicaci n si hay valores fuera del rango nominal establecido para cada condici n Conexi n Red Es el encargado de comprobar si la conexi n con el dispositivo Arduino es funcional En caso de que esta conexi n no fuera posible o se presentase una interrupci n en la misma este m dulo se encarga de indicarlo en la interfaz de la aplicaci n y mostrar a un men para configurar los par
285. to de los datos obtenidos a trav s de los sensores del sistema en una base de datos MySQL para su tratamiento posterior P Presentaci n gr fica de los datos almacenados para su visualizaci n v a web 2 2 CUESTIONES METODOL GICAS Este proyecto seguir una metodolog a de desarrollo basada en sucesivas iteraciones sobre un prototipo inicial a adiendo nuevas funcionalidades a medida que stas son testeadas y ampliadas El empleo de esta metodolog a permite apreciar la funcionalidad b sica del software en desarrollo sin tener en cuenta todas las caracter sticas del mismo y evaluar el producto de forma temprana por parte de los usuarios adem s de observar si se ajusta a los requisitos establecidos inicialmente La elecci n de la metodolog a basada en prototipos para este proyecto se fundamenta en la efectividad de esta metodolog a en proyectos con alta interacci n con el usuario y su validez en sistemas transaccionales como los usados en bases de datos donde las operaciones han de completarse enteramente para ser validadas correctamente En el caso particular de este proyecto las dos situaciones anteriores est n presentes de forma notable tanto en la parte hardware como en el software con lo que el ajuste a esta metodolog a parece ser adecuado para este PFC Dentro de los modelos englobados en esta metodolog a se usa el Modelo Evolucionario de Prototipado basado en el sucesivo refinamiento del prototipo inicial Este modelo ti
286. toresAct 83 Tabla 23 Procedimiento dibujarSelectoresAct wt Miguel Angel Hernanz Hernanz ID dibujarBotonesyEstados Parametros Dibuja en la pantalla los elementos graficos correspondientes a los botones y estados de Descripci n los sistemas de riego y ventilaci n y los selectores de los rangos aceptables para las variables Procedimientos draw dibujarBoton asociados dibujarSelectores dibujarEstadoOrdenes Tabla 24 Procedimiento dibujarBotonesyEstados ID dibujarGraficosyEjes Par metros Dibuja en la pantalla los gr ficos temporales de la luminosidad temperatura interior y Descripci n exterior humedad ambiental y humedad del suelo con sus correspondientes ejes Tambi n muestra gr ficamente el porcentaje de agua restante en el dep sito de riego draw Procedimientos dibujarGrafico asociados dibujarEjes dibujarDeposito Tabla 25 Procedimiento dibujarGraficosyEjes ID dibujarSelector Nombre E S Funci n x entrada Posici n de la esquina superior izq del selector en el eje X y entrada Posici n de la esquina superior izq del selector en el eje Y texto entrada Intervalo de actualizaci n de los gr ficos en pantalla Par metros valor entrada Valor actual del selector id entrada Identificador nico del selector maximo salida Valor m ximo permisible m nimo salida Valor m nimo permisible Dibuja en
287. torio aplicaci n de escritorio Fallo en la conexi n con la aplicaci n de Se muestra la pantalla de informaci n con los valores escritorio de conexi n empleados nee TARA Se comprueban las condiciones relativas al sistema de Activaci n del sistema de ventilaci n de wii cle A ae ventilaci n y el modo de control actual y se env an las Vv forma automatica 2 peace eee rdenes correspondientes a la aplicaci n de escritorio Ed er Se comprueban las condiciones relativas al sistema de Desactivaci n del sistema de ventilaci n os A ve ventilaci n y el modo de control actual y se env an las Vv de forma automatica gases ne rdenes correspondientes a la aplicaci n de escritorio ia Se comprueban las condiciones relativas al sistema de Activaci n del sistema de riego de forma E a riego y el modo de control actual y se envian las Vv automatica z PNA PEN rdenes correspondientes a la aplicaci n de escritorio es Se comprueban las condiciones relativas al sistema de Desactivaci n del sistema de riego de E eN riego y el modo de control actual y se env an las Vv forma automatica A ee PE rdenes correspondientes a la aplicaci n de escritorio La aplicaci n carga los valores de configuraci n de Carga e inicializaci n de la configuraci n rangos aceptables y modos de control desde el archivo id de usuario de configuraci n del servidor Si no es posible la carga se emplea la configuraci n nula por defecto La
288. tos de la interfaz La caracter stica fundamental de esta aplicaci n se la otorga el uso del sistema operativo Android y los dispositivos en los que se puede ejecutar y no es otra que la movilidad que confiere al usuario mientras hace uso de las funciones de la aplicaci n de forma remota l Interacci n con otros sistemas En lo relativo a la comunicaci n con otros subsistemas esta aplicaci n interact a con la aplicaci n de escritorio siendo esta ltima la encargada de ejecutar las rdenes enviadas desde la aplicaci n Android y de reenviar la informaci n obtenida del hardware Arduino hacia el cliente Android Tambi n interact a con el servidor XAMPP para cargar la configuraci n que establece el usuario Esta aplicaci n tiene la misma prioridad que la aplicaci n de escritorio en lo concerniente al cambio de par metros de los rangos aceptables pertenecientes a las variables monitorizadas y al env o de rdenes a los sistemas de riego y ventilaci n amp Limitaciones y dependencias A diferencia de la aplicaci n de escritorio la aplicaci n para Android no pose funcionalidad de comunicaci n con la base de datos usada para almacenar la informaci n recibida y al igual que la aplicaci n de escritorio necesita que sta ltima y los servicios del servidor XAMPP se encuentren en ejecuci n Si no se cumplen estos requisitos la aplicaci n para Android no se iniciar Es necesario que el dispositivo Android disponga de
289. trar modo de funcionamiento de los aio aa ria riego y ventilaci n es representado correctamente en Vv sistemas de riego y ventilaci n los botones de control de cada sistema P sis La actividad o inactividad de los sistemas de riego Mostrar la actividad o inactividad de los ptes go y E oe ventilaci n es mostrada en la interfaz del usuario Vv sistemas de riego y ventilaci n i ene mediante animaciones de imagenes Los valores m ximos y m nimos relativos a cada Cambiar los rangos aceptables de las e i ieee variable son alterados por el usuario mediante los Vv variables monitorizadas a controles dispuestos en la interfaz Mostrar los rangos aceptables de las Se muestran en pantalla los valores m ximos y variables monitorizadas m nimos permitidos de las variables monitorizadas Mostrar el intervalo de actualizaci n de Se muestra en la interfaz el valor empleado en el a los gr ficos de evoluci n de las variables intervalo de actualizaci n de los gr ficos de evoluci n El intervalo es modificado por el usuario a su voluntad bs er Las unidades son ajustadas correctamente al alcanzar Modificar el intervalo de actualizaci n de pa Sia una cantidad que supone el incremento de la unidad Vv los gr ficos de evoluci n de las variables E de tiempo superior Por ejemplo 61 segundos 1 minuto y 1 segundo El sistema afectado cambia su modo de control con Cambiar el modo de control de los cada pulsaci n r
290. treo de temperatura seg n datasheet LM35 10mV C y voltaje de referencia de 5V gt 5 100 lectura 1024 10 muestras 0 048875855 tempLM35 sumTemps 0 048875855 datos luminosidad Construye un string con todos los datos de los sensores separados por comas datos dtostrf tempLM35 2 1 bufferTemp Convierte el valor float con un decimal a string datos String bufferTemp datos datos tempDHT datos datos humedadDHT datos datos humedadSuelo datos datos nivelH20 datosSensores datos Contiene los datos formateados para enviar a Processing Serial println datosSensores Debug serial Cuadro 2 Procedimiento de lectura de sensores en Arduino En la ilustracion 15 se representa el modelado del prototipo hardware inicial realizado en el programa de dise o de prototipos Fritzing Este programa permite exportar los esquemas del dise o a un formato compatible con la producci n f sica del PCB incluyendo los componentes necesarios y el ruteado de las pistas sobre la placa 49 e Miguel Angel Hernanz Hernanz Sensor Ultrasonidos Potenci metro Sensor DHT11 Sensor humedad suelo yeso Sensor LM35 VENTILADOR VALVULA BOMBA RIEGO Alimentaci n fritzing Ilustraci n 15 Vista esquem tica del prototipo hardware inicial dd ESTRUCTURA DE DATOS Y PROTOCOLO La transmisi n de datos entre A
291. tual para informar al usuario de que se requiere su atenci n ultimaslect php estadisticas php Elementos actual php P consumoagua php asociados temperaturas php index php estilo css Tabla 63 menu php ID estadisticas php Nombre E S Funci n Luminosidad entrada Casilla de selecci n de luminosidad Nivel de agua entrada Casilla de selecci n de nivel de agua Humedad del suelo entrada Casilla de selecci n de humedad del suelo Humedad ambiental entrada Casilla de selecci n de humedad ambiental Temperatura exterior entrada Casilla de selecci n de temperatura exterior Temperatura interior entrada Casilla de selecci n de temperatura interior Par metros Riego activo entrada Casilla de selecci n de actividad de riego Ventilaci n entrada Casilla de selecci n de actividad de ventilaci n Selector del n mero de registros a utilizar para dibujar el gr fico El valor puede ser una de las siguientes opciones mostradas al usuario en la lista desplegable valor entrada 72 medio d a 144 un d a 288 dos d as 586 cuatro d as ee Muestra en pantalla la secci n Estadisticas usando la selecci n de datos suministrados por Descripci n f apnea ae el usuario a trav s de la lista desplegable y las casillas de selecci n individual Elementos menu php asociados sketchEstadisticas pde Tabla 64 estadisticas php 96 ORTDUINO Miguel Angel Hernanz Hernanz
292. tura superior al m ximo J Humedad ambiental o humedad baja o humedad nominal o humedad elevada e Humedad del suelo o humedad baja o humedad nominal o humedad elevada kki Nivel de agua en dep sito o nivel de agua bajo o nivel de agua nominal nO o nivel de agua demasiado alto Las im genes representativas de las condiciones son las siguientes ORTDUINO Miguel Angel Hernanz Hernanz 3 5 Selectores de condiciones aceptables y actualizaci n Los selectores permiten al usuario cambiar el valor m nimo o m ximo establecido para cada variable monitorizada Para cambiar el valor contenido en la caja de texto el usuario debe hacer click o dejar pulsado el bot n izquierdo del rat n sobre el tri ngulo superior si quiere aumentar el valor o sobre el tri ngulo inferior para disminuir el valor mostrado Humedad suelo min Humedad suelo ma Temperatura int min Temperatura int ma Temperatura ext min Temperatura ext ma Nivel de agua ma Nivel de agua min 40 Humedad int min Humedad int max nu a gt y ur y gt Oe w a at ot a A w Ilustraci n 7 Selectores de rangos aceptables Si se desea cambiar la frecuencia de actualizaci n de los gr ficos mostrados sobre la evoluci n reciente de las variables se procede de similar manera sobre el grupo de selectores situado debajo de los anteriores Horas o Minutos o Segundos KN Intervalo
293. ue no cuenta con elementos capaces de cambiar la configuraci n o el modo de funcionamiento de los sistemas remotos La interacci n con el usuario se limita nicamente a visualizar la informaci n disponible en el sistema por lo que se convierte en un medio de acceso a los datos hist ricos del invernadero El en dise o de los elementos informativos de la p gina web se ha empleado el lenguaje Processing usado en la implementaci n de las aplicaciones de escritorio y Android adaptado a las tecnolog as web Esta variante conocida como Processing js es similar en funciones a Processing pero tiene ciertas restricciones derivadas del uso del elemento canvas de HTMLS lo que limita las funciones nativas utilizables de Processing Para continuar con el estilo de las interfaces vistas en la aplicaci n de escritorio y Android los sketches utilizan una combinaci n de colores e im genes informativas similar a la de los elementos presentes en dichas interfaces La estructura de la p gina web se basa en un dise o a dos columnas donde la columna Izquierda contiene el men de opciones y la columna derecha muestra el contenido generado din micamente para dicha opci n xo En la ilustraci n de la izquierda se muestra la estructura del men de opciones seg n aparece en la p gina Cada secci n viene representada por un bot n que enlaza a la p gina correspondiente Para informar al usuario de las alertas activas en el sistema la secci n
294. ue no se reciban paquetes UDP Descripci n desde Arduino en un intervalo fijado El usuario puede cambiar la IP y puerto a la que intentar conectar Procedimientos asociados establecerConexion Tabla 13 Procedimiento mostrarMenuConfigConex 80 ORTDUINO Miguel Angel Hernanz Hernanz ID inicializaConfig Nombre E S Funci n Par me tros arrayCondiciones salida elas e m ximas y m nimas fijadas por el usuario para las estadoOrdenes salida Modo de control de los sistemas de riego y ventilaci n Descripci n Carga la configuraci n almacenada en el archivo config txt establecida por el usuario Procedimientos setup asociados draw Tabla 14 Procedimiento inicializaConfig ID inicializarAnimacion Nombre E S Funci n Par metros anRiego salida Frames de la animaci n de riego activo anVent salida Frames de la animaci n de ventilaci n activa Descripci n Carga en memoria las animaciones del riego y ventilaci n Procedimientos asociados famed Tabla 15 Procedimiento inicializarAnimacion ID almacenarLecturas Nombre E S Funci n arrayDatos salida Array con los datos recibidos de los sensores indice salida Posici n de inserci n en los arrays de gr ficos temporales lum salida Array de valores de luminosidad Par metros tempLM35 salida Array de valores de temperatura exterior tempDHT
295. um rica que identifica de manera l gica y jer rquica a una interfaz de un dispositivo dentro de una red que utilice el protocolo IP SQL Son las siglas en ingl s de Structured Ouery Language o lenguaje de consulta estructurado Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas HTML El lenguaje de marcas de hipertexto HyperText Markup Language es un lenguaje usado para codificar la estructura de un documento mediante marcas que contienen informaci n adicional sobre la estructura del texto contenido en dicho documento Es el lenguaje de marcado mas extendido usado habitualmente para codificar p ginas web css Un archivo de hoja de estilos en cascada Cascade Style Sheet contiene el formato y aspecto de un documento escrito en un lenguaje de marcado como HTML Su principal funci n es la de separar el estilo de una p gina web de su contenido dd XAMPP XAMPP es un entorno de desarrollo web compuesto por el servidor web Apache el gestor de bases de datos MySQL y los int rpretes para lenguajes de script PHP y Perl Su nombre viene de agrupar las iniciales de las herramientas que lo componen y a adir una X que representa a cualquiera de los sistemas operativos cross platform X Es una herramienta de software libre dd PHP Es un lenguaje de programaci n de scripts dise ado para el desarrollo de webs de contenido din mico El c digo
296. usar la escala especial del lado derecho en el eje Y void setup size ancho alto background 60 frameRate 12 textSize 10 noFill noLoop SPEAR AO SAS O SAR SPSS SPSS SSP SSA PRA void obtenerTimeStamps int num Obtiene las marcas de tiempo del intervalo seleccionado String consulta SELECT Fecha FROM SELECT FROM lecturas ORDER BY Indice DESC LIMIT num sub ORDER BY Indice ASC String temp loadStrings http hortduino no ip biz consultar php consulta consulta timeStamps splitTokens temp 0 FSS SSS SSS SS Ss a SS SS SS SSS SSS SSS SS SS void graficar String nombre int num Dibuja el grafico en el sketch int minSensor 0 int maxSensor 0 byte r g b Valores RGB del color de la linea en el grafico String consulta SELECT nombre FROM SELECT FROM lecturas ORDER BY Indice DESC LIMIT num sub ORDER BY Indice ASC String temporal loadStrings http hortduino no ip biz consultar php consulta consulta String datos split temporal 0 xPos margen strokeWeight 2 if nombre equals Luminosidad r 250 g 256 b 0 minSensor 0 maxSensor 1000 else if nombre equals NivelAgua r 0 g 183 b 255 minSensor 0 maxSensor 1000 else if nombre equals TempInterior r 0 g 255 b 162 minSensor 5 maxSensor 50 minSensor 5 para ajustar mejor la representaci n grafica else if
297. usuario para la aplicaci n de escritorio y la visualizaci n de datos en pantalla usando el lenguaje Processing Tambi n incluye la implementaci n de la comunicaci n con Arduino mediante paquetes UDP v a Ethernet y el dise o del protocolo de rdenes entre la aplicaci n y el hardware 4 Iteraci n II En la tercera iteraci n se realiza el proceso de portar la aplicaci n de escritorio al entorno Android aprovechando las facilidades que posee para ello el lenguaje Processing Hay que tener en cuenta que la aplicaci n resultante no usa la API de Android salvo para m todos puntuales por lo que la interfaz tiene que ser adaptada espec ficamente a la resoluci n del dispositivo 5 Iteraci n IV El dise o de la base de datos y la integraci n de la librer a BezierSQLib para Processing ocupan la mayor parte de esta iteraci n Adem s se despliega y configura el servidor XAMPP en el PC que hace las veces de servidor 6 Iteraci n V En la quinta iteraci n se realiza el dise o y maquetaci n de la p gina web del proyecto mediante el uso de los lenguajes HTML PHP y CSS Los applets o sketches mostrados en la web son implementados tambi n dentro de esta iteraci n 7 Documentaci n Durante el desarrollo del proyecto la mayor parte de los esquemas notas y borradores obtenidos son incorporados a la documentaci n en las fases finales del proyecto Los comentarios en el c digo son a adidos a la vez que se prueban la
298. v a un paquete UDP a la direcci n obtenida en el paso 1 Se recibe un paquete UDP procedente de la direcci n IP con la ltima 3 el P lectura recibida de los sensores Se reinicializa a 0 el contador de paquetes esperados y se marca como p4 ri activa la conexi n Postcondici n La configuraci n y el estado actual del sistema se ha guardado en los archivos correspondientes del servidor XAMPP Paso Acci n p1 Si el archivo no existe se aborta la ejecuci n de la aplicaci n Android Si no se reciben paquetes UDP en el intervalo esperado se incrementa el Excepciones 3 p contador de paquetes esperados 4 Si el contador de paquetes esperados supera el valor 2 se marca la P conexi n como inactiva y se muestra en pantalla la configuraci n de red Rendimiento 3 segundos Frecuencia esperada Con cada recepci n de lecturas Importancia Alta Urgencia Alta Estado Validado Estabilidad Alta Comentarios n a Tabla 53 Caso de uso RF 36 Establecer conexi n ap escritorio Android 54 ORTDUINO Miguel Angel Hernanz Hernanz RF 37 Generar p gina web Ultimas Lecturas Versi n 1 0 Autores Miguel Angel Hernanz Hernanz Fuentes n a Objetivos asociados OBJ 07 Consulta de informaci n v a web OBJ 08 Informar de las condiciones actuales del invernadero Requisitos asociados RF 43 Obtener input de usuario Descripci n Genera
299. very program is threatened constantly by software patents States should not allow patents to restrict development and use of software on general purpose computers but in those that do we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary To prevent this the GPL assures that patents cannot be used to render the program non free The precise terms and conditions for copying distribution and modification follow 60 e Miguel Angel Hernanz Hernanz TERMS AND CONDITIONS 0 Definitions This License refers to version 3 of the GNU General Public License Copyright also means copyright like laws that apply to other kinds of works such as semiconductor masks The Program refers to any copyrightable work licensed under this License Each licensee is addressed as you Licensees and recipients may be individuals or organizations To modify a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission other than the making of an exact copy The resulting work is called a modified version of the earlier work or a work based on the earlier work A covered work means either the unmodified Program or a work based on the Program To propagate a work means to do anything with it that without permission would make you directly or secondarily liable for infringement under applicable c
300. vsvsvevseeees 7 LA INTRODUCCION a ias 7 1 2 OBJETIVOS DEL SISTEMA cccccccccccsscessesscesecssccsecsecesessscesecscesscssceseesacessccssesscessesseeseessees 8 1 4 REQUISITOS FUNCIONALES cccccccsccsscsseesscsseesscesecssceseesscesecescesecsasesscesecsecesesseeseeees 14 1 4 1 DEFINICI N DE ACTORES c ccccccsscssssessssessesecsesessesvssesesscscsucsesucatsucavsncatssavevsesesees 14 1 4 2 DIAGRAMAS DE CASOS DE USO ooococoncnnncononnonncnnnonnnonncnnonnonnconaconaonn conan cconnnconnanos 15 1 4 3 CASOS DE USO DEL SISTEMA cccccccsscsscessesscessesscesecsscesscsceseccssessceseesseeesaecenaes 19 1 5 REQUISITOS NO FUNCIONALES cccccccsccsccsseesecssceseesscesececcsecsecesesesceseccsesssesseseseeesas 63 2 ESPECIFICACI N FUNCIONAL DEL SISTEMA Q 0 c ccccsccssssssssscssssesscsesscsessscsvscseseseseseseseseceees 66 2 1 MODELO DE PROCESOS DEL SISTEMA ccccccccsssessesscessessessecssccsesecssesssseceseseesaeeseaes 66 2 2 MODELO DE DATOS DEL SISTEMA ccccccccsccsssessesscesscescesscssccseecsecseccsecsseeseesseeseenseeees 69 SITS BING DELS TEMA O 71 3 1 DISE O DE LA BASE DE DATOS cececsessscsesecsescsssscscevsesecscevevssecavevsvsesacavevevacaceseveteeas 71 3 2 DISE O DE LOS ARCHIVOS DE CONFIGURACION ccccccsssssssssessssescseseseseseesseeeeceees 72 3 3 DISE O DE LAS APLICACIONES cccsscessscssssssssssssesscsececsecscsecsesucsssucscssecsesssescevevsesess 73 3 3 1 DIAGRAMA DE PAQUETES ccccsccss

Download Pdf Manuals

image

Related Search

Related Contents

DSmobile 700D Manual do Utilizador  Conseil - Eclipse  RAPID EYE™ LT v9 - Honeywell Video Systems  American Standard Acrylux 3600Y1.STE5 User's Manual  Filtre pour robinet AQ31F1S à usage unique - HUG    Desktop Management-Handbuch - Hewlett    My Weigh Vox 3000 User Manual  D1001J(DE3003USB+SD+AV IN+RC02)(ST-M8)JPN  

Copyright © All rights reserved.
Failed to retrieve file