red zigbee para la monitorización de variables atmosféricas y meteorológicas

118
UNIVERSIDAD DE GRANADA INGENIERIA ELECTRÓNICA INDUSTRIAL NOMBRE DEL TRABAJO: Red ZigBee para la monitorización de variables atmosféricas y meteorológicas Autor: Julián Fernández Ortiz Directores: Andrés Godoy Medina Departamento: Departamento de Electrónica y tecnología de computadores Palabras clave: Redes, Sensores, Zigbee, Arduino, Inalámbrico, Control, Variables atmosféricas y meteorológicas

Upload: julian-fernandez-ortiz

Post on 24-Jan-2017

126 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

UNIVERSIDAD DE GRANADA

INGENIERIA ELECTRÓNICA INDUSTRIAL

NOMBRE DEL TRABAJO: Red ZigBee para la monitorización de variables atmosféricas y

meteorológicas

Autor: Julián Fernández Ortiz

Directores: Andrés Godoy Medina

Departamento: Departamento de Electrónica y tecnología de computadores

Palabras clave: Redes, Sensores, Zigbee, Arduino, Inalámbrico, Control, Variables

atmosféricas y meteorológicas

Page 2: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Resumen

Diseño, desarrollo e implementación de una red inalámbrica de

sensores (WSN) empleando la tecnología Zigbee. Se realizan

diferentes estudios y comparativas con varias tecnologías de

comunicación y se analizan las diferentes opciones de mercado

para el óptimo desarrollo de la red. A su vez, se desarrolla una

interfaz (multiplataforma) capaz de monitorizar los datos

aportados por los sensores y actuar sobre las diferentes

variables a controlar.

Se ha creado un prototipo de estación meteorológica y

atmosférica, capaz de monitorizar todas las magnitudes a medir,

minimizando costes y componentes y optimizando el gasto

energético.

Design, development and implementation of a Wireless Sensor

Network (WSN) using Zigbee technology. Different studies and

comparisons have been made with various communication

technologies and market options for the optimal development of

the network. Also, I have developed an interface (platform)

capable of monitoring the data provided by the sensors and

acting on different variables to control the procces.

It has been created an atmospheric and meteorological station,

able to monitor all measured magnitudes, minimizing costs,

components and optimizing energy consumption.

Page 3: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

UNIVERSIDAD DE GRANADA

INGENIERIA ELECTRÓNICA INDUSTRIAL

AUTORIZACIÓN DE LECTURA DE

TRABAJO FIN DE CARRERA

D. Andrés Godoy Medina profesor del Departamento de Electrónica y Tecnología de

Computadores de la Universidad de Granada, como director/es del Trabajo Fin de

Grado titulado “Red ZigBee para la monitorización de variables atmosféricas y

meteorológicas” y realizado por el alumno D. Julián Fernández Ortiz

CERTIFICA/N: que el citado Trabajo Fin de Grado, ha sido realizado y redactado por

dicho alumno y autorizan su presentación.

Granada,

Fdo. Andrés Godoy Medina

Page 4: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

UNIVERSIDAD DE GRANADA

INGENIERIA ELECTRÓNICA INDUSTRIAL

AUTORIZACIÓN DE DEPÓSITO EN LA BIBLIOTECA

Yo, D/Dña. Julián Fernández Ortiz con DNI 75169285H, autor del Trabajo Fin de

Grado titulado “Red ZigBee para la monitorización de variables atmosféricas y

meteorológicas” realizado en la Universidad de Granada

AUTORIZO: al depósito de dicho Trabajo en la Biblioteca de la Universidad de

Granada, y de la visualización a través de Internet.

Granada,

Fdo. D/Dña. Julián Fernández Ortiz

Page 5: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Índice de contenido1Abstract.....................................................................................................................................8

2Palabras clave............................................................................................................................8

3Motivación................................................................................................................................8

4Introducción..............................................................................................................................9

5Objetivos.................................................................................................................................11

6Análisis de la tecnología a usar...............................................................................................11

6.1Hardware.........................................................................................................................11

6.1.1Sensores...................................................................................................................11

6.1.1.1MG - 811; Sensor de medida de CO2..............................................................13

6.1.1.2MQ - 131; Sensor de medida de O3.................................................................13

6.1.1.3MQ – 7; Sensor de CO.....................................................................................14

6.1.1.4MQ-135............................................................................................................15

6.1.1.5SHT 25.............................................................................................................16

6.1.1.6Decisión y precios............................................................................................16

6.1.2Microcontroladores..................................................................................................17

6.1.2.1AVR vs PIC......................................................................................................17

6.1.2.2Decisión...........................................................................................................19

6.1.3Placa de Arduino [E4]..............................................................................................19

6.1.3.1Definición........................................................................................................19

6.1.3.2Un poco de historia..........................................................................................19

6.1.3.3Especificaciones y placas.................................................................................21

6.1.3.4Arduino en el mundo de la Tecnología............................................................24

6.1.3.5Decisión [E5]...................................................................................................24

6.1.4Baterías....................................................................................................................25

6.1.4.1Estudio de las variables ambientales de Granada y Nuuk...............................27

6.1.4.2Estudio del tipo de baterías existentes y cargadores........................................29

6.1.4.3Decisión...........................................................................................................36

6.1.5Tecnología inalámbrica............................................................................................37

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 1 de 114

Page 6: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.1.5.1ANT.................................................................................................................37

6.1.5.2Bluetoth............................................................................................................39

6.1.5.3Bluetooth low energy.......................................................................................40

6.1.5.4NFC..................................................................................................................41

6.1.5.5ZigBee..............................................................................................................42

6.1.5.6Comparativa y decisión de la tecnología a usar...............................................47

6.1.5.7Módulo inalámbrico.........................................................................................48

6.1.6Módulo inalámbrico. Funcionamiento y montaje....................................................54

6.1.6.1Operación.........................................................................................................54

6.1.6.2Breakout para Xbee..........................................................................................58

6.1.6.3Placa Xbee Explorer USB................................................................................58

6.2Software...........................................................................................................................59

6.2.1IDE de Arduino........................................................................................................59

6.2.2Programación de los modulos inalámbricos. X – CTU ..........................................62

6.3Interfaz con el usuario.....................................................................................................65

7Casos prácticos........................................................................................................................66

7.1Semáforo completo. Software Arduino...........................................................................66

7.2Estación meteorológica simple........................................................................................68

7.3Medidor de Calidad del Aire...........................................................................................73

7.4Medidor de CO en aire....................................................................................................75

7.5Estación meteorológica y atmosférica.............................................................................77

7.6Conexión Zigbee simple..................................................................................................81

7.7Estación meteorológica y atmosférica con conexión inalámbrica Zigbee......................82

8Aplicaciones del proyecto.......................................................................................................84

8.1Aplicación en red de edificios.........................................................................................84

8.2Red ZigBee en red de transporte urbano.........................................................................86

9Bibliografía.............................................................................................................................91

10Anexos..................................................................................................................................95

10.1Anexo 1: Códigos de programas...................................................................................95

10.1.1Códigos del IDE Arduino......................................................................................95

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 2 de 114

Page 7: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

10.1.1.1Caso Práctico 1. Semáforo Completo. ..........................................................95

10.1.1.2Caso práctico 2. Estación Meteorológica Simple..........................................96

10.1.1.3Caso práctico 3. Medidor de Calidad del Aire...............................................97

10.1.1.4Caso práctico 4. Medidor de CO en aire........................................................98

10.1.1.5Caso Práctico 5. Estación meteorológica y Atmosférica...............................99

10.1.1.6Caso práctico 6. Conexión Zigbee Simple...................................................101

10.1.1.7Caso práctico 7. Estación meteorológica y atmosférica con conexión inalámbrica Zigbee ...................................................................................................102

10.1.2Código del Software Processing..........................................................................104

10.1.2.1Caso Práctico 2. Estación meteorológica Simple........................................104

10.1.3Código del programa MATLAB..........................................................................105

10.1.3.1Caso práctico 2. Estación Meteorológica Simple........................................105

10.1.4Código en Lenguaje Python.................................................................................107

10.1.4.1Caso práctico 2. Estación meteorológica Simple.........................................107

10.1.4.2Caso Práctico 3. Medidor de Calidad del Aire.............................................108

10.1.4.3Caso Práctico 4: Medidor de CO en aire.....................................................109

10.1.4.4Caso Práctico 5. Estación Meteorológica y Atmosférica.............................110

10.2Anexo 2. Presupuesto general del proyecto final........................................................114

10.3 Anexo 3. Calendario de trabajo – Diagrama de Gant.................................................114

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 3 de 114

Page 8: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Índice de ilustracionesIlustración 1: Composición de una red de sensores....................................................................9

Ilustración 2: Componentes de un nodo....................................................................................10

Ilustración 3: Tabla de Calidad del Aire de Granada................................................................13

Ilustración 4: MG-811...............................................................................................................13

Ilustración 5: MQ-131...............................................................................................................13

Ilustración 6: Sensor MQ - 7.....................................................................................................14

Ilustración 7: Conexión del MQ-7............................................................................................15

Ilustración 8: Sensor SHT 25....................................................................................................16

Ilustración 9: Microcontrolador PIC.........................................................................................17

Ilustración 10: Microcontrolador de AVR.................................................................................17

Ilustración 11: Plataforma Arduino...........................................................................................20

Ilustración 12: Arduino Uno.....................................................................................................23

Ilustración 13: Arduino Mega...................................................................................................23

Ilustración 14: Arduino Mini.....................................................................................................23

Ilustración 15: Componentes de la placa Arduino Uno............................................................25

Ilustración 16: Parámetros climáticos de Granada....................................................................27

Ilustración 17: Parámetros clímaticos de Nuuk........................................................................28

Ilustración 18: Baterías alcalinas. Capacidad frente a intensidad a diferentes temperaturas ..30

Ilustración 19: Pila alcalina.......................................................................................................31

Ilustración 20: Baterías de litio. Capacidad frente a intensidad a diferentes temperaturas .....32

Ilustración 21: Batería de litio...................................................................................................33

Ilustración 22: Baterías de NiMH. Capacidad frente a intensidad a diferentes temperaturas...34

Ilustración 23: Batería de NiMH...............................................................................................35

Ilustración 24: Cargador Solar Doble USB Xtorm Lava Charger AM114...............................36

Ilustración 25: Ciclocomputador y pulsómetro Garmin............................................................38

Ilustración 26: Bluetooth Low Energy......................................................................................40

Ilustración 27: Ejemplo de uso de la tecnología NFC...............................................................42

Ilustración 28: Ejemplo de red ZigBee.....................................................................................44

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 4 de 114

Page 9: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Ilustración 29: Topologías de red..............................................................................................45

Ilustración 30: Modelo ZigBee.................................................................................................46

Ilustración 31: Perfiles ZigBee.................................................................................................47

Ilustración 32: Módulo Xbee Znet 2.5......................................................................................49

Ilustración 33: Módulo EasyBee 3............................................................................................50

Ilustración 34: Módulo Pixie.....................................................................................................51

Ilustración 35: Módulo ETRX1................................................................................................52

Ilustración 36: Conexiones y dimensiones de un módulo Xbee Serie 2...................................54

Ilustración 37: Estructura de comando AT................................................................................56

Ilustración 38: Modos de operación. Módulo Xbee de Digi.....................................................57

Ilustración 39: Breakout para Xbee y sus dimensiones............................................................58

Ilustración 40: Placa Xbee Explorer USB.................................................................................59

Ilustración 41: Placa Xbee Explorer USb con el módulo Xbee acoplado.................................59

Ilustración 42: IDE Arduino......................................................................................................60

Ilustración 43: Arduino Serial Monitor.....................................................................................62

Ilustración 44: Pestaña PC - Setting de X - CTU......................................................................63

Ilustración 45: Range Test de X - CTU.....................................................................................64

Ilustración 46: Pestaña Terminal de X - CTU...........................................................................64

Ilustración 47: Modem Configuration de X - CTU...................................................................65

Ilustración 48: Cable USB - B..................................................................................................66

Ilustración 49: Placa Protoboard...............................................................................................67

Ilustración 50: Montaje del Semáforo completo.......................................................................67

Ilustración 51: Sensor de temperatura y humedad DHT11.......................................................69

Ilustración 52: Montaje de la Estación Meteorológica Simple.................................................70

Ilustración 53: Archivo .txt creado por Processing...................................................................71

Ilustración 54: Gráficas creadas por MATLAB........................................................................72

Ilustración 55: Gráfica de datos de la Estación Meteorológica Simple obtenida con Python. .73

Ilustración 56: Montaje del MQ-135........................................................................................74

Ilustración 57: Base de datos de la calidad del aire (Sensor MQ135)......................................75

Ilustración 58: Datos obtenidos del sensor MQ135 (Medidor de Calidad del Aire).................75

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 5 de 114

Page 10: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Ilustración 59: Conexiones del modulo del sensor MQ-7.........................................................76

Ilustración 60: Base de datos de los valores arrojados por el sensor MQ-7.............................77

Ilustración 61: Gráfica de los datos arrojados por el sensor MQ-7...........................................77

Ilustración 62: Montaje Caso práctico 5 (perspectiva 2)..........................................................78

Ilustración 63: Montaje Caso práctico 5 (perspectiva 1)..........................................................78

Ilustración 64: Montaje Caso práctico 5 (perspectiva 3)..........................................................78

Ilustración 65: Caso Práctico 5. Gráfica Partículas Nocivas.....................................................79

Ilustración 66: Caso Práctico 5. Gráfica Partículas CO............................................................79

Ilustración 67: Caso Práctico 5. Gráfica Temperaturas.............................................................80

Ilustración 68: Caso Práctico 5. Gráfica Humedad...................................................................80

Ilustración 69: Caso Práctico 5. Gráfica que recoge todas las medidas de todos los sensores. 80

Ilustración 70: Resultado del caso práctico 6............................................................................82

Ilustración 71: Conexionado del último caso práctico y proyecto final....................................83

Ilustración 72: Monitorización de magnitudes a medir. Proyecto final....................................84

Ilustración 73: Zona geográfica - Red meteorológica y atmosférica........................................85

Ilustración 74: Horarios de la línea LAC en Granada...............................................................87

Ilustración 75: Caja de metacrilato - Protector de Electrónica.................................................88

Ilustración 76: Presupuesto general del Proyecto...................................................................114

Ilustración 77: Calendario de trabajo - Diagrama de Gant......................................................115

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 6 de 114

Page 11: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Índice de tablasTabla 1: Características técnicas de las diferentes placas de Arduino......................................22

Tabla 2: Clases de dispositivos Bluetooth.................................................................................39

Tabla 3: Clasificación de los dispositivos Bluetooth por Ancho de Banda...............................40

Tabla 4: Precios de los diferentes módulos inalámbricos ZigBee.............................................53

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 7 de 114

Page 12: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Red Zigbee para la monitorización devariables atmosféricas y

meteorológicas1 AbstractDiseño, desarrollo e implementación de una red inalámbrica de sensores (WSN) empleando latecnología Zigbee. Se realizan diferentes estudios y comparativas con varias tecnologías decomunicación y se analizan las diferentes opciones de mercado para el óptimo desarrollo de lared. A su vez, se desarrolla una interfaz (multiplataforma) capaz de monitorizar los datosaportados por los sensores y actuar sobre las diferentes variables a controlar.

Creación de un prototipo de estación meteorológica y atmosférica, capaz de monitorizar todaslas magnitudes a medir, minimizando costes y componentes y optimizando el gastoenergético.

2 Palabras clave• Redes

• Sensores

• Zigbee

• Arduino

• Inalámbrico

• Control

• Variables atmosféricas y meteorológicas

3 MotivaciónLa domótica, la inmótica y las redes de sensores inalámbricos son cada vez más utilizadostanto en entornos industriales como en entornos domésticos. El uso de estas herramientas parafactores tales como la eficiencia energética, el ahorro en el consumo eléctrico o laadaptabilidad de los sistemas al usuario, están siendo cada vez más necesarios en unasociedad “”automatizada””. Para la conexión de todos estos mecanismos es necesario unprotocolo de comunicación que sea seguro y eficaz y es ahí donde tiene cabida mi proyecto,en la realización de una red de comunicación integrada y completa para la red antesmencionada.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 8 de 114

Page 13: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

La corroboración de la importancia de esta nueva tecnología la tenemos en estudios realizadospor grandes empresas como Microsoft, IBM, Texas Instrument, Apple, Intel o másactualmente Google. Así, se nota un prometedor futuro a proyectos realizados en este ámbito,ya que presumiblemente serán apoyados por grandes empresas del sector tecnológico.

En cuanto al ámbito académico, pienso que la realización de un proyecto basado encomunicaciones y redes inalámbricas y que se apoye en bases como la programación o elinternet de las cosas, proporciona muchas herramientas básicas carentes en los estudiantes delGrado en Ingeniería Electrónica Industrial. Dicho de otro modo, creo que los conceptos yhabilidades adquiridas a lo largo de la realización de este TFG son complementarios con losestudios cursados durante mi grado.

Centrándonos más en el paradigma del proyecto, la monitorización o análisis de las variablesatmosféricas de una ciudad a través de una red de sensores, el objetivo que se persigue coneste trabajo es mostrar el estado actual y en tiempo real de los niveles de contaminación. Heobservado que en la ciudad que vivo, Granada, no son suficientes los sensores que tenemos,ya que en la capital solo poseemos dos y no miden todas las magnitudes nocivas para nuestroambiente. Es por ello, que se intentará diseñar una red de sensores fácilmente instalable quepermita realizar la monitorización atmosférica en el lugar que se desee y de las magnitudesque se quiera. Este hecho, nos otorgará unos datos mucho más escalables y cuantiosos, lo quesupondrá una mayor facilidad en el análisis de la situación.

4 IntroducciónLas redes de sensores están basadas en pequeños dispositivos, llamados nodos, capaces deobtener información del medio, procesarla internamente y enviarla de forma inalámbrica ennuestro casa a otro dispositivo, que actuará como coordinador. También pueden existirdispositivos que sirvan de “”direccionadores”” entre el nodo coordinador y los sensores onodos medidores, estos serán los llamados nodos routers.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 9 de 114

Page 14: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Este tipo de redes, aunque no sean el objetivo de este trabajo, pueden ser muy polivalentes yabiertas. En un futuro no muy lejano, se especula que estarán formadas hasta por millones desensores y podrán estar conectadas a Internet, generando así el ya tan famoso internet de lascosas. También creo importante recordar que el primer uso de este tipo de redes fue denaturaleza militar, lo que da cuenta de su fiabilidad y utilidad.

Mención especial a la hora de hablar de redes de sensores, merece la alimentación de losmismos. El óptimo funcionamiento de los nodos requiere dos factores de los que dependerá engran parte la fiabilidad del sistema, y son:

• Bajo consumo: Para poder realizar las funciones de los nodos con una sola batería deno mucho peso, ya que si no, el sensor tendría una dificultosa instalación.

• Ciclos de trabajo cortos: Para poder realizar la recepción en tiempo real )emisión dedatos de una forma rápida y precisa).

Los diferentes nodos están formados por los siguientes componentes:

• Microcontrolador que gobierna el funcionamiento del nodo, captando y procesando losdatos del sensor o sensores y transmitiéndolos al transceptor.

• Transceptor: Encargado de enviar y recibir las señales del nodo coordinador.

• Sensor: Mide la magnitud requerida en cifras.

• Memoria: Donde se almacenan todos los datos recogidos del medio ambiente.

• Batería: Encargada de generar la energía necesaria para el funcionamiento del nodo.

• Conversor Analógico Digital: Encargado de convertir las señales recibidas por el

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 10 de 114

Ilustración 1: Composición de una red de sensores

Page 15: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

sensor a niveles digitales para poder ser tratadas por el microcontrolador.

La conexión de todos estos nodos se realiza mediante la tecnología Zigbee; conjunto deespecificaciones de tecnología inalámbrica basadas en el estándar IEEE 802.15.4-2003 dondese definen los protocolos de comunicación una baja velocidad de transmisión para redes decorto alcance. Como plataforma y placa utilizaremos Arduino y como módulo para lacomunicación se emplea XBee.

5 ObjetivosEn este apartado se desarrollan los objetivos a conseguir con la realización de este proyecto.

• Estudiar las diferentes tecnologías, mostrando cual es la más adecuada para larealización de una red de sensores inalámbricos.

• Estudiar la utilidad, rendimiento y posibles aplicaciones de hardware y software librede coste reducido como es Arduino.

• Realizar un estudio profundo de las posibilidades que ofrece la tecnología Zigbee entodo tipo de situaciones, haciendo hincapié en factores y eventos como: ahorro deenergía en batería, conexión de sensores remotos, actuación y monitorización entiempo real de un entorno cambiante, caída de nodos, etc.

• Realizar una red completa con los materiales antes descritos; Sensores, placasArduino, módulos XBee y tecnología Zigbee.

• Monitorización de las variables ambientales de una ciudad como Granada. Con esto,además, se pretende concienciar a la población y al gobierno de la importancia de la

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 11 de 114

Ilustración 2: Componentes de un nodo

Page 16: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

contaminación, así como obtener datos objetivos para saber cómo actuar ante esteproblema.

6 Análisis de la tecnología a usarEn este apartado se realizará un análisis detallado de todas las opciones de mercado para larealización y desarrollo del proyecto. Una vez realizado el análisis, se procederá a explicar losmotivos por los que se ha elegido el software y hardware, así como los puntos claves de estosen el proyecto.

6.1 HardwareComo ya se mencionó anteriormente el hardware necesario está formado por las diferentesmotas de la red inalámbrica de sensores, que cómo está señalado en la Ilustración X, secompone de un Microcontrolador, una batería, un transceptor y el sensor demediciónpropiamente dicho.

6.1.1 Sensores

En este apartado, el primero de la sección Hardware, nos dedicaremos al análisis de la parteesencial de una WSN, que obviamente son los sensores.

Lo primero que hemos de saber para elegir nuestros sensores es: ¿Qué magnitudes han demedir? Para ello lo que haremos es ver qué variables se están midiendo actualmente pararealizar los análisis atmosféricos y con ello sabremos que necesitamos. Haciendo unabúsuqeda rápida en internet encontramos que, para la ciudad de Granada, la Junta deAndalucía a través de la Consejería de Medio Ambiente y Ordenación del Territorio realizainformes diarios de la calidad del aire. El sitio web donde están disponibles se puede consultaren el enlace [E9]. Atendiendo a las tablas (Ilustración 3) donde se refleja la calidad del airevemos como actualmente en Granada se están midiendo los valores de los siguientescomponentes:

