\documentclass[12pt]{article}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Preambulo
\usepackage[lmargin=2cm,rmargin=2cm,top=1.5cm,
bottom=2cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,spanish,es-tabla]{babel}
\textheight=20cm
\parindent=0cm %modificar tamaño de sangria 
\usepackage{amsmath}
\usepackage{amssymb,amsfonts,latexsym,cancel}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{float}
\usepackage{subfigure}
\usepackage{array}
\usepackage{longtable}
\newcolumntype{E}{>{$}c<{$}}
\setcounter{MaxMatrixCols}{40}
\usepackage{bm}
\usepackage{fancyhdr}

\pagestyle{fancy}
{\fancyhead[R]{
		\includegraphics[scale=1.09]{figuraspa2/encabezado}
	}
}

\headheight=100pt %para cambiar el tamaño del encabezado

\fancyfoot{}
\fancyfoot[R]{\thepage}
\fancyfoot[L]{http://revistas.utm.edu.ec/index.php/Informaticaysistemas}
\renewcommand{\footrulewidth}{0.9pt}
\date{3 de Septiembre de 2019}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Paquetes o configuración nueva 
%---->%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[sc]{mathpazo}
\usepackage{multicol}
\usepackage{titling}
\usepackage{titlesec}
\usepackage[colorlinks = true,
           linkcolor = blue,
           urlcolor = black,
           citecolor = blue ]{hyperref}

\titleformat{\section}[block]{\bfseries}{\thesection.}{3mm}{}
\titleformat{\subsection}[block]{\bfseries\centering}{\thesubsection.}{1mm}{}
%% Titulo del articulo
%%
%%------------------------------------------------
\setlength{\droptitle}{-4.5\baselineskip}
\title{{\Huge\textbf{METEO: Estación de monitorización meteorológica remota }}}
\author{\textsc{$Jesús Valdivieso Mariscal^{1}$,$Alfonso Ariza Quintana ^{1}$ }
\thanks{Universidad de Málaga}\\[0.2cm]
\normalsize 
\href{}{{10619754218,aarizaq}@uma.es}
}
%---->%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\maketitle

\begin{abstract}
	Este artículo se centra en el diseño y desarrollo de una Estación de Monitorización Meteorológica Remota, fundamentada en la imposición de una serie de requisitos, como es la monitorización de magnitudes medioambientales (Temperatura, Humedad, Presión Atmosférica, Calidad del Aire, Iluminación Ambiental, Lluvia y Ruido), la medición, el almacenamiento y la creación de históricos de las magnitudes anteriores; siguiendo para ello la metodología del modelo de ciclo de vida en ‘V’. El proyecto se basa en el uso de elementos de bajo coste (que puedan estar disponibles para el público en general) y en técnicas que minimicen el consumo de los elementos y sistemas electrónicos (configuración de sensores para conmutar a estados de apagado o reposo y codificación de las aplicaciones software para entrada en espera de los procesos en ejecución). En base a los requisitos del proyecto, se planificaron una serie de pruebas para la validación y verificación del producto, en cada una de sus fases; evidenciando que el seguimiento de una metodología de trabajo (que define cada etapa del proyecto), redunda en una implementación satisfactoria del proyecto.
	
	\textbf{Palabras-clave:} Monitorización Remota, Sistemas Electrónicos, Entornos Inteligentes, Estación Meteorológica
\end{abstract}

\newpage
\selectlanguage{english}
\begin{abstract}
	This article is focused over a number of imposed requirements, such as monitoring of environmental parameters (Temperature, Humidity, Atmospheric Pressure, Air Quality, Ambient Lighting, Rain and Noise), measurement, storage and historical data generation of the previous magnitudes; in order to design and develop of a Remote Meteorology Monitoring Station. In accordance with these requirements a V model life cycle is set and planned. Low cost elements (Commercial off the shelf) and low power consumption programming techniques (sensors are settings to switch to sleep mode and software applications are coded to use sleep/wait status) are used in this project. In accordance with imposed requirements, a set of test were planned on each stages for the validation and verification of the system. The follow-up of a methodology resulted in a successful implementation of the project.
	
	\textbf{Keywords:} Remote Monitoring, Electronic Systems, Smart Environments, Meteorological Station 
\end{abstract}	
\section{Introducción}
Bajo el paraguas de los entornos inteligentes y concretamente vinculado al Máster en Sistemas Electrónicos para Entornos Inteligentes (Universidad de Málaga), una de las propuestas como Trabajo Fin de Máster es METEO; una estación de monitorización meteorológica remota que será implementada mediante parte del hardware proporcionado en el Máster. 
\\El sistema se basa en una solución hardware y software, capaz de monitorizar una serie de magnitudes ambientales, almacenarlas y realizar un histórico de las mismas. Proporciona esta información como servidor de datos, obteniendo el sistema externo (clientes) los datos procesados.
\\Así mismo, al tratarse de un sistema remoto, tanto la elección de los componentes como la programación del software de control y adquisición, están orientados a facilitar un menor consumo del sistema.
\\Se plantea el Ciclo de vida en ‘V’ [1]  [2] como metodología para el diseño y desarrollo del proyecto.
\\Este artículo se estructura en las siguientes etapas. Una introducción con el objeto del documento y una visión muy general del sistema implementado. Le sigue una descripción de la metodología empleada para el diseño, desarrollo e implementación del sistema; así como una descripción del sistema implementado. Continúa con una ampliación en el diseño y desarrollo del sistema implementado; finalizando con las conclusiones, los agradecimientos y las referencias que aparecen en este artículo.
\section{Ciclo de Vida}
Como metodología para el diseño, desarrollo e implementación del proyecto se emplea la metodología del Ciclo de Vida en ‘V’. Este modelo está basado en la metodología en cascada, definiendo en cada etapa el grado de madurez que va adquiriendo el producto, poniendo énfasis en la relación de las actividades de pruebas frente a las de análisis, diseño y desarrollo.
\\Esta metodología nos permitirá realizar un análisis y especificación de los requisitos del producto, pasando por las fases de diseño y desarrollo, y las correspondientes pruebas de verificación y validación del sistema realizado; garantizando así su completa implementación. Es una metodología jerarquizada, en donde la rama izquierda descendente representa la descomposición del sistema a desarrollar en subconjuntos más sencillos. Y la rama derecha ascendente, representa la integración de los subconjuntos anteriores hasta llegar a la completitud del sistema.
\\A continuación, en la Figura 1, mostramos y ampliamos las distintas fases, que se han implementado del método.
\begin{figure}[H]
	\centering
	\includegraphics[scale=.75]{figuraspa2/figura1}
	\caption{Fases Implementadas de la Metodología del Ciclo de Vida en V}
\end{figure}
Detallando las distintas etapas del método, se plantean las siguientes fases:\\

\textbf{Fase 1.} Análisis y Especificación de Requisitos, extraídos de la descripción del producto. Redacción y ejecución de pruebas funcionales para validar el producto.
\\ \textbf{Fase 2.}Especificación de los requisitos funcionales, y redacción y ejecución de pruebas funcionales y de integración que verificarán los mismos.
\\ \textbf{Fase 3.} Estudio de los componentes Hw/Sw para el diseño del sistema. Realización de pruebas individuales (Hw/Sw) para validar el diseño propuesto.
\\ \textbf{Fase 4.} Implementación Hw y Sw del producto.
\section{Descripción del Sistema METEO}
El sistema a desarrollar plantea una solución hardware y software, capaz de monitorizar las magnitudes medioambientales, que aparecen en la Tabla 1, su almacenamiento y la generación de históricos (que contienen valores máximo, mínimo y medio diario, semanal, mensual y anual; así como en particular, determinar cuál es el estado que más se repite para el parámetro lluvia). Proporciona esta información como servidor de datos, facilitando a otros sistemas externos (clientes) bajo la misma infraestructura de red, la adquisición de la información.\\ \\
\textbf{Tabla 1 Variables meteorológicas a considerar}\\

\begin{tabular}{m{5cm}m{10cm}}
	\hline
	\textbf{Variable}&\textbf{Descripción y Unidades} \\
	\hline 
Temperatura  & Se ofrece lectura en grados centígrados (oC)   \\
	\hline
Humedad  & Presentada en forma porcentual (\%)  \\
	\hline
Presión Atmosférica  & Unidad expresada en hecto pascales (hPa)  \\
	\hline
Calidad del Aire  & Unidad ofrecida en partes por millón (ppm) \\
	\hline
Iluminación Ambiental &Muestra el nivel de iluminancia (Lux)   \\
	\hline
Lluvia& Parametrizado según Lluvia Fuerte, Lluvia Moderada, Lluvia Débil y Sin Lluvia \\
	\hline
Ruido  & Medido en decibelios (dB)   \\
	\hline

\end{tabular}\\ \\
\section{Diseño del Sistema METEO}
Como resultado de la metodología planteada, se ha realizado un diseño orientado a cumplir con los requisitos exigidos al proyecto (identificados en la Tabla 2); dando lugar a las distintas fases de diseño planteadas a continuación.\\ \\

\textbf{Tabla 2 Requisitos identificados en la primera fase de la metodología aplicada}\\

\begin{tabular}{m{1cm}m{14cm}}
	\hline
	\textbf{Id}&\textbf{Nombre} \\
	\hline 
	R1  & Monitorización de las magnitudes  \begin{itemize}
		\item Temperatura
		\item Humedad
		\item Presión Atmosférica
		\item Calidad del aire
		\item  Iluminación ambiental
		\item  Lluvia
		\item  Ruido
	\end{itemize}   \\
	\hline
	R2  & Medidas de las magnitudes medioambientales:   \begin{itemize}
	\item Temperatura
	\item Humedad
	\item Presión Atmosférica
	\item Calidad del aire
	\item  Iluminación ambiental
	\item  Lluvia
	\item  Ruido
\end{itemize}   \\
	\hline
	R3  & Almacenamiento de las magnitudes medioambientales  \\
	\hline
R4  & Histórico Valor Máximo Diario de todas las magnitudes medioambientales  \\
	\hline
	R5 &Histórico Valor Mínimo Diario de todas las magnitudes medioambientales    \\
	\hline
\end{tabular}\\ \\
\begin{tabular}{m{1cm}m{14cm}}
	\hline
	R6 & Histórico Valor Medio Diario de todas las magnitudes medioambientales. Para la lluvia, se extraerá el valor que más veces se repita. \\
	\hline


	R7  &Histórico Valor Máximo Semanal de todas las magnitudes medioambientales   \\
	\hline
	R8  &Histórico Valor Mínimo Semanal de todas las magnitudes medioambientales    \\
\hline
	R9  &Histórico Valor Medio Semanal de todas las magnitudes medioambientales. Para la lluvia, se extraerá el valor que más veces se repita.    \\
\hline
	R10  &Histórico Valor Máximo Mensual de todas las magnitudes medioambientales    \\
\hline
	R11 &Histórico Valor Mínimo Mensual de todas las magnitudes medioambientales    \\
\hline
	R12 &Histórico Valor Medio Mensual de todas las magnitudes medioambientales. Para la lluvia, se extraerá el valor que más veces se repita  \\
\hline
	R13 &Histórico Valor Máximo Anual de todas las magnitudes medioambientales   \\
\hline	
	R14 &Histórico Valor Mínimo Anual de todas las magnitudes medioambientales    \\
\hline	
	R15 &Histórico Valor Medio Anual de todas las magnitudes medioambientales. Para la lluvia, se extraerá el valor que más veces se repita.   \\
\hline	
	R16 &Envío de información como servidor de datos   \\
\hline	
	R17 &Tecnología de bajo coste   \\
\hline	
	R18 &Abastecimiento mediante la red eléctrica   \\
\hline	
\end{tabular}\\ \\


\subsection{Arquitectura Lógica}
La arquitectura lógica del sistema implementado se muestra en la Figura 2.
\begin{figure}[H]
	\centering
	\includegraphics[scale=.60]{figuraspa2/figura2}
	\caption{Arquitectura Lógica del Sistema METEO}
\end{figure}
Cada bloque lógico, tiene por objetivo lo siguiente:
 \begin{itemize}
	\item Adquisición e Interfaz con Sensores. Bloque encargado de realizar la interfaz lógica con el grupo de sensores hardware. Debe englobar todo el conjunto de funciones, procedimientos y librerías que permitan la configuración de los sensores, la adquisición de datos y preparar los mismos como fuente de información del siguiente bloque lógico.
	\item  Procesado de la Información. Este bloque tiene como misión especificar aquellos procesos que se encargarán de la generación de estadísticas e históricos relacionados con las medidas realizadas y el conjunto de datos obtenidos en bloques anteriores. Permite el flujo de información con el interfaz de usuario.
	\item Almacenamiento y Administración Datos.  Para este bloque se ha decidido utilizar un gestor de base de datos de propósito general.
	\item  Interfaz Usuario. Bloque lógico donde se definen y especifican los recursos disponibles para el usuario, así como el formato de visualización de estos recursos.
\end{itemize}
\subsection{Arquitectura Física}
En la Figura 3 se muestra la arquitectura física propuesta, en base a la especificación y análisis de los requisitos del proyecto.
\begin{figure}[H]
	\centering
	\includegraphics[scale=1.10]{figuraspa2/figura3}
	\caption{Arquitectura Física del Sistema METEO}
\end{figure}

El propósito de cada bloque hardware es el siguiente:
 \begin{itemize}
	\item  	Sistema de Sensores. En este bloque se aglutina todo el grupo de sensores (tanto digitales, como analógicos)  que proveen al Sistema METEO de la capacidad de adquisición los parámetros medioambientales definidos en el proyecto.
	\item Sistema de Control. Es el núcleo principal de todo el conjunto hardware. Permite dar soporte a la configuración del sistema de sensores, permitiendo la correcta adquisición y procesamiento de la información obtenida por los sensores; preparando esta información para que esté disponible al usuario.
	\item Sistema de Alimentación. Bloque donde se especifican los requisitos mínimos de suministro eléctrico del Sistema METEO.
\end{itemize}
\subsection{Solución HARDWARE/SOFTWARE}

Como resultado de las fases anteriores, se plantea la siguiente solución en cuanto al hardware y software a emplear.
\\La solución hardware se basa en la elección de elementos de bajo coste y COTS-(Commercial off the shelf, disponible para el público en general o de costo accesible). Para la adquisición de variables medioambientales, la Tabla 3 muestra los sensores elegidos (así como sus características principales) en función de la variable a medir

\newpage
\textbf{Tabla 3 Sensores elegidos para el Sistema METEO y sus principales características}\\

\begin{tabular}{m{4cm}m{2cm}m{2cm}m{2cm}m{2.7cm}m{2cm}}
	\hline
	\textbf{Magnitud}&\textbf{Sensor}&\textbf{Tipo Sensor}&\textbf{Interfaz}&\textbf{Alimentación (V)}&\textbf{Consumo (mA)} \\
	\hline 
	\begin{itemize}
		\item Temperatura
		\item Humedad
		\item Presión Atmosférica

	\end{itemize} & BME280&Digital&I2C, SPI&3-5&0.09-12\\
	\hline
	Calidad del aire&MQ135&Analógico&Analógico: 0-1023&5&192.27-192.77\\
   \hline
  Iluminación ambiental&TSL2651&Digital&I2C&3.3-5&0.015-0.6\\
   \hline
   Lluvia&YL-83&Analógico&Analógico: 0-1023&3.3-5&15\\
   \hline
  Ruido&Grove Loudness Sensor&Analógico&Analógico: 0-1023&3.5-10&1-2\\
   \hline
\end{tabular}\\ \\

En cuanto al sistema de control y procesamiento de la información, se decide utilizar un sistema que tenga capacidad para interconexión con sistemas externos basado en buses, capacidad para soportar técnicas de cliente/servidor y procesamiento concurrente. \\La Tabla 4 muestra el sistema empleado.\\
\textbf{Tabla 4 Sistema de control y procesamiento del Sistema METEO}\\

\begin{tabular}{m{3cm}m{5cm}m{4cm}m{4cm}}
	\hline
	\textbf{Elemento}&\textbf{Interfaz }&\textbf{Alimentación (V)}&\textbf{Consumo (mA)}\\
	\hline 
	RaspBerry Pi 3B&\begin{itemize}
		\item Ethernet socket Ethernet 10/100 BaseT
		\item LAN inalámbrica y Bluetooth Low Energy
		\item 40 GPIO	
	\end{itemize} &\begin{itemize}
	\item 5V/2.5A DC vía micro USB 
	\item 5V DC vía GPIO 	
\end{itemize}&350-1340(750 en el arranque)\\
	\hline
\end{tabular}\\ \\



Debido al uso de sensores analógicos, se ve la necesidad de emplear un convertidor analógico\\ /digital, y a la vez que tenga capacidad de interconexión a buses serie. \\La Tabla 5 muestra el convertidor a utilizar y sus principales características.\\ \\


\textbf{Tabla 5 Convertidor A/D para la interfaz con sensores analógicos}\\

\begin{tabular}{m{2cm}m{1.5cm}m{4cm}m{4cm}m{4cm}}
	\hline
	\textbf{Elemento}&\textbf{Interfaz Digital}&\textbf{Entradas Analógicas}&\textbf{Alimentación (V)}&\textbf{Consumo (mA)}\\
	\hline 
	MCP3008&SPI&\begin{itemize}
		\item 8-modo simple
		\item 4-modo pseudo diferencial
	\end{itemize} &2.7-5.5&0.225-0.550\\
	\hline
\end{tabular}\\ \\

 
El estudio previo, a las fases de desarrollo, diseño y pruebas, da como resultado las siguientes directrices en cuanto a la solución software planteada:
\begin{itemize}
	\item  Sistema Operativo basado en raspbian-stretch [3]
	\item  Lenguaje C/C++ para el desarrollo de las aplicaciones del sistema de control
	\item  División de tareas en funciones y procedimientos, para facilitar su implementación y mantenimiento
	\item Uso de técnicas multihilo/multitarea
	\item Interrelación Software/Hardware para favorecer el bajo consumo de los componentes Hw (conmutación a estado de apagado o reposo, de aquellos sensores que lo permitan) y llevando al estado de espera a los procesos en ejecución
	\item Lenguaje SQL para transacciones con la base de datos
	\item Interfaz de usuario basada en HTML y PHP
	\item Herramientas Software:
	\begin{itemize}
		\item Eclipse [4], como entorno de desarrollo cruzado
		\item Gestor y administrador de Base de Datos SQLite Manager [5], para BBDD en SQLite3 [6]
		\item Infraestructura WEB empleando Apache [7], SQLite3 y PHP7
		\item Uso de script para la ejecución de las aplicaciones de control al iniciar la Raspberry
	\end{itemize}
\end{itemize}

\subsection{Diseño Software}
En base a la arquitectura y solución software descrita, se plantea el siguiente diseño.
\subsubsection{Diseño del bloque Adquisición e Interfaz con Sensores}
El análisis de los requisitos y solución planteada, da como resultado el bloque funcional mostrado en la Figura 4.
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura4}
	\caption{Bloque Funcional Adquisición e Interfaz con Sensores del Sistema METEO}
