CHAPTER III THE BRIGHT SIDE OF GIVING MANAGERS SHORT-
III.3 Data and methods
III.3.4 Econometric methods
De cara a la toma de decisiones de los dispositivos a utilizar, se requiere una correcta definición del sistema que se busca. Lo que se necesita es un conjunto de sensores de temperatura, que puedan transmitir datos a una unidad de control, y que esta sea capaz de gestionar y almacenar dichos datos.
Para la unidad de control se ha optado por utilizar la plataforma Arduino, en lugar de otras plataformas como Raspberry, por diferentes motivos, como son menor precio, menor complejidad de utilización, y mejor adaptación al proyecto que se ha planteado.
La plataforma Arduino cuenta con una amplia lista tanto de placas como de módulos para distintos usos. De entre las placas, se opta por la más sencilla, la placa Arduino Uno antes que otras como Arduino Mega. Esta última es una placa superior a la elegida, pero se deshecha su utilización, ya que se trata de una placa más cara y menos utilizada en el mundo de la electrónica (con lo que existe mucha menos información que sobre la placa Arduino Uno). La placa Arduino Mega tiene más memoria que Arduino Uno, pero como veremos a continuación, igualmente insuficiente para almacenar toda la información que van a recibir por parte de los sensores. También cuenta con un número superior de pines de conexión (54 por los 14 que tiene Arduino Uno), pero al optar por un tipo de sensor que permite su instalación en bus, se requerirán muy pocos pines, lo que hace que la placa Arduino Uno se ajuste más a las necesidades del proyecto. Para la elección de los sensores, se opta primero por utilizar sensores digitales en lugar de analógicos, ya que, al utilizar importantes longitudes de cable, el ruido captado por el cable hace que los sensores analógicos sean menos precisos que los digitales.
Se prueban dos tipos de sensores digitales de temperatura, el DS18S20 y el DHT22, ambos de precios similares. El primero se trata de un sensor de 9 bits de resolución (el DHT22 tiene 8 bits de resolución), pensado para ser utilizado tanto en ambientes interiores como exteriores, y con la capacidad de ser instalado en bus, lo que reduce de manera considerable la cantidad de cable a utilizar. Tiene como inconveniente que su programación es mucho más compleja que la del DHT22. Se escoge para la monitorización el DS18S20 principalmente porque podremos realizar una instalación en bus, utilizando nada más que un pin de la placa Arduino, se trata de un sensor más preciso (0,5ºC de precisión, exactitud recomendada por la norma UNE-7726 [37]), y dará menores problemas al ser utilizado en el exterior del edificio.
Se ha mostrado en el apartado de estado del arte que se utiliza en muchos proyectos el sensor DS18B20. Este sensor es superior al sensor elegido, porque tiene la ventaja de tener una resolución variable, esto quiere decir que, modificando la resolución del sensor, se puede mejorar la precisión del sensor a costa de un mayor tiempo de respuesta o viceversa. Se trata de un sensor ligeramente más caro que el DS18S20, y sus ventajas no son determinantes en este proyecto, ya que el sensor elegido tiene una precisión suficiente para lo requerido, y el tiempo de respuesta es de menos de un segundo, un intervalo de tiempo mucho menor al requerido. Por estos motivos, y dado que se necesita un número importante de sensores, se opta por el sensor DS18S20 que es más económico y sus características son suficientes para el proyecto.
Para almacenar los datos, las placas Arduino cuentan con una memoria EEPROM (Erasable Programmable Read-Only Memory). No obstante, se trata de una memoria muy pequeña y de uso muy limitado. Como veremos a continuación, la de Arduino Uno es de 1 Kb (en tanto que Arduino Mega tiene 4 Kb). Puesto que el sistema va a estar formado por decenas de sensores, transmitiendo datos de temperatura cada pocos segundos, lo que va a significar
miles de datos de temperatura registrados en una sola semana, hace que la memoria interna de la placa Arduino elegida sea totalmente inútil para el almacenaje de datos. A parte se trata de una memoria que tiene como se ha dicho un uso muy limitado, puesto que devuelve los últimos datos que haya grabado, y en el caso de tener varios sensores funcionando a la vez, su gestión es muy complicada.
Por todo lo anterior, se hace imprescindible utilizar una tarjeta de almacenamiento masivo. Se han seleccionado tarjetas SD de 2 Gb, ya que tienen espacio suficiente para almacenar los datos de temperatura que se vayan transmitiendo a la placa Arduino (aunque tengamos muchos sensores transmitiendo en intervalos de tiempo muy pequeños, los archivos que se generarán tendrán unos pocos Mb de tamaño) y no será necesario realizar un desembolso mayor en tarjetas de más espacio.
Para la conexión de la tarjeta es necesario un módulo externo (también proporcionado por Arduino) ya que la placa Arduino Uno no admite la conexión de estas tarjetas de forma directa. Este módulo utilizará varios pines para conectarse a la placa debido a que utiliza el protocolo de comunicaciones SPI, y, deberá colocarse muy próximo a ella.
Se valora la posibilidad de utilizar comunicación inalámbrica, para ello se prueba utilizar placas Arduino Uno Wifi, que son las placas Arduino Uno con el módulo ESP-8266 instalado, lo que le hace poder conectarse a internet. Con estas placas se podría crear un servidor web al que las mismas estarían subiendo constantemente los datos de temperatura que fueran recibiendo de los sensores, y así poder seguir la monitorización en tiempo real.
Esta opción se descarta principalmente por la complejidad que tendría llevarla a cabo. Y es que la programación de este tipo de sistema es sumamente difícil, y sobre esta placa hay muy poca información, ya que es de un uso mucho más común el módulo Wifi para Arduino (que tiene un precio tres veces mayor a la placa Arduino Uno).
Por último, es necesario tener un registro de los diferentes datos de temperatura, por lo que es importante que lleven un orden cronológico. Para ello habría dos opciones, o utilizar el reloj interno que tiene Arduino, o instalar un reloj externo. Los relojes externos no son caros, sin embargo, su utilización no aporta demasiadas ventajas. Para que funcionara con autonomía, debería contar con una batería externa, ya que, si se mantiene conectado a Arduino, cuando se interrumpa la alimentación de la placa para extraer los datos, dicho reloj se desconfiguraría, que es lo que lo ocurre al reloj interno de Arduino. Cierto es que el reloj externo es más preciso que el interno de Arduino, pero si se vuelve a configurar la hora cada pocos días (cada vez que se extraigan datos de la placa), este efecto apenas es relevante. Por ello se opta por no introducir al sistema un nuevo dispositivo, y aprovechar el reloj interno de fácil configuración que tiene Arduino, teniendo en cuenta que cada vez que se apague la placa habrá que reconfigurar en la programación la hora.