• Dióxido de Azufre (SO2): Es un gas incoloro con un característico olor asfixiante. Esel gas que provoca en mayor medida la lluvia ácida, transformándose en la atmósferacomo ácido sulfúrico. Su origen lo solemos encontrar en empresas que trabajan elcarbón, el petróleo o el gas natural, ya que estos productos contienen trazas sulfurosas.

• Monóxido de Carbono (CO): Gas inodoro, incoloro y altamente tóxico. Puede causarla muerte cuando se respira en niveles elevados. Se produce, industrialmente, porcombustiones deficientes de sustancias como gas, gasolina, keroseno, carbón,petróleo, tabaco o madera..En menor medida puede ser producido en utensiliosdomésticos, tales como calderas o braseros si el funcionamiento de los mismos no esel correcto.

• Dióxido de Nitrógeno (NO2): De color marrón-amarillento, es un gas tóxico, irritante

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 12 de 114

Page 17: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

que produce moléculas de nitrito en el ambiente en el que está. Estas moleculasproducen ácido y elevados niveles de PM-2.5 en el ambiente. Afecta principalmente alsistema respiratorio. En tiempos breves y a exposiciones altas daña las célulaspulmonares. A más largo plazo y en niveles bajos puede causar cambios irreversiblesen los tejidos pulmonares similares a enfisemas que pueden llevar, además, a tumoresmalignos.

• Ozono (O3): Gas generalmente incoloro, aunque puede verse a temperatura y presiónambiente en un tono ocre. Si es respirado en grandes concentraciones puede provocarirritación en los ojos y/o garganta. Este gas es tanto perjudicial como importante parala vida humana. Actúa como depurador del aire y sobre todo como filtro de los rayosultravioletas procedentes del Sol. Sin ese filtro, la vida en la Tierra sería imposible, deahí la gran importancia de la famosa “Capa de Ozono”. Por otra parte, cantidades altasde este gas suponen perjuicios en la salud de las personas que pueden ser muy graves.La Organización Mundial de la Salud plantea que no hay ninguna evidencia de unumbral, por debajo del cual, no exista perjuicio [E10]. El origen del denominado“ozono malo” lo encontramos en las industrias que trabajan la ingeniería del producto,mediante algunas reacciones químicas. El “ozono bueno” se produce en la atmósferade manera natural, debido a los rayos solares.

Viendo la Tabla de la Ilustración 3 notamos que en Granada tan solo hay dos centrales quemiden los niveles de ozono en la atmósfera. Si se desea hacer un estudio completo ydiferenciado por zonas geográficas, el número de muestras puede ser algo escaso. Por lo que,para que nuestro proyecto pueda ser útil incluso a estos entes, intentaremos, en la medida delo posible, disponer de un sensor de niveles de ozono en nuestro sistema.

Otra realidad que podemos evidenciar es, cómo no están siendo medidas las cantidades demetano (CH4). Gas de efecto invernadero que contribuye al calentamiento global con unfactor 23 veces mayor que el famoso CO2. Es posible que no esté siendo considerado comoperjudicial por nuestros gobiernos ya que los niveles atmosféricos actuales no son muy altos,pero a juicio de muchas entidades y asociaciones defensoras del medio ambiente -comoGreenpeace- debería existir un análisis más exhaustivo de esta sustancia para que en un futuropróximo no nos encontremos con un problema similar al que ahora mismo está dando el CO2.

Una vez estudiados las sustancias y magnitudes a medir hemos de analizar los diferentessensores que hay en el mercado para saber cuál utilizar.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 13 de 114

Ilustración 3: Tabla de Calidad del Aire de Granada

Page 18: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.1.1.1 MG - 811; Sensor de medida de CO2

Normalmente es comercializado en una placa que cuentacon; el proprio sensor, un modulo de calentamiento delsensor para uso en ambientes fríos y para mejorar elfuncionamiento, circuito de acondicionamiento yamplificación de la señal aportada por el sensor y la placaque facilita la instalación sobre la placa de arduino quetenemos intención de usar. Posee una alta sensibilidad alCO2 y en menor medida puede detectar alcohol y CO. Por loque puede puede ser utilizado para la medición de amboscomponentes y su instalación parece ser fácil y rápida.

El Datasheet de este producto puede consultarse en [E11]

6.1.1.2 MQ - 131; Sensor de medida de O3

Este sensor utiliza en material que es sensible a la variación delgas ozono. Es decir, su conductividad baja cuando está en aire“limpio”, es decir, aire no contaminado con ozono, y sube suconductividad cuando está en contacto con el gas ozono. Estematerial por lo que he podido investigar en diferentes datasheety artículos es el SnO2. De este modo, utiliza un simple circuitoque convierte este cambio de conductividad en el material deSnO2 en una señal de salida que funciona en consonancia con elnivel de ozono en el ambiente.

Las características de este sensor son:

• Luz led que nos indica el óptimo funcionamiento

• Doble señal de salida (analógica y de nivel TTL)

• Alta sensibilidad a las variaciones de Ozono; rango de detección de 10PPB-2PPM

• Tasa de error muy baja y larga vida útil

• Rápida respuesta

• Pines de montaje instalados

El Datasheet de este componente puede encontrarse en [E12]

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 14 de 114

Ilustración 4: MG-811

Ilustración 5: MQ-131

Page 19: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.1.1.3 MQ – 7; Sensor de CO

Este sensor nos permite obtener la concentración de CO en aire entre20 y 2000 ppm. Las características principales de este sensor son:Alta sensibilidad, tiempo de respuesta muy bajo y reducido tamaño.

La salida del mismo es una resistencia analógica. El circuito decontrol que incorpora es muy simple; lo único que necesita es unaentrada a 5V (que la puede aportar la salida del Arduino), unaresistencia de carga y la salida se conecta a un ADC (ConversorAnalógico Digital – Analogic-Digital Converter).

Este mismo sensor se puede encontrar con el patillaje al aire oconectado a un placa con los pines disponibles para su simple aplicación.

El datasheet de este componente puede encontrarse en [E13]

El cableado necesario para el funcionamiento de este sensor se especifica en la siguienteIlustración 7

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 15 de 114

Ilustración 6: SensorMQ - 7

Page 20: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.1.1.4 MQ-135

Este sensor nos aporta un dato clave para el estudio de la calidad atmósferica de nuestroentorno geográfico. Lo que nos permite es saber el número de partículas nocivas que hay en elaire expresadas en ppm (partes por millón). Este es el primer parámetro que nos permitecatalogar la calidad del aire de nuestra ciudad, pudiendo afirmar que es mala, estable o buenacomo ya están haciendo muchos gobiernos y entidades públicas en sus informes de calidaddel aire.

Las especificaciones técnicas del mismo son:

• Voltaje de entrada: 5.0V AC o DC.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 16 de 114

Ilustración 7: Conexión del MQ-7

Page 21: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Consumo máximo durante operación 800mW.

• Amplio ángulo de detección de gases.

• Rango de temperatura de operación: -10°C a +45°C.

• Rápida respuesta y alta sensibilidad.

En el enlace [E24] enlace se pueden ver tanto su datasheet como su aspecto físico.

6.1.1.5 SHT 25

La aplicación básica de este sensor es la medición de losniveles de temperatura y humedad de un entrono abierto ocerrado. Este es el nuevo sensor de Sensirion, el cual prometeestablecer unos nuevos estándar en materia de inteligencia desensorización. Y tamaño.

Con un novedoso chip CMOSSens completamente rediseñadopor la empresa, un nuevo sensor capacitivo de humedad y unsensor “band-gap” de temperatura muy mejorado, ha

conseguido superar todos los problemas presentados en la generación SHT1x de la mismamarca.

Además de los sensores citados anteriormente, el integrado posee un amplificador, unconversor A/D, memoria OTP y una unidad de procesado digital que le confiere unasfunciones muy interesantes por su precio.

La enorme ventaja de este sensor, y que justifica su compra por la ínfima diferencia de precio(0,38€) con el SHT15, es la compatibilidad con I2C que evita el trabajo de indicar almicrocontrolador cómo y cuándo se van a recibir los datos mediante el uso de comandos deintroducción manual.

El datasheet de este componente se puede consultar en [E14]

6.1.1.6 Decisión y precios

En este apartado solo hemos debido tomar la decisión de qué sensor de temperatura usar y seha argumentado el por qué del uso del SHT 25 en el propio apartado 6.1.1.4. En cuanto a lossensores de medición de variables atmosféricas, no hemos tomado la decisión de cuáles usar,porque tan solo se han encontrado los enumerados para uso en electrónica discreta ycompatibles con el uso directo y fácil con la placa de control elegida para nuestro proyecto(Arduino UNO).

Los precios no se han destacado en el apartado 6.1.1 porque se detallarán en el presupuestogeneral del proyecto. Tan solo destacar que la diferencia de precio entre los sensores SHT15 ySHT25 de la que se hablaba anteriormente es aproximadamente unos 0,38€.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 17 de 114

Ilustración 8: Sensor SHT 25

Page 22: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.1.2 Microcontroladores

Hay una larga lista de fabricantes de este tipo de dispositivos (Atmel, Intel, Microchip,Cypress, TI, Temic, Hitachi…) pero podríamos decir que, tanto por cuota de mercado, comopor unidades vendidas y fiabilidad de las mismas las dos grandes marcas de la electrónica sonAVR de Atmel y PIC de Microchip. Es por ello que en este apartado nos centraremos en haceruna comparativa de estas dos grandes familias haciendo breves referencias a las demás.

6.1.2.1 AVR vs PIC

Como ya se ha mencionado su elevada calidad-precio y su fiabilidad hacen de estosfabricantes las opciones más interesantes para hacer un trabajo de las características del quenos ocupa.

Técnicamente, tanto PIC como AVR son microcontrolador de 8 bits, que cuentan con un CPURISC, memoria tipo FLASH para almacenar el firmware, varios periféricos como puestosdigitales, conversores A/D,ect.

Si nos centramos en la anterior descripción, podríamos suponer que son iguales, y desde unpunto de vista de estructura general podríamos decir que así es. Es en las características yámbito que los rodea dónde encontramos las grandes diferencias que nos harán decidirnosentre uno u otro. A continuación se enumerarán para dejar claro el por qué de nuestraelección:

• IDE y lenguajes de programación

◦ PIC tiene el inconveniente de tener que ser programado en ASM (lenguajeensamblador de bajo nivel). Cierto es, que cada vez existen más softawares parapoder programar estos microcontroladores en C y C++, pero estos son de pago yademás no son libres, lo que choca totalmente con la concepción del desarrolladorde la electrónica para el desarrollo de este proyecto.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 18 de 114

Ilustración 10: Microcontrolador de AVR

Ilustración 9: Microcontrolador PIC

Page 23: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

◦ AVR, sin embargo, dispone de varios software para poder programar en varioslenguajes (C, C++ y Basic) sus chips. Además todos estos programas puedendescargarse en la página oficial del fabricante. Para programar estos dispositivosademás tenemos a nuestra disposición diferentes placas y plataformas basadas enestos micros como es Arduino (Que contiene un chip ATMega con un bootloaderque simplifica aún mas a programación y nos facilita un entorno personalizado ysimple)

• Interfaces para la programación

◦ PIC tiene un pin que es dedicado solo para la programación, pero esta se realiza aalto voltaje (más de 5 V). Este hecho hace que se pueda complicar el montaje delcircuito ya que se hace necesario tener un circuito externo para la reconversión delvoltaje.

◦ Los AVR cuentan con un PIC dedicado a la programación y volcado al chipllamado ISP (In System Programmer). En este apartado hay diferentes formas dehacerlo por hadware como son el puerto paralelo, programador serial o USB, etc.Si atendemos a este punto, destacaríamos su simpleza, sencillez y elegancia en laprogramación.

• Consumo de energía

◦ En este ámbito los AVR cuentan con un consumo más reducido tanto en voltajecomo en intensidad sobre los PIC. Esto los hace muy interesantes en aplicacionescon baterías como es nuestro caso.

• Reloj interno

◦ Los AVR tienen un oscilador con un circuito RC para su configuración, mientrasque los PIC cuentan con un cristal externo que hace las veces de oscilador. En estecaso, puede ser más beneficioso el PIC, ya que el circuito RC puede generarproblemas en algunas aplicaciones a altas frecuencias.

• Valor económico

◦ Para hacerlo de una manera muy objetiva, lo que haremos es coger dosmicrocontroladores muy similares en características, como son los MicrochipPIC18f2550 y Atmel atmega328 y buscar en una plataforma de compra como esebay su precio. El resultado es:

▪ Atmel atmega328: 3,98€

▪ Microchip PIC18f2550: 3,80€

A su vez, buscamos los precios en sus páginas webs oficiales:

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 19 de 114

Page 24: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

▪ Microchip PIC18f2550: 4.61€

▪ Atmel atmega328: 1.75€

Esto nos muestra 2 cosas; el hecho de que no siempre es más económico compraren webs de venta genérica que en las webs oficiales de los fabricantes y que elATMega es mucho más económico que el PIC en ventas de menos de 100unidades como son las que haré en este proyecto.

6.1.2.2 Decisión

Una vez realizado el análisis, se ha de tomar una decisión en cuanta a la elección de quémicrocontrolador utilizar en el proyecto. Aunque sea cierto que PIC suele encontrarse enaplicaciones profesionales o industriales y AVR en sistemas o proyectos de investigación yeducación, tampoco podemos afirmar que esto sea así categoricamente. Cada vez más son lasempresas que se decantan por AVR en sus proyectos debido al precio y sobre todo a los dospuntos más destacados en nuestro análisis que son; su bajo consumo y su facilidad paraencontrar entornos de programación libres y gratuitos.

Haciendo un poco mas de hincapié sobre nuestra aplicación, hemos de decir que al ser unproyecto de comunicación inalámbrica es muy importante que el consumo de energía seabajo, por lo que AVR se posiciona como la opción más óptima.

Otro de los puntos clave que me hacen decidir por AVR es la programación ya que en lasmaterias desarrolladas en mi grado he visto en mucha más profundidad la programación en laplataforma Arduino, y esta trabaja con AVR.

Por todo lo expuesto con anterioridad se elige AVR como micrcontrolador y la plataformaArduino como plataforma de desarrollo. Mas adelante se decidirá en consecuencia cual de lasplacas de Arduino utilizar en nuestro proyecto.

6.1.3 Placa de Arduino

En esta sección se analizarán las diferentes placas que ofrece Arduino para realizar proyectosde naturaleza similar a este y se decidirá cual es la más conveniente.

6.1.3.1 Definición

Lo primero es definir qué es Arduino; Para facilitar la comprensión de su descripción seofrecen las dos más apropiadas:

“Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador yun entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectosmultidisciplinares” Wikipedia, enciclopedia libre.

“Arduino es una plataforma de prototipos electrónica de código abierto (open-source) basadaen hardware y software flexibles y fáciles de usar. Está pensado para artistas, diseñadores,como hobby y para cualquiera interesado en crear objetos o entornos interactivos” Web oficial

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 20 de 114

Page 25: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

de Arduino

Atendiendo a estas dos definiciones, se hace atención al hecho de ser una plataforma libretanto en software como en hardware, lo que permite una flexibilidad y tolerancia completa alas modificaciones necesarias para el acoplamiento de la placa a cualquier proyecto. En ambastambién se pone de manifiesto su facilidad y ductilidad para la creación de trabajos deinvestigación o experimentación académica, lo que lo hace inmejorable para nuestraaplicación.

6.1.3.2 Un poco de historia

Arduino nació en el instituto IVREA (Ivrea, Italia) como un proyecto de investigaciónestudiantil que intentaba encontrar una solución económica al problema del uso demicrocontroladores en proyectos de electrónica. En ese tiempo se utilizaba elmicrocontrolador BASIC Stamp que tenía un precio aproximado de 100$, lo que hacía casiprohibitivos los proyectos con estos componentes.

Mención especial en la historia de este proyecto merecen:

• El estudiante colombiano Hernando Barragán, que fue el encargado de desarrollar latarjeta electrónica Wirign, todo el lenguaje de programación (que en esencia es muyparecido a C++) y la plataforma de desarrollo.

• Massimo Banzi, precursor de la idea y profesor en la época de creación del proyectoen el Instituto de diseño Interactivo IVREA.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 21 de 114

Ilustración 11: Plataforma Arduino

Page 26: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• David Cuartielles, único español del proyecto e investigador, creador y diseñador deArduino

El nombre del proyecto surgió del bar dónde solía pasar más horas Massimo Banzi pensandoen todos sus diseños y bocetos; el Bar di Re Arduino (Bar del Rey Arduino). Una vezrealizado el diseño de la placa, decidido el micro a utilizar, el lenguaje de programación, y laplataforma, los inventores se centraron en optimizar sus funciones, reducir su tamaño y peso ysobre todo hacerlo más económico para que toda la comunidad de código abierto pudieratener acceso a ella. El techo en precio que se marcaron para la placa era de 30€, objetivo quefinalmente cumplieron, siendo hoy su precio en la web oficial de 20€. Una vez finalizado eldiseño y elaboración de la placa el instituto IVREA cerró sus puertas, lo que los condujo aconvertir el proyecto de investigación en idea de empresa, algo que como el mismo MassimoBanzi dijo, no estaba planeado. El único objetivo que tenía el proyecto era intentar subsistir alinminente cierre del instituto creando un producto de hardware abierto, lo que supondría el noembargo del mismo.

Los parámetros que se tuvieron en cuenta para la primera producción en serie de la placa deArduino fueron; Debía ser ensamblado en placa azul, tenía que ser Plug and Play (tecnologíaque permite a un dispositivo informático ser conectado a una computadora sin tener queconfigurarse) y capaz de trabajar con todas las plataformas informáticas (MacOSX, Windowsy GNU/Linux). Las 300 primeras unidades construidas bajo estas especificaciones fueronentregados a alumnos del Instituo IVREA antes de su cierre para que las probaran y pudierancrear sus trabajos.

Más adelante, cuando la empresa Arduino era ya una realidad, la multinacional Googlecolaboró con esta en el desarrollo del conocido como Kit Android ADK (AccesoryDevelopment Kit), una placa capaz de comunicarse directamente con smartphones bajo elsistema operativo Android que permite el control de ciertos actuadores (motores, leds...) yreceptores (sensores) desde el telefono inteligente. Este hecho permitió a Arduinoposicionarse entre los grandes de la tecnología y ser un referente en el mundo de códigoabierto.

6.1.3.3 Especificaciones y placas

El hardware de Arduino consiste en una placa con un microcontrolador de Atmel AVR -cómose ha notado con anterioridad- y varios puertos de entrada/salida (tanto digitales cómoanalógicos). Los microcontroladores más usados son el Atmega168, Atmega328,Atmega1280, y Atmega8. Se eligieron estos por su sencillez, robustez y bajo coste, ademáspermiten una amplia gama de diseños. La mayoría de las placas además cuentan con unaentrada USB (micro, B u otro tipo) para la conexión con PC y otra entrada de alimentaciónpor si se desea alimentar la placa con un alimentador externo y dejarla funcionar si estarconectada al PC. Además de un botón de Reset para reiniciar el código cargado.

En cuanto a las placas, Arduino cuenta ya con 21 placas en el mercado y una más en

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 22 de 114

Page 27: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

desarrollo. En la siguiente tabla, se muestran las características técnicas de la mayoría

Modelo MicroVoltaje deentrada

Voltaje delsistema

Frecuencia deReloj

Digital I/OEntradas

AnalógicasMemoria

FlashInterfaz de

Programación

Arduino DueAT91SAM3X

8E5-12V 3,3V 84MHz 54* 12 512Kb Nativa USB

ArduinoLeonardo

ATmega32U4 7-12V 5V 16MHz 20* 12 32Kb Nativa USB

Arduino Uno- R3

ATmega328 7-12V 5V 16MHz 14 6 32KbUSB via

ATMega16U2

Arduino Pro3.3V/8MHz

ATmega328 3,35 -12V 3,3V 8MHz 14 6 32KbCabecera

compatiblecon FTDI

Arduino Pro5V/16MHz

ATmega328 5 - 12V 5V 16MHz 14 6 32KbCabecera

compatiblecon FTDI

ArduinoMega 2560

R3ATmega2560 7-12V 5V 16MHz 54 16 256Kb

USB viaATMega16U2

Mega Pro3.3V

ATmega2560 3,3-12V 3,3V 8MHz 54 16 256KbCabecera

compatiblecon FTDI

Mega Pro 5V ATmega2560 5-12V 5V 16MHz 54 16 256KbCabecera

compatiblecon FTDI

Arduino Mini05

ATmega328 7-9V 5V 16MHz 14 6 32KbCabecera

Serial

Arduino ProMini

3.3V/8MHzATmega328 3,35-12V 3,3V 8MHz 14 6 32Kb

Cabeceracompatiblecon FTDI

Arduino ProMini

5V/16MHzATmega328 5 - 12V 5V 16MHz 14 6 32Kb

Cabeceracompatiblecon FTDI

Pro Micro5V/16MHz

ATmega32U4 5-12V 5V 16MHz 12 4 32Kb Nativa USB

Pro Micro3.3V/8MHz

ATmega32U4 3,35-12V 3,3V 8MHz 12 4 32Kb Nativa USB

LilyPadArduino

Simple BoardATmega328 2,7-5,5V 3,3V 8MHz 9 4 32Kb

Cabeceracompatiblecon FTDI

Tabla 1: Características técnicas de las diferentes placas de Arduino

Una vez presentadas la mayoría de placas de Arduino a disposición del usuario, nos

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 23 de 114

Page 28: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

centraremos en las que pueden ser útiles para nuestro proyecto, esto se reduce a una terna, queson, la Arduino Uno, Arduino Mega y Arduino Mini. Se toman estas tres por considerarse lasmas representativas de las que hay a nuestra disposición.

Arduino Uno - R3: Es la placa por excelencia creada por Arduino, la más popular. Se puededecir que es la mas usada a nivel de investigación ycreación de nuevos entornos en proyectos académicos yde prototipado. Sus ventajas son, su tamaño mediano, supeso de 40 gramos y su alimentación a 5V, que puede serrealizada por el PC o externamente por un cargador obatería.