\end{figure}
Principalmente, este bloque se resume en dos tareas ejecutadas concurrentemente, que harán uso de determinadas librerías, para comunicarse con los sensores; y un último bloque que se encargará del almacenamiento de la información. Estas dos tareas se encargan de lo siguiente:
 \textbf{Lectura Puerto I2C}
 \begin{itemize}
 	\item Definición de parámetros de tiempos para la adquisición de datos de sensores conectados al bus
 	\item Definición de direccionamiento de sensores
 	\item Configuración de parámetros de sensores.
 	\begin{itemize}
 		\item Pasar a estado de reposo aquellos sensores que lo permitan, una vez haya terminado el proceso de adquisición de datos. 
 		\item Encender/activar aquellos sensores en el proceso de adquisición y desactivarlos mientras no se requiera la toma de medidas.
 		\item Lectura registros de sensores (Adquisición de datos)
 	\end{itemize}
 	\item Almacenamiento de la información
  	\end{itemize}
\textbf{Lectura Puerto SPI}
 \begin{itemize}
	\item  Configuración de parámetros del bus y dispositivos  
	\begin{itemize}
		\item Maestro. Bus SPI, Reloj.
		\item Esclavo. Direccionamiento, Canales Entrada Analógica.
	\end{itemize}
  \item Lectura sensores (Adquisición de datos)
  \item Almacenamiento de la información
 \end{itemize}
