Professional Documents
Culture Documents
“Sistema de monitorización y
telegestión remota basado en Arduino
para Smart Buildings”
Autor/a:
Julio Rubén Sánchez Torrecilla
Tutor/a:
Tomás Carlos Sogorb Devesa
GANDIA, 2014
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
I
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Agradecimientos:
- Rubén Sánchez -
II
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
ÍNDICE
III
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
IV
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
RESUMEN:
V
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
ABSTRACT:
The continuous increase of the energy requirement, the current global economic
environment and the strong increase of the Information and Communication
Technologies (ICT) have led, during the last years, to the development of technologic
solutions that allows the optimization of energy consumption. These projects have a
great relevance since it achieves a reduction in costs and environmental impact, because
of the increasingly sophistication systems and, of course, more economical.
This work presents the different technologies that integrate the developed
solution and the used components for designing and implementing the several parts of
the system, both hardware and software. The correct operation of the entire system will
be also detailed.
As described in the project, new features were added to the original objectives,
improving the user transparency and functionality, as well as its versatility. All this was
implemented in order to make a marketable and easily expandable system or future
applications.
VI
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
1. INTRODUCCIÓN
Más concretamente, los objetivos que se pretenden conseguir con este trabajo son:
Objetivos secundarios:
1. Configurar un sistema basado en entorno web que cuente con una base de datos
capaz de almacenar y mostrar los datos obtenidos a partir de una red de
controladores en diversas localizaciones.
2. Programación del sistema microcontrolador basado en Arduino.
3. Adaptación de los diferentes sensores al sistema digital.
4. Permitir accionamientos de relés para el control remoto de circuitos.
5. Montaje del sistema y comprobación del dispositivo y su comunicación con la
plataforma de almacenamiento de datos.
-1-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
El segundo capítulo hace un breve repaso sobre el estado del arte y aclara el
porqué de este proyecto y la elección de una tecnología y no otra.
En el tercero se plantean los requisitos que deberá reunir el sistema para poder
simular una plataforma de automatización y telegestión y poder cumplir con los objetivos
del TFG. Todo ello, tras estudiar soluciones reales y bajo la experiencia del autor.
Entre el cuarto y quinto apartados podremos hacernos una idea de los distintos
elementos (dispositivos, aplicaciones y tecnologías), tanto hardware, como software que
han sido necesarios para la realización del proyecto, mientras que en el sexto nos
centraremos en detalle en el diseño, montaje y programación de todo el conjunto hasta
conseguir el sistema definitivo.
Con los datos del capítulo anterior y en función de los objetivos marcados al
comienzo de la memoria, se detallarán en el capítulo ocho las conclusiones obtenidas y
posibles trabajos futuros.
1.3. METODOLOGÍA
-2-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
1.4. ETAPAS
-3-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
En este trabajo nos hemos centrado en edificios como podría ser una torre de
oficinas, una biblioteca, un pequeño campus como el de Gandía… aunque las
soluciones que se plantearán, también tendrían cabida en una gran vivienda e incluso,
con una configuración adecuada de las comunicaciones, podría servir para una red de
locales de negocios que se encuentren en localizaciones remotas.
Con el paso de los años, han ido apareciendo protocolos y sistemas cada vez
más complejos y a su vez robustos, que cuentan con unas características más
adecuadas a cada campo. Por nombrar algunos, en automatización de edificios y
viviendas, podemos encontrar KNX y Lonworks, y en el ámbito industrial podríamos
destacar Profibus, CAN, Modbus y un largo etcétera.
-4-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Durante el discurso inaugural, Smart Buildings now and in the future (Edificios
Inteligentes de ahora y del futuro), Jim Sinopoli aseguró que los edificios contabilizan un
41% de energía primaria consumida, más que los sectores del transporte y de la
industria. Por ello, subrayó la importancia de potenciar el uso de las nuevas tecnologías
para mejorar la eficiencia de los inmuebles [fuente: Casadomo.com. Artículo: “Smart
Building Conference celebra su tercera edición en ISE 2014].
-5-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Es por eso, que están apareciendo multitud de dispositivos que no necesitan una
pasarela para poder conectarse a internet, cosa antes impensable. Algunos ejemplos
son los “wearables”, los termostatos con comunicación WiFi, las Google Glass, sistemas
de tracking para vehículos….
Además de los fabricantes que han ingeniado esos productos, existe una
comunidad de “makers” que están desarrollando dispositivos para controlar otros
aparatos a partir de microcontroladores de código abierto como Arduino.
Por ello, se ha optado por una placa Arduino que es, en esencia, un
microcontrolador con muchas ventajas y que cumple con todas las expectativas, como
veremos. También existen otras opciones parecidas como podría haber sido una
Raspberry Pi, Beagle One, un barebone… pero cada una de ellas cuenta con unas
características específicas que las podrían convertir en mejores candidatas por algún
motivo, pero son penalizadas en otros.
-6-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
1.4.1. Arduino
En los últimos días están apareciendo nuevos modelos como Arduino Yun y
Galileo que incorporan procesadores más potentes y de otros fabricantes como Intel.
-7-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Para el trabajo se van a emplear dos placas Arduino que simularán la red de
nodos con una topología distribuida, en la que cada uno de ellos realice unas tareas
determinas. De esta manera, se optimiza el funcionamiento de los nodos y se minimiza
el “punto único de fallo”, propio de topologías centralizadas. Para un gran edificio sería
necesario un mayor número de nodos, pero para la realización de este proyecto, con los
dos dispositivos elegidos sería más que suficiente para poder probar su funcionamiento.
Nº Función
1 Encendido/apagado circuitos 230V
2 Medición de temperatura
3 Medición humedad relativa del aire
4 Medición niveles lumínicos
5 Detección de presencia
6 Ejecución de escenarios (accionamiento simultáneo de varios
dispositivos con una única orden).
7 Visualización de parámetros recogidos desde un interfaz web
8 Almacenamiento de datos (data logging)
9 Control remoto mediante interfaz web
10 Control de motores
11 Detección de calidad del aire / sustancias volátiles nocivas.
12 Página web para alimentar un panel informativo de temperatura y
humedad en cumplimiento del R.D. 1826/2009 de noviembre.
13 Visualización de gráficas con los históricos de datos registrados.
14 Comunicación entre nodos
Tabla 2. Listado de funcionalidades objetivo
-8-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
4. HARDWARE EMPLEADO
Microcontrolador ATmega328
Voltaje de operación 5V
Voltaje de entrada recomendado 7-12V
Pines digitales E/S 14 (6 disponen de salida PWM)
Pines de entrada analógica 6
Consumo por pin E/S 40mA
Consumo del pin 3.3V 50mA
Memoria flash 32kB (0.5kB empleados por el bootloader)
SRAM 2kB
EEPROM 1kB
Frecuencia de reloj 16MHz
Tabla 3. Resumen características Arduino UNO Rev3
-9-
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Microcontrolador ATmega2560
Voltaje de operación 5V
Voltaje de entrada recomendado 7-12V
Voltaje de entrada (límites) 6-20V
Pines digitales E/S 54 (14 disponen de salida PWM)
Pines de entrada analógica 16
Consumo por pin E/S 40mA
Consumo del pin 3.3V 50mA
Memoria flash 256kB (8kB empleados por el bootloader)
SRAM 8kB
EEPROM 4kB
Frecuencia de reloj 16MHz
Tabla 4. Resumen características Arduino Mega Rev3
4.3. COMUNICACIONES
- 10 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Hay que tener en cuenta que el W5100 y la micro-SD comparten el bus SPI, por
lo que sólo uno de ellos puede ser utilizado a la vez. Si se desea utilizar ambos
simultáneamente, hay que tenerlo en cuenta al escribir el código.
Esta versión de shield es compatible con tecnología PoE (Power over Ethernet)
mediante el empleo de un accesorio.
- 11 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
4.4. SENSORES
Los sensores utilizados nos permiten recibir información del entorno. Se han
elegido buscando el compromiso entre las especificaciones y un bajo precio. Todos ellos
cuentan con características suficientes para la realización del proyecto, sin llegar a las
de dispositivos profesionales que dispararían su precio, pero que no aportarían nada al
objetivo final de este trabajo.
- 12 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Características:
- Rango alimentación: 3 ~ 5V
- Rango de datos: 0-65535lx
- Convertidor de Iluminancia a digital incorporado y 16bitAD;
- Bajo consumo de corriente bajo función de “power down”,
- Posibilidad de seleccionar dos tipos de direcciones I2C esclavo
- Función especial de detección (min. 0.11 lx, max. 100000 lx)
Figura 7. Sensor BH1750
Características:
- Sample rate: 0.5 Hz
- Tensión de operación: 3.3 a 6 VDC @1.5mA max. (50uA en stand-by)
- Rango de medición de humedad: 0-100% @±2% (max ±5%) de exactitud.
- Rango de medición de temperatura: -40 a +125ºC ±0.2 ºC de exactitud.
- 13 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Características:
- Voltaje alimentación: 5Vdc.
- Rango medición: hasta 6m.
- Salida: estado de un pin TTL.
- Cuenta con reguladores para ajustar el retardo
de detección y de restablecimiento.
Figura 9. Sensor PIR
El sensor presenta una baja conductividad en aire limpio, que irá aumentando
conforma crezca la concentración de gas.
El modelo elegido viene montado sobre una placa y cuenta con un circuito
integrado y la circuitería que facilitan su conexionado, la lectura de valores mediante
una entrada analógica de Arduino y una salida digital para accionar un indicador.
También incorpora un potenciómetro para realizar un ajuste manual.
Características:
- Voltaje alimentación: +5V
- Resistencia de carga ajustable.
- Tiempo idóneo de precalentado: 48 horas
- Composición del sensor: SnO2
- Concentraciones: 300-10000ppm
4.5. ACTUADORES
Los actuadores reciben una orden desde una salida del microcontrolador para
convertirla en la activación de un proceso automatizado.
Contamos con dos placas con relés para el accionamiento de circuitos a 230Vac.
Una de las placas cuenta con 8 circuitos y la otra con 4, pero sus características son
- 14 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
idénticas. Las entradas son activas en modo LOW (hay que tenerlo en cuenta a la hora
de programar el microcontrolador).
Características:
- Voltaje alimentación: +5V
- Voltaje accionamiento: +5V
- Canales opto-acoplados.
- Led de estado en cada canal.
- Consumo por canal: 80mA
- Relés: AC250V 10A ; DC30V 10A
- Dimensiones módulo 4CH: 75.09x54.91mm
- Dimensiones módulo 8CH: 137.91x53.34 mm Figura 11. Módulo relés 4CH
- 1 transistor TIP120
- Diodo 1N4007
- Resistencia 1kΩ
- 15 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
- 16 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Además del editor, el IDE cuenta con otras herramientas que nos facilitan la
programación, el uso de librerías, la detección de errores, selección de puerto y modelo
de placa a programar… Una de las herramientas más utilizadas a la hora de depurar el
funcionamiento del programa es el Monitor Serial, que nos permite comunicarnos
mediante el USB de nuestro PC y ver mensajes de la ejecución que hayamos
programado.
- 17 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
5.1.2. Librerías
5.3. XIVELY
Como objetivo para este proyecto se planteaba el registro de las lecturas de los
sensores en una base de datos. Aunque se decidió contar con un servidor local que
dispone de MySQL, el cual permitiría crear nuestra propia base de datos, se ha optado
por usar una solución “Paas” (Platform as a Service) alojada en “la nube”.
Las ventajas de usar esta solución son muchas, entre ellas destacaría:
- 18 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Como se ha comentado, los servicios que ofrecen estas y las que van apareciendo todos
los días, son similares y van adaptándose con el paso del tiempo.
Esta solución que cuenta con millones de dispositivos conectado, pionera en su sector,
originalmente era gratuita, pero tras su gran éxito y posterior compra por parte de
LogMeIn, pasó a ser de pago, aunque esto es para obtener unos servicios “premium”
de asistencia, conexión de alto número de dispositivos y disponibilidad de comunicación
y almacenamiento.
- 19 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Para la creación del entorno web fue necesario el uso de un editor adecuado.
Debido a los reducidos conocimientos en HTML y CSS con que se contaba al comienzo
de este proyecto, se optó por la utilización de herramientas de edición visual de páginas
web, lo que se conoce como editores WYSIWYG, acrónimo de What You See Is What
You Get.
En primer lugar se optó por Kompozer por su sencillez, pero más adelante,
conforme fueron aumentando los requisitos, así como los conocimientos en HTML5,
CSS3 y la necesidad de uso de JavaScript, se optó por Dreamweaver que, aunque se
trata también de un entorno visual, cuenta con mayores capacidades.
Los lenguajes utilizados en el entorno web de creación propia son HTML5 para
la estructura de la página, CSS3 para la edición de estilos y JavaScript para dar
dinamismo a la página.
Éste último ha sido necesario, sobre todo, para intercambio de información entre
páginas. Así, se han utilizado scripts de jQuery para la lectura de valores desde Xively
a la web alojada en nuestro servidor local (Raspberry Pi). También se ha empleado
AJAX (Asynchronous JavaScript and XML) para el intercambio dinámico de información
entre la web alojada en nuestro Arduino y el navegador. Esto evita que la página deba
ser recargada constantemente para que se actualice cada vez que un valor cambia o
que se debe accionar un circuito desde un botón.
5.6. PUTTY
- 20 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Este programa se usa para realizar conexiones mediante SSH con nuestro
servidor en la placa Raspberry Pi y poder instalar aplicaciones o actualizar información
sin necesidad de un monitor, teclado o ratón.
El problema del Monitor Serie del IDE es que solo nos permite visualizar un
puerto, así que no es posible ver en tiempo real información de dos placas a la vez.
Como esto era necesario, se optó por el uso de Terminal v1.9b que, además de
permitirnos abrir varias conexiones, cuenta con herramientas adicionales como el
registro de datos, grabación de macros, representaciones en binario y hexadecimal...
Figura 17. Pantalla control Terminal v1.9b con lecturas del puerto serie
- 21 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
No solo se ha elegido esta última tecnología por razones prácticas del proyecto,
sino también porque, como se comentaba al comienzo de esta memoria, el avance del
“Internet de las Cosas” está sirviendo para que cada día más dispositivos y soluciones
se desarrollen y funcionen interconectados, ya sea mediante comunicaciones
inalámbricas, Ethernet o mediante Internet móvil (con una tarjeta GPRS/3G/4G), todo
ello sobre tecnología IP.
- 22 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
I2C
PC
(programación y Ethernet
Monitor Serie)
Infraestructura de red
802.11b/g (Wifi) (Router + Switch +
punto acceso Wifi)
Wifi
SERVIDOR GPRS/3G/4G USUARIO SERVIDOR LAMP + FTP
XIVELY (BBDD SaaP) (PC, Table, (Raspberry Pi
Smatphone)
Está compuesto por una placa Arduino Mega y un shield Ethernet. Dicho
conjunto será el encargado de facilitarnos un web server en el que alojaremos la página
de control del sistema que habremos de diseñar y programar.
- 23 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Es posible alimentar la placa desde el propio puerto USB, mediante el pin Vin
(unido al USB) por el que deberemos introducir 5 voltios y también es posible conectar
una fuente de alimentación que suministre un voltaje en continua que cumpla con el
rango de sus especificaciones. La alimentación de los sensores que lo precisen, se
puede obtener de los pines de +5 y GND. Si el dispositivo presenta un alto consumo de
corriente, puede ser recomendable usar una fuente externa. Del mismo modo, si nuestra
placa cuenta con muchos dispositivos adheridos, es importante que la fuente de
alimentación pueda suministra un nivel de corriente adecuado. Si no, se producirán
fallos de funcionamiento. El motor requiere una fuente adicional de 12Vdc.
Está formado por una placa de Arduino UNO y un shield WiFi al que se le ha
incorporado un sensor de temperatura y humedad relativa además de un sensor LDR y
el módulo de cuatro relés.
- 24 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
compra de una tarjeta de alguna operadora con el coste que ello supondría y las ventajas
tanto didácticas, como funcionales, serían prácticamente nulas pues la configuración es
muy similar. Por otro lado, si el sistema se instalase en el Campus de la UPV, el acceso
a la red inalámbrica está asegurado.
Igual que en el caso de la elección del shield, se podría haber optado por otros
tipos de interconexión entre los nodos como podría ser la inalámbrica, mediante, por
ejemplo, Bluetooth, Zigbee (Arduino dispone de módulos XBee) o cualquier otro radio
enlace, pero se ha preferido simular un bus porque, como se ha comentado antes, en
la automatización de edificios, el enlace entre los principales nodos o módulos suele
hacerse mediante un sistema cableado.
Otra opción hubiese sido la comunicación seria entre los dispositivos, pero esto
puede complicar la tarea de programación a la hora de depurar código porque la placa
Arduino Uno solo cuenta con un único puerto serie (Arduino Mega cuenta con 4).
Además es más tedioso a la hora de programar el microcontrolador pues, deberemos
desconectar el bus para que el IDE pueda cargar el sketch a través del puerto USB.
Figura 20. Vista nodo secundario en caja estanca preparado para exteriores
- 25 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
y conectarlo al puerto USB de nuestro PC. Esto resultaría muy útil para instaladores y
personal de mantenimiento.
Para ello contamos con el entorno web que consta de tres partes bien
diferenciadas, pero todas ellas interconectadas.
Plataforma web de
control
(Servidor Raspberry Pi)
Es la parte del interfaz web que se alberga en el servidor local. En nuestro caso,
como se ha comentado antes, una Raspberry Pi con un servidor LAMP y FTP. A
continuación se describen las pantallas y se muestra una imagen de ellas.
Pantalla de acceso. Cuenta con un acceso sencillo que nos pide una contraseña
para permitir el paso al resto de pantallas. Se ha fijado el “1234” por defecto.
Tampoco se ha incluido una gran seguridad para la aplicación pues no entraba en
los objetivos del trabajo.
- 26 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Pinchando sobre cada uno de los “markers” podremos obtener información de cual
se trata y si cuenta con link, nos abrirá su web local.
También encontramos un menú con los accesos a otras pantallas y un widget que
nos informa del tiempo y la previsión a cuatro días.
Pantalla “Xively Develop”. Este link nos lanza a la pantalla de Xively en la que
trabajaremos en la fase de desarrollo de nuestro proyecto.
- 27 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
En dicho documento [2], entre otros, se fijan los valores límite de temperatura y
humedad en locales de uso administrativo, comercial y de pública concurrencia y
en el apartado “I.T. 3.8.3 Procedimiento de verificación” se indica que dichos
valores deberán ser monitorizados en todo momento y deberán ser visibles
mediante un dispositivo de unas dimensiones (mínimo DIN A3) con una precisión
de ± 0,5 ºC en locales de más de 1.000m2.
Es por ello que se incluye esta pantalla con la información recogida por nuestro
sensor y que se podría mostrar en cualquier monitor o TV que cuente con acceso
a la red, por ejemplo, en los monitores de los pasillos de la UPV.
- 28 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Pantalla “Gráficas Xively”. Nos muestra las gráficas con todos los datos
almacenados en Xively. Podremos visualizarlos en un listado los valores en tiempo
real o desplegar las gráficas.
Esto puede ser muy útil para revisar la evolución de un determinado valor en
función a otro parámetro, como por ejemplo, comparar el nivel de luminosidad
exterior con la temperatura.
Pantalla “Info”. Este último acceso se ha dejado por si se quiere incluir información
del proyecto, algún manual de uso, enlaces a datasheet…
- 29 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Analog Inputs / Sensors: aquí visualizamos en tiempo real los valores de dos
entradas analógicas genéricas y de los sensores de luminosidad y lo que hemos
llamado “Gas” que es la lectura que nos aporta el sensor de humo y sustancias
volátiles.
Para no alargar más el TFG, no se han incluido los valores en unidades ppm
(partículas por millón) porque para realizar ese ajuste, se debería realizar un
programa más completo que incluya la calibración del dispositivo y separar entre
- 30 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
En cualquier caso, con las lecturas que ahora realiza, si se acerca una fuente de
gas, como un mechero, o un algodón impregnado en alcohol, podremos ver cómo
el valor se dispara y podríamos asociarlo a una alerta.
Las combinaciones son infinitas pues podemos asociar el estado de uno o varios
sensores con el accionamiento de determinados dispositivos.
6.2. MONTAJE
En este apartado veremos cómo se han conectado los diversos dispositivos para
conseguir su funcionamiento. Como se comentaba al principio del documento, se ha
querido probar todo lo que se ha programado, así que ha sido necesario contar con los
equipos y conectarlos a una placa de pruebas.
- 31 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
SENSOR GAS
CONTROL
MOTOR
+12VDC
+5VDC
ROUTER + PUNTO
ACCESO WIFI
VENTILADOR
SERVIDOR
RASPBERRY PI
Esta placa cuenta con opto-acopladores lo que asegura que exista una
separación galvánica entre la parte de control, que funciona a 5V y la de potencia (a
230V). Esto nos permite trabajar con más seguridad, evitando el paso de un voltaje
elevado a nuestro Arduino, lo que supondría su avería.
- 32 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
En la tabla anterior podemos ver la relación de cada relé, con el pin que lo
controla y el circuito asociado. Esto último es solo un ejemplo de la información que
deberíamos mostrar si estuviésemos haciendo el proyecto de un edificio. De esta
manera, tendríamos la información para facilitar el conexionado y las futuras revisiones
a un instalador o personal de mantenimiento.
Del mismo modo, en los esquemas unifilares de los cuadros eléctricos y los
esquemas de principio de climatización, debería aparecer esta asociación.
- 33 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Este último sensor nos proporciona lecturas de mayor rango y además, está pre-
calibrado y gracias a la librería, obtenemos los valores deseados sin necesidad de
curvas de respuesta.
Igual que en el caso anterior, se ha usado un sensor que viene instalado en una
placa, lo que nos facilita su manipulación y el conexionado rápido.
- 34 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
El bus I2C se creó como una forma de comunicación sencilla entre componentes
que residen en la misma placa de circuito. Cuenta con una velocidad de transmisión de
100Kbits por segundo, aunque puede llegar hasta los 3,4Mhz. La metodología de
comunicación de datos del bus I2C es en serie y sincrónica. Se emplean dos líneas, una
de reloj (SCL) y otra para datos (SDA), las cuales se conectan a todos los dispositivos
que pertenecen al bus [12].
Como vemos, existen dos parejas de pines en cada placa. Esto es útil si
queremos conectar más de dos dispositivos, pues iremos encadenándolos uno tras otro.
En nuestro caso, para el Arduino Mega, hemos ocupado unos conectores para la
comunicación con otro Arduino y la otra pareja, para el sensor de luminosidad.
Una de las grandes ventajas de usar shields con Arduino es que no es necesario
cablear, sino que se montan apilándolos aprovechando los pines de los conectores que
- 35 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
incorporan. Al contar con una forma similar a la placa Arduino, no surgen dudas a la
hora de realizar la conexión pues encajan perfectamente uno sobre otro.
Es posible apilar más shields o placas que diseñemos pero siempre deberemos
tener en cuenta si son compatibles con los demás, respetando los pines de los que
hacen uso.
Se han incluido dos detectores de presencia que activan una entrada digital en
caso de movimiento. El dispositivo cuenta con unos selectores giratorios que nos
permitirán hacer un ajuste más fino de la sensibilidad de detección y del retardo una vez
que los tengamos en su emplazamiento definitivo.
Cada detector cuenta con un pin Vcc por el que se alimenta con 5V y otro de
GND para llevarlo a masa. El tercer pin, “OUT” irá conectado a lo pines 30 y 31 de
nuestro Arduino Mega.
Puesto que se quiere realizar un control regulado, debemos escoger un pin que
lo permita, en nuestro caso es el pin digital que viene identificado como “~9” (PWM).
- 36 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
6.3. PROGRAMACIÓN
Tras juntar todas las partes, se ha obtenido un código para cada placa de Arduino
que se cargará y ejecutará constantemente.
6.3.1. Sketch
Como norma, en cada sketch de Arduino, y como no podía ser de otra forma, en
los de este trabajo, podremos encontrar estas partes:
Aunque el loop sea la parte donde se ejecuten las órdenes que definimos para
el funcionamiento del sistema, es posible el uso de funciones como en la mayoría de
lenguajes de programación. Éstas se crean fuera del bucle, pero al ser llamadas dentro
del Loop se ejecutan también de forma ininterrumpida.
Como hemos indicado, cada placa Arduino cuenta con una programación
específica pues cumple con una misión determinada del mismo modo que lo harían los
distintos autómatas o módulos PLC de una instalación.
- 37 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Para que podamos enviar y recibir datos del servidor de Xively, debemos
configurar otros parámetros que nos facilita la página, como son la “API-key, el nº de
“feed” y tener cuidado de nombrar las variables con el mismo identificador que
configuremos los “datastreams” en la página. Todo esto se explicará más adelante.
Además del uso de las funciones propias de cada librería, se han creado unas
funciones para conseguir el efecto deseado que serán llamadas desde el loop:
- 38 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
- 39 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Vemos que no es una buena solución para una página web compleja, pues todo
ese código solo sirve para mostrarnos los dos valores de temperatura y humedad y un
título. Si quisiésemos que se muestre con un mejor estilo visual, tendríamos que añadir
- 40 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
muchas más líneas. Esto incrementaría notablemente el tamaño del sketch, pudiendo
llegar a quedarnos sin memoria.
6.3.2. Librerías
Como se ha comentado en el apartado 5.3 las librerías nos permiten ampliar las
capacidades del entorno Arduino para interactuar con otro hardware o manipular datos.
Para conseguir los objetivos del proyecto ha sido necesario el uso de varias de ellas.
- 41 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
La web que hemos diseñado debe ser capaz de comunicarse con el servidor de
Xively para solicitarle información y con la web que publica Arduino Mega. Como se ha
comentado, la programación se ha realizado mediante HTML5, CSS3 y JavaScript.
Por ejemplo, para el caso de la pantalla “R.D. 1826/2009 Nov.” hacemos uso de
unas librerías Javascript de Xively [19] y de un script que toma los datos que le
solicitemos. También ha sido necesario el uso de las librerías jQuery para el correcto
funcionamiento de los distintos scripts.
Aunque existe un tutorial que nos facilita Xively para conectar nuestro Arduino,
vamos a repasar, de manera resumida, cómo se ha configurado en nuestro caso:
- Una vez tengamos nuestra cuenta, nos vamos al apartado “Develop” desde
donde podremos gestionar nuestros prototipos. Aquí crearemos un
dispositivo nuevo pulsando “Add device” donde le asignaremos un nombre y
cierta información relevante.
- 42 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
- Aquí tendremos que buscar el “Feed Id” y la “API-key”, que son dos números
o códigos que nos identifican para realizar la conexión entre el servidor y
Arduino y que deberemos incluir en las correspondientes variables de
nuestro sketch. Estos valores se eliminarán y serán sustituidos por “API-key
here” o “feed-id here” en los archivos que se entreguen en los Ficheros
anexos del CD.
- Pulsando sobre el botón “Add Channel” iremos añadiendo canales en los que
recibir información. Al igual que con el Feed-id y la API-key, deberemos
prestar cuidado de copiar los nombres tal cual los hemos declarado en
nuestro sketch. En cualquier caso, si todo lo anterior se ha hecho
correctamente y el Arduino es capaz de enviar la petición correctamente a
Xively, a partir de los campos del archivo JSON, nos podrían crear los
canales de forma automática.
- Request Log, en el que podemos ver la llegada de las peticiones (Put, Get,
Post) y pinchando sobre ellas, ver su contenido.
- 43 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
- API Keys, donde podremos crear otras keys y administrar los permisos de
lectura, escritura, actualización y borrado de las mismas. Podemos crear
claves públicas y privadas.
- Triggers es un apartado de mucha utilidad pues, como su nombre indica, nos
permite configurar el disparo de la ejecución de un proceso en función de
multitud de parámetros de nuestros datos.
En nuestro caso hemos hecho uso de la aplicación Zapier que permite enlazar
los triggers de Xively con otras aplicaciones. Hemos optado por el envío inmediato de
un email a una cuenta con información del desencadenante. También se podrían haber
enviado avisos por SMS, Twitter o mensajes por Google Talk.
En la anterior imagen podemos ver un email que se generó tras subir los niveles
de gas al aproximar un mechero al sensor MQ-2.
- 44 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Para poder acceder de forma remota al servidor y así controlarlo desde cualquier
equipo que se encuentre fuera de la red local, es necesario contar con una IP pública
fija facilitada por nuestro proveedor de servicios de internet (ISP) y si esto no es posible
(dado su elevado coste), podemos usar un servicio DDNS (Dynamic Domain Name
System) como podría ser DynDNS, No-IP y otros muchos.
- 45 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
A continuación veremos los diversos pasos y pruebas que se han ido realizando
para comprobar que el sistema se comportaba de la forma que buscábamos.
7.1. PRUEBAS
Para la realización del proyecto ha habido que realizar multitud de pruebas pues
la integración de tantos dispositivos y tecnologías aumentaban la probabilidad de fallo.
- 46 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
- 47 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
- 48 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Una buena opción sería añadirle una placa que lo dote de WiFi o Ethernet,
pero en nuestro caso se quiere comunicar por bus y pasar los valores a
Arduino Mega para que sea este último el que muestre la información en un
navegador vía web.
- 49 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
Usar la placa Raspberry Pi para alojar los datos en la BBDD local. Para ello
habrá que configurar la base de datos y crear las consultas adecuadas.
- 50 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
ANEXO I - PRESUPUESTO
- 51 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
\Ficheros anexos\código\Librerías
- BH1750_master.rar
- Humidity_Temperature_Sensor
- I2C_Anything.rar
- XIVELY.rar
\Ficheros anexos\código\Sketch
\Ficheros anexos\Código\Sketch\ArduMegaEthernet\
- ArduMegaEthernet.ino
\Ficheros anexos\Código\Sketch\ArduUno_Xively\
- ArduUno_Xively.ino
\Ficheros anexos\código\Web\SD\
- index.htm
\Ficheros anexos\datasheet
- Arduino Ethernet Shield.pdf
- Arduino MEGA2560.pdf
- Arduino WiFi Shield.pdf
- ATmega2560.pdf
- ATMega328.pdf
- BH1750 (sin placa).pdf
- BH1750 SCH.pdf
- bh1750fvi-e.pdf
- DHT22.pdf
- Módulo 8 relés.pdf
- MQ-2 (sin placa).pdf
- MQ2.pdf
- PIR.pdf
\Ficheros anexos\datasheet\_links
- Arduino – ArduinoEthernetShield.website
- Arduino - Ethernet Shield.
- Arduino - SD.website
- Arduino - SDCardNotes.website
- Arduino - WiFiShieldFirmware
\Ficheros anexos\varios\
- Firmware WiFi Shield.rar
- 52 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
LISTADO DE FIGURAS
- 53 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
LISTADO DE TABLAS
- 54 -
TFG: “Sistema de monitorización y telegestión remota basado en Arduino para Smart Buildings”
BIBLIOGRAFÍA Y REFERENCIAS
[4] DOUKAS, C. (2012). Building Internet of Things with The Arduino: Arduino V.10
Ready!, Covers: communication with wired and wireless networks, android
communication, cloud communication and more!. S.L.: CreateSpace.
[7] GMAPS.JS – GOOGLE MAPS API WITH LESS PAIN AND MORE FUN.
<http://hpneo.github.io/gmaps/>
- 55 -