Precio: 20€

Las especificaciones técnicas se pueden observar en latabla anterior en la tercera fila.

Arduino Mega 2560 R3: Se puede definir de manera análoga a su “hermana pequeñaArdunin Uno”. Muy utilizada en ámbito académico einvestigador y probada en casi todos los países delmundo. Las ventajas que se obtienen en su uso es lamayor capacidad de la memoria FLASH y el mayornúmero de entradas analógicas. La desventaja, másque obvia, su mayor tamaño y peso. La alimentaciónse realizada de la misma forma que en el Arduino Uno– R3.

Precio: 35€

Las especificaciones técnicas se pueden observar en la tabla anterior en la sexta fila

Arduino Mini 05: Su gran ventaja es el tamaño, mucho más pequeño que los dos anteriores,manteniendo el número de entradas y salidas con respecto alArduino Uno -R3. Su mayor desventaja, es la programación dela placa, ya que esta solo se puede hacer por Cabecera Serial, loque dificulta y hace un poco tedioso el proceso de carga delprograma para las diferentes pruebas. Además esta placa sevende sin los pines soldados, lo que nos complica el proceso yensamble del circuito, además de suponer un coste extra desoldador, estaño y patillas.

Precio: 10€

Las especificaciones técnicas se pueden observar en la tabla anterior en la novena fila.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 24 de 114

Ilustración 12: Arduino Uno

Ilustración 13: Arduino Mega

Ilustración 14: Arduino Mini

Page 29: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.1.3.4 Arduino en el mundo de la Tecnología

La plataforma Arduino ha conseguido instalarse en el mundo de la tecnología de códigoabierto, tal vez como la referente. Institutos, Universidades y demás centros de enseñanza nodudan en utilizar estas placas como introducción a la enseñanza de programación demicrocontroladores y realización de proyectos de electrónica. Pero no solo son utilizadas parala educación y la introducción, cada vez son más los grupos de centros de investigación losque utilizan esta herramienta para la realización de prototipos para el testeo de sus desarrollos.Domótica, inmótica e internet de las cosas, estos son los paradigmas en los que están siendomás utilizadas las placas de Arduino en la actualidad, así lo afirma El Pais en uno de susartículos de finales de 2011 titulado “ El Internet de las cosas crece”. Si observamos estosproyectos, vemos que todos ellos se basan en la realización de una red de sensores en los queuna o más variables han de estar controladas, y el gobierno de una serie de actuadores quehacen que las variables vuelvan al valor de una consigna dada. En definitiva, se puede afirmarcomo lo hacia la plataforma bbbvaopen4u en un artículo del 28 de Agosto de 2015 queArduino es la gran dominadora del Hardware abierto y que una buena parte de los proyectosen los que se usa están relacionados con redes de sensores.

6.1.3.5 Decisión

El uso de Arduino en mi proyecto lo veo mas justificado por varias razones; mi intención derealizar un proyecto en software y hardware libre en la medida de lo posible, su reducidocoste, tamaño y peso, ser multiplatafora, su facilidad para la programación, la documentaciónexistente en Internet sobre usos y proyectos realizados con anterioridad y sobre todo lafiabilidad y confianza que me da trabajar en con una herramienta tan extendida en todos losámbitos de la tecnología y usada por mi persona con anterioridad de manera satisfactoria.

Fijándonos en las especificaciones de las diferentes placas, creo que lo más óptimo seríautilizar la paca Arduino Uno – R3, ya que en el momento de comenzar el proyecto yadispongo de una placa de este tipo para poder comenzar los test. Además, haciendo lacomparativa con el resto, no creo que se justifique el mayor gasto de la compra del ArduinoMega 2560 R3 porque no serán necesarios más pines de entrada ni salida. Centrándonos en elArduino Mini 05 no creo que sea imperiosa la disminución del tamaño del proyecto, ya queno tiene un fin comercial sino experimental, por lo que el tamaño del sistema final no es tansignificativo.

En la siguiente ilustración se puede ver un esquema de todos los diferentes componentes de laplaca Arduino UNO – R3

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 25 de 114

Page 30: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Me gustaría también indicar en este apartado que la elección de la plataforma Arduino paradesarrollar mi proyecto también esta motivada por mi intención -como se ha mencionadotambién anteriormente- de poner en valor las herramientas de hardware y software libre,poniendo de manifiesto que con estas también es posible realizar proyectos de calidad y deutilidad para la sociedad y la industria.

6.1.4 Baterías

Hemos llegado tal vez a la parte más delicada y complicada del hardware, y no es otra que labatería. Es vital la elección de una buena batería ya que de esta dependerán el resto dedispositivos que formen nuestra red de sensores. Y en nuestro caso, una red inalámbrica desensores, sea tal vez más complicada la elección de esta, ya que los sensores deberán estaractivos tanto tiempo como sea necesario para la recepción de los datos a tratar. Habitualmentela selección de la batería y el análisis de las distintas alternativas que nos ofrece el mercadosuelen ser mucho más superficial que los del resto de componentes, algo que como haquedado de manifiesto, puede llevar a la inutilidad del sistema general.

Si pensamos en la red de sensores como un todo, es decir cómo un sistema ya enfuncionamiento ¿Cuál sería el gran problema que podemos encontrarnos para el óptimofuncionamiento? ¿Cuál es el componente que más mantenimiento y recambio necesita? ¿Quécomponente está mas afectado por la temperatura y el ambiente? La respuesta a todas estaspreguntas es; la batería. Es por ello que debemos de estudiar todos los parámetros, y alguno

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 26 de 114

Ilustración 15: Componentes de la placa Arduino Uno

Page 31: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

más, de las diferentes baterías que se encuentran en el mercado.

La capacidad de una batería se mide en miliamperios - hora (mAh) o en su múltiplo amperios– hora (Ah). Para explicar cómo se entiende esta unidad en el mundo de la tecnología sepuede decir que una batería de 5Ah puede dar 5 amperios durante una hora o en su defecto 1amperio durante 5 horas. Muy importante también para comprender el funcionamiento deestos instrumentos es saber cuando las baterías están agotadas o “vacías” como se suele decirmás comúnmente. Pues una batería estará descargada cuando la tensión de la misma caiga pordebajo de un umbral establecido para cada batería, así pues, para una batería de 4,5 voltios(las más clásicas son las de petaca) la batería se considerará vacía cuando su tensión esté pordebajo de 3,1V.

Una vez definidas las características principales de una batería vamos a fijarnos en losprincipales criterios para elegir una buena batería para nuestro sistema. En el momento deelegir una batería se ha de hacer especial atención a las siguientes características:

• Temperatura: Para resumir el funcionamiento de las baterías con la temperatura, sepodría decir que las baterías a baja temperatura mantienen bien la energía y que a altatemperatura transmiten bien la energía, por tanto ha de ser nuestro objetivo tenerlas abaja temperatura mientras el sensor permanezca “dormido” y calentarla a lo hora detener que suministrar la energía. Este hecho cobra una gran importancia en nuestrotrabajo, ya que el sistema de medida se encontrará expuesto a la inclemencias deltiempo. Cierto es, que su diseño en un primer momento está realizado para la ciudadde Granada, pero también hemos de destacar que el sistema ha de ser exportable atodas las ciudades que lo deseen. De este modo tendríamos que hacer un estudio de latemperatura media de la ciudad en las diferentes estaciones para saber qué tipo debatería utilizar en cada zona geográfica. En este trabajo se analizará en másdetalhttp://rco.es/?p=285le la situación de la ciudad de Granada y se expondrábrevemente el caso de una ciudad extrema como podría ser Nuuk, en Groenlandia.Esto se realiza en el apartado 6.1.4.1 Estudio de las variables ambientales de Granaday Nuuk.

• No linealidad en la capacidad. Este hecho se refiere a la no linealidad de la función dedescarga de la capacidad de una batería, la cual está estrechamente relacionada con lacorriente que se le pide suministrar. Más fácilmente explicado, el consumo de lacapacidad de una batería depende de la intensidad que se requiera para elfuncionamiento de un determinado dispositivo, y esta última, nunca o casi nunca, eslineal. Veamos un ejemplo para aclarar el asunto: Supongamos tener una batería de2600mAh. Esta capacidad está especificada o marcada por el fabricante para unaintensidad dada, por ejemplo de 5mA típicamente para un smartphone. Ahora bien, siesa misma batería la utilizamos para cargar otro dispositivo, como por ejemplo uncuadricóptero teledirigido que requiere una intensidad de 150mAh, la batería podría

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 27 de 114

Page 32: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

tener una capacidad de 1200mAh aproximadamente. Este hecho es muy relevante a lahora de elegir nuestra batería. Es primordial tener en cuenta que la linealidad en elconsumo (capacidad) de las baterías tan solo se cumple cuando las variaciones detemperatura y de corriente requerida son muy pequeñas.

• Voltajes de alimentación de los componentes que se vayan a usar para diseñar elcircuito. Este punto parece obvio pero hemos de anotarlo para tener todo en cuenta. Laalimentación que necesitan los módulos Xbee que más tarde analizaremos está en elintervalo de 2,8 a 4V.

• Tamaño. Aunque parezca algo banal es muy significativo. El tamaño del circuito y delproyecto en general dependerá en gran medida del tamaño de la batería, ya que estasuele ser el componente más difícil de escalar si de circuitos discretos estamoshablando.

6.1.4.1 Estudio de las variables ambientales de Granada y Nuuk

Este apartado es un pequeño paréntesis que nos servirá para realizar un estudioambientológico de dos ciudades muy diversas.

Una de ellas, Granada, está en Andalucía (España, Europa), y más específicamente al sur, porlo que no presenta temperaturas extremas en cuanto a frío, aunque si suelen ser registradatemperaturas inferiores a 0ºC en invierno. No podemos decir lo mismo de las temperaturasestivales, pues debido a su cercanía con el continente africano y su tendencia al climacontinental, en algunas ocasiones, pueden registrarse temperaturas cercanas a los 45ºC. Bienes cierto, que estas temperaturas no pueden considerarse extremas si se comparan conciudades cercanas a desiertos como por ejemplo el Sahara, pero para nuestro estudio,podemos marcar el límite en temperaturas por encima de 40ºC. En resumen, podemos decir deGranada que es una ciudad eminentemente cálida, con picos extremos en los meses estivalespor encima de 40ºC y con un invierno frío para ser una ciudad sureña aunque sintemperaturas extremas.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 28 de 114

Ilustración 16: Parámetros climáticos de Granada

Page 33: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Nuuk, la otra ciudad que se estudia, se encuentra en Groenlandia (Dinamarca,Europa). Sulocalización geográfica (64º 10' de latitud norte, y 51º 43' de longitud oeste, 240 km al sur delCírculo Polar Ártico) la convierte en la capital más septentrional del mundo. Por ladescripción de la ciudad y de su posición, ya queda claro que estamos ante una ciudad gélida.Temperaturas tan extremas como -50ºC pueden ser registradas en el mes de enero, teniendouna media en invierno de -35ºC. En el periodo estival las temperaturas no suben de 24ºC y lamedia es de 8,7ºC. Lo que nos hace ver que esta ciudad tiene un clima prácticamente polar,pero bastante suavizado con temperaturas por encima de la congelación en algunos periodosdel año.

No se ha mencionado nada relativo a las rachas de viento y a las precipitaciones, porque no seconsideran relevantes en el estudio meteorológico de nuestro proyecto.

Sin embargo, si puede ser interesante el estudio de las horas de sol para estudiar al viabilidadde la instalación de un cargador solar de baterías para el sistema. Fijándonos en la última filade ambas ilustraciones vemos como el número de horas de sol entre Granada y Nuuk sediferencia en 1512, lo que supone casi 63 días, o lo que es lo mismo casi 2 meses más de solen Granada que en Nuuk. A la luz de estos datos, es fácil afirmar que en caso de optar por lautilización de baterías con placa solar, será mucho más óptimo su funcionamiento en la ciudadespañola que en la danesa. Más adelante en el apartado que trate este tipo de baterías se haráun estudio más pormenorizado de la viabilidad de utilización en ambos entornos.

6.1.4.2 Estudio del tipo de baterías existentes y cargadores

En este punto haremos un análisis de las diferentes baterías que tenemos a nuestra disposición

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 29 de 114

Ilustración 17: Parámetros clímaticos de Nuuk

Page 34: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

en el mercado basándonos en los parámetros anteriormente expuestos.

• Baterías alcalinas: Son las más comunes en hogares y funcionan muy bien para unagran cantidad de procesos electrónicos cotidianos. Al ser, tal vez, las mas usadas en eldía a día, las empresas productoras de estas pilas han mejorado mucho la química delas mismas. De tal manera, la capacidad y sobre todo el tiempo de descarga se ha vistoaumentado en los últimos 6 años de manera notable.

Como se ha dicho antes, este tipo de pilas se encuentra de una manera muy extensa enel mercado. Sus precios son bastante asequibles y su funcionamiento para aplicacionesde baja corriente y de temperatura ambiente es bastante bueno. Los inconvenientes quepresenta esta batería son un mal funcionamiento, en cuanto a capacidad y tiempo devida se refiere, en ambientes fríos y en aplicaciones que requieran un consumo decorriente alto. De las dos desventajas enunciadas anteriormente, la más crítica, es elmal funcionamiento a bajas temperaturas, ya que por debajo de los 10ºC su capacidaddisminuye a unos niveles ineficaces para una aplicación como la nuestra.

En la siguiente Ilustración se puede verificar todo lo que se ha expresado conanterioridad en este punto.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 30 de 114

Ilustración 18: Baterías alcalinas. Capacidad frente a intensidad adiferentes temperaturas

Page 35: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

En la Ilustración 13 podemos observar la apariencia típica de una pila alcalina de usocotidiano.

• Baterías de litio: Dentro de las baterías de litio la subdivisión es muy extensa. Es poreste motivo que es muy complicado englobar todas dentro de un mismo patrón defuncionamiento, es decir, es muy difícil enumerar sus características comunes. Noobstante hay tres propiedades que son comunes a todos los modelos:

◦ Su funcionamiento a bajas temperaturas es muy aceptable. Como podemos ver enla gráfica de la Ilustración 14, la disminución de la capacidad con el decremento dela temperatura es mínimo por lo que son buenas baterías en aplicaciones al airelibre.

◦ El aumento del consumo de intensidad no afecta de manera considerable a lacapacidad. De igual modo, en la Ilustración 14 podemos ver como con elincremento de la intensidad no supone un decremento excesivo de la capacidad.

◦ Son desechables.

Para modelar la gráfica que expresa el comportamiento de la capacidad frente a latemperatura se usa una función logarítmica.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 31 de 114

Ilustración 19: Pila alcalina

Page 36: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

En la Ilustración 15 se puede apreciar una batería de litio de uso común.

• Baterías de hidruro de niquel-metal (NiMH): Es, tal vez, la mejor batería recargabledel mercado. A diferencia de las baterías de níquel-cadmio (NiCad), éstas mantiene

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 32 de 114

Ilustración 20: Baterías de litio. Capacidad frente a intensidad adiferentes temperaturas

Ilustración 21: Batería de litio

Page 37: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

sus propiedades tras un número de cargas muy elevado. Además, la recarga de lamisma tiene siempre la misma duración, es decir, el número de cargas tampoco afectaal tiempo de recarga. Es más, por la química que tienen en su interior, muchosexpertos afirman que la carga es más rápida cuantas más recargas se realizan con unaperdida ínfima de capacidad.

Es una mezcla entre la batería alcalina y la batería de litio y además es recargable. Suuso a bajas temperaturas es aceptable, pues en el intervalo de [20,-5ºC] el decrementoque muestra en su capacidad es aproximadamente de unos 400mAh. El uso entemperaturas extremas de frío -como son las anteriormente citadas en Nuuk (-40ºC)-no esta justificado, ya que el decremento en la capacidad es aproximadamente de1200mAh.

En cuanto a la corriente requerida, el comportamiento de esta batería es también muyaceptable, disminuyendo su capacidad (a 20ºC) en 400mAh con un aumento de500mA.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 33 de 114

Ilustración 22: Baterías de NiMH. Capacidad frente a intensidad adiferentes temperaturas.

Page 38: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

La apariencia de una de estas baterías la podemos observar en la siguiente Ilustración.

Por último, analizaremos en este apartado los diferentes cargadores de placa solar para bateríacon el fin de saber si es viable la instalación de uno de estos. Pero ¿Qué es un cargador solar?Es una fuente de energía autónoma portátil, o más técnicamente es un dispositivo electrónicoque mediante su placa solar captura la energía del sol y recarga su batería interna, paraposteriormente utiliza para alimentar otros dispositivos eléctricos.

Una vez definido qué es, como hicimos con las baterías, lo primero que hemos de hacer esdefinir todas los factores importantes para decidir si adquirir o no un panel solar comocargador:

• Capacidad de la batería; Aunque parezca muy obvio se ha de notar. Para comprenderde qué hablamos se pondrá un ejemplo clásico. Si se quiere cargar la batería de unmóvil que típicamente consume 1200mAh y se dispone de un panel solar de capacidadde 2000-2500mAh se estará doblando la capacidad de la batería y se podrá cargarcómodamente la batería y de una manera óptima en tiempo. Si disponemos de unaplaca solar de capacidad 1000-1500mAh dispondremos de un cargador exacto por loque la carga en tiempo forma será correcta. Si disponemos de un panel de 500-800mAh la carga de la batería no será completa en un ciclo y por tanto sufuncionamiento no será el mejor.

• Potencia; Cuanto más elevado sea el valor de la potencia de una placa solar másrápida será su carga y con mayor celeridad “absorberá” la energía solar. La potencia dela placa solar suele depender del tamaño y la calidad de los componentes de la misma.

Destacar además que las placas solares actuales no solo recogen energía de la luzsolar, si no que también pueden aprovechar la luz solar de fuentes de luz artificialescomo son las lámparas o luminarias.

• Compatibilidad; Este factor es el más importante. Hemos de tener en cuenta la salidaque tienen todos los paneles solares para cerciorarnos que sea compatible la conexión

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 34 de 114

Ilustración 23: Batería deNiMH

Page 39: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

con nuestra aplicación. De no ser así, el gasto en la placa no tendría sentido, porque lacompra del adaptador puede ser mucho más cara que la propia placa.

• Voltaje de salida; Muy importante. La mayoría de los cargadores solares portátiles debajo coste tienen una salida de 5V, aunque existen algunos más sofisticados quepermiten la salida de 5-9V. También se pueden adquirir los cargadores solares deportátil que tienen una salida de 12-19V. Por ultimo hemos de destacar que para elcorrecto uso de este tipo de cargadores solares, ha de existir una diferencia depotencial entre el voltaje de salida de la placa y el voltaje de funcionamiento de labatería a cargar. Así, un cargador de salida de 5V cargaría correctamente una batería de4V.

En la Ilustración 18 se puede ver cómo es uno de estos cargadores solares.

6.1.4.3 Decisión

Ante todo lo expuesto en los apartados anteriores hemos de tomar una decisión sobre québatería utilizar. Como hemos visto en el apartado 6.1.4.1 las variables ambientales de las dosciudades que hemos analizado con muy diferentes, por tanto los componentes, y sobre todo labatería, que hemos de utilizar en ambos deben ser diferentes. De este modo haremos unadistinción en cuanto a la elección en Granada y Nuuk.

Para una ciudad como Granada se optará por utilizar una batería de batería de hidruro deniquel-metal (NiMH) y se utilizará un cargador solar para no depender de la energía alterna yno tener que tener una toma de corriente para cargar la batería o en su defecto cambiar estacuando esté descargada. Esta elección está motivada por los factores ambientales, como sonuna temperatura media al año de unos 15ºC y unas temperaturas mínimas de -10ºC y máximasde 45º y la disponibilidad de 2881 horas de sol al año. En estos parámetros ambientales vemoscomo atendiendo a la Ilustración 16, la capacidad de la batería no decrece en un nivel

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 35 de 114

Ilustración 24: Cargador Solar Doble USB Xtorm Lava Charger AM114

Page 40: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

alarmante y como su funcionamiento es más que correcto. Además, con un número tanelevado de horas de sol el cargador solar debería funcionar de una manera inmejorable.

Otra opción, para disminuir el coste y el número de componentes, sería utilizar el cargadorsolar directamente, ya que este cuenta en su interior con una batería. La ventaja de estesistema ya ha sido expuesta en la linea anterior, pero presenta una desventaja importante, y esla posibilidad de fallo en el cargador solar por no recibir la energía lumínica suficiente, lo quedejaría inactivo nuestro sistema.

De tal forma, se optará por la realización pruebas sólo con el cargador solar y si en un tiemponotable no ocurre ningún error se considerará esta la opción óptima. Si se observa algún corteen el funcionamiento del sistema o una insuficiencia de batería por parte del cargador, seintroducirá la batería de NiMH para otorgar robustez al sistema.

Para ciudades como Nuuk, con extremas temperaturas de frío (-45ºC) y unas horas de sol tanescasas -Nótese que en el mes de Diciembre no hay ni una hora de sol en la ciudad- se deberíaoptar por una batería de litio y realizar el mantenimiento de cambiar dicha batería cada vezque esta se descargue por completo. No se justifica el uso del cargador solar ya que surendimiento durante las estaciones de primavera, verano y otoño no sería el óptimo y en losmeses de invierno sería nulo.

6.1.5 Tecnología inalámbrica

Puesto que el desarrollo de este proyecto se basa en la realización de una Red de Sensoresconectados de forma no cableada, parece obvio que hemos llegado al kit de la cuestión en esteapartado. Aquí responderemos las preguntas ¿Qué tecnología usar? ¿Qué modulo es el mejor?¿Cómo funcionan ambas cosas? Para saber qué modulo elegir, primero hemos de saber quetecnología de conexión inalámbrica es la mas adecuada para nuestro trabajo. De este modo,pasamos al punto 6.1.5.1.

6.1.5.1 ANT