En esta fase del diseño, se aborda un estudio de los sensores empleados. En concreto, analizamos la mejor forma de disponer de las medidas proporcionadas por cada sensor. Los sensores digitales, nos presentan a su salida una relación directa de la medida obtenida, añadiendo además un proceso de corrección de la misma, en función de la calibración del sensor en su proceso de fabricación. El fabricante, mediante el almacenamiento en determinados registros del sensor, ofrece valores de compensación de la medida ofrecida.
\\Sin embargo, con el bloque de sensores analógicos se encuentra que la medida ofrecida es un valor proporcional (y sin unidades) del valor medido de la variable monitorizada. Además, cada sensor tiene una sensibilidad propia dependiendo del proceso productivo. En este caso, el fabricante no ofrece un valor de compensación de la medida obtenida, sino que proporciona una relación gráfica entre el valor medido y su correspondiente valor para la magnitud monitorizada. En otros sensores, se dispone de la posibilidad de modificar la ganancia del mismo, variando la amplitud de la señal obtenida en función del valor de la variable a medir.
\textbf{Calibración de Sensores y Parametrización de Medidas}
\\Para el sensor MQ-135 [8] [9], el fabricante indica que el tiempo que tarda el sensor en proporcionar una medida estable y confiable está por encima de las 24 horas, debido al proceso de calentamiento que necesita el elemento sensor para su correcto funcionamiento. Además, en su hoja de característica se proporciona la gráfica de relación de la Figura 5:
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura5}
	\caption{Curvas de Respuesta del Sensor MQ-135}
\end{figure}
En ella observamos la relación entre la medida ofrecida por el sensor (Rs/Ro) y la cantidad del gas en el ambiente (ppm), en formato logarítmico. Para este sensor en concreto, la relación Rs/Ro no es conocida, puesto que Ro (valor resistivo de calibración del sensor) es dependiente del proceso productivo y se desconoce. Sí se conoce el valor de Rs (resistencia interna del sensor), puesto que es una imposición del diseño del sensor.
\\Nuestro objetivo es encontrar la función de regresión que satisfaga cada gráfica, pasando antes la misma a forma lineal. Centrándonos en uno de los gases (CO), se ha obtenido la relación que muestra la Figura 6:
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura6}
	\caption{Representación de la concentración de CO y la relación Rs/Ro}
\end{figure}
Como puede observarse, se obtiene una función de regresión de tipo potencia, cuya bondad (R2, coeficiente de determinación) o aproximación al modelo real, es próxima a 1. 
\\En la Figura 7, podemos observar la configuración eléctrica del sensor.
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura7}
	\caption{Esquema eléctrico simplificado Sensor MQ-135}
\end{figure}
Para poder obtener Ro (y por tanto obtener un mecanismo de calibración que ajuste los valores obtenidos en la medida), se procede a realizar una medida con un valor conocido para la concentración del gas (CO en este caso).
\\Conocemos los valores de Vcc (tensión de alimentación), Rl (resistencia de carga), VRl (tensión que entrega el sensor MQ-135 a su salida); tan sólo es necesario calcular el valor de Rs que viene dado por la expresión del divisor de tensión Rs = Rl * (Vcc - VRl)/VRl. A partir de aquí, una vez obtenido el punto en la gráfica para el valor conocido de concentración del gas, obtendremos el valor de la relación Rs/Ro y por sustitución el valor de Ro de calibración. Este valor de Ro, será invariable para todo el proceso de adquisición en la monitorización de los gases presentes en el ambiente.
\\El algoritmo diseñado, se basa en la obtención de Rs para cada medida obtenida (a partir de la tensión en los extremos del sensor), el cálculo de la relación Rs/Ro y la posterior aplicación de la función de regresión para obtener la concentración del gas medido.
\\Este sensor, tiene la particularidad de presentar una variación de sus propiedades en función de la temperatura y la humedad, siendo necesario realizar un ajuste de la relación Rs/Ro, en función de los parámetros anteriores. La Figura 8 muestra esta dependencia.
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura8}
	\caption{Dependencia Rs/Ro (Sensor MQ-135). Funciones de regresión}