ANT es una tecnología propietaria (aunque de acceso libre) diseñada y gestionada por ANTWireless (un subgrupo de Dynastream Innovations, que a su vez está englobada en la empresaGarmin). Esta tecnología esta orientada y diseñada para trabajar con una red de sensoresinalámbricos multicast. Define una lista de protocolos para dispositivos que trabajan en labanda estándar de 2,4 GHz (banda ISM). Dichos protocolos tienen la función de establecerreglas estándar de coexistencia, representación de datos, señalización y detección de errores.Conceptualmente es muy similar a Bluetooth de baja energía (que veremos más adelante) peroorientado a una Red de Sensores.

Los nodos de estas redes son bimodales, es decir, son capaces de actuador como máster ocomo esclavo dentro de la misma Red de Sensores de manera simultánea. Esto significa quetodos los nodos pueden actuar como enrutadores, receptores y emisores dentro de la mismared. Lo que determina qué van a hacer en cada momento es la actividad de los nodos vecinos.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 36 de 114

Page 41: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Los nodos de este tipo de tecnología pueden programarse para estar en modo “sleep” durantelos periodos de inactividad consumiendo una cantidad de microAmperios casi despreciable.En el momento que es requerida la comunicación, despiertan y envían la trama de datosnecesaria. El consumo medio a unas bajas tasas de mensajes es de menos de 60 μA en algunosdispositivos.

ANT permite utilizar tres tipos de comunicación: Broadcast, acknowledged y burst.

Broadcast es una comunicación unidireccional de un nodo a otro (u otros). En este tipo elnodo receptor no tiene ningún tipo de protocolo de reconocimiento del mensaje, pero puedecomunicarse con el nodo transmisor. Este tipo de tecnología es la más económica para trabajarcon sensores.

Acknowledged se basa en la confirmación de la recepción del pequete de datos por parte delnodo receptor. De este modo, el nodo emisor es informado por el receptor de que lainformación enviada ha llegado con éxito o con fracaso, pero no hay un intercambio deinformación entre emisor y repector. Este tipo de comunicación es adecuado para aplicacionesde control.

Por último, burst, es una técnica de transmisión multi-mensaje que utiliza el ancho de bandacompleto y interactúa con el receptor. De este modo, el receptor lo que hace es informar alemisor de los paquetes de datos que han llegado a él de una manera correcta y de aquellos queson corruptos o han sufrido algún problema en la comunicación. Inmediatamente después derecibir esta información, el emisor vuelve a enviar solo aquellos paquetes de datos que nofueron bien recibidos por el receptor, de esta forma nos evitamos el reenvío de aquellos datosque si fueron bien recibidos en una primera ocasión. Este modo de comunicación es adecuadopara la transferencia de bloques de datos, donde lo principal es la integridad del mensaje quetransportan los datos.

La aplicación de esta tecnología la encontramos sobre todo en el sector deportivo, más encuestión en el ciclismo y en el running. No podía ser de otramanera siendo desarrollada por Garmin, empresa muyrelacionado con el mundo del ciclismo profesional y delatletismo amateur. Lo que persigue esta tecnología en este sectores unificar el protocolo de comunicación de todos los sensoresde monitorización deportiva como son los ciclocomputadores,medidores de cadencia, pulsómetros, etc. Hasta el momento desu creación, cada marca que diseñaba un dispositivo de este tipoy un sensor, tenía su propio protocolo de comunicación, lo quehacía que los diferentes sensores que el usuario compraba fuesenimposibles de conectar entre sí, lo que llevaba a una menordisposición de compra del consumidor y a un integrabilidad casinula de los diferentes productos. Con ANT lo que se intenta es

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 37 de 114

Ilustración 25:Ciclocomputador ypulsómetro Garmin

Page 42: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

que todos los sensores de tipo deportiva funcionen en una misma banda y con un mismoprotocolo para que todos se puedan integrar entre sí, sumando valor a la tecnología adquiriday creando una red de sensores escalable y completa.

6.1.5.2 Bluetoth

“Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal(WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante unenlace por radiofrecuencia en la banda ISM de los 2,4 Ghz” Wikipedia, la enciclopie libre.

Los principales objetivos que tiene esta tecnología son los ya sabidos por todos sus usuarios:

• Facilitar la comunicación entre dispositivos

• Eliminar la comunicación cableada

• Ofrecer la posibilidad de crear pequeñas redes inalámbricas y facilitar lasincronización de datos entres equipos de uso personal.

La mayoría de dispositivos que usan esta tecnología pertenecen al sector de lastelecomunicaciones y la informática de uso personal (smartphones, Pcs, impresoras, PDAs...)

Más específicamente, Bluetooth es un protocolo de comunicaciones diseñado específicamentepara dispositivos de bajo consumo, que necesitan una comunicación de costo alcance ybasado en transceptores de bajo coste. La comunicación se realiza por radiofrecuencia, lo quesignifica que los dispositivos no han de estar alineados ni en una disposición prefijada. Loúnico que es necesario es que la potencia de transmisión sea la suficiente para poder conectarambos dispositivos. Dependiendo precisamente de esta potencia de transmisión losdispositivos Bluetooth se pueden clasificar en “Clase 1”, “Clase 2” y “Clase 3”.

ClasePotencia máxima

permitida Potencia máxima

permitidaAlcance

(aproximado)

Clase 1 100 mW 20 dBm 100 metros

Clase 2 2,5 mW 4 dBm 5 – 10 metros

Clase 3 1 mW 0 dBM 1 metro

Tabla 2: Clases de dispositivos Bluetooth

De la misma forma se puede hacer una clasificación de los dispositivo según sufuncionamiento en ancho de banda.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 38 de 114

Page 43: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Versión Ancho de Banda

Versión 1,2 1 Mbit/s

Versión 2.0 + EDR 3 Mbit/s

Versión 3,0 + Hs 24 Mbit/s

Versión 4,0 32 Mbit/s

Tabla 3: Clasificación de los dispositivos Bluetooth por Ancho de Banda

La tecnología Bluetooth lleva mucho tiempo en funcionamiento y desarrollo, lo que la dota deuna gran base de datos y un gran banco de información tanto online como offline. Sufuncionamiento en largas distancias es aún un desafío y muchos son los detractores de estatecnología para entornos industriales. No obstante, es la tecnología más extendida para usopersonal y en aplicaciones de informática de bajo coste y baja complejidad. Por tanto,podríamos deducir que es una tecnología para uso personal y de ocio más que profesional oindustrial, aunque bien sea cierto que algunas empresas de producción de pequeñosdispositivos electrónicos está utilizando esta tecnología para abaratar sus costes.

6.1.5.3 Bluetooth low energy

También conocido como Vluetooth LE, oBluetooth ULP (Ultra Low Power) es una nuevatecnología de radio, es decir inalámbrica, que surgea raíz del Bluetooth tradicional diseñada parapequeños dispositivos.

Es la primera tecnología que confiera conexión adispositivos móviles, PCs y otros dispositivos máspequeños (de pila de botón). Como bien indica sunombre, la gran particularidad de este sistema decomunicaciones es que está diseñado para trabajarcon un muy bajo consumo de energía.

Sus características son similares a las de Bluetooth, en cuanto a que opera en la banda de 2,4GHz (banda ISM) con una tasa de transferencia de 1 Mbps (similar a la versión 1.2 deBluetooth). Como se ha remarcado antes, permite la comunicación entre dispositivos de pilade botón (dispositivos muy pequeños). Su funcionamiento está baso en un microchips de bajocoste, aunque posee opciones y características que le confieren la posibilidad de ser usado enla industria. El tamaño de los dispositivos de comunicación es muy similar a los Bluetooth (sepuede escalar muy fácilmente para ser introducidos en un smartphone o PC). Por último,destacar que cuenta con un soporte para seguridad empleando el sistema de cifrado AES(Advanced Encryption Standard o Rijndael) y unos esquema de seguridad configurables.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 39 de 114

Ilustración 26: Bluetooth Low Energy

Page 44: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Por dar algún apunte histórico, fue desarrolla por Nokia en el 2006 y muy bien aceptada porempresas como Nordic, Epson o CSR de una manera muy rápida. La licencia de Wibree (de laque se hablará a continuación) y su microchip la poseen las empresas Nordic Semiconductor yCSR y tanto Suunto como Taiyo están colaborando con estas para realizar las especificacionesnecesarias para la interoperabilidad dentro de sus áreas de trabajo.

Por último se comentará las dos aplicaciones con las que se creó Wibree (primer nombre de latecnología que se describe en este punto):

• Wibree de implementación única: Funciona en dispositivos que requieren un bajoconsumo de energía, son pequeños y de bajo coste. Por poner algunos ejemplospodemos enumerar: Relojes, sensores deportivos, ratones inalámbricos...

• Wibree de implementación modo dual Bluetooth-Wibree:Se diseña para su uso juntocon la tecnología Bluetooth donde Wibree se integra con Bluetooth y BluetoothRFutilizando los dispositivos ya existentes para esta tecnología como son Smartphones oPcs.

6.1.5.4 NFC

Esta tecnología se comentará muy brevemente y tan solo para conocer el marco de lascomunicaciones inalámbricas. El motivo de no entrar mas en detalle es que este tipo detecnología tan solo opera a unas distancias muy pequeñas, lo que la hace inviable para nuestroproyecto.

NFC (Near field communication o comunicación de campo cercano en español) es unatecnología inalámbrica basada en la comunicación mediante la inducción de camposmagnéticos como especifica la ISO 14443. En esta tecnología, dos antenas de espiral soncolocadas dentro de sus respectivos campos cercanos. Trabaja en la banda de 13,56 MHz, loque hace que no se requiera ninguna licencia para su uso y no haya ninguna restricción.

Soporta dos modos de funcionamiento:

• Activo: Los dos dispositivos generan el campo magnético necesario para lacomunicación.

• Pasivo: Solo un dispositivo es el encargado de generar el campo magnético (debe serel iniciador de la comunicación). El otro se aprovecha de la modulación de el primeropara transmitir la información necesaria.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 40 de 114

Page 45: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Esta tecnología fue desarrollada sobre todo para uso en Samartphones y como finalidad porexcelencia el pago con este, a través del contacto con centros de pago.

6.1.5.5 ZigBee

ZigBee es el nombre que se la da a una serie de protocolos de comunicación inalámbrica dealto nivel. Su utilización esta normalmente enmarcada en la radiodifusión digital de bajoconsumo, basada en el estándar IEEE 802.15.4 [E15] de WPAN (Redes inalámbricas de áreapersonal).

Si atendemos a la web de ZigBee Alliance [E16] podemos afirmar que el ámbito de máximodesarrollo de esta tecnología se encuentra en la domótica y acondicionamiento de redes desensores. Las razones por la que es utilizada este tipo de tecnología en estas aplicaciones sonvarias:

• Bajo consumo

• Topologías de red en malla.

• Integrabilidad y adaptibilidad. Es relativamente sencillo, electrónicamente hablando,crear motas sensorizadas para la configuración de una red de sensores y actuadores deuso local.

Para tener una visión más general y clara de que es ZigBee, podemos visitar la webanteriormente enunciada [E16] y ver cómo definen ellos mismos su tecnología:

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 41 de 114

Ilustración 27: Ejemplo de uso de la tecnología NFC

Page 46: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

“ZigBee surge de la necesidad de desarrollar una tecnología inalámbrica de no muy altatransferencia de datos. Así, en 1998, un conjunto de empresas, conocidas como la ZigBeeAlliance se juntaron para crear un estándar de comunicaciones que complementara a Wi-fi yBluetooth. Surge así ZigBee, publicado por el IEEE en Mayo de 2003”. ZigBee Alliance,2005.

Carácterísticas generales de ZigBee

Las características principales de las redes y los dispositivos de este tipo de tecnología son lassiguientes:

• Velocidad de transmisión entre 25 y 250 kbps

• Protocolo asíncrono, half duplex y estandarizado. Esto permite a dispositivos dediferentes fabricantes y marcas, conectarse y trabajar en conjunto.

• Modulación en espectro ensanchado por secuencia directa (DSSS [E17])

• Escalabilidad. Se pueden conformar redes desde dos dispositivos hasta cientos deellos.

• Modo bajo consumo (Modo standby). Este modo de funcionamiento reduce elconsumo y por tanto aumenta la vida de las baterías útil de las baterías utilizadas.

• Opera en la frecuencia de 2,4 GHz (16 canales con un ancho de banda de 5MHz) demanera genérica y a 868 MHz y 915 MHz para usos industriales tanto en Europa comoAmérica respectivamente.

• Fiabilidad. La red se conforma de manera simple y se organiza y repara de maneraautomática. Además se rutean los paquetes de forma dinámica.

• Seguridad. Posee un protocolo de implementación encriptada y con sistema deautentificación.

Tipos de Dispositivos

Se definen tre tipos de dispositivos en un red ZigBee:

• Coordinador (ZC): Debe existir al menos uno por red. Sus funciones dentro de lamisma son; controlar la red y los caminos que deben seguir los datos transmitidos yconectar los diferentes dispositivos entre ellos para hacer posible la comunicación.

• Router (ZR): Su función es la interconexión de los diferentes dispositivos de la red.Además permite un nivel de aplicación para la ejecución del código de usuario.

• Dispositivo final (ZED): Posee la inherente funcionalidad de comunicarse con sunodo padre (puede ser coordinador o router). No permite transmitir informacióndestinada a otros dispositivos que no sean estos. De esta forma, el dispositivo final

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 42 de 114

Page 47: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

podrá estar normalmente “dormido” y despertar tan solo cuando desde sus nodospadre le sean requeridos paquetes de información, así la vida media de sus bateríasaumenta considerablemente. El ZED será el nodo más barato de la red.

Para ilustrar los diferentes tipos de nodos que podemos encontrar en una red, ponemos elejemplo de la Ilustración 28.

En esta imagen podemos ver los diferentes tipos de dispositivos. Todos los marcados con elcolor verde serían ZED. Los marcados con la etiqueta de color azul, serían los nodos padre delos ZED antes vistos. Teniendo una pasarela y un nodo coordinador, el cual a su vez estáconectado a un control remoto para poder operar desde un dispositivo Smartphone.

Topologías de red

Existen cuatro tipos diferentes de redes para la interconexión de todos los nodos:

• Punto a punto: Es la topología más sencilla posible. En ella uno de los dispositivos esel coordinador y el otro restante puede ser tanto ZED como ZR.

• Estrella: Todos los dispositivos de este tipo de red pueden comunicarse con elcoordinador pero no entre ellos.

• Malla: Se trata de una comunicación punto a punto extendida en la que existenrestricciones en las intercomunicaciones de los diferentes dispositivos. Cualquierdipositivo tiene la capacidad de comunicarse con otro y será el coordinador elencargado de gestionar los caminos para e4sta comunicación.

• Arbol: La más compleja de todas. El coordinador es el encargado de establecer la red

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 43 de 114

Ilustración 28: Ejemplo de red ZigBee

Page 48: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

inicial. La routers forman diferentes ramas de comunicación y retransmiten losmensajes. Los ZEDs son los que hacen el papel de las hojas en el árbol, recibiendo lainformación y aportando la necesaria.

En la siguiente Ilustración se pueden ver las diferentes topologías de red de la tecnologíaZigBee.

Protocolos

Desde su concepción en el marco de la ZigBee Alliance, ZigBee se ideó para que tuviese unaestructura por capas, lo que simplificaba el problema de la comunicación y permitía dividirlo.Esto además permitió a Zigbee tener más flexibilidad ante cambios.

De este modo, Zigbee sigue el modelo OSI (Interconexión de Sistemas abiertos) reduciendolas siete capas de la pila original a tan solo cuatro. El estándar 802.15.2 define las dosprimeras capas; capa física y capa de enlace de datos, mientras que Zigbee define las dosrestantes: capa de red y capa de aplicación.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 44 de 114

Ilustración 29: Topologías de red

Page 49: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Capa Física: Define las funciones y la relación con la capa MAC. A su vez, define aspectos como la potencia del transmisor y la sensibilidad del receptor.

• Capa de enlace de datos: Es la encargada de procurar una interfaz entre la capa físicay la de red. A su vez controla los servicios y los datos.

• Capa de red ZigBee: Ofrece todas las funcionalidades para la configuración ymanipulación de redes y una interfaz simple para las aplicaciones de usuario.

• Capa de aplicación: La mas importante. Nivel más alto de especificación. Es laencargada de la interfaz efectiva entre el usuario y el nodo que lo conecta a la redZigBee. En esta capa han de estar presentes todas las especificaciones y componentesrequeridos para los dispositivos. Un perfil de aplicación permite la operación de varioscomponentes de diferentes fabricantes en una red como si fuesen del mismo. LaZigBee Alliance es la encargada de definir los diferentes identificadores de perfil (unnúmero de 16 bits de la capa de aplicación que define el perfil). Los diferentes perfileslos podemos encontrar en su página web. En la Ilustración 31 pueden observarse losdiferentes perfiles existentes.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 45 de 114

Ilustración 30: Modelo ZigBee

Page 50: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.1.5.6 Comparativa y decisión de la tecnología a usar

A la luz de todos los datos aportados de las diferentes tecnologías existentes en el mercadopara el desarrollo de mi proyecto, he decidido elegir Zigbee. La elección esta motivada porvarios factores:

• Consumo. Es la tecnología que menos consumo de energía presenta. Si locomparamos por ejemplo con la tecnología Bluetooth, vemos que el consumo sereduce en casi un factor 1/10 tanto en reposo como en funcionamiento. Además laposibilidad de dejar los nodos finales (ZED) dormidos durante largos periodos detiempo y despertarlos tan solo cuando sea necesario obtener información, es vital parauna aplicación como la mía, ya que el punto más crítico del proyecto sea tal vez lavida media de las batería a usar.

• Documentación y fiabilidad. ZigBee es una tecnología utilizada con éxito en elmercado desde el año 2002-2003 aproximadamente, lo que le confiere una seguridad yun banco de información en internet bastante amplio. No se puede decir lo mismo detecnologías como BLE, la cual es muy óptima para nuestro proyecto debido al bajoconsumo de energía y a la utilización del modo sleep, pero no se dispone de suficientedocumentación y caso de éxito como para poder tener una fiabilidad asegurada en unproyecto como el que nos ocupa.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 46 de 114

Ilustración 31: PerfilesZigBee

Page 51: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Distancia. La tecnología ZigBee nos asegura buen funcionamiento y fiabilidad deconexión a distancia por encima de los 100 metros. Otras opciones, como sonBluetooth y BLE sufren fallos importantes a mas de 50 metros y NFC apenas superalos 60-70cm eb tasas de funcionamiento aceptable.

• Tecnología Estándar. destacar que la elección de ZigBee también está motivada porel hecho de ser una tecnología estándar, lo que permite mayor libertad de uso ycompatibilidad entres diferentes dispositivos.

Una vez realizado este primer análisis, se puede afirmar que las opciones Bluetooth, BLE yNFC están descartadas. Entonces, nos hemos quedado con dos opciones entre las que elegir,que son ZigBee y ANT. Ambas están ideadas y creadas para el uso en redes de sensores yambas tienen un alcance aceptable. No obstante, ANT fue creada para el uso de sensoresmulticast en aplicaciones deportivas, tanto es así que fue diseñada por una empresa deportiva(Garmin). Sin embargo, Zigbee esta creada por la ZigBee Alliance para un uso mucho másextendido, con la creación de diferentes perfiles para casi todas las aplicaciones (industriales,doméstica, clínicas, locales, personales, de investigación...)

En cuanto al consumo, ANT es una tecnología que presenta un consumo mínimo de susdispositivos en funcionamiento, pero en comparación con ZigBee tiene un consumo muchomás elevado en aplicaciones que presentan un escenario cíclico de funcionamiento. Esto esporque el modo sleep de ZigBee es muy eficaz, haciendo que los nodos durante el tiempo quepermanecen dormidos no consuman casi energía. Este hecho queda de manifiesto en elestudio presentado en [E19].

6.1.5.7 Módulo inalámbrico

Una vez elegid ala tecnología que vamos a utilizar para nuestro proyecto, hemos de saber cuálserá la electrónica que vamos a utilizar para llevar a cabo la comunicación. De tal forma,hemos de estudiar todas las opciones que hay en el mercado en cuanto a módulos de conexióninalámbrica compatibles con la tecnología ZigBee.

• Xbee Znet 2.5: También llamados módulo de Xbee Serie 2. Son los que másposibilidades presentan. Deben ser configurados antes de ser utilizados. Sus métodosde funcionamiento son: Modo transparente y/o modo de comandos API (todo dependede qué firmware se configure en cada módulo). Lo interesante de estos módulos (serie2) es que pueden funcionar en una red mesh, creando módulos totalmenteconfigurables y con una amplia gama de posibilidades de conexión y funcionamiento.No podrán ser utilizados alternativamente con los serie 1. Sus característicasprincipales además de las ya citadas son:

◦ Pequeño tamaño.

◦ Bajo coste y bajo consumo.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 47 de 114

Page 52: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

◦ No dispone de microcontrolador propio en la placa.

◦ Posee un software de programación gratuito disponible en la web del fabricante.

El aspecto de este módulo podemos verlo en la Ilustración 32

En el enlace [E20] puede verse el datasheet del componente

• Xbee ZB: Es el actual módulo de Xbee. Sustituye al anteriormente mencionado XbeeZnet 2.5 y al cambio básico que le han otorgado ha sido un nuevo firmware. Una delas cosas más atrayentes de este nuevo módulo, es que el firmware que ofrece eseditable y exportable, por tanto, puedes hacer lo que desees con él. Este nuevofirmware no es compatible con la versión del anterior módulo, el Xbee Znet 2.5, por loque no pueden funcionar simultáneamente interconectados. De igual modo que losZnet 2.5, estos módulos no pueden interconectarse con los módulos Serie 1 de Xbee.Físicamente es muy similar al módulo Xbee Znet 2,5, tanto en tamaño comoproporción.

• EasyBee: Es un dispositivo que presenta un reducido tamaño (26mmx20mm) y unconsumo de energía de 2.1V a 3.6V. Una de sus características mas llamativas es lacapacidad de sobrevivir a condiciones climáticas adversas, soportando temperaturastan extremas como - 40ºC y 85ºC. Su alcance es igualmente significativo, hasta 200metros y su tasa de transferencia de datos es de hasta 25kbps. Normalmente, estosdispositivos son usados para:

◦ Acondicionamiento de instalaciones. Reemplazar una red cableada por una redinalámbrica.

◦ Inmótica. Automatismos en viviendas.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 48 de 114

Ilustración 32: Módulo Xbee Znet 2.5

Page 53: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

◦ Redes de control industrial.

◦ Redes de sensores inalámbricos.

En la Ilustración 33 se puede ver cómo es uno de estos módulos

• Pixie: Esta herramienta se presenta como un par de dispositivos en vez de uno solo.Uno de ellos tiene la función de coordinador en la red y el otro de router. Son losllamados Pixie y Pixie Lite respectivamente. En esencia tienen las mismascaracterísticas técnicas de los dispositivos antes mencionados, EasyBee, pero tienenuna mayor capacidad de procesamiento. Esto les permite ejercer como dispositivosmás potentes que los EasyBee. A diferencia de los EasyBee y cómo los Xbee, estosdispositivos permiten la integración de una antena externa con la finalidad deaumentar el alcance de los mismos.

• Dos elementos muy interesantes de este tipo de herramienta son:

◦ Pixie Configuration Tool: Es un cable USB por el que se puede conectar unordenador a estos dispositivos ZigBee. Al conectar el cable tenemos una conexiónserie que permite configurar y manejar los mecanismos de una manera directaincluso entrando en la red en la que se encuentre el dispositivo conectado al PC.

◦ Pixie Evaluation Kit: Con esta tecnología se puede probar de una forma física losdiseños realizados de dispositivos ZigBee. Además permite trabajar directamentesobre los dispositivos ofertados por Pixie. Esto nos proporciona un control total,además de una programación directa y un análisis pormenorizado de la red.

El aspecto de estos módulos queda reflejado en la Ilustración 34

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 49 de 114

Ilustración 33: Módulo EasyBee 3

Page 54: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• ETRX1: Otra de las empresas que ofrece una alternativa a Xbee en cuento a módulosde conexión es Telegesis. Dispone de módulos que implementan el protocolo ZigBee yque además pueden actuar como routers o coordinadores. Es un dispositivo de bajocoste y ya preparado para usar en una red ZigBee, pero un poco mayor en tamaño quelos anteriores (27.75mm x 20.45mm). Su consumo está en el intervalo de (2.7V –3.6V) y puede trabajar óptimamente en entornos de – 40ºC a 85ºC. A pesar de ser deun mayor tamaño, hemos de decir a su favor que puede funcionar tanto comocoordinador como de dispositivo final. Las funciones para las que ha sido aplicado conregularidad son:

◦ Lectura automática de medidas.

◦ Alarmas de seguridad inalámbricas.

◦ Inmótica.

◦ Control industrial.

◦ Algunos periféricos de PC

En la imagen 35 se puede ver uno de estos módulos

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 50 de 114

Ilustración 34: Módulo Pixie

Page 55: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• ETRX2: Por último se comenta la nueva versión, mejorada, del módulo de Telegesis,el ETRX2. A las características del módulo ETRX1 hemos de sumar que dispone de128k de memoria flash y otros 5kbytes de SRAM, lo que le permite una versatilidadmucho mayor dentro de la red ZigBee. A esto, además, hemos de añadir la posibilidadde poner conectar hasta 3 antenas simultáneamente al módulo, ampliando así demanera muy considerable el alcance de la red. Este dispositivo se utiliza enaplicaciones de:

◦ Controles industriales M2M.

Su aspecto físico es muy similar al ETRX1 tanto en tamaño como en característicasvisuales.

Una vez estudiados los diferentes módulos, o un amplio número de ellos en el mercado,hemos de tomar la decisión de cuál de ellos usar. Para ello nos basaremos en una serie deparámetros que se consideran clave para este proyecto y que son:

• Calidad/precio. Parece obvio remarcarlo, pero se intentará que el precio del proyectosea lo más económico posible para poder hacer llegar el producto al mayor número deedificios posibles, para así poder hacer una monitorización de mayor calidad ycantidad de las variables atmosféricas de un entorno dado.

• Alcance. En nuestro caso ha de estar entre unos 30 y 80 metros, que es la alturamínima y máxima de un edificio en media en la ciudad de Granada. Con estasdistancias nos aseguramos poder poner el coordinador en la posición más idóneadentro del edificio.

• Tamaño. Siendo una red de sensores en las que los dispositivos finales van a estarcolocados en exterior y al aire, estos deben ser lo más pequeños posibles por variosmotivos: seguridad en fachada, facilidad en la instalación, alteración de la fachada,robustez del sistema... Por todo ello y por la escalabilidad del proyecto a diferentes

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 51 de 114

Ilustración 35: Módulo ETRX1

Page 56: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

entornos y edificaciones, se intentará en la medida de los posible elegir un módulopequeño.

• Fiabilidad y documentación. Este aspecto hace referencia a lo mencionadoanteriormente en cada dispositivo. Es muy importante conocer la historia de losdispositivos; para qué han sido usados anteriormente, con qué tasa de éxito, cómo hansido los proyectos en los que han sido utilizados, en qué sector suelen vender losfabricantes de los módulos... Y con todo ello poder decir con mayor fiabilidad si elcomponente comprado es óptimo o no para nuestro proyecto.

Atendiendo al tamaño, podemos afirmar que la mayoría de módulos son muy similares, por loque no parece ser un parámetro clave para nuestra búsqueda. En cuanto al alcance se puedeafirmar lo mismo, pues todos pasan ampliamente el arco de los 100 metros. En cuanto a lafiabilidad y documentación, haciendo una búsqueda pormenorizada en Internet acerca detesis, trabajos fin de grado, trabajos fin de máster y proyectos de investigación de realizadospor universidades públicas, se puede afirmar que la mayoría han sido desarrollados conmodulos Xbee de Digi, por lo que son estos los que cuentan con una mayor base de datos enla red, además de con una mayor fiabilidad y seguridad de óptimo uso. Por último, se realizauna comparativa en precio de todos los módulos descritos. Esta puede verse en la tabla 4.

Módulo Precio en el mercado [en €]

Xbee Znet 2.5 25,78€

Xbee ZB 32,45€

EasyBee 30,49€

Pixie 37,08€

ETRX1 15,49€

ETRX2 27,84€

Tabla 4: Precios de los diferentes módulos inalámbricos ZigBee

Viendo todos los precios y haciendo hincapié en su razonable precio, su más que contrastadafiabilidad y la cantidad de documentación disponible en Internet, se ha elegido para eldesarrollo del proyecto el dispositivo Xbee Znet 2.5. Es el segundo más barato en la listarecogida en la Tabla 4, su tamaño es óptimo, su alcance más que suficiente y ladocumentación recogida en Internet, tanto de su uso como de sus resultados hacen de estaopción la más óptima para nuestro proyecto. Más concretamente el módulo que se utilizarápara el desarrollo del proyecto es el XBee OEM ZigBee RF Module Digi International. Sepuede consultar su datasheet en el enlace [E20]

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 52 de 114

Page 57: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Como nota o apunte hemos de decir, que para la ciudad de Nuuk anteriormente estudiadapodría ser más conveniente utilizar los módulos de EasyBee y/o Telegsis por su buenfuncionamiento a temperaturas extremas. No obstante, los módulos Xbee de Digi tampocohan presentado problemas graves de funcionamiento a temperaturas límite como lasanteriormente citadas, pero bien es cierto, que los dispositivos de EasyBee y Telegisis estándiseñados para su uso en estos ambientes.

6.1.6 Módulo inalámbrico. Funcionamiento y montaje.

Una vez elegido el módulo inalámbrico que vamos a utilizar en este apartado nosencargaremos de documentar todo acerca del funcionamiento del mismo. A su vez, seestudiarán lo diferentes modos de montaje que puede requerir el dispositivo para un óptimofuncionamiento.

6.1.6.1 Operación

Todo lo aquí descrito, obviamente, se apoya en lo mencionado en el apartado 6.1.5.7 acercadel módulo de Xbee Znet 2.5 de Digi.

En la tecnología Xbee de Digi existen dos tipos e módulos, los denominados Serie 1 y losllamados serie 2. Como ya se hizo referencia anteriormente, la gran diferencia entre ambosdispositivos es que los Serie 2 si permiten hacer redes mesh y los Serie 1 solo pueden operaren funcionamiento punto a punto. El módulo elegido para este proyecto, como refleja sunombre, es del tipo Serie 2. De tal modo, en lo que sigue se describirá el funcionamiento yoperación de este dispositivo para la creación de redes completas en la tecnología ZigBee.

Empezaremos mostrando en la Ilustración 36 las conexiones que requieren este tipo demódulos y los pines de qué dispone. En la misma ilustración pueden observarse lasdimensiones del dispositivo.

En la ilustración se define el voltaje típico de alimentación de 3,3V, pero realmente ésta debeestar en el intervalo de 2,8 a 4V. Destacar además, la conexión a tierra en el pin número 10 y

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 53 de 114

Ilustración 36: Conexiones y dimensiones de unmódulo Xbee Serie 2

Page 58: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

las líneas de transmisión de datos UART (TXD y RXD) que se encuentran en los pines 2 y 3respectivamente y que sirven para comunicarse con un microcontrolador o puerto serial. Estasconexiones anteriormente comentadas, podrían decirse que son las conexiones mínimas querequiere este dispositivo para funcionar y ser útil.

Los diferente modos de operación de los que dispone este módulo son:

• Modo recepción/transmisión: El dispositivo se encuentra en este modo cuando llegaa él algún paquete de datos RF por la antena (sería el modo recepción) o cuándo elmódulo envía información serial al búffer localizado en el pin 3 que más tarde serátransmitida (esto sería el modo transmisión).

• Modo de bajo consumo o low energy: Este modo lo que consigue es que, cuando elmódulo no esté siendo utilizado, reduzca su consumo de energía al mínimo. Laconfiguración de estos modos de “sueño” o entrada en standby se definen mediantecomandos, ya que este modo está deshabilitados por defecto.

De forma más técnica, haciendo uso del pin 9 (Sleep/DTR) se puede configurar estemodo. De manera que si el pin está en estado alto, el módulo finalizará cualquiertransmisión, recepción o procedimiento de interrelación que esté desarrollando yinmediatamente después entrará en el modo reposo para posteriormente acabar en elmodo sueño. En este periodo, cuando está “dormido” el dispositivo, no responderá aningún tipo de comando de entrada (recepción, emisión, asociación...). Hasta que elpin Sleep/DTR no esté en estado bajo y el dispositivo se despierte, no será operativopara el funcionamiento normal.

• Modo de comando: Este es el modo en el que se utilizarán los comandos parainteractuar con el módulo y hacer que trabaje y opere de la forma que desea el usuario.Es el modo que nos permite configurar los parámetros del dispositivo mediantecomandos AT (más información sobre los comandos AT en [E21]). Para hacer posibleesta configuración y poder interactuar con el módulo se ha de utilizar alguno de estosdos software; Hyperterminal de Windows ó X-CTU de Digi.

Para entrar en el modo comando en el módulo, se ha de escribir por el terminal elstring “+++”. Después de esto tendremos que recibir del módulo una aceptación(“OK” en rojo). A partir de este momento será posible ingresar comandos mediante lasintaxis que se expresa en la siguiente ilustración.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 54 de 114

Page 59: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Modo transparente: En este modo nos conectaremos con el módulo de una maneradirecta e interactiva y además haremos que el módulo se comunique con sussemejantes. En este modo todo lo que se envía al pin 3 (Data In) se guardará en elbuffer de entrada y se transmitirá. En cambio, todo lo que se ingrese como paquete RFse guardará en el buffer de salida y se enviará por el pin 2 (Data Out). En este segundocaso se puede introducir un retraso o espera en el envío, es decir, mediante unparámetro llamado parámetro RO, podemos hacer que el envío por el pin 2 no seainstantáneo si no que se realice tras un tiempo de espera marcado. Este modo estádestinado únicamente al la comunicación punto a punto, donde no se necesita uncontrol exhaustivo de las tramas de datos enviados y/o recibidos.

• Modo de operación API: Es un modo más complejo, el cual permite el uso de tramascon cabecera que asegurarán la transmisión, de manera similar al TCP (TransmissionControl Protocol). En este modo, el módulo empaquetará en tramas la información deentrada y salida del mismo. Estas tramas creadas por el módulo serán las encargadasde definir operaciones y eventos.

De esta forma , una trama de transmisión de información (recibida por el pin 3)incluirá:

◦ Trama de información RF recibida

◦ Trama de comandos (equivalentes a comandos AT)

Mientras que en la trama de recepción habrá:

◦ Trama de información RF recibida

◦ Comando de respuesta

◦ Notificaciones de eventos (reset, disassociate, etc)

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 55 de 114

Ilustración 37: Estructura de comando AT

Page 60: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Este modo nos da alternativas para la configuración y ruteo de la información en lacapa de aplicación. Un cliente puede enviar información a un módulo Xbee, estosdatos se recogerán en una trama, en la que la cabecera tendrá información útil se esemódulo.

Además este modo permite que la API realice de manera autónoma las direcciones delos mensajes en vez de realizarlo con comandos. De este modo el módulo enviarápaquetes de datos contenidos en las tramas que tendrán información de aplicaciones,estado, origen del mensaje, RSSI (nivel de potencia de las señales recibidas) einformación de la carga útil de los paquetes recibidos.

Las opciones que permite el modo API son:

◦ Transmitir información a múltiples destinatarios, sin tener que utilizar el modo decomandos.

◦ Recibir el estado de la transmisión (éxito/fallo) de cada uno de los paquetes RF.

◦ Identificar la dirección de origen de cada paquete RF que sea transmitido.

• Modo IDLE: Este modo es el más simple de comprender. Se dice que si el módulo noesta en ninguno de los demás modos estará en este modo. En otras palabras, si no estátransmitiendo, ni dormido ni en el modo de comandos, estará en el modo IDLE.

En la Ilustración 38 se puede ver un resumen aclaratorio de los diferentes modos de operaciónque presenta un módulo Xbee de Digi.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 56 de 114

Ilustración 38: Modos deoperación. Módulo Xbee de Digi

Page 61: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Con la descripción dada del módulo y de sus diferentes modos de operación y trabajo, yaestamos preparados para diseñar las primeras comunicaciones entre los dispositivos.

6.1.6.2 Breakout para Xbee

Esta es una placa comercial distribuida por diferentes fabricantes cuya finalidad es colocar elmódulo Xbee. La función que cumple es muy simple pero a la vez esencial: acondiciona elmolesto espaciado de pines del módulo Xbee por defecto, al estándar de 0,1 pulgadas que nospermite un óptimo montaje en placas protoboards para realizar el diseño y las pruebas denuestro proyecto.

6.1.6.3 Placa Xbee Explorer USB

Por último se comentará la inclusión de este componente en el montaje del móduloinalámbrico Xbee de Digi. Esta pequeña placa posee los pines de conexión para un módulo deXbeee de Digi y además cuenta con un controlador que sirve para programarlos y adquirir susdatos.

Lo que más se destaca como positivo de esta placa es que cuenta con una entrada mini USB,totalmente extendida en el uso cotidiano, que permite conectar la placa a un PC y leer yescribir datos a través del puerto serie.

Esto es muy interesante para nuestro proyecto, ya que estamos buscando un modo de poderconfigurar el coordinador de una manera segura, poder utilizarlo con las herramientas que yaposeemos (un PC y cable mini USB) y poder recoger los datos en el PC para queposteriormente sean mostrados, monitoreados y analizados. Así, creo que esta opción es laideal para nuestro proyecto.

En la Ilustración I40 puede verse la placa y en la Ilustración I41 puede verse cómo quedaríacon el módulo Xbee integrado.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 57 de 114

Ilustración 39: Breakoutpara Xbee y sus dimensiones

Page 62: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

6.2 SoftwareEn este espacio se desarrollará y explicará todo el software necesario para realizar el proyecto,desde la programación de las placas Arduino hasta la interpretación de datos.

6.2.1 IDE de Arduino

Arduino, como plataforma libre que es, ofrece un software gratuito para la programación desu placa. Está basado en el lenguaje de programación Processing y permite cargar el programaen el microcontrolador de la placa mediante un cable USB-B. No obstante se puede utilizarcualquier lenguaje de programación en esta plataforma, ya que emplea la transmisión serial dedatos que es soportada por una extensa mayoría de lenguajes. Incluso se pueden utilizarprogramas intermediarios para aquellos lenguajes que no sean compatibles con el formato

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 58 de 114

Ilustración 40: Placa Xbee ExplorerUSB

Ilustración 41: Placa Xbee ExplorerUSb con el módulo Xbee acoplado

Page 63: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

serial.

Como grandes rasgos de la programación en este lenguaje se dirá que es obligatorio que sigala siguiente estructura:

void setup() {

sentencias;

}

void loop(){

sentencias;

}

El bloque setup es la parte representada como void setup() y se ejecuta solo una vez cuando

el programa se inicia. Aunque no se escriba nada en su interior, es necesario escribirlo en el

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 59 de 114

Ilustración 42: IDE Arduino

Page 64: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

programa con las llaves de apertura y cierre {}. Es el método encargado de recoger laconfiguración de la paca con el resto de componentes que interaccionen con ella. Lasfunciones que tiene normalmente son determinar si un determinado ‘pin’ es salida o entrada,establecer su valor inicial, inicializar el puerto sere, etc.

El bloque loop () es el que se indica con la función void loop() y en este caso se ejecuta deforma ininterrumpida, es decir, reiterativamente, una y otra vez. Con esta función – bucle loque se consigue es que el programa diseñado sea capaz de responder a eventos que seproduzcan en el proyecto.

Hemos dicho que el bloque setup y el bloque loop son funciones que definen métodos pero nohemos explicado que es una función. Una función es un bloque de código que se sitúa fuerade setup() y loop() - que a su vez son funciones – con un nombre característico, que puedetener uno o varios parámetros de entrada y puede o no devolver un parámetro determinado. Lautilidad que tienen las funciones es poder realizar el mismo método en diferentes partes delcódigo sin tener que escribir todas las sentencias necesarias para ello. A la hora de trabajar confunciones hemos de saber que:

• Si una función no devuelve ningún valor, será de tipo void (como lo son setup() yloop())

• En el caso de que tengan que devolver un valor, se ha de incluir return valor ,

momento en el que la función finalizará.

• Aún no necesitando parámetros de entrada, las funciones han de incluir los dosparéntesis después del nombre (como sucede con setup y loop)

Otro aspecto que se ha de tener muy claro es el de las llaves {} y los punto y coma. Las llaves{} son las encargadas de delimitar bloques se código como funciones, sentencias if, for, etcmarcando el comienzo y el fin del mismo. Destacar que en el Ide de Arduino al situarse con elcursor en una llave de apertura {, se resaltará su correspondiente llave de cierre }, pudiendoasí controlar mucho mejor el código. Los punto y coma ; se emplean para finalizar unadeclaración, o limitar los elementos que constituyen un bucle for. Señalar que el olvido delpunto y como al finalizar una sentencia es el error más usual al programar con el IDE deArduino.

Por último, se comentará la forma de introducir los comentarios de código en los skech. Loscomentarios son útiles para hacer más comprensible el código y explicar qué hacer cadabloque. Es muy útil a la hora de compartir el código pero también para uso proprio, pararecordar el por qué de la inclusión de algunos bloques y la estructura del programa. Loscomentarios de una sola línea se realizarán de la siguiente forma:

//Esto es un comentario de una sola línea

Los comentarios de varias líneas o bloque de comentarios se realizarán de la siguiente

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 60 de 114

Page 65: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

manera:

/* Esto es un bloque de comentarios

con varias líneas

*/

Comenzando por /* y finalizando con */

Mencionar que en cada código usado en el proyecto se insertarán los correspondientescomentarios para que todo el código sea comprensible y estructurado.

Este entorno de desarrollo de Arduino, además, posee un monitor serie que nos permite verlos datos que hay en cada puerto serie del PC. En él, el único parámetro que se ha de ajustares la velocidad (en baudios) del puerto deseado.

6.2.2 Programación de los modulos inalámbricos. X – CTU

Aunque sabemos que es posible utilizar el programa Hyperterminal de Windows paraconfigurar los módulos que hemos escogido para nuestro proyecto, utilizaremos el programaX – CTU que nos permite realizar las mismas operaciones pero de una forma más fácil yrápida.

Si abrimos el programa vemos que cuenta con cuatro pestañas diferentes

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 61 de 114

Ilustración 43: Arduino Serial Monitor

Page 66: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• PC – Setting: Esencialmente es desde aquí desde donde podemos seleccionar elpuerto COM serie conectado al módulo Xbee y realizar los ajustes pertinentes delmódulo conectado por este puerto. Los parámetros que se pueden configurar sonbitrate, flujo, bits de datos, bits de paridad, etc. Este apartado además permite activarel modo API.

• Range Test: Como su mismo nombre indica su función es el test, lo que hace es enviaruna cadena para conocer el alcance que tiene el módulo.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 62 de 114

Ilustración 44: Pestaña PC - Settingde X - CTU

Page 67: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Terminal: En este caso el nombre también es muy intuitivo. Es la pantalla dondedebemos escribir lo que queremos que se traslade al módulo. Todo lo escrito en estaventana se envía al módulo como si estuviera en el modo Comandos. A su vez, nospermite ver todo lo que está recibiendo el módulo en ese momento.

• Modem configuration: Aquí nos encargaremos de congurar el módulo inalámbrico.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 63 de 114

Ilustración 45: Range Test de X - CTU

Ilustración 46: Pestaña Terminal de X - CTU

Page 68: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

De tal forma en esta pestaña se puede leer, guardar o cargar toda la configuracióndeseada en el módulo o del módulo. Obviamente, se puede ver la configuración que yatiene el dispositivo y cambiar lo que se vea conveniente.

En este apartado no se realizará ningún manual de conexión del módulo inalámbrico con elPC y de configuración del mismo, ya que se hará más adelante considerado como casopráctico.

6.3 Interfaz con el usuarioUna vez recogidos los datos de los diferentes sensores, a través de los módulos inalámbricos ylos Arduino, hemos de ser capaces de presentar los datos al usuario de una forma ordenada,completa y agradable.

Esta interfaz deberá ser capaz de otorgar los datos en tiempo real y presentarlos de una formacomprensible y atractiva. Es por ello que se va a optar por utilizar el lenguaje deprogramación Processing, por ello y porque Arduino está basado en él, de tal forma, cuandotengamos que diseñar la plataforma o aplicación que tenga como función ser la interfaz con elusuario, estaremos familiarizados con este. No obstante no podemos obviar que la creación degráficos en tiempo real no es la mejor en el lenguaje Processing, y por esto lo combinaremoscon la herramienta Matlab (muy capacitada para representar gráficos) o el lenguaje Pyhton, sedecidirá a la hora de programarla.

Todos los lenguajes anteriormente mencionados tienen la particularidad y ventaja quepermiten la comunicación con el puerto seria al que esté conectado el nodo coordinador. Deeste modo no habrá ningún problema en la adquisición, pudiendo leer al momento (real time)

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 64 de 114

Ilustración 47: ModemConfiguration de X - CTU

Page 69: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

todo lo que esté entrando por dicho puerto. Tanto en la siguiente sección como en losdiferentes anexos se expondrá de forma más detallada como se realiza la adquisición ytratamiento de datos.

7 Casos prácticosEn este apartado se incluirán todos los casos prácticos que se desarrollan hasta llegar a latotalidad del proyecto final. Se intentará seguir una linea de dificultad y/o complejidadascendente, partiendo de un programa y montaje básicos hasta la organización del proyectofinal.

7.1 Semáforo completo. Software Arduino.En este caso práctico se realizará un montaje muy sencillo y se implementará un código muysimple. En primer lugar definiremos los diferentes dispositivos que necesitaremos para estecaso práctico:

• LEDs (light-emitting diode - diodo emisor de luz): Serán las bombillas del semáforo yserán utilizados de color verde, rojo y blanco (en lugar del ámbar tradicional). Estedispositivo es un componente optoelectrónico pasivo y su función básica es la emisiónde luz, como su mismo nombre indica. Sus grandes ventajas son el bajo consumo deenergía, mayor tiempo de vida, tamaño reducido, resistencia a las vibraciones yreducida emisión de calor.

• Una paca Arduino UNO, la cual no necesita presentación ya que todo ha sido recogidoen la sección 6.1.3.

• Un cable USB-B, como el que se muestra en la siguiente Ilustración.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 65 de 114

Ilustración 48: Cable USB - B

Page 70: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Una placa protoboard o breadboard, como la mostrada en la Ilustración 49

• Cables

• PC con el software o IDE Arduino instalados.

Una vez tenemos todos los componentes hemos de decidir el montaje del circuito. Lo idealsería poner a la salida del pin +5V tres resistencias en paralelo con los diferentes LEDs.Típicamente esta resistencia es de unos 220 ohm consiguiendo por tanto que la alimentaciónno vaya directamente a los LEDs y no puedan sufrir daños. Quedando el montaje como semuestra en la Ilustración 50.

En nuestro caso obviamos el colocar las resistencias debido a que el montaje es soloexperimental, es decir, no es permanente, no va a sufrir durante demasiado tiempo el led laalimentación de 5V. Además, se corrobora experimentalmente que con la alimentaciónconectada directamente a los led el funcionamiento es óptimo y los dispositivos lumínicos nosufren ningún daño.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 66 de 114

Ilustración 49: Placa Protoboard

Ilustración 50: Montaje del Semáforo completo

Page 71: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

El funcionamiento de este diseño es obtener un semáforo completo, en el sentido delfuncionamiento. De este modo el sistema seguirá el siguiente patrón:

• Se enciende el led verde durante un determinado tiempo.

• Después pasa a encenderse el led blanco durante un espacio más corto de tiempo.

• Más adelante es el led rojo el que se enciende en un tiempo similar al verde.

• Por último, se muestra el parpadeo del led blanco.

De este modo quedan recogidos todos los modos de funcionamiento de un semáforo, de hay eladjetivo completo que se le da al sistema.

El código que rige toda esta función es el que podemos encontrar comentado en el Anexo 1.

En el siguiente enlace podemos observar el funcionamiento del sistema descrito en esteapartado.

7.2 Estación meteorológica simpleEn este caso práctico mediremos, con el sensor de temperatura DHT11, la temperatura y lahumedad de una habitación durante un rango de tiempo.

Se utiliza el DHT11 en este caso práctico porque aún no se cuenta con el sensor SHT25, elcual está por llegar. Las funciones del sensor que se van a utilizar, son muy similares a las delSHT25, tanto es así que podríamos llamar al segundo, una evolución del primero. Lasfunciones y características son muy similares, tan solo cambian, las prestaciones y lafiabilidad.

Los datos que vaya arrojando el sensor se irán muestreando, almacenando, procesando yfinalmente serán mostrados al usuario a través de la pantalla del PC.

Los materiales necesarios para este sistema son:

• Un sensor DHT11: Utiliza un sensor capacitivo de humedad y un termistor para medirel aire circundante, y muestra los datos mediante una señal digital en el pin de datos.La desventaja que presenta es que tan solo se pueden medir datos en intervalos de dossegundos. Las características técnicas de este elemento son:

◦ Alimentación: 3Vdc ≤ Vcc ≤ 5Vdc

◦ Rango de medición de temperatura: 0 a 50 °C

◦ Precisión de medición de temperatura: ±2.0 °C .

◦ Resolución Temperatura: 0.1°C

◦ Rango de medición de humedad: 20% a 90% RH.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 67 de 114

Page 72: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

◦ Precisión de medición de humedad: 4% RH.

◦ Resolución Humedad: 1% RH

◦ Tiempo de sensado: 1,6 seg.

Físicamente el sensor se ve como en la siguiente Ilustración

De este sensor lo primero que hemos de detectar son las conexiones, así el esquema deconexiones será el siguiente:

◦ La patilla marcada con un “-” será la patilla conectada a tierra,

◦ La patilla marcada con “s” será el conector de datos (que va a la entrada digital delArduino)

◦ La central será la de alimentación (5V).

• Librearía para la programación del DHT11: Se ha conseguido en el enlace [E23]

• Cables

• Placa Arduino Uno

• PC con Software Arduino y el programa Matlab, además del software Processing.

Lo primero que tenemos que tener claro es el montaje que vamos a realizar con la placa y elsensor. Quedará de la forma que se ve en la siguiente Ilustración.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 68 de 114

Ilustración 51: Sensor de temperatura yhumedad DHT11

Page 73: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Una vez, sabemos el donde ha de estar conectada cada patilla, debemos realizar laprogramación de los diferentes software. Para ello hemos utilizado los entornos deprogramación de los programas anteriormente mencionados; Processing, Matlab y el IDE deArduino. En lo que sigue vamos a comentar el funcionamiento y los diferentes códigos-aunque algunos de ellos ya están parcialmente comentados en el proprio código-

• Arduino: En el programa diseñado en el IDE de Arduino lo que se persigue esconectar la placa con el puerto serie y transmitir todos los datos que vaya arrojando elsensor DHT11. Los datos son escritos en el puerto serie con la siguiente estructura:

“DHT11;[minutos transcurridos desde el inicio];[valor de Tª];[valor de humedad]”

Mencionar como apunte, que para hacer desarrollar este código se han utilizado dos librerías, las llamadas “Time” (Obtenida de la web de Arduino) y “DHT”.

• Processing: El objetivo de este código es poder leer los datos del puerto serie (COM3 en nuestro caso), e ir trasladándolos a un archivo que más tarde será leído por el código programado en MATLAB. En este caso he elegido el archivo en formato .txt porque es el más cómodo y útil.

• MATLAB: Este tiene como objetivo leer del archivo anteriormente creado

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 69 de 114

Ilustración 52: Montaje de la EstaciónMeteorológica Simple

Page 74: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

(permitiendo al usuario elegirlo) por Processing y ser capaz de extraer todos los datos y poder representarlos en un gráfico. Para ello lo primero separar en partes las líneas que lee del archivo y después realiza varias acciones:

◦ Identifica el sensor del que se trata con la primera partícula: “DHT11” en este caso

◦ Guarda en un vector los diferentes valores de la temperaturas

◦ Realiza el mismo procedimiento con la temperatura

◦ Dibuja dos gráficas en las que se puede ver cómo varía la temperatura y la humedad en función al tiempo.

Todos estos tres programas juntos con el hardware anteriormente descrito nos permiten tener una estación meteorológica simple que realiza la función de monitorizar las variables meteorológicas de un entorno. En las dos Ilustraciones siguientes se puede ver un ejemplo de funcionamiento, es decir, una Ilustración del archivo “base de datos” que se crea y las dos gráficas que se han obtenido al monitorizar un hogar granadino el día 23 de Marzo a las 18:35h

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 70 de 114

Ilustración 53: Archivo .txt creado por Processing

Page 75: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Una vez explicado el procedimiento que hemos de seguir utilizando los software Processing yMatlab junto con el IDE de Arduino, ilustraremos qué hemos de hacer si queremos obtener losmismos resultados usando tan solo Python. Con esto lo que se pretende es hacer ver cuán sencillo y completo es el lenguaje Python frente al resto de los que disponemos.

El código en el IDE de Arduino será exactamente el mismo y el código que hemos de programar en Python es el que se muestra en el Anexo 9.1.4.1. Lo primero que he hecho es importar las librerías serial y matplotlib.pyplot para poder conectarme con el puerto USB al que está conectado el Arduino y para poder realizar gráficas con Python y poder exportarlas. Una vez hecho esto lo que hacemos es seguir los mismo pasos que hemos seguido anteriormente pero con el lenguaje Python. El código está debidamente comentado para poderentender las diferentes partes del mismo.

Finalmente con un código mucho más sintetizado, simple de ejecutar y de entender obtenemos los mismos resultas, tanto para el archivo que nos servirá como base de datos como las gráficas de visualización.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 71 de 114

Ilustración 54: Gráficas creadas por MATLAB

Page 76: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

7.3 Medidor de Calidad del AireEste este experimento se intentará medir la cantidad de partículas nocivas que hay en el aire yse expresarán en ppm (partículas por millón). Este experimento nos servirá para hace runaprimera aproximación de calidad del aire en una zona geográfica. Lo que se ha hecho esseguir el estudio normal de la calidad atmosférica, comenzando por medir el parámetro másgenérico pero que a la vez más datos aporta. Con este dato podemos sacar la primeraconclusión del estado de contaminación en una ciudad, pudiendo catalogar la situación demala, estable o buena, como actualmente se está haciendo por parte de la Concejalía de Saludy Medio Ambiente de la Junta de Andalucía y del Ayuntamiento de Granada.

Para la realización de este experimento es necesario:

• El sensor MQ-135 definido en la sección sección 6.1.1.4. En este caso, el encapsuladocomprado posee una RL de 22 KΩ

• Software Spyder para programar en Python

• IDE de Arduino

• Cables conectores y cable USB-B

• Arduino UNO

• Placa Protoboard

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 72 de 114

Ilustración 55: Gráfica de datos de la Estación Meteorológica Simple obtenidacon Python

Page 77: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Cable USB-B para alimentar el Arduino UNO

• Un PC

Lo primero que hemos de hacer es la conexión electrónica del MQ-135 y el Arduino. Estaqueda como se puede ver en la Ilustración 56

Una vez realizado el montaje y el conexionado, hemos de programar la placa Arduino parapoder hacer que el sensor funcione. Previamente hemos de haber leído el datasheet, que puedeser consultado en el enlace [E24], para saber qué es la salida y cómo pasarla a ppm. Esteproceso se especifica en los comentarios del código de Arduino que puede verse en esteanexo.

Ya que tenemos el programa que gestiona la adquisición de datos y que gobierna elfuncionamiento del sensor, hemos de programar en Python, un script capaz de tomar los datosdel puerto serie, almacenarlos en una base de datos y después representarlos en una gráficapara que puedan ser mostrados de una forma agradable. Esto se consigue con el programa quese puede ver en el siguiente anexo.

Los resultados que obtenemos con este proceso son los siguiente.

• Una base de datos en un formato simple (.txt)

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 73 de 114

Ilustración 56: Montaje del MQ-135

Page 78: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• Gráfica en la que puede observarse la variación de los parámetros de la calidad del aireen una zona geográfica deseada.

Con este experimento nos hemos introducido en el estudio de las variables atmosféricas y decalidad del aire de un entorno geográfico. Al haber finalizado exitosamente este experimento,hemos constituido la primera versión de nuestra Estación Meteorológica y Atmosférica. En loque sigue se optimizará esta versión añadiendo algún sensor más y se implementará laconexión inalámbrica Zigbee para poder tomar datos en un entorno mucho más amplio.

7.4 Medidor de CO en aireEn este experimento o caso práctico se intentará medir la concentración del gas CO en aireexpresado en ppm (partículas por millón). Se ha escogido este gas en concreto porque en elestudio previo de las actuales estaciones de control atmosférico, se ha observado una carenciade sensores que midan este parámetro. Así, como el interés de este proyecto es aportar algonuevo a la monitorización de las variables atmosférica, realizando todo en Open Software yOpen Hardware y a bajo coste, se ha decidido que será el gas que menos está siendo

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 74 de 114

Ilustración 57: Base de datos de la calidad del aire (Sensor MQ135)

Ilustración 58: Datos obtenidos del sensor MQ135 (Medidor deCalidad del Aire)

Page 79: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

controlado, el que nosotros intentemos monitorizar. De esta forma obtendremos un trabajocomplementario con las actuales estaciones atmosféricas.

Para el desarrollo de este caso práctico nos es necesario:

• Un placa Arduino Uno

• Un sensor MQ-7

• El IDE de Arduino

• Lenguaje de programación Python. Se utilizará el programa Spyder del paqueteAnaconda para este fin.

• Cables conectores y cable USB-B.

• Un PC

• Placa Protoboard

Atendiendo al datasheet que podemos encontrar en la sección 6.1.1.3. realizamos el montajeelectrónico del módulo del sensor y la placa de Arduino como puede verse en la siguienteIlustración.

Una vez hemos realizado el montaje del sensor con la placa de Arduino, hemos de programarcon el IDE de Arduino la placa para que nos extraiga los datos del sensor y los envíe al puertoserie. La consecución de este objetivo puede verse en siguiente anexo,el código estátotalmente comentado para una total comprensión del mismo.

Una vez programado el IDE de Arduino y conseguido extraer los datos y escribirlos en elpuerto serie, con el Software Spyder de Anaconda hemos de crear un programa capaz de leerlos datos del puerto serie, crear una base de datos con ellos y después representarlos

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 75 de 114

Ilustración 59: Conexiones del modulo del sensor MQ-7

Page 80: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

gráficamente de manera clara al usuario. El programa que lleva a acabo esta función puedeverse en este anexo, igualmente el código está comentado para una cómoda comprensión.

Con todo este proceso obtenemos los siguientes resultados:

• Una base de datos con las medidas de CO por cada minuto

• La representación gráfica de los datos arrojados por el sensor

7.5 Estación meteorológica y atmosféricaEn este caso práctico no haremos otra cosa que unir todos los casos prácticos realizadosanteriormente para poder contar con una estación meteorológica y atmosférica completa. Estees el preludio de la mota que colocaremos a distancia para el proyecto final, es decir, este serála mota que estará a la intemperie en el medio midiendo los valores de las constantes

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 76 de 114

Ilustración 60: Base de datos de los valores arrojados por el sensor MQ-7

Ilustración 61: Gráfica de los datos arrojados por el sensor MQ-7

Page 81: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

atmosféricas y climáticas para enviarlas vía inalámbrica (ZigBee) a la mota “coordinador”que será la que recoja la información y la muestre en pantalla. Por tanto, el firmware(programado en Spyder con el lenguaje de programación Python) desarrollado en este casopráctico, también ser utilizado en el proyecto final como firmware de la mota “coordinador”.

Como este caso práctico es la unión de los caso prácticos anteriores (secciones de la 7.2. a la7.4.) el hardware y software necesario para desarrollarlo es la suma de los recogidos en losanteriores experimentos.

Como viene siendo habitual lo primero es conectar todos los módulos a la placa protoboardpara hacer las conexiones pertinentes. El montaje queda de la forma recogida en lasilustraciones siguientes:

Una vez conectado, hemos de realizar un programa en el IDE de Arduino para poder gobernarel funcionamiento de todos los sensores a la vez. En este caso, es más simple desarrollarloporque es conectar todos los programas para finalizar en uno en común. Este puede serconsultado en el siguiente anexo.

Una vez podemos obtener los resultados de todos los sensores de manera simultanea, hemos

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 77 de 114

Ilustración 63: Montaje Caso práctico 5(perspectiva 1)

Ilustración 62: Montaje Caso práctico 5(perspectiva 2)

Ilustración 64: Montaje Casopráctico 5 (perspectiva 3)

Page 82: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

de programar con Spyder un script que sea capaz de guardar todos los datos en una base dedatos y además que pueda graficarlos para poder ser presentados de forma simple a losusuarios. Este programa puede ser consultado en este anexo. Se ha optado por hacer gráficasindividuales para cada magnitud medida y además se ha realizado una quinta que recoge todaslas magnitudes de todos los sensores.

Los resultados obtenidos se recogen en las siguientes ilustraciones:

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 78 de 114

Ilustración 65: Caso Práctico 5. Gráfica PartículasNocivas

Ilustración 66: Caso Práctico 5. Gráfica Partículas CO

Page 83: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 79 de 114

Ilustración 67: Caso Práctico 5. Gráfica Temperaturas

Ilustración 68: Caso Práctico 5. Gráfica Humedad

Page 84: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

7.6 Conexión Zigbee simpleEn este caso práctico realizaremos una conexión simple entro los dos módulos Xbeeadquiridos para más adelante poder utilizarlo con nuestra estación meteorológica yatmosférica completa.

Los pasos que hemos de seguir son los siguientes:

1. Configuración de los módulos Xbee: Mediante el software X-CTU que nosproporciona el mismo fabricante Zigbee, hemos de realizar las siguientes acciones:

1. Elegir un módulo Coordinador y otro End Device. Esto lo realizamos mediante laselección del firmware que va a poseer nuestro módulo pusando el botón “Update”y eligiendo el modelo y el firmware dependiendo del que queramos usar como EndDevice y como Coordinador.

2. Elegir un número de ID que ha de ser común a ambos Xbee para poder realizar laconexión. En nuestro caso hemos elegido el “234”

3. Escribir los DH (Setination High Adress) y DL (Destination Low Adress) de cadamódulo. En el menú del coordinador escribiremos los datos del End Device yviceversa, de esta forma ambos Xbee se reconocerán entre sí al realizar lacomunicación. Los valores de DH y DL están señalados en la parte posterior de los

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 80 de 114

Ilustración 69: Caso Práctico 5. Gráfica que recoge todas las medidas de todos lossensores

Page 85: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

módulos.

2. Conexionado del circuito. Para hacer la conexión del circuito, conectamos el móduloEnd Device a la placa adaptada para protoboard de Xbee y cableamos de la siguienteforma.

Xbee Aduino

Dout Pin 0 – Rx

Din Pin 1 – Tx

Vcc 3,3V

Gnd Gnd

3. Conexión del End Device al PC. Este paso es muy sencillo, tan solo se ha de usar laplaca USB utilizada para este fin en la que se puede conectar el módulo Xbee.

4. Programación del IDE de Arduino. Lo único que hemos de tener en cuenta es laimportación de la librería SoftwareSerial.h. El script realizado puede verse en el anexo9.1.1.6.

Una vez establecida la conexión entre los módulos, el resultado es el deseado, lo recibido porel arduino es enviado al módulo End Device de forma inalámbrica pudiendo observarlo en laconsola serial del X-CTU.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 81 de 114

Ilustración 70: Resultado del caso práctico 6

Page 86: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

7.7 Estación meteorológica y atmosférica con conexión inalámbrica Zigbee

Con este caso práctico finalizamos nuestro proyecto, ya que llegamos a la consecucióncompleta del objetivo: Tener una estación meteorológica y atmosférica y que esta pueda estarconectada con un PC remotamente y de forma inalámbrica.

Para realizar este caso práctico obviamente utilizaremos todo lo visto anteriormente, pero enesencia, es la fusión del caso práctico 6 y el caso práctico 5.

Lo único que hemos de hacer es mantener el conexionado del caso práctico número 5añadiendo el módulo Xbee coordinador a los pines expresados en la tabla del caso prácticonúmero 6. De esta forma, el cableado de todo el proyecto nos queda como se puede ver en lasiguiente ilustración.

De igual modo, lo único que tenemos que hacer para tener el código en el Ide de Arduinofinalizado con la conexión Xbee es incluir lo visto en el caso práctico 6 en el código del casopráctico 5, quedando como se especifica en el anexo

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 82 de 114

Ilustración 71: Conexionado del último caso práctico y proyecto final

Page 87: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

En el caso del script programado en Spyder de Python lo único que hemos de cambiar es elpuerto COM del que se va a realizar la lectura. Tan solo hemos de cambiar el COM9reconocido para el Arduino por el COM15 reconocido para el Xbee. Esto, evidentementecambiará según la identificación de los puertos serie del PC que se vaya a usar.

Los resultados obtenidos en este caso práctico son los mismos que los obtenidos por el casopráctico 5, tan solo cambia la forma de tranmisión de datos, en este caso fue inalámbrica y enel caso del caso práctico 5 fue cableada.

Los resultados son mostrados por el X-CTU en la consola serial de este modo.

8 Aplicaciones del proyectoEn este último apartado lo que haremos será buscar el dónde y el cómo instalar nuestrosistema en diferentes aplicaciones para así poder hacerlo más útil.

8.1 Aplicación en red de edificiosNuestra estación meteorológica y atmosférica puede ser utilizada para la creación de una redde monitorización de una ciudad como se ha venido comentando en algunos apartadosanteriores. Este proyecto se realizaría de la siguiente forma:

Se elegiría una zona geográfica concreta. En nuestro caso, por facilitar los medios y lainfraestructura, podrían ser edificios de la propia Universidad de Granada. Por ejemplo,podrían escogerse los edificios del Campus Fuente Nueva, tales como: Edificio de la Facultadde Ciencias, Edificio Mecenas, Politécnico, Edificio de la Facultad de Ingeniería de la

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 83 de 114

Ilustración 72: Monitorización de magnitudes a medir. Proyecto final.

Page 88: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Edificación y Edificio de Comedores.

Con esta red elegida, que se representa en la imagen de debajo de este párrafo, podemosrealizar una red mesh con los diferentes ZigBee que nos darían un perfil topográfico depolución, temperatura y humedad de la zona establecida.

A tenor de la zona geográfica a tratar, se debería colocar el nodo central -que actuará comocoordinador de la red mesh- en el edificio de la Escuela Técnica Superior de Ingienería de laEdificación (Edificio politécnico), debido a su zona estratégica en el centro del resto deedificios considerados.

Para la ejecución de la red lo único que hemos de haces es colocar el nodo coordinador en elcitado edificio y en el resto de edificios considerados los nodos ED. Desde el punto de vistadel hardware lo único que habría que añadirle al proyecto presentado en el punto 7.7, seríauna batería para hacerlo totalmente inalámbrica. En un principio se elegiría la bateríamencionada en el punto 6.1.4, la batería de hidruro de niquel-metal (NiMH), teniendo encuenta que en un futuro se podría sustituir por una batería solar también comentada en dichopunto. Dicho cambio podría llevarse a cabo cuando el óptimo funcionamiento del sistema seaverificado. No se trabaja en un principio con la batería solar, porque esta es más susceptible aposibles fallos por picos de intensidad, propio de los tiempos de calibración y puesta a punto

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 84 de 114

Ilustración 73: Zona geográfica - Red meteorológica y atmosférica

Page 89: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

de este tipo de redes.

En cuanto al software lo único que habría que tener en cuenta es que la petición de datos se vaa hacer de forma cíclica ordenada. De tal forma, el nodo coordinador lo que debería hacer esir “despertando” cada nodo ED cuando sea el momento de recibir los datos. A su vez, una vezrecibidos los datos, mandará dormir ese nodo hasta que le toque nuevamente ser el nodoemisor de los datos.

Y ¿cómo hacemos para dormir y despertar los nodos?, pues es muy sencillo, lo único quehemos de hacer es poner alta la patilla 9 del módulo ZigBee si queremos despertarlo y ponerlaen baja si queremos que el nodo esté “dormido”.

Así, de forma práctica lo que tenemos que hacer para tener el sistema óptimo es, cada vez quese vaya a pedir información a un nodo poner alta la patilla 9, y una vez recibidos yalmacenados todos los datos, poner dicha patilla en el nivel “low”. Esto se repetirá para todoslos nodos con una secuencia cíclica espaciada en el tiempo, es decir, cada 5 minutos se pediráinformación aun nodo.

Otra opción es coger cada día datos de un sensor. Esto nos facilita la labor de de operación ynos da un mapa de datos semanal de todo el conjunto geográfico. El operativo a seguir es muysimilar, lo único que se ha de desarrollar con tan solo un ED por día.

De esta forma conseguimos tener una red de datos atmosféricos y meteorológicos en un áreatopográfica representativa de la ciudad de Granada.

8.2 Red ZigBee en red de transporte urbanoEsta aplicación tal vez pueda ser la más útil y la más fácil de llevar a cabo, tanto por hardwarecomo por software. Lo que se va a intentar realizar con esta aplicación es responder a lasiguiente pregunta de la forma mas eficaz y eficiente posibles: ¿Cómo podemos tener una redde datos de toda la ciudad con solo 2 nodos?

A priori parece difícil, teniendo un solo nodo ED, poder obtener datos de toda una ciudad.Pues bien, si lo pensamos un poco más, tan solo hemos de realizar una acción para poder teneracceso a toda la geografía de Granada y es, que el nodo ED se pueda mover. Ahora, claro está,lo difícil es hacer móvil un nodo con tecnología ZigBee. Para poder llevar a cabo la dichamovilidad lo que haremos es aprovecharnos de los recursos de nuestra ciudad, en este caso delos recursos públicos. Instalando un módulo en el techo o la parte lateral alta de un bus de lared de transpone público de la ciudad, podemos tener un nodo móvil, que se desplazará portoda la geografía metropolitana de Granada e irá guardando los datos en la memoria delArduino, para más tarde, al pasar por un punto dado volcar todos los datos al nodocoordinador que se encontrará fijo en una de las paradas de dicha línea de bus.

El sistema propuesto sería el siguiente:

• Nodo Coordinador: Se encontraría cercano a la parada de bus central de la línea de bus

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 85 de 114

Page 90: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

escogida -en el caso de Granada se considera la línea LAC la más idónea por surecorrido y su frecuencia de paso-. Este nodo recibirá periódicamente los datos delnodo ED que se encontrará en el vehículo. Para determinar el momento en el queenviar los datos del ED al nodo coordinador se podrían llevar a cabo varías acciones:

◦ Adherir al primero en sensor de ultrasonido, que detectase el paso del bus a unaaltura dada. De esta forma, se coloca el sensor en lo más alto de la marquesina y auna altura que tan solo llegue este. Cada vez que pase el bus se solicitarán losdatos al nodo ED que los enviará de forma inalámbrica al coordinador.

◦ Solicitar cíclicamente los datos desde el nodo coordinador calculando las horas depaso del bus por la parada central. Esto se hace gracias a la previsión de la línea detransporte publico realizada por la empresa encargada del mismo y elAyuntamiento. Así, teniendo en cuenta el cuadrante horario destacado tras estepárrafo, podemos saber en qué momento solicitar la información, ya que sabemosque el bus estará en la parada.

◦ Solicitar la información cada cierto intervalo de tiempo dado, recibiéndola en elmomento que esté en el momento en el que el bus esté suficientemente cerca delnodo coordinador. Este, obviamente, es el menos eficaz tanto energética comooperativamente, ya que es prácticamente aleatorio.

En nuestro caso elegiremos la segunda posibilidad enumerada para operar. Es la que mejorresultado nos dará en cuanto a rendimiento energético y a correcto funcionamiento. Se haelegido este sistema ya que le primero significaría modificar sensiblemente el softwareutilizado anteriormente y además nos generaría varios falseos debido a los “falsos positivos”detectados con el paso de vehículos diferentes de la misma altura del bus.

Una vez elegido un sistema, hemos de tener en cuenta qué cambios hemos de realizar ennuestro sistema previamente diseñado como proyecto final para hacerlo viable con lodispuesto en este último punto. Así, viendo lo realizado en el punto 7.7, estudiaremos loscambios a realizar para hacer operativo 100% el sistema móvil.

• Hardware: No hemos de tocar nada, puesto que lo único que cambiará será laposibilidad de movimiento del ED en el sistema de motorización de las variables. Loúnico que hemos de considerar es que al ser colocado en un vehículo deberá estar

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 86 de 114

Ilustración 74: Horarios de la línea LAC en Granada

Page 91: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

dentro de una caja de protección que será acoplada al bus, como la que se muestra enla ilustración de a continuación.

• Software: En este apartado tendremos que cambiar dos cosas muy simples, que lainformación de las magnitudes recogidas por el ED se vayan guardando en la memoriadel Arduino y no sea hasta la hora señalada que se envíen el nodo coordinador. A suvez, una vez enviadas será limpiada la memoria para no almacenar más datos de losrequeridos y no tener completa la EEPROM del dispositivo. En cuanto aprogramación, lo que debemos hacer es utilizar la EEPROM del Arduino utilizandolos siguientes comandos:

◦ EEPROM Read

◦ EEPROM Write

◦ EEPROM Clear

Lo único que hemos de hacer es crear dos punteros que vayan “señalando” ladirección de la memoria en la que se guarda el dato, y con este valor nos dirigimos aceldas especificas de la memoria en lugar de a toda ella. Así vamos escribiendo yleyendo de diferentes posiciones de la memoria

Hablando de forma práctica lo que hemos de hacer es suplir en el apartado 10.1.1.7 elSerial.println(); por EEPROM Write(); hasta la hora marcada por la tabla indicada másarriba. En ese momento realizaríamos un Serial.println(); de todo lo que podemos leeren la EEPROM con el EEPROM Read();

Para que quede más claro se pone un ejemplo práctico que se aplicaría a todo elcódigo mostrado en el apartado 10.1.1.7. En este caso se realizará tan solo con unavariable a monitorizar. Lo único que habría para tener todo el código sería aplicarlo alas diferentes magnitudes a medir.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 87 de 114

Ilustración 75: Caja de metacrilato - Protectorde Electrónica

Page 92: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

int direccion = 0; //Iniciamos el puntero de las direcciones

int contador = 0; //Aquí iremos almacenando los datos

void setup() {

Serial.begin(9600); //Comienzo la comunicación serie

dht.begin();//Inicio el DHT

pinMode(mq_7,INPUT);

pinMode(mq_135,INPUT);

xbee.begin(9600); //iniciamos el xbee

}

void loop(){

int t = dht.readTemperature();//Leo valor de Tª

int h = dht.readHumidity();//Leo valor de Humedad

int minutos = hour()*60+minute();//Creo la variable para contar los minutos quetranscurren

String stringdht11=("DHT11");

String stringpuntoycoma=(";");

EEPROM.write(direccion, contador);//Guardamos el valor en la dirección de laEEPROM elegida

EEPROM.write(direccion+1, t);//Guardamos el valor en la dirección de laEEPROM elegida

direccion++; //Incremento uno para guardar el valor de humedad

contador++; //Incremento también para llevar el conteo

EEPROM.write(direccion, contador);//Guardamos el valor en la dirección de laEEPROM elegida

EEPROM.write(direccion+1, h);//Guardamos el valor en la dirección de laEEPROM elegida

if (minutos==12) {

Serial.begin(9600); //Comienzo la comunicación serie

xbee.begin(9600); //iniciamos el xbee

direccion=0;

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 88 de 114

Page 93: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

String stringtemp= stringdht11 + stringpuntoycoma + minutos +stringpuntoycoma + EEPROM.read(direccion) + stringpuntoycoma +EEPROM.read(direccion+1) + stringpuntoycoma; //Ponemos DHT11;eltimepo; el valor de Tª;el valor de humedad

Serial.println(stringtemp);

xbee.print(stringtemp);

direccion++;

if (minutos==13) {

direccion=0;

minutos=0;

EEPROM.clear()

}

De este modo tendríamos los datos almacenados en la EEPROM hasta llegar a laparada (se ha supuesto una frecuencia de paso del bus de unos 12 minutos), en la quese volcarían todos los datos al PC y luego se reiniciarían todos las variables paracomenzar nuevamente el ciclo.

Por último, comentar la posibilidad de utilizar el modo sleep para ahorrar batería delmódulo End Device. Como ya se ha comentado anteriormente, lo único que habría quehacer es poner en alto o en bajo la patilla 9 del módulo ZigBee dependiendo siqueremos que esté el modo Sleep activado o no. Se colocaría en el código, tras lalectura de los datos y anteriormente al inicio de la conexión.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 89 de 114

Page 94: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

9 BibliografíaLos enlaces consultados para la realización de esta memoria son los siguientes:

• [E1] https://www.kanda.com/pic-vs-avr.php

• [E2] http://www.ladyada.net/library/picvsavr.html

• [E3] https://microcontroladores2utec.files.wordpress.com/2009/11/180909_articulo_colaboracion_boletin_fica_omar_otoniel_flores.pdf

• [E4] http://arduino.cl/que-es-arduino/

• [E5] http://www.bbvaopen4u.com/es/actualidad/arduino-y-raspberry-pi-dominan-el-hardware-abierto-pero-cada-vez-hay-mejores-alternativas

• [E6] http://www.sensorsmag.com/networking-communications/batteries/a-practical-guide-battery-technologies-wireless-sensor-netwo-1499

• [E7] https://www.researchgate.net/profile/Alfonso_Lago/publication/234588217_MODELADO_Y_SIMULACIN_DE_UNA_BATERA_DE_ION-LITIO_COMERCIAL_MULTICELDA/links/00b4951c16e463ba61000000.pdf

• [E8] http://www.cargador-solar.com/component/content/article/25-articulos-cargadores-solares/179-que-hay-que-tener-en-cuenta-al-comprar-un-cargador-solar.html

• [E9] http://www.juntadeandalucia.es/medioambiente/site/portalweb/menuitem.7e1cf46ddf59bb227a9ebe205510e1ca/?vgnextoid=7e612e07c3dc4010VgnVCM1000000624e50aRCRD&vgnextchannel=3b43de552afae310VgnVCM2000000624e50aRCRD

• [E10] http://www.euro.who.int/__data/assets/pdf_file/0005/112199/E79097.pdf

• [E11] http://sandboxelectronics.com/?p=147

• [E12] http://www.futurlec.com/Ozone_Gas_Sensor.shtml

• [E13] https://cdn.sparkfun.com/datasheets/Sensors/Biometric/MQ-7%20Ver1.3%20-%20Manual.pdf

• [E14] http://www.tme.eu/es/Document/59db40e43505ad5e78b90b4451ae507c/SHT25.pdf

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 90 de 114

Page 95: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• [E15] https://es.wikipedia.org/wiki/IEEE_802.15.4

• [E16] http://www.zigbee.org/

• [E17] https://es.wikipedia.org/wiki/Espectro_ensanchado_por_secuencia_directa

• [E18] http://webdelcire.com/wordpress/archives/1714

• [E19]http://research.microsoft.com/pubs/192688/IWS%202013%20wireless%20power %20consumption.pdf

• [E20]http://docseurope.electrocomponents.com/webdocs/0b04/0900766b80b04c09.pdf

• [E21] https://es.wikipedia.org/wiki/Conjunto_de_comandos_Hayes

• [E22]http://rduinostar.com/documentacion/programacion-arduino/estructura-de-un-sketch/

• [E23]http://panamahitek.com/libreria-dht11-para-usar-sensor-de-humedad-y-temperatura-con-arduino/

• [E24] http://www.microelectronicos.com/datasheets/mq135.pdf

• [E25] https://mecatronicauaslp.wordpress.com/2013/07/14/tutorial-xbee-parte-4-xbee-arduino-softwareserial/

Las imágenes que pueden verse en este documento han sido obtenidas de los siguientes sitios webs:

• [I1] http://www.innovation-labs.com/vesta/indexe00f.html?option=com_content&view=section&layout=blog&id=7&Itemid=59&limitstart=5

• [I3] http://www.juntadeandalucia.es/medioambiente/atmosfera/informes_siva/ene16/gr160106.htm

• [I4] http://sandboxelectronics.com/?product=mg-811-co2-gas-sensor-module

• [I5] http://www.sainsmart.com/sainsmart-mq131-gas-sensor-ozone-module-for-arduino-uno-mega2560-r3-raspberry-pi.html

• [I6] https://www.sparkfun.com/products/9403

• [I7] http://wiring.org.co/learning/basics/airqualitymq135.html

• [I8] http://www.tme.eu/es/details/sht25/sensores-de-humedad/sensirion/

• [I9] http://cosasdeingenieria.com

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 91 de 114

Page 96: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• [I10] http://cosasdeingenieria.com

• [I12] http://rco.es/?p=285

• [I13] http://forum.arduino.cc/index.php?topic=288294.0

• [I14] https://store.arduino.cc/product/A000088

• [I15] https://blog.arduino.cc/2012/05/29/handy-arduino-uno-r3-pinout-diagram/

• [I16] https://es.wikipedia.org/wiki/Granada

• [I17] https://es.wikipedia.org/wiki/Nuuk

• [I18] http://www.sensorsmag.com/networking-communications/batteries/a-practical-guide-battery-technologies-wireless-sensor-netwo-1499

• [I19] http://www.tuspilas.es/pilas-alcalinas-3lr12-4-5-v-ultra-en-blister-de-1-pc-energizer.html

• [I20] http://www.sensorsmag.com/networking-communications/batteries/a-practical-guide-battery-technologies-wireless-sensor-netwo-1499

• [I21] http://articulo.mercadolibre.com.mx/MLM-530043733-cargador-con-2-baterias-9v-ebl-pilas-cuadradas-ion-litio-mn4-_JM

• [I22] http://www.sensorsmag.com/networking-communications/batteries/a-practical-guide-battery-technologies-wireless-sensor-netwo-1499

• [I23] http://www.powerex.es/pilas-recargables/pila-nimh-96v-230mah/

• [I24] http://www.cargador-solar.com/xtorm-autonomia-en-movimiento/cargador-solar-doble-usb-lava-charger-xtorm-am114.html

• [I25] http://www.wiggle.es/ciclocomputador-con-gps-pulsometro-y-cadencia-garmin-edge-510/

• [I26] http://www.iotbe.org/event/introducing-bluetooth-low-energy-ibeacon-2015-03-12-9/register

• [I27] http://www.centromipc.com/tecnologia-nfc-que-es-y-para-que-sirve

• [I28] http://e-ficiencia.com/zigbee-tecnologia-domotica-ahorro/

• [I29] http://www.scielo.org.co/scielo.php?pid=S0123-921X2015000300012&script=sci_arttext&tlng=es

• [I30] http://www.engineersgarage.com/articles/what-is-zigbee-technology?page=3

• [I31] http://www.zigbee.org/

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 92 de 114

Page 97: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

• [I32] http://attie.co.uk/libxbee/getting_started/modules

• [I33] http://www.mikroe.com/add-on-boards/communication/easybee3/

• [I34] http://es.rs-online.com/web/p/modulos-zigbee/5327518/

• [I35] http://www.telegesis.com/news/telegesis-celebrates-10-years-of-zigbee-module-leadership/

• [I36] http://soloelectronicos.com/tag/modulos-xbee/

• [I37] http://elektronikalsb.blogspot.com.es/2013/11/arduino-005-modulo-xbee-para-este.html

• [I38] http://ingetelecomunicaciones.wikispaces.com/file/view/informe_final.pdf

• [I39] https://www.sparkfun.com/products/8276

• [I40] https://www.sparkfun.com/products/11812

• [I41] https://learn.sparkfun.com/tutorials/xbee-wifi-hookup-guide

• [I42] https://www.safaribooksonline.com/library/view/arduino-cookbook/9781449399368/ch01.html

• [I44] https://www.faludi.com/itp_coursework/meshnetworking/XBee/XBee_firmware_upgrade.html

• [I45] https://sites.google.com/site/ahmedabdien89/Embedded-Systems/xbeeintroductionhappyxbeeing

• [I46] http://wiki.edwindertien.nl/doku.php?id=software:xbee

• [I47] https://www.faludi.com/itp_coursework/meshnetworking/XBee/XBee_firmware_upgrade.html

• [I48] http://www.skyviewelectronics.com/content/usb-usb-b-cable-10ft

• [I49] http://electronica-teoriaypractica.com/como-funciona-un-protoboard/

• [I50] http://www.ladyada.net/wiki/tutorials/learn/arduino/leds.html

• [I51] http://stigern.net/blog/?p=373

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 93 de 114

Page 98: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

10 Anexos

10.1Anexo 1: Códigos de programas

10.1.1Códigos del IDE Arduino

10.1.1.1 Caso Práctico 1. Semáforo Completo.

/*

Semáforo que hace lo siguiente: Verde + amarillo + rojo + parpadeo en amarillo

*/

// Declaramos los 2 pines digitales y el entero que hará de contador en el bucle del loop

int ledv = 13;

int leda = 12;

int ledr = 11;

int i=0;

// Definimos los pines como salida (los de los leds)

void setup() {

// Los iniciamos.

pinMode(ledv, OUTPUT);

pinMode(leda, OUTPUT);

pinMode(ledr, OUTPUT);

}

// Esto se repite infinitamente

void loop() {

digitalWrite(ledv, HIGH); // Enciendo verde

delay(5000); // Espero 5s

digitalWrite(ledv, LOW); // Apago verde

delay(100); // Espero 0.1s

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 94 de 114

Page 99: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

digitalWrite(leda, HIGH);

delay(1000);

digitalWrite(leda,LOW);

delay(100);

digitalWrite(ledr,HIGH);

delay(2500);

digitalWrite(ledr,LOW);

delay(100);

for (i=0;i<10;i++){ //Consigamos el parpadeo

if(i%2==0){ //En las ocasiones pares lo enciende y se espera 0.5 segundos

digitalWrite(leda,HIGH);

delay(500);

}

else{ //en el resto lo apaga y se espera 0.5 segundos.

digitalWrite(leda,LOW);

delay(500);

}

};

}

10.1.1.2 Caso práctico 2. Estación Meteorológica Simple

/*

Estación meteorológica Simple

*/

#include <Time.h>

#include <DHT.h>

DHT dht(2, DHT11); //Elijo el pin y le digo que es un DHT11 (hay mas tipos en la librería)

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 95 de 114

Page 100: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

void setup() {

Serial.begin(9600); //Comienzo la comunicación serie

dht.begin();//Inicio el DHT

delay(500);//Esperamos medio segundo

}

void loop(){

int t = dht.readTemperature();//Leo valor de Tª

int h = dht.readHumidity();//Leo valor de Humedad

int minutos = hour()*60+minute();//Creo la variable para contar los minutos que transcurren

String stringdht11=("DHT11");

String stringpuntoycoma=(";");

String stringtemp= stringdht11 + stringpuntoycoma + minutos + stringpuntoycoma + t +stringpuntoycoma + h + stringpuntoycoma + "\n"; //Ponemos DHT11;el timepo; el valor deTª;el valor de humedad

Serial.println(stringtemp);//Escribo la sentencia en el puerto serie

delay(60000);//Me espero un minuto

}

10.1.1.3 Caso práctico 3. Medidor de Calidad del Aire

/*

Detector MQ135

*/

#include <MQ135.h>

#include <Time.h>

int mq_135 = 2;

float g;

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 96 de 114

Page 101: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

void setup() {

Serial.begin(9600); //Comienzo la comunicación serie

pinMode(mq_135,INPUT);

delay(500);//Esperamos medio segundo

}

void loop(){

String stringmq135=("MQ135");

String stringpuntoycoma=(";");

int minutos = hour()*60+minute();//Creo la variable para contar los minutos que transcurren

int g = analogRead(mq_135);

float gvolt= g * 0.0049; //En este paso lo que hacemos es pasar la salida digital que lee elArduino a voltios

int gppm=gvolt*198; //En esta línea lo que hacemos es pasar el rango de 5V al rango de ppmque nos dicen en el datasheet (10 - 10000 ppm)

String stringgppm= stringmq135 + stringpuntoycoma + minutos + stringpuntoycoma +gppm + stringpuntoycoma;

Serial.println(stringgppm);

delay(30000);

}

10.1.1.4 Caso práctico 4. Medidor de CO en aire

/*

Detector MQ7

*/

#include <Time.h>

int mq_7 = 2; //Definimos el pin en el que vamos a conectar el sensor

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 97 de 114

Page 102: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

float g; //Definimos la variable de lectura del sensor

void setup() {

Serial.begin(9600); //Comienzo la comunicación serie

pinMode(mq_7,INPUT);

delay(500);//Esperamos medio segundo

}

void loop(){

String stringmq135=("MQ7");

String stringpuntoycoma=(";");

int minutos = hour()*60+minute();//Creo la variable para contar los minutos que transcurren

int g = analogRead(mq_7);

float gvolt= g * 0.0049; //En este paso lo que hacemos es pasar la salida digital que lee elArduino a voltios

int gppm=(gvolt*396)+20; //En esta línea lo que hacemos es pasar el rango de 5V al rangode ppm que nos dicen en el datasheet (20 - 2000 ppm)

String stringgppm= stringmq135 + stringpuntoycoma + minutos + stringpuntoycoma +gppm + stringpuntoycoma; //Se escribe en el puerto serie lo deseado. La unión de todas lasStrings creadas

Serial.println(stringgppm);

delay(30000);

}

10.1.1.5 Caso Práctico 5. Estación meteorológica y Atmosférica

/*

Programa de estación meteorológica y atmosférica

*/

//Incluimos todas las librerías que nos vayan a hacer falta

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 98 de 114

Page 103: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

#include <MQ135.h>

#include <Time.h>

#include <DHT.h>

//Definimos los pines donde eran conectados nuestros sensores

int mq_135 = 4;

int mq_7 = 3;

DHT dht(2, DHT11); //Elijo el pin y le digo que es un DHT11 (hay mas tipos en la librería)

//Defino las variables de los diferentes sensores

float gmq135;

float gmq7;

void setup() {

Serial.begin(9600); //Comienzo la comunicación serie

dht.begin();//Inicio el DHT

pinMode(mq_7,INPUT);

pinMode(mq_135,INPUT);

delay(500);//Esperamos medio segundo

}

void loop(){

int t = dht.readTemperature();//Leo valor de Tª

int h = dht.readHumidity();//Leo valor de Humedad

int minutos = hour()*60+minute();//Creo la variable para contar los minutos que transcurren

String stringdht11=("DHT11");

String stringpuntoycoma=(";");

String stringtemp= stringdht11 + stringpuntoycoma + minutos + stringpuntoycoma + t +stringpuntoycoma + h + stringpuntoycoma; //Ponemos DHT11;el timepo; el valor de Tª;el

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 99 de 114

Page 104: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

valor de humedad

Serial.println(stringtemp);//Escribo la sentencia en el puerto serie

String stringmq7=("MQ7");

int gmq7 = analogRead(mq_7);

float gvoltmq7= gmq7 * 0.0049; //En este paso lo que hacemos es pasar la salida digital quelee el Arduino a voltios

int gppmmq7=(gvoltmq7*396)+20; //En esta línea lo que hacemos es pasar el rango de 5V alrango de ppm que nos dicen en el datasheet (20 - 2000 ppm)

String stringgppmmq7= stringmq7 + stringpuntoycoma + minutos + stringpuntoycoma +gppmmq7 + stringpuntoycoma; //Se escribe en el puerto serie lo deseado. La unión de todaslas Strings creadas

Serial.println(stringgppmmq7);

String stringmq135=("MQ135");

int gmq135 = analogRead(mq_135);

float gvoltmq135= gmq135 * 0.0049; //En este paso lo que hacemos es pasar la salida digitalque lee el Arduino a voltios

int gppmmq135=gvoltmq135*198; //En esta línea lo que hacemos es pasar el rango de 5V alrango de ppm que nos dicen en el datasheet (10 - 10000 ppm)

String stringgppm= stringmq135 + stringpuntoycoma + minutos + stringpuntoycoma +gppmmq135 + stringpuntoycoma;

Serial.println(stringgppm);

delay(60000);

}

10.1.1.6 Caso práctico 6. Conexión Zigbee Simple

#include <SoftwareSerial.h>

SoftwareSerial xbee(0, 1); //RX y TX. Definimos dónde esta pinchado nuestro módulo Xbee

void setup(){

Serial.begin(9600); //iniciamos el serial

Serial.println("XBEE"); //escribimos

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 100 de 114

Page 105: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

xbee.begin(9600); //iniciamos el xbee

}

void loop(){

Serial.println("Holaaa"); //escribimos en serial

xbee.print("Hola Xbee"); //escribimos en xbee

}

10.1.1.7 Caso práctico 7. Estación meteorológica y atmosférica con conexión inalámbrica Zigbee

/*

Programa de estación meteorológica y atmosférica con Zigbee

*/

//Incluimos todas las librerías que nos vayan a hacer falta

#include <MQ135.h>

#include <Time.h>

#include <DHT.h>

#include <SoftwareSerial.h>

SoftwareSerial xbee(0, 1); //RX y TX. Definimos dónde esta pinchado nuestro módulo Xbee

//Definimos los pines donde eran conectados nuestros sensores

int mq_135 = 4;

int mq_7 = 3;

DHT dht(2, DHT11); //Elijo el pin y le digo que es un DHT11 (hay mas tipos en la librería)

//Defino las variables de los diferentes sensores

float gmq135;

float gmq7;

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 101 de 114

Page 106: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

void setup() {

Serial.begin(9600); //Comienzo la comunicación serie

dht.begin();//Inicio el DHT

pinMode(mq_7,INPUT);

pinMode(mq_135,INPUT);

delay(500);//Esperamos medio segundo

xbee.begin(9600); //iniciamos el xbee

}

void loop(){

int t = dht.readTemperature();//Leo valor de Tª

int h = dht.readHumidity();//Leo valor de Humedad

int minutos = hour()*60+minute();//Creo la variable para contar los minutos que transcurren

String stringdht11=("DHT11");

String stringpuntoycoma=(";");

String stringtemp= stringdht11 + stringpuntoycoma + minutos + stringpuntoycoma + t +stringpuntoycoma + h + stringpuntoycoma; //Ponemos DHT11;el timepo; el valor de Tª;elvalor de humedad

Serial.println(stringtemp);//Escribo la sentencia en el puerto serie

xbee.print(stringtemp); //escribimos en xbee

String stringmq7=("MQ7");

int gmq7 = analogRead(mq_7);

float gvoltmq7= gmq7 * 0.0049; //En este paso lo que hacemos es pasar la salida digital quelee el Arduino a voltios

int gppmmq7=(gvoltmq7*396)+20; //En esta línea lo que hacemos es pasar el rango de 5V alrango de ppm que nos dicen en el datasheet (20 - 2000 ppm)

String stringgppmmq7= stringmq7 + stringpuntoycoma + minutos + stringpuntoycoma +gppmmq7 + stringpuntoycoma; //Se escribe en el puerto serie lo deseado. La unión de todaslas Strings creadas

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 102 de 114

Page 107: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Serial.println(stringgppmmq7);

xbee.print(stringgppmmq7); //escribimos en xbee

String stringmq135=("MQ135");

int gmq135 = analogRead(mq_135);

float gvoltmq135= gmq135 * 0.0049; //En este paso lo que hacemos es pasar la salida digitalque lee el Arduino a voltios

int gppmmq135=gvoltmq135*198; //En esta línea lo que hacemos es pasar el rango de 5V alrango de ppm que nos dicen en el datasheet (10 - 10000 ppm)

String stringgppm= stringmq135 + stringpuntoycoma + minutos + stringpuntoycoma +gppmmq135 + stringpuntoycoma;

Serial.println(stringgppm);

xbee.print(stringgppm); //escribimos en xbee

delay(60000);

}

10.1.2Código del Software Processing

10.1.2.1 Caso Práctico 2. Estación meteorológica Simple

// Se importa la librería Serial de processing

import processing.serial.*;

Serial myPort;

// Carácter ASCII fin de línea 10 = salto de carro

int lf = 10;

// String de buffer para leer línea serial

String myString = null;

// Vector de strings donde se almacenarán los datos para guardar en un archivo *.txt

String[] Archivo = new String[6000];

// Indice de adquisición

int vuelta = 0;

void setup() {

// Se imprime la lista de puertos disponibles y se inicia uno a 9600 baudios, en este caso elCOM3

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 103 de 114

Page 108: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

println(Serial.list());

myPort = new Serial(this, "COM3", 9600);

// Se lee la primera línea que llega al puerto serial hasta que haya un salto de carro

myString = myPort.readStringUntil(lf);

myString = null;

}

void draw() {

while (myPort.available() > 0) {

// Se leen una a una las líneas que llega al puerto serial

myString = myPort.readStringUntil(lf);

if (myString != null) {

println(myString);

println(vuelta);

println("*******************");

// Convierte los datos del Serial en enteros

int[] data=int(split(myString, ";"));

// Almacena los datos en un vector de strings

Archivo [vuelta] = myString;

// Se guarda en el archivo de texto la línea leída

saveStrings("EsMet.txt", Archivo);

// Se aumenta el índice de adquisición

vuelta++;

}

} //end else del proceso.

}

10.1.3Código del programa MATLAB

10.1.3.1 Caso práctico 2. Estación Meteorológica Simplefunction datosSerial()

close all;

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 104 de 114

Page 109: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

clc;

%% Abre un explorador para seleccionar el archivo fuente

[NombreArchivo,DirArchivo] = uigetfile('*.txt','Seleccione un archivo de texto');

if(isequal(NombreArchivo,0))

return;

else

Archivo = fullfile(DirArchivo,NombreArchivo);

end

%% Abre el archivo

Dat = fopen(Archivo,'r');

%% Variable que lleva el índice de muestras

i=1;

%% Lee el archivo mientras haya datos

while ~feof(Dat)

leer_linea = fgetl(Dat);

%% Separa las variables de tiempo, T y HR

lect_v= strsplit(leer_linea, ';');

%% Distingue si pertenece a DHT11

if strcmp('DHT11',lect_v(1))

%% Coge las 2 variables y las almacena en un vector que se dibuja

time1(i)=str2double(lect_v(2));

T1(i)=str2double(lect_v(3));

H1(i)=str2double(lect_v(4));

subplot(2,1,1)

plot (time1, T1, '.b')

title('Estación Meteorologica Simple')

ylabel('Temperatura (grados)');

xlabel('Tiempo (minutos)');

subplot(2,1,2)

plot (time1, H1, '.g')

title('Estación Meteorologica Simple')

ylabel('Humedad (%)');

xlabel('Tiempo (minutos)');

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 105 de 114

Page 110: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

end

%% Aumenta el índice de muestra

i=i+1;

end

%% Cierra el fichero fuente

fclose(Dat);

clear all;

end

10.1.4Código en Lenguaje Python

10.1.4.1 Caso práctico 2. Estación meteorológica Simple

##Importamos las librerías matplotlib.pyplot y serial)

import matplotlib.pyplot as plt

import serial

##Nos conectamos con el arduino y definimos un tiempo máximo de espera para la conexión

arduino = serial.Serial('COM3', 9600, timeout=59)

#Definimos las listas de temperatura y humedad a las que iremos añadiendo datos

temperaturas=[]

humedades=[]

while True:

##Leemos del puerto serie

line = arduino.readline()

linea = line.decode("utf-8")

#Escribimos en un archivo que nos servirá de DB

with open ("EstMetSimplDB.txt","a") as arch:

arch.write(linea)

##Separamos las líneas en items y vemos de qué sensor se trata

keyword = linea.split(";")

if str(keyword[0])=="DHT11":

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 106 de 114

Page 111: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

temp=str(keyword[2])

humd=str(keyword[3])

temperaturas.append(temp)

humedades.append(humd)

##Graficamos los resultados

plt.plot(temperaturas)

plt.plot(humedades)

plt.title("Estación meteorológica simple")

plt.xlabel("Tiempo (en minutos)")

plt.ylabel("Temperatura (ºC) y Humedad (%)")

plt.savefig("GraficaEstMetSimpl.png")

10.1.4.2 Caso Práctico 3. Medidor de Calidad del Aire

# -*- coding: utf-8 -*-

"""

Created on Sat May 28 11:21:41 2016

@author: Julián

"""

#Importamos las 2 librerías que vamos a usar en el programa

import matplotlib.pyplot as plt

import serial

#Señalamos el puerto donde se conectará nuestro Arduino

arduino = serial.Serial('COM9', 9600, timeout=59)

#Defino la lista donde iremos añadiendo los valores

qa_ppm=[]

while True:

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 107 de 114

Page 112: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

##Leemos del puerto serie

line = arduino.readline()

linea = line.decode("utf-8")

#Escribimos en un archivo que nos servirá de DB

with open ("MQ135DB.txt","a") as arch:

arch.write(linea)

##Separamos las líneas en items y vemos de qué sensor se trata

keyword = linea.split(";")

if str(keyword[0])=="MQ135":

qa=str(keyword[2])

qa_ppm.append(qa)

##Graficamos los resultados

plt.plot(qa_ppm)

plt.title("Medidor de Calidad del Aire")

plt.xlabel("Tiempo (en minutos)")

plt.ylabel("Partículas nocivas en ppm")

plt.savefig("AirQualityMQ135.png")

10.1.4.3 Caso Práctico 4: Medidor de CO en aire

# -*- coding: utf-8 -*-

"""

Created on Sat May 28 11:21:41 2016

@author: Julián

"""

#Importamos las 2 librerías que vamos a usar en el programa

import matplotlib.pyplot as plt

import serial

#Señalamos el puerto donde se conectará nuestro Arduino

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 108 de 114

Page 113: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

arduino = serial.Serial('COM9', 9600, timeout=59)

#Defino la lista donde iremos añadiendo los valores del sensor

CO_ppm=[]

while True:

##Leemos del puerto serie

line = arduino.readline()

linea = line.decode("utf-8")

#Escribimos (y creamos) en un archivo que nos servirá de DB

with open ("MQ7DB.txt","a") as arch:

arch.write(linea)

##Separamos las líneas en items y vemos de qué sensor se trata

keyword = linea.split(";")

if str(keyword[0])=="MQ7":

CO=str(keyword[2])

CO_ppm.append(CO)

##Graficamos los resultados para una mayor facilidad de visión del usuario.

plt.plot(CO_ppm)

plt.title("Medidor de CO")

plt.xlabel("Tiempo (en minutos)")

plt.ylabel("Partículas nocivas de CO (en ppm)")

plt.savefig("COQuantity.png")

10.1.4.4 Caso Práctico 5. Estación Meteorológica y Atmosférica

# -*- coding: utf-8 -*-

"""

Created on Tue May 31 11:44:52 2016

@author: Julián

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 109 de 114

Page 114: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

"""

# -*- coding: utf-8 -*-

"""

Created on Sat May 28 11:21:41 2016

@author: Julián

"""

#Importamos las 2 librerías que vamos a usar en el programa

import matplotlib.pyplot as plt

import serial

#Señalamos el puerto donde se conectará nuestro Arduino

arduino = serial.Serial('COM9', 9600, timeout=59)

#Defino las listas donde iremos añadiendo los valores del sensor

CO_ppm=[]

qa_ppm=[]

temperaturas=[]

humedades=[]

while True:

##Leemos del puerto serie

line = arduino.readline()

linea = line.decode("utf-8")

#Escribimos (y creamos) en un archivo que nos servirá de DB

with open ("DBEstMetyAtm.txt","a") as arch:

arch.write(linea)

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 110 de 114

Page 115: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

##Separamos las líneas en items y vemos de qué sensor se trata

keyword = linea.split(";")

if str(keyword[0])=="DHT11":

temp=str(keyword[2])

humd=str(keyword[3])

temperaturas.append(temp)

humedades.append(humd)

##Graficamos los resultados

plt.figure()

plt.plot(temperaturas)

plt.title("Estación meteorológica y Atmosférica")

plt.xlabel("Tiempo (en minutos)")

plt.ylabel("Temperatura (ºC)")

plt.savefig("Temperatura(EMyA).png")

plt.figure()

plt.plot(humedades)

plt.title("Estación meteorológica y Atmosférica")

plt.xlabel("Tiempo (en minutos)")

plt.ylabel("Humedad (en %)")

plt.savefig("Humedad(EMyA).png")

elif str(keyword[0])=="MQ7":

CO=str(keyword[2])

CO_ppm.append(CO)

##Graficamos los resultados para una mayor facilidad de visión del usuario.

plt.figure()

plt.plot(CO_ppm)

plt.title("Medidor de CO")

plt.xlabel("Tiempo (en minutos)")

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 111 de 114

Page 116: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

plt.ylabel("Partículas nocivas de CO (en ppm)")

plt.savefig("COQuantity(EMyA).png")

elif str(keyword[0])=="MQ135":

qa=str(keyword[2])

qa_ppm.append(qa)

##Graficamos los resultados

plt.figure()

plt.plot(qa_ppm)

plt.title("Medidor de Calidad del Aire")

plt.xlabel("Tiempo (en minutos)")

plt.ylabel("Partículas nocivas en ppm")

plt.savefig("AirQualityMQ135(EMyA).png")

##Aquí creamos la gráfica que recoge todos los datos. Así de una ojeada podemos ver todoslos datos de todos los sensores

plt.figure()

plt.plot(qa_ppm)

plt.title("Estación Meteorológica y Atmosférica")

plt.plot(temperaturas, marker='x', linestyle=':', color='b', label = "Temperatura (en ºC)")

plt.plot(humedades, marker='*', linestyle='-', color='g', label = "Humedad (en %)")

plt.plot(CO_ppm, marker='o', linestyle='--', color='r', label = "CO (en ppm)")

plt.plot(qa_ppm, marker='+', linestyle='-.', color='k', label = "Partículas nocivas(en ppm)")

plt.savefig("EstacionMetyAtm(Allvalues).png")

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 112 de 114

Page 117: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

10.2 Anexo 2. Presupuesto general del proyecto finalEn la siguiente tabla se adjunta el presupuesto final de todos los componentes adquiridos parala ejecución del proyecto.

10.3 Anexo 3. Calendario de trabajo – Diagrama de GantEn este anexo se expone una tabla que muestra todo el trabajo realizado para llegar a laconsecución de los objetivos para el TFG detallada en tiempo y dedicación.

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 113 de 114

Ilustración 76: Presupuesto general del Proyecto

Descripción Web Precio total

769-7409 RS 2 22,56 € 45,12 €

727-6226 RS 1 12,25 € 12,25 €

436-480 RS 2 25,78 € 51,56 €

1 4,49 € 2,12 €

1 21,99 € 3,95 €

Amazon 1 8,55 € 8,55 €

Batería Amazon 1 8,99 € 8,99 €TOTAL 132,54 €

Código / Referencia

del producto

Nº de unidades

necesarias

Precio por unidad

Placa Arduino Uno SMD

Rev3Sensor de

temperatura y humedad SHT25

XBee OEM ZigBee RF Module Digi International,

1200bit/s (802.15.4)

MQ-7 modulo CO sensor

gas monoxido de carbono

detector Arduino

Ebay

MQ-131 gas sensor Ozone módulos for

Arduino

Ebay

Xbee Explorer Xbee Usb Adaptador Con Cable Usb Gratis

Page 118: Red zigbee para la monitorización de variables atmosféricas y meteorológicas

Red ZigBee para la monitorización de variables atmosféricas y meteorológicas 114 de 114

Ilustración 77: Calendario de trabajo - Diagrama de Gant

Día Horas memoria Palabras escritas Palabras del documento Horas laboratorio Horas de programación Horas de presupuesto Horas búsqueda información01/01/16 28 5271 5271 1 0 0 41,512/01/16 2 1660 6931 0 0 0 0,7514/01/16 2,5 1168 8099 0 0 0 0,2521/01/16 1,5 511 8610 0 0 0 0,2527/01/15 2 1166 9776 0 0 0 0,528/01/16 1,25 608 10384 0 0 1 0,316/02/16 1,25 1629 12013 0 0 0 0,517/02/16 0,8 300 12313 0 0 0 0,418/02/16 1,75 1294 13607 0 0 0 0,623/02/16 0,75 358 13965 0 0 0 0,124/02/16 1,75 1131 15096 0 0 0 0,401/03/16 1,7 1109 16205 0 0 0 0,309/03/16 1,6 1168 17373 0,75 1 0 0,812/03/16 0,5 10 17383 1 0,25 0 0,514/03/16 0,8 83 17466 1,5 0,25 0 0,7518/03/16 0 0 17466 1 0,5 0 0,2521/03/16 0 0 17466 1,25 0,75 0 0,524/03/16 0 0 17466 1,5 0,25 0 0,7526/03/16 0 0 17466 1,75 0,25 0 128/03/16 0 0 17466 0 2 0 0,530/03/16 0 0 17466 0 2,5 0 102/04/16 0 0 17466 0 2 0 0,2506/04/16 1,75 923 18389 0,15 3 0 0,7518/04/16 0,75 419 18808 0,5 6 0 1,522/04/16 0 0 18808 1,25 3 0 1,7528/05/16 1,5 875 19683 1,75 1,75 0 431/05/16 2 1692 21375 2,5 2,75 0 1,8502/06/16 0 0 21375 2 1,5 0 408/06/16 0 0 21375 2 1,5 0 210/06/16 0 0 21375 2,5 1,75 0 1,524/06/16 0 0 21375 2,5 2,5 0 426/06/16 0 0 21375 2,75 3 0 328/05/16 2 1041 22416 3 0,75 0 301/06/16 0 0 22416 2 0,75 0 108/06/16 0 0 22416 0 0,85 0 315/06/16 0 0 22416 0 2 0 216/06/16 0 0 22416 0 0 0 522/06/16 0 0 22416 0 0,9 0 2,7525/06/16 0 0 22416 0 1 0 308/07/16 1 169 22585 0 0,5 0 215/07/16 2 280 22865 0 0,75 0 317/07/16 0 0 22865 0 0,5 0 2,520/07/16 0,5 187 23052 0 0,4 0 225/07/16 0,25 100 23152 0 0 0 106/08/16 0 0 23152 0 0 0 1,515/08/16 0 0 23152 1 0,75 0 118/08/16 0 0 23152 1,5 0,5 0 228/08/16 2 506 23658 1 0,75 0 0,7502/09/16 1,5 467 24125 1 0,85 0 1,8505/09/16 1 327 24452 1,5 0,5 0 207/09/16 0 0 24452 0,5 1,5 0 0,508/09/16 1 268 24720 0 2,5 0 109/09/16 1 130 24850 0 1,85 0 4TOTAL 66,4 17373 39,15 54,1 1 121,35

Total horas 282