\end{figure}
Antes de proceder a calcular la concentración de gas, se procede a ajustar el valor obtenido de Rs/Ro en función de la temperatura y la humedad (mediante la gráfica anterior). Una vez conocido el nuevo valor, se obtiene la concentración de gas.
\\Para el sensor de ruido ambiental, también sucede algo parecido con el sensor de calidad del aire. Se obtiene una señal a la salida del mismo, proporcional a la intensidad del ruido ambiente, pero carece de traducción directa a decibelios (unidad de medida de la intensidad del sonido). Por tanto, debemos encontrar una solución que traduzca la medida obtenida a decibelios. Para ello, se ha planteado realizar un ajuste de la ganancia del sensor y proceder a tomar medidas con el sensor y un sonómetro calibrado, para distintas intensidades de un tono patrón. Se almacenan estas medidas y se obtiene la curva/función de regresión que más se ajusta a la misma. Esta función se utiliza para convertir el valor suministrado por el sensor, a unidades de intensidad sonora.
\\Otro de los sensores analógicos, que requiere una conversión de unidades, es el sensor de lluvia. En este caso y debido al modo de funcionamiento del mismo, se ha procedido a parametrizar la medida obtenida de forma subjetiva. Este sensor se basa en la reducción de la resistencia a su salida, en función de la cantidad de lluvia que incide sobre el mismo, proporcionando un valor analógico (0-Sensor completamente mojado, 1023-Sensor seco). \\La propuesta de parametrización es la siguiente:
\begin{itemize}
	\item Valores por debajo de 400: Lluvia Fuerte
	\item	Valores entre 400 y 600: Lluvia Moderada
	\item Valores entre 600 y 1010: Lluvia Débil
	\item Valores por encima de 1010: Sin Lluvia
	
\end{itemize}
\subsubsection{Diseño del bloque Procesado de la Información}
Otro de los bloques funcionales (ver Figura 9), dentro del análisis previo y que se observa en la arquitectura lógica, es el bloque de Procesado de la Información. Este bloque da como resultado de su diseño, dos grandes módulos, el primero formado por todas las herramientas que actúan y preparan nuestro entorno como servidor (aplicaciones como Apache, PHP y SQLite3). Y un segundo bloque, encargado de generar y almacenar las estadísticas horarias y diarias, de las medidas realizadas por los sensores.
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura9}
	\caption{Bloque Funcional Procesado de la Información del Sistema METEO}
\end{figure}
Centrándonos en el segundo módulo, se diseña una aplicación basada en dos tareas concurrentes para el cálculo de las estadísticas que van a ser generadas. Estas tareas acceden a la base de datos para recuperar la información almacenada por lo sensores y para guardar los históricos en función de los requisitos establecidos.
\subsubsection{Diseño del bloque Interfaz de Usuario}
Por último, el bloque de Interfaz de Usuario, está basado en el diseño funcional que se muestra en la Figura 10.
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura10}
	\caption{Bloque Funcional Interfaz de Usuario del Sistema METEO}
\end{figure}
Este bloque se desarrollará mediante herramientas para la WEB. Es la interfaz de usuario, que debe mostrar la información adquirida por los sensores en tiempo real y además generar los históricos por día, semana, mes y año, así como su visualización. Se toma la decisión, de generar los históricos a demanda; con el objetivo de liberar recursos operativos y almacenamiento al sistema de control, ya que sólo se guardan datos actuales, estadísticas horarias y diarias. Con esta información, mediante consultas SQL deben obtenerse los históricos a petición del usuario.
\\La interfaz gráfica de usuario debe cumplir los siguientes criterios de diseño:
\begin{itemize}
	\item  Obtención del resultado esperado con el mínimo de acciones. 
	\item	Uso de iconos e información claras.
	\item	Distinción entre zona de datos y de control. 
	\item	Agrupación en distintas categorías y zonas, de elementos gráficos e informativos.
\end{itemize}
\subsection{Diseño Hardware}
Tras el análisis de los requisitos que comprenden el apartado hardware y la solución hardware planteada, se procede a diseñar los distintos bloques que se han mostrado dentro de la arquitectura física. 
\\El sistema de alimentación, debe garantizar el correcto suministro y capacidad eléctrica al sistema completo. Tanto para el Sistema de Sensores, como para el Sistema de Control, se ha optado por tomar +5VDC como nivel de alimentación; ya que es el nivel de tensión más afín a todos los componentes y sistemas electrónicos que se van a emplear. En cuanto al consumo, se ha realizado la suma de los valores máximos del rango de operación de cada uno de los sistemas electrónicos a emplear, para así determinar el máximo consumo que pudiera alcanzarse.
\subsubsection{Diseño del bloque Sistema de Alimentación}
Se diseña un sistema de alimentación que garantice, al menos, un 120\% del consumo de corriente máximo del sistema (estimado en 1876 mA), para cubrir con garantías el consumo demandado. Y una alimentación de +5 voltios DC, tal como hemos comentado con anterioridad. Basado en una fuente de alimentación lineal, con puente rectificador y regulador integrado 7805.
\subsubsection{Diseño del bloque Sistema de Sensores}
Este diseño debe contemplar la conexión de los sensores analógicos al convertidor A/D, además debe ser la interfaz física de conexión entre los sensores y el sistema de control.
\\Para ahorrar costes y espacio, el diseño de los sistemas anteriores da como resultado una sola placa de circuito impreso, donde se integra el Sistema de Alimentación y el Sistema de Sensores; además sus dimensiones serán las apropiadas para poder integrarse con el Sistema de Control.
\subsubsection{Diseño de la Estructura soporte (Carcasa)}
Para la instalación de toda la electrónica, se ha pensado en un panel de tipo Stevenson [10] donde se alojarán los sistemas electrónicos. El diseño plantea lo siguiente, en cuanto a la ubicación de los elementos electrónicos:
\begin{itemize}
	\item  Sistema de Alimentación e Interfaz con Sensores y Sistema de Control. Irán ubicados en la parte baja del contenedor, dentro de una caja acrílica plástica y ventilada que sea compatible (en cuanto a dimensiones) con el sistema de control.
	\item	Sensor de Temperatura y Humedad. Alejado del conjunto Sistema de Alimentación e Interfaz con Sensores y Sistema de Control, para evitar posible contacto térmico; y en un espacio con libre flujo de aire.
	\item	Sensor Lumínico. En una zona alta, donde se haya practicado una abertura en la superficie del contenedor que permita la entrada de luz del exterior (esta abertura debe protegerse de la entrada de polvo y líquido procedente del exterior, mediante material transparente)
	\item	Sensor de Calidad del Aire. Ubicado en una zona que permita el flujo de aire.
	\item Sensor de Ruido. Su ubicación será tal que permita la correcta recepción de ruidos procedentes del exterior.
	\item	Sensor de Lluvia. Alojado sobre la cubierta superior de la carcasa y con una inclinación de 30o, para permitir el flujo del agua y evitar su estancamiento en el sensor.
\end{itemize}
Todos los componentes eléctricos y electrónicos, estarán protegidos contra cualquier agente externo que pudiera provocar cortocircuito eléctrico. Para este prototipo no entraremos en necesidades de niveles y exigencias sobre el grado de protección internacional (IP [11]), tan sólo mencionar que para proteger al sistema de alimentación y control, podría bastar con un grado IP56; además de proteger todo terminal eléctrico que quedase a la intemperie, mediante un sistema que garantice la no penetración de agua en su interior.
\section{Desarrollo del Sistema METEO}
Como última fase de la metodología de trabajo, se divide el desarrollo del proyecto en dos bloques, el desarrollo del software (y todo lo relacionado con la arquitectura lógica planteada) y el desarrollo del hardware (tanto en el ámbito electrónico como mecánico).
\subsection{Desarrollo del Software}
Para el desarrollo del software, se utiliza y configura Eclipse para dar soporte al desarrollo cruzado; además se prepara el Sistema de Control (Raspberry pi) para instalar y configurar una infraestructura basada en Linux [12] (Raspbian), Apache, SQLite3 y PHP7, que dota al sistema de control de todo lo necesario para actuar como un servidor.
\\Se decide desarrollar las aplicaciones que forman parte del núcleo del Sistema de Control, en lenguaje C/C++; por ser un lenguaje ampliamente extendido y bien integrado con el sistema operativo que se ha instalado en la Raspberry. Además, es un lenguaje que permite la creación y ejecución de tareas en un mismo proceso, así como la implementación de funciones y procedimientos para dividir las acciones a realizar; requisitos indispensables en la línea de trabajo a seguir.
\\Para favorecer el bajo consumo de la implementación hardware, se realiza la programación adecuada para pasar a estados de bajo consumo eléctrico aquellos sensores que lo permitan (pasándolos al estado de apagado o reposo) y a las aplicaciones que se ejecutan en el Sistema de Control, a un estado de reposo o espera; permitiendo así que cese el proceso en curso y por tanto disminuya el consumo energético del sistema.
\\Dentro de la etapa del desarrollo, también se lleva a cabo la preparación del sistema para que sea autónomo en su inicialización. Es decir, una vez se procede a suministrar energía al mismo, éste es capaz de arrancar o lanzar las aplicaciones que se han desarrollado sin intervención alguna del usuario. Mediante el administrador de procesos CRON y su fichero asociado CRONTAB, se añaden los comando necesarios para ejecutar en el arranque un script, que comprueba si los procesos desarrollados se están ejecutando en el sistema, y si no es así los lanza. De la misma forma, por razones de seguridad, cada hora también se ejecuta este script para asegurar que siguen ejecutándose los procesos (y no se han caído por algún motivo), volviendo a lanzarlos si es necesario.
\\En cuanto a la base de datos, ésta se gestiona con la aplicación SQLite Manager, creando las respectivas tablas que almacenarán los datos adquiridos por los sensores y las estadísticas generadas, mediante sentencias SQL.
\subsection{Desarrollo del Hardware}
En el desarrollo del hardware, se ha acometido el mismo realizando una disposición de los elementos de una forma estructurada y que permita distinguir claramente qué componentes forman parte de los distintos subsistemas que se integran en la misma placa de circuito impreso. Se emplean componentes de montaje superficial y de inserción, con lo cual se ha prestado especial atención a la correcta distribución de los mismos y al enrutado de las pistas de cobre para que su recorrido sea el más eficiente. La herramienta de diseño, nos ha permitido visualizar la disposición física de los componentes en la placa de circuito impreso, con lo cual se ha podido redistribuir los mismos según la disposición elegida. También permite la exportación de la documentación necesaria para su fabricación. La distribución quedó tal como se muestra en la Figura 11 (dimensiones principales expresadas en milímetros).
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.50]{figuraspa2/figura11}
	\caption{Sistema de Alimentación e Interfaz con Sensores del Sistema METEO}
\end{figure}
En cuanto a la carcasa, la Figura 12 muestra la desarrollada, que cumple con las exigencias enumeradas en la fase de diseño para el prototipo implementado; llevándose a producción mediante impresión por extrusión en material PLA (plástico de tipo poliácido láctico).
\begin{figure}[H]
	\centering
	\includegraphics[scale=0.70]{figuraspa2/figura12}
	\caption{Carcasa de tipo Stevenson (dimensiones principales expresadas en milímetros)}
\end{figure}
\section{Conclusión}
Con el planteamiento inicial y la aplicación de las fases implementadas del ciclo de vida en V, podemos decir que se ha conseguido cubrir todos los requisitos de origen propuestos. En base a estos requisitos, se han planificado una serie de pruebas de validación y verificación, que demuestran que se han alcanzado los objetivos iniciales y por tanto, se han satisfecho los requisitos que debía cumplir el proyecto. Es evidente, por tanto, que todo proyecto debe ir acompañado de una metodología de trabajo que defina cada una de las etapas del mismo; puesto que ayuda a descubrir de forma temprana, situaciones no deseadas o cambios en la implementación de la solución inicialmente propuesta (es más, ayuda a obtener claramente una línea de desarrollo futura).
\\Una vez diseñado el sistema, gracias al análisis y especificación de los requisitos del mismo y una vez planteada la solución hardware a utilizar en el proyecto, se plantean una serie de acciones y decisiones para abordar la fase de implementación de la interfaz con sensores. En el caso que nos ocupa, el uso de sensores no calibrados de fábrica, o que la traducción del valor de la medida adquirida deba convertirse a otro formato, podría provocar la introducción de ciertas desviaciones en las medidas reportadas (aunque con un factor conocido y acotado), originadas por el uso de funciones de regresión que estimen la relación entre las variables. Por tanto, nuestra conclusión es optar por sensores ya calibrados de fábrica, que proporcionan a su salida un valor prácticamente directo de la variable que se está monitorizando.
\\Además, gracias a la flexibilidad que presenta la arquitectura diseñada, la posibilidad de ampliar el número de sensores (o sustituir los existentes por algunos más complejos), permitiría aumentar el número de variables meteorológicas a monitorizar; permitiendo la escalabilidad del proyecto de una forma flexible y con una baja complejidad.
\\Así mismo, el sistema de control actual es plenamente sustituible por un sistema con la misma capacidad de procesamiento, pero con un consumo mucho más comedido; sugiriendo en este caso el uso de Raspberry Pi Zero W.
\\En base a estos cambios, se puede abrir otra línea de trabajo donde (además de los cambios anteriormente expuestos) se estudie la viabilidad de un sistema de alimentación autónomo, compuesto de batería y sistema fotovoltaico más toda la electrónica asociada al convertidor DC/DC, cargador de batería, protección, etc.; que haga más portable y autosuficiente esta solución.
\newpage
\section{Agradecimientos}
La implementación y puesta en producción del primer prototipo del Sistema METEO, se ha llevado a cabo gracias a parte del material aportado en el kit del Máster Oficial en Sistemas Electrónicos para Entornos Inteligentes-MSEEI (E.T.S. de Ingeniería de Telecomunicación, Universidad de Málaga), más el especificado en el proyecto, que ha sido cedido por el Departamento de Tecnología Electrónica (Universidad de Málaga).
\\Agradecimiento a los profesores y coordinadores implicados en el Máster SEEI, por su buen hacer y dedicación.
\\Especial agradecimiento a Gonzalo Joya Caparros (Dpto. Tecnología Electrónica, Universidad de Málaga)  por sus comentarios y anotaciones en este artículo. 
\newpage
\begin{thebibliography}{99}
	\bibitem{Nombre1} J. A. C. Somolinos, Introducción a la Ingeniería del Software, Editorial Centro de Estudios Ramón Areces, S.A.. 
	\bibitem{Nombre2} K. M. H. C. H. Forsberg, Visualizing Project Management, Nueva York: John Wiley and Sons. 
	\bibitem{Nombre3} Raspberry, «Raspberry,» [En línea]. Available: https://www.raspberrypi.org/downloads/raspbian/.
	\bibitem{Nombre4} «Eclipse Fuoundation,» [En línea]. Available: https://www.eclipse.org/.
	\bibitem{Nombre5} S. Manager, «DB Browser for SQLite,» [En línea]. Available: https://sqlitebrowser.org/.
	\bibitem{Nombre6} «SQLite,» [En línea]. Available: https://www.sqlite.org/
	index.html.
	\bibitem{Nombre7} «The Apache Software Foundation,» [En línea]. Available: https://www.apache.org/.
	\bibitem{Nombre8} «Mikroe,» [En línea]. Available: http://download.mikroe.com/documents/add-on-boards/click/air-quality/
	air-quality-click-manual-v100.pdf.
	\bibitem{Nombre9}  «Olimex,» [En línea]. Available: https://www.olimex.com/Products/Components/Sensors/SNS-MQ135/resource
	/SNS-MQ135.pdf.
	\bibitem{Nombre10} «New World Climate,» [En línea]. Available: http://www.nwclimate.org/guides/meteorological-instrumentation/.
	\bibitem{Nombre11}  «International Electrotechnical Commission,» [En línea]. Available: https://webstore.iec.ch/publication/2452.
	\bibitem{Nombre12} GNU/Linux, «GNU/Linux,» [En línea]. Available: https://www.linux.org/.
\end{thebibliography}
\end{document}