PFC Victor Pablo Gozalo

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 90

GRADO EN INGENIERÍA DE

TECNOLOGÍAS Y SERVICIOS DE
TELECOMUNICACIÓN
TRABAJO FIN DE GRADO

DISEÑO E IMPLEMENTACIÓN DE UN
SISTEMA PORTÁTIL DE MEDIDA DE
EMISIONES DE CO2

VÍCTOR DE PABLO GOZALO


2020
GRADO EN INGENIERÍA DE TECNOLOGÍAS Y SERVICIOS
DE TELECOMUNICACIÓN

TRABAJO FIN DE GRADO


Título: DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA PORTÁTIL DE
MEDIDA DE EMISIONES DE CO2
Autor: D. VÍCTOR DE PABLO GOZALO
Tutor: D. JOSÉ JESÚS FRAILE ARDANUY
Ponente: D. ………………
Departamento: ELECTRÓNICA FÍSICA, INGENIERÍA ELÉCTRICA Y FÍSICA
APLICADA

MIEMBROS DEL TRIBUNAL


Presidente: D. ……………

Vocal: D. …………..

Secretario: D. …………..

Suplente: D. ……………..

Los miembros del tribunal arriba nombrados acuerdan otorgar la calificación de:
………

Madrid, a de de 20…
UNIVERSIDAD POLITÉCNICA DE MADRID
ESCUELA TÉCNICA SUPERIOR
DE INGENIEROS DE TELECOMUNICACIÓN

GRADO EN INGENIERÍA DE
TECNOLOGÍAS Y SERVICIOS DE
TELECOMUNICACIÓN
TRABAJO FIN DE GRADO

DISEÑO E IMPLEMENTACIÓN DE UN
SISTEMA PORTÁTIL DE MEDIDA DE
EMISIONES DE CO2

VÍCTOR DE PABLO GOZALO


2020
Agradecido a mis padres, gracias a quien soy quien soy,
por creer en mi durante todo este tiempo y conseguir que esto sea posible.
A mi familia y amigos por apoyarme en los momentos más complicados.
A mi tutor, Jesús, por ayudarme en todo lo posible para que esto salga adelante.
Simplemente, gracias.
RESUMEN
El calentamiento global es un hecho y un reto para la sociedad durante este siglo. Además, la
población mundial cada vez es más numerosa y urbanita por lo que el control de las emisiones (una de
las principales causas de dicho calentamiento) es fundamental, sobre todo en entornos urbanos. La
contaminación del aire aumenta el riesgo de infecciones respiratorias, enfermedades cardíacas,
accidentes cerebrovasculares y cáncer de pulmón. Monitorizar la calidad del aire proporciona medidas
de las concentraciones de gases y contaminantes, y permite tomar decisiones para su mejora,
reduciendo la cantidad de emisiones que se desprenden hacía la atmósfera y mejorando la salud de los
habitantes.
En este proyecto se va a diseñar un dispositivo portátil de medida de CO2 basado en Arduino montado
sobre distintos tipos de vehículos urbanos que registra su posición y las medidas de los sensores de
gas y de contaminación acústica, a medida que se desplaza por la ciudad. También, se va a diseñar un
sistema estático de cuantificación de la calidad del aire en el interior de edificios e industrias. El
elemento empleado para cuantificar la calidad del aire es un sensor MQ-135 sensible en similar
proporción a la detección de los gases NH3, NOx, alcohol, benceno, humo y CO2 y, que en este
proyecto, se ha estimado su curva de sensibilidad para obtener la ecuación del gas CO 2 aproximada
por ajuste de mínimos cuadrados. El elemento encargado de proporcionar los datos GPS es un módulo
SIM808 que contiene las funcionalidades extras de conectividad a las redes GSM y GPRS. Otros
componentes que se han implementado al sistema son una tarjeta de memoria microSD para
almacenar los datos, un sensor de intensidad sonora KY038, un sensor de temperatura y humedad
DHT11, un display LCD y un módulo Wifi ESP8266-01S, todos conectados a un microcontrolador de
una placa Arduino Nano, elegido por su bajo coste económico y reducidas dimensiones.
Como resultados, el primer diseño desarrollado proporciona las cualidades de transmisión de datos y
control remoto a través de las redes GSM por medio de comandos de envío SMS, y el segundo ofrece
distintas alternativas de visualización de los datos a través de un display LCD, monitor serie o
aplicando las tecnologías Wifi para el despliegue de un servidor Web. Con el desarrollo de estos
dispositivos se logra realizar una mejor interpretación de la calidad del aire urbana y, en función de
los datos registrados, proponer acciones de control de tráfico urbano más selectivos que las acciones
actuales, pudiendo cerrar únicamente aquellas áreas donde el nivel de contaminación ambiental sea
más alto y afectando menos a la movilidad de la ciudad. El prototipo puede ampliarse, añadiéndose
nuevos sensores capaces de medir diferentes gases y permitiendo el montaje del sistema portátil en
drones para hacer medidas a distintas alturas.

PALABRAS CLAVE
CO2, GPS, Arduino, sensor MQ-135, concentración, cuantificación, calidad del aire, contaminación,
monitorización, tráfico.
SUMMARY
Global warming is a fact and a challenge for society during this century. In addition, world population
is increasingly numerous and urbanite, so the control of emissions (one of the main causes of global
warming) is fundamental, especially in urban settings. Air pollution increases the risk of respiratory
infections, heart diseases, strokes, and lung cancer. To address this problem, it becomes necessary to
monitor air quality, (that is to measure gases and pollutants concentrations in the atmosphere). This
monitory can help to take the necessary measures, in order to reduce emissions and to preserve the
health of the inhabitants.
In this project, a portable CO2 measuring device based on Arduino has been designed. It is intended to
be placed on different types of urban vehicles. While the vehicle is moving, it records the
measurements of their gas and noise pollution sensors, as well as, the place where these measurements
have been taken. Also, a static air quality quantification system has been designed for indoors of
buildings and industries. The element used to quantify air quality is an MQ-135 sensor, which detects
NH3, NOx, alcohol, benzene, smoke, and CO2 gases with similar sensitivity. The sensitivity curve of
the sensor has been estimated to obtain the approximate CO2 gas equation by minimum squares
adjustment. The element in charge of providing the GPS data is a SIM808 module that contains the
extra functionalities of connectivity with the GSM and GPRS networks. Other components that have
been implemented in the system are a microSD memory card to store the data, a KY038 sound
intensity sensor, a DHT11 temperature and humidity sensor, an LCD display and an ESP8266-01S
Wifi module. All of them are connected to a microcontroller of an Arduino Nano board, that has been
selected for their low economic cost and small dimensions.
As a result, the first developed design provides the qualities of data transmission and remote control
through the GSM networks by means of SMS sending commands, and the second offers different
alternatives for data visualization through an LCD, serial monitor or applying Wifi technologies for
the deployment of a Web server. With the development of these devices, a better interpretation of
urban air quality is achieved and, according to the recorded data, to propose urban traffic control
actions more selective than current actions, being able to close only those areas where the level of
environmental pollution is higher and less affecting the mobility of the city. The prototype can be
expanded by adding new sensors to measure other gases or by placing the portable system on drones
to take measurements at different heights.

KEYWORDS
CO2, GPS, Arduino, MQ-135 sensor, concentration, quantification, air quality, pollution, monitoring,
traffic.
ÍNDICE DEL CONTENIDO

1. INTRODUCCIÓN Y OBJETIVOS ............................................................................................................. 1


1.1. INTRODUCCIÓN ......................................................................................................................................1
1.2. OBJETIVOS ..............................................................................................................................................2
1.3. REQUISITOS ............................................................................................................................................3
1.4. ESTRUCTURA...........................................................................................................................................3
2. ESTADO DEL ARTE .............................................................................................................................. 4
3. DESARROLLO ................................................................................................................................... 11
3.1. ARDUINO ..............................................................................................................................................11
3.1.1. ¿QUÉ ES ARDUINO? .....................................................................................................................11
3.1.1.1. ¿QUÉ ES WIRING? .................................................................................................................................... 11
3.1.1.2. ¿QUÉ ES EL PROCESSING?........................................................................................................................ 11
3.1.1.3. ¿QUÉ ES UN MICROCONTROLADOR? ...................................................................................................... 12
3.1.2. DESCARGA E INSTALACIÓN DEL IDE DE ARDUINO .......................................................................12
3.1.3. IDE DE ARDUINO ..........................................................................................................................12
3.1.4. LIBRERÍAS .....................................................................................................................................13
3.1.5. TIPOS DE PLACA ARDUINO...........................................................................................................14
3.1.5.1. ARDUINO UNO ......................................................................................................................................... 14
3.1.5.2. ARDUINO NANO....................................................................................................................................... 15
3.1.5.2.1. INSTALACIÓN DE DRIVERS ARDUINO NANO...................................................................................... 15
3.1.5.2.2. QUEMAR BOOTLOADER PLACA ARDUINO NANO .............................................................................. 16
3.1.5.3. ARDUINO MEGA 2560 ............................................................................................................................. 17
3.2. SENSORES USADOS PARA LA MEDIDA DE GASES DE EFECTO INVERNADERO .......................................18
3.2.1. TECNOLOGÍAS EN LA DETECCIÓN DE GASES................................................................................18
3.2.2. SENSORES DE GAS DE LA FAMILIA MQ ........................................................................................18
3.2.3. SENSOR MQ-135 ..........................................................................................................................21
3.3. COMPONENTES ADICIONALES PRESENTES EN EL SISTEMA ..................................................................22
3.3.1. SIM808: GSM/GPRS + GPS ...........................................................................................................22
3.3.2. SENSOR DHT11.............................................................................................................................25
3.3.3. LCD1602A .....................................................................................................................................26
3.3.4. LECTOR DE MEMORIA MICRO SD ................................................................................................27
3.3.5. SENSOR KY038 .............................................................................................................................28
3.3.6. MÓDULO ESP8266-01S ................................................................................................................28
3.4. ESQUEMAS DEL SISTEMA IMPLEMENTADO..........................................................................................30
3.4.1. ESQUEMA DE UN SISTEMA PORTÁTIL DE MEDIDA DE EMISIONES DE CO2 ................................30
3.4.2. ESQUEMA DE UN SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE LA CALIDAD DEL AIRE EN
EDIFICIOS E INDUSTRIAS ..............................................................................................................31
3.5. DESARROLLO SOFTWARE DE LOS SISTEMAS MONTADOS ....................................................................31
3.5.1. SISTEMA PORTÁTIL DE MEDIDAS DE CONCENTRACIONES DE CO2 .............................................31
3.5.2. SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE LA CALIDAD DEL AIRE EN EDIFICIOS E
INDUSTRIAS..................................................................................................................................37
4. RESULTADOS ................................................................................................................................... 41
4.1. CALIBRACIÓN DEL SENSOR MQ-135 .....................................................................................................41
4.1.1. ESTIMACIÓN CURVA CO2 POR MÍNIMOS CUADRADOS ..............................................................41
4.1.2. CALCULO RO..................................................................................................................................43
4.2. MEDIDAS DE PRUEBA Y RESULTADOS ALCANZADOS ............................................................................44
5. CONCLUSIONES Y LÍNEAS FUTURAS................................................................................................... 48
5.1. CONCLUSIONES.....................................................................................................................................48
5.2. LÍNEAS FUTURAS ...................................................................................................................................48
6. BIBLIOGRAFÍA .................................................................................................................................. 49
ANEXO A: ASPECTOS ÉTICOS, ECONÓMICOS, SOCIALES Y AMBIENTALES .................................................... 55
A.1 INTRODUCCIÓN ...........................................................................................................................................55
A.2 DESCRIPCIÓN DE IMPACTOS RELEVANTES RELACIONADOS CON EL PROYECTO..........................................55
A.3 ANÁLISIS DETALLADO DE ALGUNO DE LOS PRINCIPALES IMPACTOS...........................................................55
A.4 CONCLUSIONES............................................................................................................................................56
ANEXO B: PRESUPUESTO ECONÓMICO...................................................................................................... 57
ANEXO C: SOLDADURA DE PINES PLACA ARDUINO NANO .......................................................................... 58
ANEXO D: PROGRAMA EN ARDUINO QUE CARGA LA COMUNICACIÓN SERIE ENTRE EL MÓDULO SIM808 Y EL
ARDUINO UNO PARA PROBAR LOS COMANDOS AT MANUALMENTE ......................................................... 59
ANEXO E: PROGRAMA EN MATLAB PARA EL CALCULO DE LA CURVA DEL GAS CO2 DEL SENSOR MQ135 POR
AJUSTE POR MÍNIMOS CUADRADOS ......................................................................................................... 60
ANEXO F: PROGRAMA EN ARDUINO PARA CALIBRACIÓN DEL PARÁMETRO RO DE LA CURVA DEL GAS CO2 DEL
SENSOR MQ-135 ...................................................................................................................................... 62
ANEXO G: PROGRAMA EN ARDUINO PARA UN SISTEMA PORTÁTIL DE MEDIDAS DE CONCENTRACIONES DE
CO2 SIN CONTROL .................................................................................................................................... 63
ANEXO H: PROGRAMA EN ARDUINO PARA UN SISTEMA PORTÁTIL DE MEDIDAS DE CONCENTRACIONES DE
CO2 CON CONTROL POR MENSAJES SMS................................................................................................... 66
ANEXO I: PROGRAMA EN ARDUINO PARA UN SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE LA CALIDAD DEL
AIRE EN EDIFICIOS E INDUSTRIAS .............................................................................................................. 72
ANEXO J: PROGRAMA EN ARDUINO PARA UN SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE LA CALIDAD DEL
AIRE EN EDIFICIOS E INDUSTRIAS POR VISUALIZACIÓN DE LOS DATOS MEDIANTE DESPLIEGUE DE UN
SERVIDOR WEB ........................................................................................................................................ 75
ÍNDICE DE FIGURAS

Figura 1: Vista Superior Placa Waspmote ...............................................................................................5


Figura 2: Módulo XBee ...........................................................................................................................5
Figura 3: Sensor de gases Waspmote 2.0 ................................................................................................5
Figura 4: Diagrama de conexión de los componentes de uno de los nodos sensor de la red Wireless, y
nodo coordinador [12] .............................................................................................................................6
Figura 5: Diagrama de conexión de los componentes integrados en el interior de la estructura de un
Cansat [13] ...............................................................................................................................................7
Figura 6: Logo Arduino .........................................................................................................................11
Figura 7: Microcontrolador ATMEGA328P .........................................................................................12
Figura 8: Interfaz IDE ............................................................................................................................13
Figura 9: Placa Arduino UNO. Pines y funciones .................................................................................14
Figura 10: Placa Arduino NANO. Pines y funciones ............................................................................15
Figura 11: Quemar Bootloader ..............................................................................................................16
Figura 12: Placa Arduino MEGA 2560. Pines y funciones ...................................................................17
Figura 13: Sensor MQ-2 ........................................................................................................................19
Figura 14: Sensor MQ-3 ........................................................................................................................19
Figura 15: Sensor MQ-4 ........................................................................................................................19
Figura 16: Sensor MQ-5 ........................................................................................................................20
Figura 17: Sensor MQ-6 ........................................................................................................................20
Figura 18: Sensor MQ-7 ........................................................................................................................20
Figura 19: Sensor MQ-8 ........................................................................................................................20
Figura 20: Sensor MQ-9 ........................................................................................................................20
Figura 21: Sensor MQ-303 ....................................................................................................................20
Figura 22: Sensor MQ-131 ....................................................................................................................20
Figura 23: Sensor MQ-135 ....................................................................................................................20
Figura 24: Sensor MQ-136 ....................................................................................................................21
Figura 25: Sensor MQ-137 ....................................................................................................................21
Figura 26: Sensor MQ-138 ....................................................................................................................21
Figura 27: Sensor MQ-135. Estructura y configuración .......................................................................21
Figura 28: Módulo SIM808 y conexión con placa Arduino UNO. .......................................................23
Figura 29: Sensor DHT11 y conexión con placa Arduino UNO. ..........................................................25
Figura 30: Módulo LCD1602A y conexión con placa Arduino UNO. .................................................26
Figura 31: Lector de memoria MicroSD y conexión con placa Arduino UNO.....................................27
Figura 32: Sensor KY038 y conexión con placa Arduino UNO. ..........................................................28
Figura 33: Módulo WIFI ESP8266-01S y conexión con placa Arduino UNO. ....................................29
Figura 34: Conexión del módulo WIFI ESP8266-01 a Rx y Tx directo de Arduino ............................29
Figura 35: Esquema de un sistema portátil de medida de emisiones de CO2 .......................................30
Figura 36: Esquema de un sistema de cuantificación de la calidad del aire en edificios e industrias. ..31
Figura 37: Flujograma de funcionamiento de Sistema Portátil de medida de CO2 básico ...................32
Figura 38: Importación de fichero txt en Excel. Paso 1: Escoger archivos delimitados .......................33
Figura 39: Importación de fichero txt en Excel. Paso 2: Marcar coma como delimitador de contenido
en los datos ............................................................................................................................................33
Figura 40: Importación de fichero txt en Excel. Paso 3: Establecer el separador decimal por punto y el
separador de miles por coma .................................................................................................................33
Figura 41: Representación en Excel de las lecturas del sensor MQ135 junto a sus coordenadas de
latitud, longitud, fecha y hora ................................................................................................................34
Figura 42: Flujo de navegación de un Sistema portátil de medición de concentraciones de CO2 ........35
Figura 43: Notificación del sistema indicando que la configuración inicial se ha completado y que esta
esperando recibir ordenes ......................................................................................................................35
Figura 44: Notificación del Sistema ante fallo de inicialización de la tarjeta de memoria ...................35
Figura 45: Códigos de interacción con el sistema .................................................................................36
Figura 46: Representación de interacción mediante comandos SMS con un sistema portátil de medidas
de concentraciones de CO2 ...................................................................................................................36
Figura 47: Representación en Excel de las lecturas de los sensores MQ135 y KY038 junto a sus
coordenadas de latitud, longitud, fecha y hora ......................................................................................36
Figura 48: Flujograma de Funcionamiento de Sistema estático de cuantificación de la calidad del
aire .........................................................................................................................................................37
Figura 49: Visualización de la concentración de gases en ppm, temperatura y humedad a través de un
display LCD de las medidas tomadas por un sistema estático de cuantificación de calidad del aire ....38
Figura 50: Representación en Excel de las concentraciones de gases en ppm, temperatura y humedad
medidas por un sistema estático de cuantificación de calidad del aire ..................................................38
Figura 51: Visualización de la concentración de gases en ppm, temperatura y humedad a través del
monitor serie del IDE de Arduino de las medidas tomadas por un sistema estático de cuantificación de
calidad del aire .......................................................................................................................................39
Figura 52: Flujograma de Funcionamiento de Sistema estático de cuantificación de la calidad del aire
con despliegue de servidor Web ............................................................................................................39
Figura 53: Visualización de la concentración de gases en ppm, temperatura y humedad a través del
despliegue de un servidor Web de las medidas tomadas por un sistema estático de cuantificación de
calidad del aire .......................................................................................................................................40
Figura 54: Curvas de sensibilidad del sensor MQ-135 para varios gases .............................................41
Figura 55: Dependencia del sensor MQ-135 por temperatura y humedad ............................................41
Figura 56: Curva de sensibilidad del sensor MQ-135 para el gas CO2.................................................43
Figura 57: Sensor MQ-135 midiendo los gases salientes de un tubo de escape....................................45
Figura 58: Medida de concentraciones de CO2 (ppm) salientes del tubo de escape de un coche .........45
Figura 59: Medida de concentraciones de gases (ppm) salientes del tubo de escape de un coche........45
Figura 60: Sistema Portátil de medida de concentraciones de CO2 montado sobre un coche ..............46
Figura 61: Visión de placa Arduino Nano con y sin los pines soldados ...............................................58
Figura 62: Soldadura de pines. ..............................................................................................................58
ÍNDICE DE TABLAS
Tabla 1: Tecnologías, módulos y sensores implementados en la detección de agentes contaminantes
del aire .....................................................................................................................................................8
Tabla 2: Configuración de los pines para quemar el Bootloader de la placa Arduino NANO..............16
Tabla 3: Sensores de gas y rango de detección......................................................................................19
Tabla 4: Comandos AT Módulo SIM808 usados en la implementación del proyecto ..........................24
Tabla 5: Pines de conexión del módulo LCD1602A .............................................................................26
Tabla 6: Descripción de los terminales de conexión del módulo lector microSD.................................27
Tabla 7: Comandos AT modulo WIFI ESP8266-01 usados en la implementación del proyecto .........29
Tabla 8: Pares (Xi, Yi) utilizados para obtener la curva de sensibilidad del sensor MQ-135 al CO2 ..42
Tabla 9: Medidas realizadas del parámetro RO correspondiente a la curva del gas CO2 del sensor
MQ-135..................................................................................................................................................44
GLOSARIO
AMR Acorn RISC Machine. RISC (Ordenador con conjunto reducido de instrucciones)
AP Access Point
BB.DD Base de Datos
CAM Comunidad de Madrid
CO Monóxido de carbono
CO2 Dióxido de carbono
CR Retorno de carro
CS Chip Select (o Slave Select)
DGT Dirección General de Tráfico
EEPROM Electrically Erasable Programmable Read-Only Memory
GEI Gases de Efecto Invernadero
GNSS Global Navigation Satellite System
GPRS General Packet Radio Service
GPS En inglés, Global Positioning System, y en español, Sistema de Posicionamiento
Global
GSM Global System for Global Communications
I2C Inter-Integrated Circuit
IDE Entorno de Desarrollo Integrado
ICSP In Circuit Serial Programming
MISO Master In Slave Out
MOSI Master Out Slave In
NH3 Amoniaco
NL Nueva línea
NMEA National Marine Electronics Asociation
NO Monóxido de nitrógeno
N2O Óxido nitroso
O2 Oxígeno
O3 Ozono
OMS Organización Mundial de la Salud
PM Particular Matter
PPM Partes por millón
PWM En inglés, Pulse-width modulation, y en español, Modulación por ancho de pulso
RF Radio Frecuencia
SCK Serial Clock
SCL Serial Clock Line
SDA Serial Data Line
SO2 Dióxido de azufre
SoC Sistema en Chip
SER Servicio de Estacionamiento Regulado
SPI Serial Peripheral Interface
SRAM En inglés, Static Random Access Memory, y en español, Memoria Estática de Acceso
Aleatorio
SS Slave Select
UART Universal Asynchronous Receiver-Transmitter
USB Universal Serial Bus
UTC Universal Time Coordinated
WMO Organización Meteorológica Mundial
1

1. INTRODUCCIÓN Y OBJETIVOS
1.1. INTRODUCCIÓN
El calentamiento global es un hecho y un reto para la sociedad durante este siglo. Desde el año 1990
ha habido un aumento del 43% en el efecto de calentamiento sobre el clima de los gases de efecto
invernadero de larga duración. La principal causa del calentamiento global se debe al CO 2 que, desde
la revolución preindustrial, en 1750, se ha incrementado en un 147%, alcanzando las concentraciones
máximas de 417,1 partes por millón (ppm) en Mayo de 2020 [1]. La organización meteorológica
mundial (WMO) también registra concentraciones de otros gases conducentes al calentamiento
global, tales como el metano y los óxidos de nitrógeno (NO x) que se han incrementado en un 259% y
un 123% respectivamente desde el año 1750 [2].
Además, la población mundial cada vez es más numerosa y urbanita. Según un informe de las
Naciones Unidas la población mundial actual es de 7,7 billones de habitantes, esperándose un
aumento en 2 billones para 2050, y alcanzándose su punto máximo a finales del siglo actual en casi 11
billones de habitantes [3]. Este crecimiento es coincidente con la expansión de las áreas urbanas.
Según Naciones Unidas, en 2018 la población mundial residente en áreas urbanas era del 55% (4,2
billones de habitantes) proyectándose un incremento en 2,5 billones para 2050, pasando a ser del 68%
la población mundial residente en estas áreas. Este incremento corresponde, en un 90%, a países en
desarrollo de Asia y África [4]. Por estos motivos, el crecimiento de la población influye en un
incremento en el uso de vehículos, lo que lleva asociado un aumento del tráfico rodado y un aumento
de emisiones asociadas, empeorando a su vez, la calidad del aire. Solo en España, el número de
vehículos alcanzó los 29.795 millones de unidades, con un incremento del 8% respecto a los cinco
últimos años, y que se espera aumentar en los años venideros [5].
Por estas razones, el control de las emisiones es fundamental, sobre todo en entornos urbanos, a la que
se suma su relación con las medidas de desarrollo sostenible (ODS), reciclar la basura, uso de
electrodomésticos de bajo consumo y alta eficiencia energética, potenciar el uso del transporte
público, reducir las emisiones de carbono, etc. [6].
Para realizar una adecuada monitorización de las emisiones, debe conocerse las fuentes, la cantidad y
la distribución temporal de los contaminantes. Las principales fuentes de partículas contribuyentes a
la contaminación del aire en son el tráfico (25%), combustión y agricultura (22%), quema de
combustibles domésticos (20%), polvo natural y sal (18%) y actividad industrial (15%), variando
entre las diferentes regiones del mundo [7]. De hecho, el tráfico es la mayor fuente de contaminación
del aire no solo contribuyendo al incremento de los gases de efecto invernadero, tales como el CO 2,
sino que además produce gases tóxicos como el CO resultante de combustiones incompletas de
combustibles y NOx. Inhalar CO2 reduce la capacidad de la sangre para transportar oxígeno y es
causante de problemas respiratorios como asma, alergias y en ocasiones incluso la muerte. Según la
Organización Mundial de la Salud (OMS), en 2012 la contaminación del aire contribuyo al 6,7% de
muertes en todo el mundo. En particular, el 16% de las muertes por cáncer de pulmón, el 11% de las
muertes por enfermedad pulmonar obstructiva crónica y más del 20% de las cardiopatías isquémicas y
los accidentes cerebrovasculares se asocian con partículas del aire [7]. A esto se le debe sumar que, en
Europa en 2019, un 8% de la población urbana se encontraba ya expuesta a concentraciones de PM2.5
(se trata de partículas creadas particularmente por reacciones que envuelven emisiones de NOx)
superiores a los estándares de calidad del aire prescritos por las Directrices de calidad del aire
recomendadas por la OMS [8]. Todo ello implica una exigente necesidad de construir dispositivos
capaces de monitorizar de la forma más precisa posible la calidad del aire, concienciando a las
personas de tomar acciones de desarrollo sostenible para hacer frente a los niveles de contaminación
en tiempo real con el objetivo de acomodarse a las necesidades individuales de salud y reducción de
las emisiones.
En episodios de contaminación, la Comunidad de Madrid (CAM) establece una serie de protocolos de
actuación. Un día con superación del nivel de preaviso (un nivel de preaviso sucede cuando dos
estaciones cualesquiera de una misma zona superan, simultáneamente, 180 g/m3 durante dos horas
consecutivas, o tres estaciones cualesquiera de la red de vigilancia superan, simultáneamente, 180
2

g/m3 durante tres horas consecutivas) implica medidas informativas y de recomendación, medidas de
promoción de transporte público y reducción de la velocidad a 70 km/h en la M-30 y accesos.
Tras 2 días consecutivos con superación del nivel de preaviso o 1 día con superación del nivel de
aviso (un nivel de aviso sucede cuando dos estaciones cualesquiera de una misma zona superan,
simultáneamente, 200 g/m3 durante dos horas consecutivas, o tres estaciones cualesquiera de la red
de vigilancia superen, simultáneamente, 200 g/m3 durante tres horas consecutivas), implica añadir a
lo anterior, la prohibición de la circulación en el interior de la M-30 y por la M-30 a los vehículos a
motor, incluidos ciclomotores, que no tengan la clasificación ambiental de “CERO EMISIONES”,
“ECO”, “C” o “B” en el Registro de Vehículos de la Dirección General de Tráfico (DGT), y la
prohibición del estacionamiento en las plazas y horario del Servicio de Estacionamiento Regulado
(SER) a los vehículos a motor que no tengan la clasificación ambiental de “CERO EMISIONES” o
“ECO” en el Registro de Vehículos de la DGT.
Tras 3 días consecutivos con superación del nivel de preaviso o 2 días consecutivos con superación
del nivel de aviso, implica añadir a lo anterior la recomendación de la no circulación de taxis libres,
excepto Eurotaxis y vehículos que tengan la clasificación ambiental de “CERO EMISIONES” o
“ECO” en el Registro de vehículos de la DGT en todo el término municipal. Estos vehículos podrán
estacionar en las plazas del SER, además de en sus paradas habituales a la espera de viajeros, en los
términos que se establezcan en la Ordenanza de Movilidad Sostenible.
Tras 4 días consecutivos con superación del nivel de aviso implica cumplir con la normativa anterior.
1 día de nivel de alerta (un nivel de alerta sucede cuando tres estaciones cualesquiera de una misma
zona superan, simultáneamente, 400 g/m3 durante tres horas consecutivas), implica añadir a lo
anterior la prohibición de la circulación en todo el término municipal a los vehículos a motor,
incluidos ciclomotores, que no tengan la clasificación ambiental de “CERO EMISIONES” o “ECO”
en el Registro de Vehículos de la DGT, la prohibición del estacionamiento en las plazas y horario del
SER a los vehículos a motor que no tengan la clasificación ambiental de “CERO EMISIONES” en el
Registro de Vehículos de la DGT y la prohibición de la circulación de taxis libres, excepto Eurotaxis
y vehículos que tengan la clasificación ambiental de “CERO EMISIONES” o “ECO” en el Registro
de Vehículos de la DGT, en todo el término municipal [9].
Con la red de dispositivos diseñada en este proyecto, se puede hacer una mejor interpretación de la
calidad del aire urbana y proponer un sistema de cierre del tráfico selectivo en función de las medidas.

1.2. OBJETIVOS
El objetivo del presente Trabajo de Fin de Grado (TFG) es diseñar e implementar un sistema portátil
de medida de CO2 basado en Arduino para implementarlo en distintos tipos de vehículos urbanos, ya
sean de transporte público (autobuses urbanos, taxis, vehículos VTC o carsharing) o vehículos de
reparto de última milla. Este sistema dispondrá de un módulo GPS y una serie de sensores de CO2 que
permitirá registrar la posición y la medida de dicho gas, a medida que el vehículo se desplace por la
ciudad.
Estos datos registrados se almacenarán en forma de ficheros de texto, o se podrán enviar a una base de
datos (BB.DD.) para su posterior análisis mediante distintas herramientas, tales como MATLAB®,
R® o EXCEL®. Estas herramientas permitirán realizar un estudio de los niveles de contaminación
encontrados en la Comunidad de Madrid (CAM), y evaluar el número de dispositivos que deberían
desplegarse en distintos vehículos compartidos (tales coches, motos, bicicletas, patinetes eléctricos,
etc.) para monitorizar todo el entorno urbano. Adicionalmente, este sistema podrá medir otro tipo de
gases de efecto invernadero (GEI) o contaminantes, además del CO2, ya que los sensores incorporados
son sensibles a varios tipos de gases (tales como NH3, NOx, alcohol, benceno, humo).
Se van a realizar dos tipos de diseños: el primer diseño, descrito anteriormente, estará diseñado para
registrar medidas de emisiones en exteriores, a medida que los vehículos se desplacen por la ciudad,
mientras que el segundo diseño permitirá cuantificar la calidad del aire en edificios e industrias.
3

1.3. REQUISITOS
Para alcanzar los objetivos el sistema desarrollado tiene que medir las concentraciones de CO2 cada
10 segundos y almacenar su localización a través de un GPS, junto con una marca temporal
(timestamp) y la contaminación acústica del ambiente. Este dispositivo irá instalado en vehículos
compartidos (carsharing) y almacenarán la información de las lecturas en una tarjeta de memoria
microSD, notificando cualquier valor medido superior al umbral de referencia.
Para ello, se utilizarán unos sensores electroquímicos, cuya medida es recogida por un
microcontrolador y que, mediante interfaz por puerto serial, se comunicará con una tarjeta SD y un
módulo GPS, GSM, GPRS permitiendo almacenar las lecturas.

1.4. ESTRUCTURA
En el apartado 2, se desarrolla el estado del arte, describiéndose las diferentes tecnologías, sistemas y
lenguajes de programación actuales en relación con previas soluciones de sistemas de detección de
niveles de contaminación con Arduino o placas similares, destacándose sus ventajas y desventajas. En
el apartado 3 de esta memoria, se describe el desarrollo del sistema implementado, clasificándose en
varios subapartados. En el apartado 3.1, se describe el entorno de funcionamiento del IDE de Arduino
y las placas que se han utilizado. En el apartado 3.2, se presentan las tecnologías actuales de detección
de gases aplicadas en sensores, una clasificación de una familia de sensores electroquímicos
denominada serie MQ, destacándose el sensor MQ-135 implementado en el sistema. En el apartado
3.3, se define un conjunto de componentes utilizados junto al sensor en la elaboración del proyecto,
con el objeto de incrementar la funcionalidad de este por medio de la obtención de otros tipos de
lecturas y representación de los datos. En el apartado 3.4, se presentan los esquemas de los dos
sistemas implementados. Finalmente, en el apartado 3.5, se describe los sistemas diseñados, tanto su
código como funcionamiento.
En el apartado 4, se presentan los resultados obtenidos, describiéndose el procedimiento de
calibración del sensor MQ-135, las funcionalidades que se les puede dar a los sistemas desarrollados
extendiéndose a las conclusiones obtenidas en el apartado 2.1. Estado del Arte y las medidas de
prueba realizadas. En el apartado 5, se muestran las conclusiones y posibles desarrollos futuros del
sistema. Adicionalmente, en los anexos se contemplan los impactos en aspectos económicos, sociales
y éticos en los que este proyecto repercute, la elaboración del presupuesto económico del proyecto, y
los códigos con el funcionamiento de ambos sistemas y calibración del sensor utilizado.
4

2. ESTADO DEL ARTE


En este apartado se va a desarrollar un estudio sobre el estado del arte en referencia a la obtención de
medidas de CO2 basado en Arduino. Por ello se hace una descripción de diferentes sistemas que se
han implementado utilizándose distintas tecnologías, módulos y sensores que resuelven casos
similares a los que hemos propuesto en este proyecto. Se va a dividir el apartado en dos subsecciones,
en la primera se da una breve descripción de cada uno de los trabajos en los que me he documentado
como base para la realización de los diseños propuestos, destacándose las ventajas e inconvenientes,
y en la segunda sección se realizan conclusiones de cada una de las soluciones aportadas,
comparándose con el sistema desarrollado y justificándose la elección de cada uno de los elementos
utilizados.
En la referencia [10] se ha dispuesto, sobre una placa PCB (que contiene el microcontrolador, una
tarjeta de memoria y un reloj en tiempo real), un conjunto de sensores capaces de medir CO, CO2,
NO, NO2, O2 y O3 con una frecuencia de muestro de un 1Hz, y la existencia de dos puertos serie, uno
para la conexión con el PC durante el periodo de pruebas y otro para la conexión del módulo GPS,
que tiene una frecuencia de 10 Hz, por lo que la velocidad de obtención de datos viene determinada
por los sensores.
Este sistema se coloca en un coche que va tomando medidas periódicamente en las mismas áreas,
observando la variación de los datos, los cuales se representan en un modelo 2D mediante la
distribución de la composición de agentes contaminantes en función de su distribución espacial y
temporal, permitiendo conocer las zonas con mayor concentración de contaminantes por emisiones
industriales, calefacciones y vehículos. Al conocer dichas concentraciones, se implementan
restricciones como limitaciones del tráfico o la prohibición de la combustión de determinados
productos. También, los autores proponen la representación de los resultados con modelos 3D ya que
las muestras de agentes contaminantes varían sustancialmente en condiciones de elevación.
El tiempo de estabilización de los sensores electroquímicos utilizados en el módulo es de 60 segundos
en promedio, y como consecuencia de su muestreo, los desarrolladores del sistema indican que el
sensor limita la velocidad de los vehículos entre 10m/s y 15m/s (30-54 km/h) obteniéndose medidas
cada 10 metros aproximadamente. Además, los datos registrados durante una parada se excluyen,
porque estos valores no se pueden comparar con los datos registrados durante circunstancias normales
de medición.
Finalmente, previo a la representación de los datos, los puntos de coordenadas geográficas obtenidos
los compara con los del terreno y se les realiza un proceso de interpolación con dos propósitos: el
primero, si un valor no es práctico, se puede estimar un resultado de medida basado en la comparación
de datos similares, y el segundo, la representación de funciones que se ajusten a la exactitud de los
valores medidos.
Las ventajas que se pueden destacar de este proyecto es el cuidado que se tiene al tomar las medidas,
realizándose éstas a una velocidad constante del vehículo, y en las mismas zonas durante un periodo
indeterminado, con el objetivo de poder determinar la variación de las concentraciones con el tiempo,
y el posterior proceso de interpolación, cuya realización resulta interesante debido a la representación
de los datos de forma más exacta. Como inconvenientes, resalta a simple vista la dificultad de
mantener una velocidad constante cuando uno se desplaza por una ciudad en situaciones de tráfico
habituales. Por ello, en este proyecto, solo se tendrá en cuenta que se obtengan medidas cada cierto
periodo, independientemente de la distancia que haya recorrido el vehículo en dicho periodo de
tiempo. Además, pese a que es recomendable que los datos recolectados sean excluidos durante una
parada, hay que considerar que durante el tiempo que los vehículos se encuentran parados, sus
motores siguen en funcionamiento y están emitiendo gases, que son detectados por este sistema. Por
esta razón, se concluye que estos datos deben ser excluidos del actual estudio, añadiéndose a otra base
de datos, analizándose ambos datos por separado y comparándose entre sí, demostrándose como
incrementan las concentraciones cuando los vehículos se encuentran parados o a velocidad reducida
ya que son causas conducentes a la elevación de los gases contaminantes.
5

En la referencia [11] se diseñó un sistema para monitorizar las emisiones de CO2 producidas por
vehículos dentro de un campus universitario donde existen badenes reductores de velocidad. El
estudio consistía en demostrar la suposición de que los vehículos emitían más combustión cerca de
estas áreas debido a la aceleración del vehículo para pasar por los reductores.
El sistema implementado consiste en una placa denominada Waspmote (Figura 1) que contiene el
microcontrolador ATmega1281 sobre el que se monta un sensor de gases Waspmote 2.0 (Figura 3)
diseñado para medir parámetros ambientales como temperatura, humedad, presión atmosférica y 14
tipos de gases. En este proyecto solo se utilizo el sensor de CO 2 que viene calibrado de fábrica y con
un rango de obtención de medidas de 350 a 10000  50 ppm. También, se monta un módulo XBee
(Figura 2) que tiene embebidos módulos de RF (Radio Frecuencia) con diferentes protocolos WIFI, y
que en este sistema hace uso de los protocolos de comunicación Zigbee para el envío de los datos
recibidos del sensor por parte del módulo Waspmote, una vez realizada la conversión de voltaje a
concentraciones ppm, hacía un módulo coordinador (XBee Pro), colocado en un ordenador, mediante
puerto serie para la lectura de los datos. Finalmente, para la adquisición y almacenamiento de los
datos se usa Matlab.

Figura 1: Vista Superior Placa Waspmote Figura 3: Sensor de gases Waspmote 2.0 Figura 2: Módulo XBee

Se desplegaron varios de estos sistemas a lo largo del campus, constituyendo una red de sensores
Wireless con un nodo central (XBee Pro), tomando medidas cada 500ms y almacenando los datos en
una matriz durante 10 minutos. Como resultado se obtuvo una herramienta con el fin de reducir la
contaminación ambiental alrededor del campus, reducir el tráfico al eliminar los badenes de velocidad
o restringir la circulación de vehículos en las horas pico en las que el sistema indica que los niveles de
contaminación son excesivos.
En este proyecto se destaca la utilización de los módulos XBee, y el uso de la tecnología ZibBee para
el envío y recibimiento de datos. Además, se hace uso de un firmware llamado DigiMesh que permite
la conexión en red, asegurando que los módulos se comuniquen incluso si alguno falla. Tiene el
inconveniente de funcionar con redes WIFI con un alcance de señal de 1,6km. Por ello, es adecuado
para estudiar las concentraciones de niveles de CO 2 de un campus universitario. Por ejemplo, en
España tenemos la redIRIS para la interconexión de universidades y centros de investigación. Con
este ejemplo, se quiere dar a conocer que se podrían tomar medidas de dos centros universitarios de la
UPM en distintas localizaciones, y recolectar los datos mediante el mismo nodo central, pero no
serviría para la monitorización de concentraciones a lo largo de la Comunidad de Madrid, ya que no
se dispondría de conexión a red, por lo que sería necesario emplear otro tipo de módulos como se
justificará más adelante.
Otras ventajas que tiene este sistema se deben a que el microcontrolador dispone de la placa
Waspmote, plataforma modular opensource que permite construir redes de sensores inalámbricas de
muy bajo consumo, soportando diferentes protocolos de comunicación, y la disponibilidad de
conectar un panel solar para recargar la batería. Además, el uso de la tecnología Zigbee permite a los
sensores entrar en modo sleep, permitiendo ahorrar batería y solo tomar datos cuando se necesita.
Como inconvenientes, el sensor Waspmote 2.0 usado en este proyecto, se encuentra desaprovechado,
ya que es capaz de tomar lecturas de 14 distintos tipos de gases, y solo se ha usado el sensor interno
correspondiente a mediciones de CO2.
6

En la referencia [12] se presenta una red de sensores Wireless fija, con topología conectada en forma
de estrella, que analiza el comportamiento del tráfico en función de la detección de niveles de CO2 y
contaminación acústica. Cada nodo sensor contiene una unidad de detección, constituida por un
sensor MG-811 con un rango de 350 a 100000 ppm de CO2 y un módulo Sparkfun Sound Detector. Un
Arduino NANO, cuyo microcontrolador procesa los datos medidos y los envía mediante
comunicación serial a un módulo XBee. Este ultimo módulo forma la red WIFI permitiendo la
comunicación mediante el uso de distintos protocolos de encaminamiento (céntrico, jerárquico,
basado en localización, QoS, etc.) con un nodo coordinador llamado “Sink”. Este sensor también
contiene un reloj que proporciona la información del tiempo exacto en el que se han tomado las
medidas, y una unidad de suministro de potencia (módulo Lipo Rider Pro), consistente en un módulo
que permite la conexión de una batería y una placa solar.
Este nodo coordinador recibe los datos enviados desde los nodos sensor a través de un módulo XBee a
un Arduino MEGA que se comunica mediante comunicaciones serie con una Raspberry Pi, que
presenta la aplicación Java NetBeans, que almacena los datos medidos, y los presenta en gráficos en
tiempo real. Además, la Raspberry Pi se encuentra situada en una red local, permitiendo, a los
desarrolladores del proyecto, acceso remoto para la monitorización de la red y observación de los
gráficos.
En la figura 4 se observa el diagrama de conexión de los componentes que constituyen uno de los
nodos de la red Wireless, y el nodo coordinador.

Figura 4: Diagrama de conexión de los componentes de uno de los nodos sensor de la red Wireless, y nodo coordinador [12]

En este proyecto se destaca lo bien implementada que esta la red de sensores Wifi mediante el uso de
módulos XBee y la tecnología Java NetBeans, que permite la presentación de los datos en gráficos en
tiempo real. Además de ofrecer la posibilidad de comparar datos de distintos días o meses con el
objetivo de conocer la variación de las concentraciones. Otras ventajas se encuentran en las unidades
de detección, cuando los niveles de CO2 son altos, provocados por la congestión del tráfico, resulta
importante la monitorización de los niveles de ruido como parte del análisis. En cuanto al sensor MG-
811, tiene la ventaja de su amplio rango de detección del gas CO2. Sin embargo, presenta el
inconveniente de no venir calibrado de fábrica, y que dependiendo del entorno donde se instale el
sensor, se tiene que configurar el rango de detección.

En [13] se ha usado un CanSat (aparato del tamaño de una lata de refresco que simula un satélite real,
donde los distintos componentes son montados en el interior de la estructura para ser lanzado hacia el
cielo) para medir las concentraciones de los gases CO 2 y CO producidos por vehículos en distintas
ubicaciones (áreas escolares, industriales y espacios abiertos), considerando la hora de la medición, la
altura sobre el nivel del mar y garantizando la presencia de una calidad del aire variable por tomarse
como referencia una altitud de 100m. El CanSat estaba diseñado para realizar una medición de la
calidad del aire por cada caída de 20 metros, realizándose un total de cinco medidas en cada intento en
el que se lanzaba.
Los componentes que este sistema tiene montados en el interior de la estructura del CanSat son: un
Arduino Nano, cuyo microcontrolador se encarga de recibir las señales de los sensores MQ-135 y
MQ-9, y procesar y almacenar los datos en una tarjeta de memoria externa, una placa Ardusat que
7

contiene nueve sensores (luminosidad, temperatura,


acelerómetro, giroscopio, magnetómetro, ultravioleta,
infrarrojo y radiación RGB), un sensor GPS (Blox), una
batería y un paracaídas. En la figura 5 se puede observar el
diagrama de conexión de los distintos compontes
implementados en el sistema.
En este proyecto, se destaca la eficiencia, pequeño coste
económico y reducido tamaño del experimento, que permite
la inclusión de todos sus componentes dentro de la estructura
de un CanSat. Por ello, es clave el uso de la placa Arduino
Nano debido a su compacto diseño, tamaño y peso. Otras
ventajas presentes en este sistema son el uso de un
paracaídas que, además de evitar daños en la estructura,
proporciona un aumento del tiempo de descenso,
permitiendo recopilar más datos y mantener una orientación
adecuada de la antena. Figura 5: Diagrama de conexión de los
componentes integrados en el interior de la
En cuanto a los inconvenientes de este sistema, se destacan estructura de un Cansat [13]
los siguientes: el rango de detección de CO2 del sensor MQ-
135 es únicamente de 0 a 200 ppm, y en los resultados se muestran valores de hasta 700 ppm, por lo
que se llega a la conclusión que no se ha tenido en cuenta el proceso de calibración tanto del sensor
MQ-135 como del MQ-9, considerándose directamente la lectura analógica correspondiente a una
gran variedad de gases del que se desconoce la proporción de cada uno de ellos. Además, se observa
el mínimo o nulo uso de la placa Ardusat, por lo que se podría excluir del sistema.

En [14] se han colocado un conjunto de sensores rodeando una ciudad, para monitorizar la calidad del
aire midiéndose las concentraciones de CO y HCHO a una velocidad especificada. Para ello se ha
usado una plataforma en la nube, siendo el sistema de monitorización capaz de notificar a los
usuarios, por medio de mensajes de texto junto con correos electrónicos, cuándo se alcanza el umbral
de estos gases, al combinar datos de localización de los usuarios y la información de la calidad del
aire urbana proporcionada por la red de estaciones de monitorización.
El sistema desarrollado en esta referencia consiste en una placa Marvell 88MW302 a la que se
conectan una serie de sensores (luminosidad, gas, CO2, HCHO y temperatura). El microcontrolador de
la placa procesa los datos medidos y los transmite a través de una red GSM tanto a un servidor como a
la plataforma AWS Cloud utilizada, asegurando la integridad, seguridad y disponibilidad de los datos.
Para el acceso a los datos se proporciona a los usuarios un ID y contraseña, pudiendo ser visualizados
mediante cualquier dispositivo móvil o ordenador.
En este proyecto se destaca el tema Internet of Things (IoT) que ha permitido desarrollar plataformas
de detección de calidad del aire en tiempo real y proporcionar el acceso a los datos medidos en
cualquier lugar del mundo. Otra ventaja se encuentra en la placa usada “Marvel 88MW302” que
realiza dos funciones principales: la primera actúa como interfaz de comunicación procesando las
lecturas de los sensores por comunicación serie, y la segunda permite la transmisión de los datos a la
plataforma en la nube, debido a su disponibilidad de redes GSM y conectividad con Internet. Por otro
lado, el único inconveniente observado es que no se indica los modelos de sensores utilizados, por lo
que no se podrá comparar con los componentes elegidos para el sistema montado que se justifica en
esta memoria.

En [15] se tomaron mediciones cada cuatro minutos de los gases CO, SO2, CO2, N2O y compuestos
orgánicos presentes en el interior y exterior (fachadas) de las oficinas, a distintas alturas de un edificio
en el centro de una ciudad con ventilación natural, para evaluar el efecto que tienen las emisiones
emitidas por los vehículos en el interior de la viviendas, la efectividad de la fachada del edificio para
8

atenuar los niveles de contaminación exteriores, cuando se comparan las concentraciones de


contaminantes internos y externos a la misma altura en condiciones normales de tráfico y cuando la
calle esta cerrada al tráfico rodado, y la representación de la distribución espacial de los
contaminantes mediante un modelo de dispersión. Para conseguir la monitorización se utilizó un
monitor multifugas de Brüel y Kjaer, tipo 1302 que trabaja mediante detección de infrarrojos
fotoacústicos y vinculado a un sistema de muestreo multicanal.
En este proyecto se destaca el inconveniente del dispositivo de medida cuyo elevado coste impide su
implementación en nuestro proyecto.

A modo de resumen, en la Tabla 1 se hace una clasificación de las distintas, tecnologías, módulos y
sensores que se han utilizado en los trabajos previos, con referencias a sus hojas de características
para facilitar su consulta.
Tabla 1: Tecnologías, módulos y sensores implementados en la detección de agentes contaminantes del aire

Waspmote [16]
Arduino NANO [17]
PLACAS Arduino MEGA [18]
Raspberry Pi [19]
Marvell 88MW302 [20]

Waspmote 2.0 [21]


MG-811 [22]
SENSORES DE DETECCIÓN DE GASES MQ-135 [23]
MQ-9 [24]
Monitor multifugas de Brüel y Kjaer, tipo 1302 [25]

MÓDULOS WIFI XBee Pro [26]

MÓDULOS GPS Blox [27]

Sparkfun Sound Detector [28]


OTROS SENSORES
Placa Ardasat

Tarjeta de memoria [29]


Panel Solar
Batería 9V
OTROS COMPONENTES
RTC DS 3231 [30]
LiPo Rider Pro [31]
CH340 [32]

Zigbee
Matlab

TECNOLOGÍAS Java Netbeans

AWS Cloud
Internet of Things
9

Tras analizar algunas de las diferentes soluciones existentes y realizar las comparaciones pertinentes
con aquellas que se asemejan más a nuestra propuesta, se han encontrado distintas tecnologías
utilizadas en sensores para detectar los distintos gases. De entre los presentes en la clasificación, todos
los sensores son electroquímicos (ver apartado 3.2.1.) a excepción del monitor multifugas de Brüel y
Kjaer, que está basado en detección por infrarrojos fotoacústicos, y que debido a su elevado coste es
directamente descartado.
El objetivo del proyecto es principalmente poder tomar lecturas de concentraciones de CO 2, por tanto,
se descarta la placa de sensores Waspmote 2.0, capaz de medir 14 tipos de gases, ya que se estaría
desaprovechando, aunque su uso nos facilitaría un estudio mucho más prometedor y la ventaja de que
los sensores ya vienen calibrados de fábrica. Finalmente, existen dos posibles elecciones de sensores
para realizar las medidas: los sensores MG-811 y MQ-135, cuyo proceso de calibración será necesario
realizarse en ambos dispositivos. Se ha decidido usar el sensor MQ-135 por dos razones: la primera su
precio es 16 veces menor comparado con el sensor MG-811, y la segunda es sensible en similar
proporción a los gases NH3, NOx, alcohol, benceno, humo y CO2. Por otro lado, si comparamos sus
rangos de detección, el sensor MQ-135 dispone de un rango de 0 a 10000 ppm, pero su relación con el
gas CO2 es solo de 0 a 200 ppm, mientras que el sensor MG-811 tiene un rango que oscila entre 350 y
100000 ppm. La diferencia es apreciable, pero es un inconveniente a tener en cuenta cuando la
prioridad es diseñar un sistema de pequeño coste económico. A razón del conflicto entre usar uno u
otro sensor, se podría recurrir a un segundo estudio, en el que se dispusiese de ambos sensores con el
objetivo de compararles, y así, poder determinar la fiabilidad de las lecturas que realiza el sensor MQ-
135.
En cuanto al microcontrolador, núcleo de cualquier sistema, se ha concluido que la opción más
adecuada es la placa Arduino NANO, que a pesar de tener especificaciones más simples en relación a
número de pines, memoria, etc., su precio, tamaño, peso, interacción con otros componentes
desarrollados por terceros, y su prototipado sobre una placa Protoboard, la convierten en una de las
mejores opciones hoy en día para el desarrollo de proyectos de código no demasiado extenso.
En varias soluciones se ha montado una red de nodos inalámbricos que se comunican con un
coordinador para transmitirle las lecturas medidas por los sensores. Para ello, se han utilizado unos
módulos llamados XBee Pro que funcionan por WIFI y mediante la tecnología Zigbee. Como ya se ha
comentado, estos módulos no servirían para monitorizar las concentraciones a lo largo de una gran
ciudad como es Madrid porque no se dispondría de conexión a red al funcionar por redes WIFI. Por
este motivo, se ha decido que el módulo más adecuado para implementar en nuestro sistema es el
módulo SIM808, que funciona por medio de una tarjeta SIM y que, además de proporcionar las
coordenadas geográficas, fecha y hora en la que se han tomado los datos, ofrece las funcionalidades
de las redes GSM/GPRS, permitiendo por ejemplo controlar nuestro sistema autónomo mediante el
uso de SMS, llamadas o una aplicación con la que interaccione, y la conexión a Internet de la misma
forma que hacen los módulos XBee Pro para el envío y recepción de datos. De la misma manera, si se
hubiesen montado varios sistemas iguales, que no es nuestro caso, los módulos SIM808 podrían
actuar a modo de nodos transmitiéndose datos entre sí, y haciendo uso de las tecnologías IoT. Dado
que nuestro sistema es un primer prototipo y uno de nuestros objetivos principales es realizar un
estudio sobre los niveles de CO2 encontrados en la Comunidad de Madrid, se ha creído más
conveniente utilizar una tarjeta de memoria Micro SD para almacenar los datos, y usar las
herramientas Matlab y Excel para su análisis posterior. Por tanto, con el módulo SIM808 se pueden
descartar los módulos XBee Pro, GPS Blox, reloj de tiempo real RTC DS3231, CH340, y la placa
Marvell 88MW302.
En cuanto a la alimentación de nuestro sistema portátil, para un primer prototipo se ha decidido que es
más adecuado hacer uso de baterías de 9V recargables, que invertir en una placa solar y un módulo de
alimentación externo, como puede ser LiPo Rider Pro, para su conexión con el Arduino. Esta
conclusión tiene su justificación en la ubicación que va a tener el sistema en el vehículo, ya que si lo
dejamos al descubierto podría dañarse por el efecto de la lluvía, mientras que si lo colocamos en la
parte inferior del vehículo, no tendría radiación solar incidente, provocando el funcionamiento
incorrecto del sistema.
10

Por otro lado, en este proyecto también se ha diseñado un sistema estático, dirigido a la cuantificación
de la calidad del aire en edificios e industrias, utilizándose el mismo sensor MQ135 como detector de
concentraciones, pero en este caso pudiéndose obviar el proceso de calibración para la lectura de solo
un gas. Además, el sistema se ha acompañado de un sensor de temperatura y humedad para interiores,
conocido como sensor DHT11 (ver apartado 3.3.2) . Se podría pensar que, para este diseño, el uso de
tecnologías inalámbricas puede tener menos sentido en comparación con el uso previo ya comentado.
Llegados a este punto emplear un módulo WIFI se ha considerado la opción más adecuada para poder
transmitir los datos obtenidos a muchos usuarios. Para ello, se ha usado un módulo, denominado ESP-
01S, basado en ESP8266, y mediante comandos AT, se ha establecido un servidor web al que se
transmiten los datos de los sensores, para su visualización por los usuarios mediante una autenticación
previa. Sin embargo, el módulo XBee Pro usado en otras alternativas como medio para la creación de
nodos WIFI para envió y recibimiento de datos, no se ha tenido en cuenta por no disponer de la
funcionalidad de desplegar un servidor web. Otras alternativas empleadas en este sistema, y no
mencionadas en las soluciones comentadas, ha sido visualizar los datos a través de una pantalla LCD
y por monitor serie, cuando el sistema está conectado al PC.
11

3. DESARROLLO

3.1. ARDUINO
En los siguientes apartados se presenta una descripción breve de los sistemas Arduino, las diferentes
placas que forman su entorno, y el hardware y software que abarca, con el objetivo de explicar el
motivo de emplearlo en la realización de este proyecto.

3.1.1. ¿QUÉ ES ARDUINO?

Según [33] y [34], Arduino es una plataforma de código abierto basada en


hardware y software, y una comunidad que diseña y manufactura placas de
desarrollo hardware, cuyas especificaciones y diagramas esquemáticos están
disponibles al público bajo licencia de “Creative Commons”. Estas placas
están compuestas por circuitos impresos que integran un microcontrolador y
un conjunto de componentes electrónicos. Estas placas se programan mediante Figura 6: Logo Arduino
el uso del entorno de desarrollo integrado IDE de Arduino (basado en
Processing), y un lenguaje de programación (basado en Wiring), cuyas instrucciones son enviadas al
microcontrolador mediante comunicación serie por puerto USB entre la placa (o board), y un
ordenador. En la Figura 6 se muestra el logo de Arduino que se visualiza al principio de la Web
Oficial.
Arduino nació en el Instituto de Diseño Interactivo de Ivrea (Italia) como una herramienta para la
creación de prototipos con placas que integraban microcontroladores AVR de 8bits, que fueron
evolucionando hasta el ARM de 32bits, que junto a placas de expansión o shields (que añaden
funcionalidades extras mediante la agregación de sensores y módulos de comunicación externos)
conectadas a través de los puertos (bus serie I2C, UART o SPI) de entrada y salida presentes en la
placa, han permitido el desarrollo de aplicaciones en cualquier ámbito: IoT (Internet de las cosas),
impresoras 3D, robótica, etc. [35].
Arduino ofrece algunas ventajas frente a otras plataformas microcontrolador: son asequibles,
multiplataforma (Arduino IDE puede ejecutarse en Windows, Mac OS y Linux, frente a la mayoría de
los microprocesadores que están limitados a Windows), flexibles, open source (que pueden
expandirse a través de librerías en C++) y con hardware ampliable.

3.1.1.1. ¿QUÉ ES WIRING?

Wiring es un framework de programación de código abierto para microcontroladores que permite


escribir software multiplataforma para controlar dispositivos conectados a una amplia gama de placas
de microcontroladores, permitiendo crear todo tipo de codificación creativa, objetos interactivos,
espacios o experiencias físicas [36].

3.1.1.2. ¿QUÉ ES EL PROCESSING?

El processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto


basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de
proyectos multimedia e interactivos de diseño digital. Processing [37] es un lenguaje de referencia
para controlar la placa Arduino distinguiéndose tres partes principales: funciones, valores y estructura.
12

3.1.1.3. ¿QUÉ ES UN MICROCONTROLADOR?

Un microcontrolador (Figura 7) es un chip encargado de realizar


operaciones complejas a partir de unas instrucciones (que llamaremos
programa) y unos datos de entrada, generando unos datos de salida. Para
procesar dichos datos, el microcontrolador dispone de dos memorias, una
donde se almacena el programa y otra donde se almacenan los datos,
ambas ensambladas en el mismo chip [38]. Figura 7: Microcontrolador
ATMEGA328P
Cada microcontrolador consta de diversas cantidades de memoria flash,
pines y funciones dependiendo de las necesidades del proyecto que se vaya a desarrollar.

3.1.2. DESCARGA E INSTALACIÓN DEL IDE DE ARDUINO

En este subapartado, se detalla el proceso de instalación del software en el ordenador, necesario para
programar el sistema Arduino. Para ello será necesario acceder a la web oficial de Arduino
(https://www.arduino.cc/) y desde allí, acceder a la pestaña SOFTWARE DOWNLOADS, para
obtener la versión más reciente del IDE. En este proyecto se ha trabajado con la versión 1.8.33.
Se puede trabajar con el IDE de Arduino de dos formas: online IDE y desktop IDE. Con la versión
online no será necesario descargar ningún fichero adicional en el ordenador, y los ficheros generados
se guardarán en la nube de modo que estarán disponibles en cualquier dispositivo. La opción desktop
IDE, que instala un software en tu ordenador, está disponible para los siguientes sistemas operativos:
Windows, Mac OS X y Linux. Desde [39] se accede mediante un enlace a la pestaña downloads de la
web oficial para la descarga del IDE en el sistema operativo deseado.
Si se utiliza un sistema operativo Mac OS X, basta con ejecutar el fichero ejecutable descargado para
realizar la instalación del software y los drivers necesarios. En cuanto a Windows, una vez
completada la descarga del fichero, es necesario descomprimirlo en una carpeta y dentro de ésta se
encontrará el IDE de Arduino. Los drivers se instalarán en el ordenador al conectar la placa Arduino
por USB.

3.1.3. IDE DE ARDUINO

En este apartado se describe cómo utilizar el programa IDE de Arduino en Windows. Con la placa
conectada al ordenador por USB, se instalarán los drivers automáticamente. Será necesario conocer el
controlador especifico de la placa a utilizar. Para ello, desde Windows es necesario acceder a
Administrador de dispositivos, y se busca en Puertos (COM & LPT) la placa Arduino que se ha
conectado.
En la Figura 8 se muestra la interfaz gráfica del IDE de Arduino con un primer programa de prueba,
consistente en encender el LED interno de la placa conectado al pin digital 13 durante 1 segundo y
apagado durante 5 segundos, de forma cíclica, para comprobar el buen funcionamiento de todo el
sistema. Antes de cargar un programa en la placa, es necesario asignar al IDE el tipo de Arduino que
se ha conectado y a qué puerto está conectada. Los pasos a seguir, desde el IDE de Arduino, son los
siguientes:
1. Herramientas Placa Se selecciona la placa deseada.
2. Herramientas Puerto Serie Se selecciona el puerto adecuado. En los ordenadores
Windows, esté será “COM*”, siendo * el número de puerto serie.
13

Un programa de Arduino o sketch contiene dos principales funciones/bloques como se observa en la


Figura 8:
• void setup(): se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar o
configurar variables, pines, comunicación serie, etc.
• void loop(): ejecuta el código de forma cíclica (lectura de entradas, activación de salidas,
etc.). Contiene el programa principal con las instrucciones para la realización de la
funcionalidad deseada.
Para cargar un programa en la placa, es necesario previamente hacer clic sobre el botón “Verificar”.
Al seleccionar esta opción, se realiza únicamente una compilación del código y se informa de los
posibles errores. En caso de que no existan errores, en la parte inferior de la pantalla, se notificará los
recursos de memoria usados. Posteriormente, al hacer clic el botón “Subir”, el código se descargará
en la placa del microcontrolador.

Figura 8: Interfaz IDE

En [40] se pueden ampliar los conocimientos sobre las opciones de las que dispone la interfaz gráfica
IDE de Arduino instalada.

3.1.4. LIBRERÍAS

Las librerías son una colección de código agrupadas por carpetas, con sus respectivos archivos con
extensión .cpp (fichero de C++) y .h (cabecera C++) y cuya finalidad es facilitar la conexión de
módulos externos, como por ejemplo, aportar funciones básicas de comunicación al hardware [41] y
[42].
En este proyecto será necesario utilizar librerías que no están disponibles en el IDE de Arduino y, por
ello, será necesario instalarlas. Para ello, debe hacerse clic en Programa Incluir Librería
Administrar Bibliotecas, y se abrirá una ventana con un buscador. Desde dicha ventana se busca la
librería deseada y una vez encontrada, se selecciona la opción Instalar.
En ciertos proyectos será necesario utilizar librerías propias, frecuentemente distribuidas en formato
comprimido zip. Para incorporarlas al IDE de Arduino es necesario realizar los siguientes pasos:
14

Programa Incluir Librería Añadir biblioteca .ZIP.


Por ultimo, se comprobará que la librería se ha añadido a la lista: Programa Incluir Librería, y se
añadirá al proyecto.

3.1.5. TIPOS DE PLACA ARDUINO

En la actualidad existen una gran variedad de modelos de placas Arduino (oficiales, no oficiales y
compatibles) como puede verse en [43].
En este documento se describirán únicamente tres modelos de placas oficiales: Arduino UNO,
Arduino NANO y Arduino MEGA 2560. Los dos primeros modelos serán utilizados en este proyecto,
dado su bajo precio y por cumplir con las características técnicas mínimas requeridas para el
desarrollo del mismo (número de pines analógicos y digitales, memoria flash y RAM, y tensión
disponible por la placa para alimentar dispositivos externos).

3.1.5.1. ARDUINO UNO

Arduino UNO fue la primera placa en salir al mercado y la más popular, utilizada para inicializarse en
la programación de electrónica.
Sus principales características, que se pueden encontrar en [44], son las siguientes:
• Microcontrolador ATmega328P de 8bits a 16 MHz. Para más información sobre el
microcontrolador ATmega328P, se aconseja consultar la referencia [45]. Este
microcontrolador contiene una memoria flash de 32 kB, de los cuales 0,5 kB son usados por
el gestor de arranque (bootloader), una memoria SRAM de 2 kB y una EEPROM de 1 kB.
• 14 pines digitales de entrada/salida (6 de los cuales pueden ser usados como salidas PWM).
• 6 pines de entrada analógicas.
• Conector de alimentación por USB y botón de reinicio. También dispone de alimentación por
fuente externa con una tensión de entrada recomendada entre 7-12V y con un límite mínimo
de 6V y máximo de 20V. La tensión de operación con la que se alimenta el microcontrolador
es de 5V.
• Corriente DC por Pin E/S de 20mA.
• Corriente DC para el Pin de 3,3V de 50mA.
• Dimensiones: Largo (68,6mm) x Ancho (53,4mm).
• Peso: 25g

En la Figura 9 se puede ver la placa Arduino UNO y las funciones de cada uno de los pines:

Figura 9: Placa Arduino UNO. Pines y funciones


15

3.1.5.2. ARDUINO NANO

Arduino NANO es una placa de tamaño reducido, bajo coste y que posee las mismas características
que la placa Arduino UNO, incorporando adicionalmente dos entradas analógicas. Sus pines de
conexión son de tipo macho, a diferencia de la placa Arduino UNO que son de tipo hembra, lo que la
permite un rápido prototipado sobre una placa protoboard con el objetivo de reducir en tamaño los
proyectos implementados. Este dispositivo se alimenta mediante cable-mini USB no tan robusto como
el de la UNO, y no posee conector de alimentación externa.
Sus principales características, que pueden encontrarse en la referencia [17], son las siguientes:
• Microcontrolador ATmega328 de 8bits a 16 MHz. Contiene una memoria flash de 32 kB, de
los cuales 2 kB son usados por el bootloader, una SRAM de 2 kB y una EEPROM de 1 kB.
• 14 pines digitales de entrada/salida (6 de los cuales pueden utilizarse como salidas PWM).
• 8 pines de entrada analógicas.
• Conector de alimentación por cable mini-USB y con botón de reinicio.
• Conversor USB-TTL que permite conectar la placa al ordenador para obtener alimentación y
comunicación, para cargar programas y operar como monitor serie. Contiene en su interior un
regulador de tensión de 3,3V (50mA máximo).
• Tensión de entrada en el margen 7-12V.
• Corriente DC por Pin E/S de 40mA.
• Dimensiones: Largo (45mm) x Ancho (18mm).
• Peso: 7g

En la Figura 10, se presenta una placa Arduino NANO, con una descripción de cada uno de los pines:

Figura 10: Placa Arduino NANO. Pines y funciones

Los pines de la placa Arduino NANO adquirida vienen sin soldar. En el Anexo C se muestra una
descripción del proceso de soldadura de los pines.

3.1.5.2.1. INSTALACIÓN DE DRIVERS ARDUINO NANO

Hay dos modelos de placa Arduino Nano, o mejor dicho, dos tipos de conversor USB-TTL: FT232RL
y CH340G. Al instalar inicialmente el IDE de Arduino, esté no trae por defecto dichos drivers, los
16

cuales hay que instalarlos manualmente para que, cuando se conecte la placa al ordenador con el cable
mini USB, el ordenador reconozca esta placa. En la referencia [46] se presenta la dirección web desde
donde se puede instalar los controladores correspondientes al modelo de placa con circuito integrado
FT232RL, y en la referencia [47] se presenta la dirección web desde donde se pueden instalar los
correspondientes al modelo de placa con circuito integrado CH340G.
Los siguientes pasos para seguir, se han descrito previamente, en el apartado 3.1.3. IDE de Arduino.

3.1.5.2.2. QUEMAR BOOTLOADER PLACA ARDUINO NANO

Antes de conectar por USB la placa y el ordenador para poder descargar un programa en dicha placa,
es necesario que ésta tenga el bootloader (o gestor de arranque) configurado, que habitualmente no lo
está.
El bootloader es el programa que proporciona la compatibilidad con el IDE de Arduino para poder
usar la comunicación serie y de este modo transferir nuestros programas a la placa. Éste se ejecuta de
forma automática dentro del microcontrolador en cuanto éste se enciende, pero si el ordenador está
intentado programar la placa Arduino, graba el nuevo programa en memoria y reinicia el Arduino.
También se dispone de un botón de Reset en la placa con el que es posible volver a ejecutar un
programa no acabado desde el inicio. Ocupa una pequeña parte de la memoria flash del
microcontrolador (2kB de 32kB), diseñada para no poder ser reprogramada.
El proceso adecuado para cargar el código del gestor de arranque y quemar el bootloader, es el
siguiente [48]:
• Se necesitarán dos placas Arduino para reprogramar el bootloader. En nuestro caso se ha
utilizado una placa Arduino UNO que actuará como programador y que llamaremos máster, y
una placa Arduino NANO que llamaremos esclavo (slave).
• Se conecta la placa Arduino UNO por USB al ordenador, para configurarla como
programador. Para ello, se cargará el Sketch “Arduino as ISP” que se puede encontrar en la
siguiente ruta: File Examples 11. ArduinoISP ArduinoISP, y se modificará la línea
73, que tiene el pin digital 10 como RESET por el pin digital 6.
• Se desconecta la placa del ordenador.
• Se realiza el esquema de conexión entre ambas placas, máster y slave, mediante los pines del
bus SPI, como se muestra en la Tabla 2. En la Figura 11 se muestra dicha conexión:
Tabla 2: Configuración de los pines para quemar
el Bootloader de la placa Arduino NANO

Arduino UNO Arduino NANO


VCC ICSP-2 = VCC
GND ICSP-6 = GND
D6 (RESET) ICSP-5 = RESET
D11 (MOSI) ICSP-4 = MOSI
D12 (MISO) ICSP-1 = MISO
D13 (SCK) ICSP-3 = SCK
Figura 11: Quemar Bootloader
Conexión placa Arduino UNO (master) y placa Arduino NANO (slave)
17

• Se vuelve a conectar el Arduino UNO al ordenador a través del puerto serie, manteniendo la
conexión entre máster y slave.
• Se configura el IDE de Arduino estableciendo como puerto el del máster, como modelo de
placa el del slave y como programador, “Arduino ISP” siguiendo la ruta Herramientas
Programador:” Arduino as ISP” Arduino as ISP.
• Se selecciona la opción “Quemar Bootloader” desde la ruta Herramientas Quemar
Bootloader. Tras unos segundos, un mensaje nos informará si el bootloader se ha grabado
correctamente.
• Se desconectan ambas placas y se prueba a cargar un programa como se explicó previamente
en el apartado 2.1.3. IDE de Arduino.

3.1.5.3. ARDUINO MEGA 2560

Arduino MEGA es una versión ampliada de la placa Arduino UNO, que dispone de un mayor número
de entradas/salidas digitales y de entradas analógicas, y de un mayor espacio de memoria permitiendo
la realización de proyectos de mayor complejidad.
Sus principales características, se pueden encontrar en la referencia [18] y son las siguientes:
• Microprocesador ATmega2560 a 16MHz. Contiene una memoria flash de 256 kB de los
cuales 8 kB son usados por el bootloader, una SRAM de 8 kB y una EEPROM de 4 kB.Para
más información sobre el microcontrolador ATmega328P consulte la referencia [49].
• 54 pines digitales de entrada/salida (15 de los cuales pueden utilizarse como salidas PWM).
• 16 pines de entrada analógicas.
• Conector de alimentación por USB y con botón de reinicio. También dispone de alimentación
por fuente externa con una tensión recomendada de entrada entre 7 y 12V y unos valores
límites de 6V y 20V. La tensión de operación con la que se alimenta el microcontrolador es
de 5V.
• Corriente DC por Pin E/S de 20mA.
• Corriente DC para el Pin de 3,3V de 50mA.
• Dimensiones: Largo (101,52mm) x Ancho (53,3mm).
• Peso: 37g
En la Figura 12 se presenta la placa Arduino MEGA 2560 y la descripción de cada uno de los pines:
Microprocesador
ATmega 2560 ICSP
LED Interno
Serail0 (TTL)

HEADER
D13
Power LED
RX/TX LED
Serail1
Serail3
Serail2

E/S Digitales RESET

Interrupciones D2, D3, D18,


externas D19, D20, D21

USB D2 a D13
PWM
D44 a D46

D20 (SDA)
I2C D21 (SCL)

D50 (MISO)
D51 (MOSI)
SPI
Alimentación 52 (SCK)
6-9 DC 53 (SS)

Alimentaciones E/S Analógicas

Figura 12: Placa Arduino MEGA 2560. Pines y funciones


18

3.2. SENSORES USADOS PARA LA MEDIDA DE GASES DE


EFECTO INVERNADERO

En este apartado se describen las distintas tecnologías existentes actualmente en el mercado para
detectar diferentes tipos de gases. Se va a realizar una clasificación de los sensores de gas de una
familia denominada serie MQ con los que se va a trabajar en este proyecto y una conclusión de los
sensores seleccionados para la elaboración del sistema.

3.2.1. TECNOLOGÍAS EN LA DETECCIÓN DE GASES

En la medición de gases se hace uso de distintos tipos de tecnologías en función del tipo de gas
detectado (inflamable o tóxico). Los principales tipos de sensores utilizados en la detección industrial
de gases son los siguientes [50]:
• Sensores electroquímicos: se trata de un micro-reactor que, con la presencia de gases
reactivos produce electrones. Consta de al menos dos electrodos que producen contacto
eléctrico de dos maneras diferentes, a partir de un medio eléctricamente conductivo llamado
electrolito y de un circuito de corriente eléctrica externo. La mayoría de los sensores
electroquímicos están equipados de tres electrodos, un electrodo de medida, un contra
electrodo y un electrodo de referencia.
Estos sensores son los más usados para la detección de gases tóxicos como amoniaco,
monóxido de carbono, cloro o óxidos de nitrógeno entre otros.

• Sensores catalíticos: se utilizan para la detección de gases inflamables mediante una


oxidación catalítica. La salida del sensor catalítico se mide mediante la integración de dos
pellistores (perlas catalíticas) en un circuito de puente de Wheatstone. El primer pellistor
aumentará de temperatura con la presencia del gas inflamable y, por consiguiente, la
resistencia eléctrica desconocida, que se analizará para obtener la relación con los gases
presentes. El segundo pellistor no contiene material catalizador, y por ello, no reacciona al
gas y solo se utiliza para la compensación de los parámetros ambientales de temperatura y
humedad.
Estos sensores detectan principalmente metano, al oxidarse el aire del medio en el pellistor
caliente. Además, miden el vapor de agua, dióxido de carbono y el calor de la reacción.
También se utilizan para la detección de gases hidrocarburos.

• Sensores infrarrojos: se utilizan principalmente para la medición de concentraciones de


hidrocarburos (constituidos por carbono, hidrógeno, oxígeno, y a veces nitrógeno) dadas sus
características de absorción de infrarrojos. Su funcionamiento consiste en emplear una
lámpara fuente de infrarrojos y un filtro de longitud de onda (en el caso de los hidrocarburos,
éstos absorben la radiación de infrarrojos en el rango de longitud de ondas de 3,3 a 3,5m)
para captar la intensidad y la concentración de gas en el sistema óptico (realizada por el
proceso de calibración). Sabiéndose, que la concentración de un gas definida siempre provoca
la misma reducción de intensidad y en consecuencia la misma señal de medida.

3.2.2. SENSORES DE GAS DE LA FAMILIA MQ

Los sensores de gas de la serie MQ [51] son un conjunto de sensores analógicos electroquímicos que
poseen internamente un calentador encargado de aumentar la temperatura interna, permitiendo al
sensor reaccionar con los gases, provocando un cambio en el valor de la resistencia. Presentan una
19

salida analógica con la que se obtiene la lectura de la resistencia del sensor para diferentes niveles de
gas y, a partir de ella, calcular la concentración del gas determinado, y una salida digital la cual,
internamente, trabaja con un comparador y un potenciómetro encargado de calibrar el umbral de la
resistencia, con objeto de indicar la presencia o ausencia de gas, permitiendo activar un sistema de
alarma.
Se ha decidido trabajar con esta familia de sensores por varias razones: debido a la gran diversidad de
tipos de gases que se pueden llegar a medir, que cada sensor es sensible a diferentes tipos de gases en
distinta medida, que son económicamente asequibles y que se encuentran en módulos, simplificando
las conexiones con el microcontrolador.
Estos sensores son adecuados para la detección de fugas de gas en casas, talleres, edificios
comerciales, sistemas de seguridad para detección contra incendios, monitorización de gases
contaminantes, etc. [52]. Todos ellos presentan las siguientes características:
- Alta sensibilidad, más sensibles a algunos gases que a otros.
- Respuesta rápida.
- Amplio rango de detección.
- Funcionamiento estable.
- Larga vida.
- Circuito de accionamiento simple.
En la Tabla 3 se detallan algunos de ellos, indicando para cada sensor, los gases a los que es sensible,
su rango de detección (ppm) y una Figura del módulo sobre el que se monta el sensor, con referencias
a las hojas de características técnicas, en caso de necesitar ampliar la información.
Tabla 3: Sensores de gas y rango de detección

SENSOR GASES DETECTADOS RANGO DE IMAGEN


DETECCIÓN (ppm)
SENSOR
LPG 200-5000
Propano 200-5000
Hidrógeno (H2) 300-5000
MQ-2 [53] Alcohol 100-2000
Metano (CH4) 5000-20000
Humo 300-5000
Figura 13: Sensor MQ-2
Monóxido de carbono No especificado
Alcohol 25-500
Benceno
Hexano
MQ-3 [54]
LPG No especificado
Monóxido de carbono Figura 14: Sensor MQ-3
Metano (CH4)

Metano (CH4)
200-10000
LPG
Hidrógeno (H2)
MQ-4 [55]
Humo
No especificado
Alcohol Figura 15: Sensor MQ-4

Monóxido de carbono
20

LPG
Gas natural, butano, 200-100000
propano, gas ciudad
MQ-5 [56] Hidrógeno (H2)
Alcohol No especificado Figura 16: Sensor MQ-5

Monóxido de carbono

LPG, butano, propano 200-10000


Metano (CH4)

MQ-6 [57] Hidrógeno (H2)


No especificado
Alcohol Figura 17: Sensor MQ-6
Monóxido de carbono

Hidrógeno (H2) No especificado


Monóxido de carbono 20-2000

MQ-7 [58] LPG


Metano (CH4) No especificado Figura 18: Sensor MQ-7
Alcohol

Hidrógeno (H2) 100-10000


Alcohol
MQ-8 [59] LPG
No especificado
Metano (CH4) Figura 19: Sensor MQ-8

Monóxido de carbono
Monóxido de carbono 20-2000
LPG
MQ-9[24]
500-10000 Figura 20: Sensor MQ-9
Metano (CH4)

Alcohol 20-500
MQ-303 [60] Hidrógeno (H2)
No especificado
Monóxido de carbono Figura 21: Sensor MQ-303

Ozono (O3) 10-1000


CL2
MQ-131 [61]
No especificado Figura 22: Sensor MQ-131
NOX

Amoniaco (NH3) 10-300


Benceno 10-1000
Alcohol 10-300
MQ-135 [23]
Metano
Dióxido de carbono No especificado Figura 23: Sensor MQ-135
Monóxido de carbono
21

Sulfuro de hidrógeno (H2S) 1-200


MQ-136 [62]
Monóxido de carbono No especificado
Figura 24: Sensor MQ-136
Amoniaco (NH3) 5-500

MQ-137 [63] Monóxido de carbono


No especificado
Hidrógeno (H2) Figura 25: Sensor MQ-137

Benceno, tolueno, acetona,


etanol, H2 5-500
Alcohol

MQ-138 [64] Amoniaco (NH3) 10-500


Metano (CH4)
Figura 26: Sensor MQ-138
Monóxido de carbono No especificado
Propano

Como el objetivo de este proyecto es obtener medidas de CO 2 a medida que los vehículos se
desplazan por la ciudad y, comprobando la clasificación de los distintos sensores de la serie MQ se
puede observar que el único sensor que es sensible al gas CO2 es el sensor MQ-135. Por lo tanto, se ha
seleccionado este sensor para incorporarse a nuestro sistema, el cual describiremos en detalle en los
próximos apartados.
Adicionalmente, al sistema que vamos a implementar es posible incluir más sensores de la serie MQ,
que permita medir otros gases de efecto invernadero, teniendo en cuenta que el hardware y software
desarrollado para un sensor es estándar y será válido para todos los demás, puesto que cada sensor
está implementado en un módulo con cuatro salidas/conexiones (VCC, GND, salida analógica y salida
digital).

3.2.3. SENSOR MQ-135

Este sensor se utiliza en equipos de control de calidad del aire para edificios y oficinas, y como
detector de contaminación del aire industrial y detector portátil con un alcance de un metro de
distancia. Son adecuados para la detección de amoniaco (NH 3), NOx, alcohol, benceno, humo, CO2,
etc.
La puesta en funcionamiento de este sensor es muy sencilla: se alimenta con 5V, un calentador interno
aumenta la temperatura del sensor para que éste pueda reaccionar con los gases provocando un
cambio en el valor de la resistencia del sensor Rs (30 a 200 k), y con la ayuda de una resistencia de
carga RL (10 a 47 k) se cierra el circuito, haciéndose un divisor de tensión, y se conecta la salida a
una entrada analógica de la placa, que permite su lectura desde el microcontrolador. En la Figura 27
se presenta la estructura y configuración del sensor:

Figura 27: Sensor MQ-135. Estructura y configuración


22

El tiempo de respuesta del sensor es lento, debido a que la cámara de calentamiento donde se
introduce y sale el gas, permite que el sensor siga detectando los residuos de gas que se quedan dentro
hasta que éstos desaparezcan.
Otras características que presenta el sensor MQ-135 son:
- Alta sensibilidad en similar proporción a los gases mencionados. Larga vida y bajo coste.
- Consumo de potencia menor a 900mW.
- Pueden detectar concentraciones en un rango de 10 a 10000 ppm.
- Resistencia del sensor: 2k a 20k (en 100ppm NH3).
- Sensibilidad: Rs (aire) / Rs (100ppm NH3)5
- Pendiente:  0.6 (R100ppm/R50ppm NH3)
- Tiempo de precalentamiento entre 12 y 48 horas.
Más adelante en el apartado resultados, se describirá el proceso de calibración del sensor para obtener
únicamente la medición de CO2. Dicha calibración se realizará en dos pasos. Primero, se va a calcular
la ecuación por regresión correspondiente a la curva de CO2 proporcionada por la hoja de
características [23], y segundo, se calcula el parámetro Ro.

3.3. COMPONENTES ADICIONALES PRESENTES EN EL


SISTEMA

El ecosistema Arduino es muy flexible y permite incluir fácilmente componentes desarrollados por
fuentes no oficiales o ajenas a la compañía, proporcionando funcionalidades extras a los proyectos a
implementar. Por esta razón, el sistema desarrollado en este proyecto cuya principal función es la
toma de concentraciones de dióxido de carbono para su posterior análisis, contiene una serie de
módulos adicionales que enriquecen el sistema implementado.

3.3.1. SIM808: GSM/GPRS + GPS

Este módulo basado en el chip SIMCOM SIM808 y funciona por medio de una tarjeta SIM de tamaño
estándar y dos antenas correspondientes al GPRS y GPS. Combina el envío y recepción de datos
GSM/GPRS con la tecnología Bluetooth y GPS para navegación por satélite, permitiendo enviar y
recibir llamadas y SMS, conexión a Internet y conocer las coordenadas y el horario UTC (Universal
Time Coordinated) en todo instante de tiempo [65]. Recordemos que:
- GSM (Global System for Global Communications), es un sistema radio móvil celular
coincidente con la segunda generación de telefonía móvil o 2G, desarrollado en Europa e
implantado como el sistema de comunicaciones móviles más utilizado con servicios de
transmisión de voz a 13 kbit/s y datos en modo circuito hasta 9600 bit/s [66].
- GPRS (General Packet Radio Service) es una extensión del Sistema GSM para soporte de
servicios de datos en modo paquete compartidos dinámicamente, que ofrece acceso más
rápido y eficiente a redes IP alcanzando velocidades de hasta 171 kbit/s [67].
- GPS (Global Positioning System), es un sistema que permite determinar la posición exacta de
un objeto, persona, vehículo, etc. en cualquier parte de la Tierra. Fue desarrollado por el
departamento de Defensa de Estados Unidos y para ello pusieron en órbita una red de
veinticuatro satélites para cubrir toda la superficie de la Tierra, de los cuales son al menos
necesarios cuatro visibles para determinar la posición del receptor a través de una técnica
denominada trilateración [68].
Las principales características del módulo SIM808 son [69]:
- Sistema cuatri-banda: 850/900/1800/1900MHz.
23

- Tarjeta SIM requerida para usar el módulo.


- Antena GSM requerida para el uso de la shield SIM808.
- Antena GPS requerida para obtener lecturas de geolocalización.
- Antena Bluetooth. Función opcional del módulo y cuya antena no viene en el módulo
adquirido.
- Emitir y recibir llamadas de voz con conexión para cascos y micrófono.
- Alimentación entre 5 y 12V mediante fuente de alimentación externa, debido a que cuando
esta transmitiendo datos, este módulo consume mucha energía y no será suficiente con la
alimentación del Arduino.
- Suministro de corriente adecuado entre 1 y 2A.
- Temperatura de operación en el rango entre -40ºC y 85ºC.
- GPS completamente integrado en modo receptor:
Rastreo de 22 y adquisición de 66 canales; Tracking: -165 dBm; Arranque en frio: -148 dBm
y 32 seg; Arranque en caliente < 1 seg; Exactitud de 2,5 metros CEP en posición horizontal.
- Receptor GNSS (Global Navigation Satellite System) que permite un fácil ajuste del GPS.
En la Figura 28 se muestra las conexiones del módulo SIM808 con la placa Arduino UNO. Se
conectan los pines Tx y Rx del módulo a los pines 7 (seleccionado como Rx) y 8 (seleccionado como
Tx) del Arduino respectivamente, haciendo uso de jumpers macho-hembra sin pasar por una
protoboard. Pueden ser otros pines cualesquiera, siempre que los soporte la librería Software Serial
que se va a utilizar. Se deben unir las tierras de ambos módulos y alimentarse por separado haciendo
uso de baterías de 9-12V 1000mA.
Conector para
Antena
Bluetooth
LEDs de estado

Antena GPS

Interruptor para
encender el
módulo Cascos

Micrófono

Bateria 9V con
conector en Clip
Pulsador de
Encendido SIM

LED de
encendido

Antena GSM

Bateria 9V con
conector en Clip

Figura 28: Módulo SIM808 y conexión con placa Arduino UNO.

Con la alimentación conectada, se pone el interruptor de la placa en modo ON para encender el


módulo, activándose un LED de encendido. Además, para que el módulo empiece a funcionar se tiene
que activar la alimentación de la tarjeta SIM, presionando durante un par de segundos el Pulsador de
Encendido de SIM. Al hacerlo, se observará como se encienden dos LEDs, uno fijo y otro que
parpadea una vez por segundo. Esto significa que no ha encontrado la red móvil, y que se solucionará
cuando se introduzca el PIN de la tarjeta SIM, pasando a parpadear una vez cada tres segundos.

La comunicación con el módulo SIM808 se realiza mediante el uso de comandos AT [70]. En la tabla
4 se enumeran los comandos utilizados en la elaboración del proyecto implementado, y en el Anexo D
se muestra el código de un programa en el IDE de Arduino, que carga la comunicación serie entre el
módulo SIM808 y el Arduino UNO para probar los comandos AT de forma manual. Para ello se ha
creado una instancia llamada GSMSerial y se han seleccionado los pines de la placa Arduino UNO
que se usarán para comunicarnos. Además, en la función setup() se ha inicializado el puerto serie y la
instancia creada a la misma velocidad de comunicación 9600 bps. Por ultimo, para una correcta
visualización de los datos por el monitor serie se debe seleccionar “Ambos NL & CR”, de modo que
por cada comando AT introducido se salte a una nueva línea (NL) y se haga retorno de carro (CR).
24

Tabla 4: Comandos AT Módulo SIM808 usados en la implementación del proyecto

COMANDO AT DESCRIPCIÓN
Código de verificación de comunicación con el módulo. Debe responder con un OK sino se
AT deben repasar que las conexiones, encendido y velocidad establecida estén correctas.
Introducción de Pin Tarjeta SIM. Debe responder con un OK indicando que el pin introducido
AT+CPIN=”XXXX” es correcto, y que esta lista para realizar llamadas y SMS.

AT+IPR=? Sirve para consultar y visualizar las velocidades de comunicación serial

AT+IPR=9600 Permite cambiar la velocidad a 9600 bps.

AT+CGNSPWR=1 Activa el GPS

AT+CGNSPWR=0 Apaga el GPS


Se pregunta por el estado del GPS. Cuando devuelva “Location 3D Fix” significa que ya nos
AT+CGPSSTATUS? ha posicionado. Este proceso lleva aproximadamente un minuto la primera vez.
Establece el protocolo NMEA (National Marine Electronics Asociation) como estándar para la
AT+CGNSSEQ=RMC recepción de datos GPS.
Retorna los datos de hora, fecha, posición, recorrido y velocidad.
Lee coordenadas de gps.
+cgnsinf: <gnss run status>,<fix status>,<utc date &
time>,<latitude>,<longitude>,<mslatitude>,<speed over ground>,<course over
ground>,<fix mode>, <reversed1>,<hdop>,<pdop>,<vdop>,<reserved2>,<gnss satellites in
view>,<gnss satellites used>,<glonass satellites used>,<reserver3>,<c/n0
max>,<hpa>,<vpa>
AT+CGNSINF Ejemplo: +CGNSINF: 1,1,20200424095408.000,41.368053,-
3.895977,868.600,0.35,353.2,1,,1.2,1.5,0.9,,11,7,,,40,,
De donde se extraen las siguientes variables interesantes:
- Hora (UTC) = 095408 9h : 54min : 8seg
- Fecha (UTC) = 200424 Día 24 de abril de 2020
- Latitud = 42.368053
- Longitud = -4.895977
Lee coordenadas GPS según el protocolo NMEA
+CGPSINF: 32,100212.000,A,4222.0761,N,00453.7530,W,0.148,331.32,240420,,,A
De esta trama se podrían obtener las siguientes variables:
- 100212.000 representa la hora GMT (10:02:12).
- “A”, indica que el dato de posición esta fijado y es correcto. “V” si fuese no válido.
- 4222.0761 representa la longitud (42º22.0761´).
AT+CGPSINF=32 - N representa el Norte.
- 00453.7530 representa la latitud (4º53.7530´).
- W representa el Oeste.
- 0.148 representa la velocidad en nudos.
- 331.32 representa la orientación en grados.
- 240420 representa la fecha (24 de Abril de 2020).
Retorna el porcentaje de la batería: +CBC: (0 – 2), (1 – 100), (voltage)
El primer paréntesis corresponde a los valores:
0 Módulo alimentado por la batería;
AT+CBC 1 Tiene una batería conectada, pero el módulo no esta alimentado por ella;
2 No tiene una batería conectada.
El segundo paréntesis corresponde al tanto por ciento de batería restante, y el tercero al valor de
batería en Ah.

AT+CMGF=1 Configura mensajes en modo texto para enviar o recibir SMS

AT+CMGR=? Recepción de mensaje activa

AT+CNMI=2,2,0,0 Visualiza mensajes de forma automática cada vez que lleguen


Comando para enviar mensajes de texto al número indicado. El sistema responde con el
AT+CMGS=”XXXXXX símbolo > para escribir el mensaje. Al finalizar se teclea el símbolo ASCII 26, que corresponde
XXX” a CTRL+Z con lo que el módulo sabe que el SMS a enviar termino.
25

En este proyecto se ha utilizado este módulo para conocer la ubicación del sistema implementado
mediante sus coordenadas de latitud y longitud. No obstante, cabe mencionarse alguna de sus
funcionalidades que podrían añadirse como encender y apagar cosas con llamadas, leer textos de
mensajes, identificar llamadas, no apagar un programa ya encendido, conectarse a Internet para
transmitir las lecturas de los sensores mediante peticiones HTTP a un servidor web, almacenamiento
de datos o monitorización, etc.

3.3.2. SENSOR DHT11

Este sensor presenta un encapsulado plástico con ranuras que permiten la circulación del aire a través
del mismo, donde se localizan dos sensores, uno de temperatura y otro de humedad. Tiene cuatro
pines: VCC, GND, DATA y NC. El sensor viene montando en un módulo con tres pines de conexión
(VCC, GND y DATA), una resistencia de pull-up de 5 k y un LED que permanece activo cuando el
módulo esta alimentado. El pin de datos es una salida digital, que se conecta a una entrada digital de
Arduino, por donde se transmite una trama de 40 bits, correspondiendo los 16 bits más significativos a
la información de humedad, los siguientes 16 bits a la temperatura y los 8 bits restantes son los bits de
paridad para evitar errores. Este pin de datos, a su vez, se conecta mediante una resistencia de pull-up
de 5,1k al positivo de tensión.
Sus principales características son [71]:
- Alimentación entre 3 y 5,5V.
- Suministro de corriente entre 0,5 y 2,5mA.
- Únicamente para uso interior.
- Señal de salida digital.
- Lectura de temperaturas en el rango de 0 a 50 ºC con un error de  2 ºC.
- Lectura de humedad relativa en el rango de 20 a 80 % con un error de  5 %.
- Una muestra por segundo. Equivalente a una muestra cada 1Hz.
Para la elaboración del código en el IDE de Arduino se hará uso de una serie de librerías específicas
para el sensor DHT11 que facilitarán su programación y que no vienen incluidas en el IDE por lo que
será necesario importarlas. En este proyecto se ha trabajado con la librería “DHT sensor library by
Adafruit”.
En la Figura 29 se muestra las conexiones de los pines del sensor DHT11 con la placa Arduino UNO.

Figura 29: Sensor DHT11 y conexión con placa Arduino UNO.


Existe una evolución del sensor DHT11 denominada DHT22, con el que comparte las mismas
librarías, que le supera en prestaciones y que a pesar de un coste más elevado, hubiese sido una buena
elección, porque permite medir un rango de temperaturas mayor (sobre todo en la parte de
temperaturas bajo cero).
- Rango de temperaturas de -40 a 125 ºC con un error de  0,5 %.
- Rango de humedad relativa de 0 a 100 % con un error de  2,5 %.
- Dos muestras por segundo.
26

3.3.3. LCD1602A

Este módulo dispone de una pantalla LCD de 16 columnas y 2 líneas para mostrar los datos de
temperatura, humedad y concentraciones de CO2 de forma directa desde Arduino. La designación de
las columnas y filas empieza por el índice 0, y será necesario tenerse en cuenta a la hora de subir el
código desde Arduino al módulo, en el que se podrán visualizar en el mismo instante como máximo
32 caracteres.
Sus principales características son [72]:
- Modos de pantalla: STN, BLUB.
- Formato de pantalla: 16 Caracteres x 2 Líneas.
- Datos de entrada: bus de 4 bits o 8 bits.
- Alimentación de 5V con variación de  10 %.
- Fuente de visualización: 5 x 8 puntos.
- Esquema de conducción: 1/16Duty, 1/5Bias.
El módulo LCD1602 contiene 16 terminales que se enumeran en la Tabla 5:
Tabla 5: Pines de conexión del módulo LCD1602A

1 VSS Equivale a GND. Se conecta a tierra.


2 VDD Equivale al positivo de tensión, que se conecta directamente a 5V de alimentación Arduino.
Corresponde al contraste de la pantalla LCD al que se llega mediante una resistencia variable como
3 VO puede ser un preset, trimer o potenciómetro de valor 10k, con el objetivo de regular el nivel de
contraste para una correcta visualización.
Corresponde al registro, y se controlará mediante un pin digital de Arduino y una librería
4 RS
denominada LyquidCristal.
Se utiliza para asignar a la pantalla como modo lectura o escritura. En nuestro caso siempre se va a
5 RW
utilizar en modo escritura por lo que se conecta a GND.
Habilita el tipo de registro a utilizar. Se conecta a un pin digital de Arduino, y la librería
6 E
LycridCristal se encargará de activar este terminal cuando sea necesario.
7 D0 Bus de datos para transferencias de 8 bits.
8 D1 Para transferencias de 4 bits se usan los terminales D4 a D7.
9 D2
10 D3 Para este proyecto solo serán necesarios usar cuatro de estos terminales, siendo los correspondientes
a los pines de datos D4, D5, D6 y D7.
11 D4
12 D5
13 D6
14 D7
Corresponde con el ánodo del LED blanco, que proporciona la iluminación trasera de la pantalla. Se
15 A conecta mediante una resistencia de 220 a 5V de tensión.
La función de la resistencia es reducir ligeramente el brillo de la pantalla.
Corresponde con el cátodo del LED blanco, que proporciona la iluminación trasera de la pantalla. Se
16 K
conecta directamente a GND.

En la Figura 30 se muestra la conexión de los terminales del módulo LCD 1602A con la placa
Arduino UNO.
220 Ω

V SS V DD VO RS RW E D0 D1 D2 D3 D4 D5 D6 D7 A K

10KΩ

Figura 30: Módulo LCD1602A y conexión con placa Arduino UNO.


27

3.3.4. LECTOR DE MEMORIA MICRO SD

Este módulo permite leer y escribir la información que Arduino grabe en la tarjeta de memoria
microSD mediante interfaz serie SPI. En este proyecto se utiliza para almacenar los datos de
temperatura y humedad, las concentraciones de CO2 medidas por el sensor MQ-135, y las
coordenadas de longitud y latitud, fecha y hora obtenidas por el módulo GPS SIM808.
Posteriormente, con los datos grabados, se puede extraer la tarjeta del módulo, y a través de un
adaptador, insertarse en un ordenador donde se pueden leer los datos y mediante herramientas como
MATLAB® o EXCEL® realizar un análisis de la información recolectada [29].
La tarjeta MicroSD para el funcionamiento correcto con Arduino debe tener un formato especifico de
almacenamiento extraíble “FAT” o “FAT32”. Para establecer el sistema de archivos adecuado, se
deben seguir los siguientes pasos: Insertar tarjeta MicroSD en el ordenador Botón derecho
Propiedades Formatear Seleccionar el Sistema de Archivos adecuado Pulsar Iniciar.
Este módulo funciona con una tensión de 3,3V, pero internamente dispone de un regulador de tensión
de 5 a 3,3V y un nivelador de señal también de 5 a 3,3V, para poderse alimentar directamente desde
Arduino.
El módulo lector Micro SD tiene seis terminales, dos de alimentación y cuatro correspondientes al
interfaz SPI, que se pasan a enumerar en la Tabla 6:
Tabla 6: Descripción de los terminales de conexión del módulo lector microSD

(Chip Select) o (Slave Select). Habilita al dispositivo esclavo (lector MicroSD) mediante una línea a nivel
CS
bajo.
(Serial Clock). Genera los pulsos de reloj para la sincronización de los datos entre maestro (Arduino) y
SCK
esclavo (Lector MicroSD).
(Master Out Slave In). Indica el sentido de circulación de datos desde el maestro (Arduino) hacia el esclavo
MOSI
(Lector MicroSD).
(Master In Slave Out). Indica el sentido de circulación de datos desde el esclavo (lector MicroSD) hacia el
MISO
maestro (Arduino).
VCC Se conecta directamente a 5V de alimentación de Arduino.
GND Se conecta a GND de Arduino.

Para el desarrollo del código, se utilizarán dos librerías que ya vienen incorporadas en el IDE de
Arduino: “SPI” para la comunicación por el bus de datos, y “SD” para el manejo de la tarjeta de
memoria.
En la Figura 32 se muestra la conexión de los terminales del módulo lector de memoria MicroSD con
la placa Arduino UNO.
Inserción tarjeta de Nivelador de señal
memoria MicroSD 5 a 3,3 V

CS
SCK
SPI
MOSI
MISO
VCC
GND

Regulador de tensión
5 a 3,3 V

Figura 31: Lector de memoria MicroSD y conexión con placa Arduino UNO.
28

3.3.5. SENSOR KY038

Este sensor permite medir la contaminación acústica en el ambiente y establecer un valor de


referencia máximo de ruido, saltando un aviso o activándose una salida digital cuando se supere dicho
valor. El sensor viene montado en un módulo, que consta de un micrófono que capta el sonido
ambiente, un preset multivuelta para establecer un valor de sensibilidad y cuatro pines de conexión:
VCC, GND, salida analógica y digital. Incluye dos LEDs, el LED1 muestra que el sensor recibe
alimentación, mientras que LED2 es una salida digital que indica que se activa al detectar el
micrófono una intensidad de señal de ruido superior al valor umbral [73].
En la Figura 32 se muestra las conexiones de los pines del sensor KY038 con la placa Arduino UNO.

Figura 32: Sensor KY038 y conexión con placa Arduino UNO.

En este proyecto, se ha utilizado la salida analógica del módulo para medir los niveles de ruido. Esta
salida proporciona una medida relativa (en bytes) por lo que será necesaria su conversión a un valor
de tensión y, finalmente, a su unidad de medida que son los decibelios (dB). Para obtener una relación
entre los datos digitales entregados por el circuito Arduino obtenidos del sensor KY-038 y los valores
de sonido ambiental (decibelios) se ha establecido una ecuación lineal [74]:
𝑉𝑎𝑙𝑜𝑟 𝑑𝑒 𝐼𝑛𝑡𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑆𝑜𝑛𝑜𝑟𝑎(𝑑𝐵) = 3,0987 ∗ (𝐿𝑒𝑐𝑡𝑢𝑟𝑎 𝑑𝑒𝑙 𝑆𝑒𝑛𝑠𝑜𝑟) − 1540,3 (1)
Según la OMS (Organización Mundial de la Salud) se define como ruido, cualquier sonido superior a
65 dB (coincidente con un valor de 518 bytes según la ecuación indicada), oscilando en las ciudades
entre 50 y 120 dB en función del origen del mismo [75].
Este sensor se utilizará para enviar un SMS cada vez que capte un valor superior a 518 unidades.

3.3.6. MÓDULO ESP8266-01S

Este módulo esta basado en el sistema en chip (SoC) ESP8266EX de Espressif [76] que integra los
protocolos TCP/IP necesarios para comunicación Wifi 802.11 b/g/n en los modos cliente (Station),
punto de acceso (AP) y dual (cliente + punto de acceso). Esta versión dispone de un procesador de
32bits a 80 MHz con una memoria de 1 MB. Dispone de 2 pines GPIO y un interfaz de comunicación
serie que permite configurarlo mediante comandos AT que vienen preinstalados de fábrica [77].
En este proyecto se va a utilizar para dar conectividad WIFI a la placa Arduino y, mediante comandos
AT, transmitir las lecturas medidas por los sensores a un servidor Web. No obstante, este módulo al
ser un microcontrolador en sí, se puede utilizar sin Arduino con el mismo conocimiento y entorno de
programación, para lo que será necesario usar un módulo adaptador USB TTL como el CH340 [78].
En la Figura 33 se muestran las conexiones del módulo ESP8266-01S con la placa Arduino UNO. La
alimentación del módulo debe estar conectada al regulador de tensión de 3,3V, cortocircuitando los
pines VCC y CH_PD. El terminal GND debe ser común tanto para Arduino como para el módulo. En
29

cuanto a los pines Tx y Rx se pueden alimentar directamente a 5V de la placa Arduino, soportando la


librería Software Serial los pines digitales 2 y 3 en el caso de la placa Arduino UNO, y el puerto
Serial1, pines 18 y 19 de la placa Arduino MEGA.
La comunicación con el módulo ESP8266-01S se realiza mediante el uso de comandos AT [79].

3. GPIO2
4. CHIP_EN/CH_PD
ESP8266
2. GPIO1/TXD 1. GND

Antena
WIFI

8. VCC 7. GPIO3/RXD LEDs

6. EXT_RSTB 5. GPIO0 Memoria Flash

Figura 33: Módulo WIFI ESP8266-01S y conexión con placa Arduino UNO.

En la Tabla 7 se enumeran los comandos utilizados en la elaboración del proyecto implementado, y en


la Figura 34 se muestra la conexión del módulo al Tx y Rx directo de Arduino para probar los
comandos AT por monitor serie y obtener la dirección asignada al módulo WIFI.
Tabla 7: Comandos AT modulo WIFI ESP8266-01 usados en la implementación del proyecto

COMANDO AT DESCRIPCIÓN

Ajuste del modo de operación Wifi


1: Cliente (Station).
AT+CWMODE=<mode>
2: Punto de acceso (AP).
3: dual (cliente + punto de acceso).
AT+CWLAP Lista de puntos de accesos disponibles
Conecta a una red o punto de acceso
AT+CWJAP=<ssid>,<pwd> - Identificador (SSID)
- Contraseña (password).
AT+CIFSR Muestra la dirección IP asignada al módulo.
Configuración de conexión única (AT+CIPMUX = 0) o
AT+CIPMUX=<mode>
múltiple (AT+CIPMUX = 1).
Activa/desactiva servidor web en el puerto de escucha
AT+CIPSERVER=<mode>[,<port>] establecido.
0: desactiva servidor; 1: activa servidor
Envía datos, indicando primero el número de conexión y la
AT+CIPSEND=<id>,<length>
longitud de la página
AT+CIPCLOSE Cierra la conexión

Figura 34: Conexión del módulo WIFI ESP8266-01 a Rx y Tx directo de Arduino


30

En la Figura 34 observa algunas variaciones en las conexiones con respecto al esquema de la Figura
33. Se han conectado el pin Rx del ESP al pin Rx de Arduino, y el pin Tx del ESP al pin Tx de
Arduino. También se observa que se ha conectado el pin reset de Arduino a GND de Arduino con el
objetivo de ajustar el microcontrolador en modo reset. Con estas conexiones realizadas se conecta el
Arduino al ordenador y se abre un nuevo fichero vacío en el IDE de Arduino. A continuación, se
desconectan las conexiones comentadas, para que al subir el código vacío a la placa no se genere
ningún error. Una vez subido el código, se vuelven a realizar las conexiones, permaneciendo el
Arduino alimentado por el ordenador. Por ultimo, se abre el monitor serie y, ya es posible probar los
comandos AT del módulo WIFI ESP8266, para lo que será necesario ajustar adecuadamente la
velocidad de comunicación.

3.4. ESQUEMAS DEL SISTEMA IMPLEMENTADO


En la realización de este proyecto se han diseñado dos sistemas de cuantificación de gases. Un diseño
contemplado a la toma de medidas de emisiones de CO2 en exteriores en un sistema portátil, a medida
que los vehículos se desplacen por la ciudad, y otro diseño estático que permitirá cuantificar la calidad
del aire en edificios e industrias.

3.4.1. ESQUEMA DE UN SISTEMA PORTÁTIL DE MEDIDA DE


EMISIONES DE CO2

Este sistema dispone de un sensor MQ135 calibrado para obtener medidas de concentraciones de CO 2
en exteriores, un sensor KY038 (para obtener medidas de la contaminación acústica en el ambiente),
un módulo SIM808 GSM/GPRS + GPS (que nos permite tener constancia de los puntos geográficos
en los que se ha tomado cada una de las medidas del sensor, mediante sus coordenadas de latitud y
longitud, y de la misma manera, registrar la fecha y la hora del instante en el que se ha obtenido).
Finalmente, dispone de un lector de memoria MicroSD, donde se almacenarán las lecturas de los
módulos para su posterior análisis.
En las pruebas realizadas, este sistema se ha alimentado por medio de dos baterías de 9V 1000mA,
encargadas de alimentar el Arduino NANO mediante su entrada de fuentes externas y el módulo
SIM808. La razón de que el módulo SIM808 tenga su propia fuente de alimentación se debe a que
cuando está transmitiendo datos, consume demasiada energía y podría llegar a dañar el Arduino.
En la Figura 35 se muestra el esquema de conexión de los distintos componentes montados con el
Arduino NANO que implementan el sistema portátil de medida.

Figura 35: Esquema de un sistema portátil de medida de emisiones de CO2


31

3.4.2. ESQUEMA DE UN SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE


LA CALIDAD DEL AIRE EN EDIFICIOS E INDUSTRIAS

Este sistema dispone de un sensor MQ135 sensible, en igual proporción, a ciertos gases como NH 3,
NOx, alcohol, benceno, humo, CO2 que permiten detectar la calidad del aire, y un sensor DHT11, el
cual nos ofrece las condiciones ambientales de temperatura y humedad en las que se han medido las
lecturas de los gases. A su vez, dispone de una pantalla LCD para la visualización de los datos de
temperatura, humedad y concentraciones de los gases en ppm, y un lector de memoria MicroSD
donde se almacenarán las lecturas de los módulos para su posterior análisis.
Se ha decidido montar este sistema usando un Arduino NANO alimentado a través de su cable mini
USB, permitiendo disponer de todos los módulos sobre una sola placa protoboard, reduciendo espacio
y contribuyendo a la no movilidad de este sistema fijo. Adicionalmente, si el sistema está conectado
mediante el cable mini USB al ordenador, se visualizarán los datos medidos a través del monitor serie.
En la Figura 36 se muestra el esquema de conexión de los distintos componentes montados con el
Arduino NANO que implementan el sistema estático de cuantificación de la calidad del aire.

Figura 36: Esquema de un sistema de cuantificación de la calidad del aire en edificios e industrias.

3.5. DESARROLLO SOFTWARE DE LOS SISTEMAS


MONTADOS
En este apartado se describe el funcionamiento de los dos sistemas desarrollados en este proyecto.

3.5.1. SISTEMA PORTÁTIL DE MEDIDAS DE CONCENTRACIONES DE


CO2

El primer diseño implementado trata de un sistema portátil colocado sobre un vehículo móvil que
proporciona medidas de concentraciones de CO2 cada 10 segundos. En dicho intervalo el sistema ha
tomado cinco medidas a través de la salida analógica del sensor MQ135 y ha almacenado en un
fichero de texto distribuido por columnas el promedio de las cinco medidas junto a las coordenadas de
latitud y longitud, y fecha y hora en UTC (Universal Time Coordinated, Tiempo Universal
32

Coordinado) donde se tomaron las lecturas. Además, a las medidas tomadas por el sensor se le han
realizado las siguientes operaciones: conversión de la lectura en ppm (partes por millón) a un valor de
tensión, calculo de la resistencia medida por el sensor (Rs) y obtención de la concentración de dióxido
de carbono por medio de la ecuación estimada como se explicará más adelante en el apartado
Resultados. Estos tres parámetros también se han almacenado en el fichero .txt distribuido por
columnas.
Para conseguir que el sistema realice estas funciones se ha diseñado un programa con el IDE de
Arduino cuyo código comentado se recoge en el Anexo G y en la Figura 37 se muestra un flujograma
explicando cada una de las partes de código que se ejecutaría en Arduino para ayudar a su
comprensión.
Setup() loop()

Se cargan librerías Se configura velocidad de comunicación Se crea fichero de almacenamiento


SoftwareSerial, SPI, SD serie, Arduino y SIM808
OK
OK
Se establece la clasificación por
Se cargan ruta de almacenamiento de ficheros
InicializacionTarjeta() columnas del fichero
y la longitud de cada uno de ellos
OK OK

ConfiguracionSIM808() Promedio de cinco lecturas medidas


Se definen las variables donde se guardan PIN, velocidad de comunicación, cada segundo Se incrementa en
los datos de las lecturas del sensor MQ-135 GPS, RMC una unidad el
OK
fichero de
escritura
OK OK Datos de posición y tiempo
Fallo en Error en apertura
configuración de fichero OK
módulo SIM808
OK
Se graba la lectura
Fallo en
inicialización Tras nFILAS de
tarjeta de lecturas grabadas
memoria
Error al cerrar el fichero OK
Se cierra fichero de escritura

Figura 37: Flujograma de funcionamiento de Sistema Portátil de medida de CO2 básico

La estructura del programa es la siguiente: en primer lugar, se han añadido las librerías necesarias
para interactuar con los módulos, SoftwareSerial, que permite crear una instancia del módulo SIM808
(se la ha denominado “GSMSerial”) para poder comunicarse con la placa, librería SPI (Serial
Peripheral Interface) que permite comunicar a los dispositivos por puerto serie con la placa Arduino
como master. En este caso permite la comunicación con una tarjeta de memoria microSD como
esclavo, asociando el pin digital 10 como slave select, y la librería SD para administrar archivos de
escritura y lectura. A continuación, se encuentran unas variables que pueden ser modificadas por el
usuario antes de cargar el programa en la placa. Dichas variables permiten cambiar la ruta de
almacenamiento de los ficheros, así como el número de líneas que desea que tenga el fichero de
almacenamiento. Después, se encuentran el resto de las variables correspondientes al sensor y a la
tarjeta de memoria.
Mediante la función setup() se han configurado a la misma velocidad de comunicación (9600 bps), la
instancia “GSMSerial” y la comunicación por el monitor serial para poder visualizar los datos durante
las pruebas. La velocidad de comunicación la impone el módulo SIM808 que en nuestro caso puede
ser diferente. Posteriormente, se han inicializado la tarjeta de memoria y el módulo SIM808. Si todo
ha ido bien, se accede a la función loop() donde se empiezan a grabar las lecturas en los ficheros
datosX.txt (“X” corresponde al número de fichero), dentro de la carpeta asignada. Dado que se
encuentra en un bucle infinito, la única forma de salir de él y, con ello finalizar el almacenamiento de
datos, es extrayendo la tarjeta de memoria microSD, perdiéndose las lecturas que se estaban grabando
en el fichero de almacenamiento justo en el instante de extracción de la tarjeta. Nuestra
recomendación es que el tiempo de grabación en cada fichero no sea superior a 10 minutos (60
lecturas) de modo que, en fallo del sistema, la pérdida de datos sea la menor posible. Para reanudar el
almacenamiento de los datos, se recomienda cambiar la ruta de la carpeta de almacenamiento, ya que,
al existir ficheros previos, los nuevos datos se copiarán a continuación, provocando un análisis
posterior erróneo de los datos.
Finalmente, para realizar un análisis de las medidas registradas, se necesita extraer la microSD del
módulo tarjeta de memoria e introducirla en el ordenador. Los pasos a seguir para la correcta
visualización de los datos con la herramienta Excel son los siguientes: [29]
33

Una vez abierto Excel en la barra de menús se accede a Archivo Abrir…y se localiza el archivo que
se desea importar. A continuación, se abre el asistente de importación, en el primer paso (Figura 38)
se escoge archivos delimitados.

Figura 38: Importación de fichero txt en Excel. Paso 1: Escoger archivos delimitados

En el segundo paso (Figura 39) en separadores se marca coma:

Figura 39: Importación de fichero txt en Excel. Paso 2: Marcar coma como delimitador de contenido en los datos

En el tercer paso (Figura 40) se accede a Avanzadas… y se intercambia el separador decimal por
punto y el separador de miles por coma:

Figura 40: Importación de fichero txt en Excel. Paso 3: Establecer el separador decimal por punto y el separador de miles por coma

Después de dar en Aceptar y Finalizar se visualizan los datos en Excel. A modo de ejemplo, en la
Figura 41, se muestran los datos de un fichero con 15 lecturas, cuando el sensor ha estado expuesto a
los gases de un mechero.
34

Figura 41: Representación en Excel de las lecturas del sensor MQ135 junto a sus coordenadas de latitud, longitud, fecha y hora

En el programa comentado se habrá observado que no existe ninguna manera de controlarlo una vez
se ha cargado el código en la placa y tampoco es posible saber sí algún componente ha fallado. En los
casos en que la inicialización de la tarjeta falle por faltar el ingreso de la microSD o se produzca un
fallo de conexiones, un error en la configuración del módulo SIM808 (no detecta SIM, GPS,…) o un
error en apertura del archivo de escritura entre otros, el sistema hubiese finalizado su ejecución sin
habernos percatado de ello.
El módulo SIM808 ofrece las funcionalidades de las redes GSM/GPRS, además de proporcionarnos la
localización geográfica. En anteriores soluciones, se ha visto implementar redes de nodos
inalámbricos y uso de las tecnologías IoT como medio para la transmisión y recibimiento de datos,
pero en ninguna solución se ha usado mensajes SMS para esa misma funcionalidad. Por ese motivo se
ha empleado el módulo SIM808 para controlar nuestro sistema por medio de mensajes SMS, y en
función del código enviado, el sistema realizará una operación u otra.
Para conseguir que el sistema realice estas funciones, ha sido necesario emplear una placa Arduino
MEGA (apartado 3.1.5.3.) debido a que la extensión del código es superior en memoria al máximo
disponible con las placas Arduino NANO y UNO. Las conexiones con la placa serán en los mismos
pines. Además, se ha añadido un sensor KY038 (apartado 3.3.5) para medir la contaminación acústica
en el ambiente y enviar un SMS cada vez que se supere el valor de 65 dB.
El código es muy similar al anterior, exceptuando que, a la configuración inicial del módulo SIM808,
se le han añadido los comandos AT necesarios para establecer el envío y recepción de mensajes en
modo texto. Se ha añadido el código referente al módulo KY038 y el sistema solo graba lecturas en un
archivo, permitiendo el almacenamiento y detención múltiples veces y la función loop() ha pasado a
ser un conjunto de bucles while, for y condicionales if, que en función del código recibido, realiza
unas operaciones y envía los resultados a los números de teléfono que se hayan indicado en el
programa. Por este motivo no se describe en detalle el código, que está completamente comentado en
el anexo H, y se pasa a describir el flujo de navegación del sistema que se muestra en la Figura 42.
El sistema empieza por inicializar la tarjeta de memoria microSD, y si encuentra algún error envía un
SMS avisando (Figura 44) y finaliza el programa. Si todo va bien, pasa a configurar el módulo
SIM808 (introducción de PIN tarjeta SIM, velocidad de comunicación, activación sentencia RMC
para obtención de coordenadas y tiempo UTC, activación código para recibir mensajes) que, tras su
finalización, enviará un mensaje de texto indicando que el sistema esta listo para la interacción con el
mismo (Figura 43). Los códigos de envió son los siguientes (Figura 45):
• @GPSON: activará el GPS de la tarjeta SIM asociada al módulo SIM808.
• @GRABAR: activará un archivo de escritura de tamaño (número de filas) determinado por el
usuario donde se almacenarán las lecturas medidas por los sensores MQ135 y KY038 y las
asociadas al comando AT+CGNSINF (coordenadas GPS) siempre y cuando se haya activado
previamente el GPS mediante el código de envío @GPS. Durante el almacenamiento de
35

lecturas se notificará al usuario si se ha detectado alguna concentración de CO 2 y


contaminación acústica superior a 400 ppm y 65 dB respectivamente. También se notificará si
se encuentra un error en la apertura del fichero de escritura, impidiendo continuar con la
ejecución del programa.
• @DATOS: se solicita al usuario una lectura de los sensores MQ135 y KY038, y que se envíe
por SMS a nuestro dispositivo para ser visualizada.
• GPSOF: desactivará el GPS
SISTEMA USUARIO

Comando Erróneo
Configuración Tarjeta
Fallo en
OK
inicialización
tarjeta de
memoria Configuración módulo OK / Informa Usuario
GPSON
SIM808

OK
Activando GPS

Fallo en
OK
inicialización
módulo SIM808 GRABAR

Midiendo lecturas de OK
los sensores y
grabando en fichero

OK

Error en apertura
de fichero

DATOS

OK
Midiendo lecturas

OK
GPSOF

OK
Desactivando GPS

Figura 42: Flujo de navegación de un Sistema portátil de medición de concentraciones de CO2

Figura 44: Notificación del Sistema ante fallo Figura 43: Notificación del sistema indicando que la configuración
de inicialización de la tarjeta de memoria inicial se ha completado y que esta esperando recibir ordenes
36

Figura 45: Códigos de interacción con el sistema

Se puede saber que la instrucción de un código ha finalizado cuando el sistema envíe el mensaje de
texto “Código enviado Correcto”. También notificará cuando se introduzca un código erróneo con el
mensaje de texto “Código enviado incorrecto”. El sistema permite interactuar todas las veces que se
desee mientras que no surja ningún fallo, pudiendo realizar múltiples grabaciones o lecturas seguidas,
pero si no se ha activado previamente el GPS, puede olvidarse conocer las coordenadas
espaciotemporales donde se han tomado las lecturas. A modo de ejemplo, en la Figura 46 se muestra
una interacción completa con el sistema.

Figura 46: Representación de interacción mediante comandos SMS con un


sistema portátil de medidas de concentraciones de CO2

También a modo de ejemplo, en la Figura 47 se muestran diez lecturas grabadas en un fichero cuando
el sensor de sonido ha sido expuesto a altos niveles de ruido.

Figura 47: Representación en Excel de las lecturas de los sensores MQ135 y KY038 junto a sus coordenadas de latitud, longitud,
fecha y hora
37

3.5.2. SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE LA CALIDAD


DEL AIRE EN EDIFICIOS E INDUSTRIAS

El segundo diseño implementado trata de un sistema estático que permite cuantificar la calidad del
aire en edificios e industrias y que proporciona distintas alternativas de visualización de los datos, en
tiempo real a través del monitor serie cuando el sistema esta conectado por cable mini USB al
ordenador y por medio de una pantalla LCD o posteriormente mediante la extracción de la tarjeta de
memoria microSD donde se graban las lecturas. El sistema proporciona medidas de los sensores
MQ135 y DHT11 cada 5 segundos. En dicho intervalo el sistema ha tomado cinco lecturas de las
concentraciones de los gases sensibles al sensor MQ135 junto a sus condiciones ambientales de
temperatura y humedad en la que se han medido las respectivas lecturas, y ha almacenado en un
fichero de texto distribuido por columnas el promedio de las cinco lecturas correspondientes a la
concentración de gases en partes por millón (ppm), temperatura en grados centígrados (ºC) y humedad
relativa en tanto por ciento (%). Además, a las medidas tomadas por el sensor MQ135 se le han
realizado las siguientes operaciones: conversión de la lectura en ppm a un valor de tensión, calculo de
la resistencia medida por el sensor (Rs) y obtención de la concentración de dióxido de carbono por
medio de la ecuación estimada como se explicará más adelante en el apartado Resultados. Estos tres
parámetros también se han almacenado en el fichero txt distribuido por columnas.
Para conseguir que el sistema realice estas funciones se ha diseñado un programa con el IDE de
Arduino cuyo código comentado puede verse en el Anexo I y en la Figura 48 se muestra un
flujograma explicando cada una de las partes de código que se ejecutaría en Arduino para ayudar a su
comprensión.
Setup() loop()

Se cargan librerías Se configura velocidad de comunicación Se crea fichero de almacenamiento


SPI, SD, DHT, LiquidCrystal monitor serie
OK
OK
Se establece la clasificación por
Inicialización sensor DHT11 columnas del fichero
Se definen los objetos tipo
LiquidCristal, DHT y FILE asociados OK
OK
a las líbrerias que facilitan la
interacción con los módulos Promedio de cinco lecturas medidas cada
Inicialización display LCD
segundo de los sensores MQ-135 y DHT11 Se incrementa en
OK una unidad el
OK
Se cargan ruta de almacenamiento de ficheros fichero de
y la longitud de cada uno de ellos InicializacionTarjeta() escritura
Se graba la lectura

Se definen las variables donde se guardan los OK OK


datos de las lecturas del sensor MQ-135 y DHT11
Se visualiza la lectura por monitor serie
Error en apertura
OK de fichero
OK

Se visualiza la lectura por display LCD


Fallo en
inicialización Tras nFILAS de
tarjeta de lecturas grabadas
memoria Error al cerrar el fichero OK
Se cierra fichero de escritura

Figura 48: Flujograma de Funcionamiento de Sistema estático de cuantificación de la calidad del aire

La estructura del programa es la siguiente: en primer lugar, se han añadido las librerías necesarias
para interactuar con los módulos, la librería SPI (Serial Peripheral Interface) que permite comunicar a
los dispositivos por puerto serie con la placa Arduino como master, en este caso permite la
comunicación con una tarjeta de memoria microSD como esclavo asociando el pin digital 10 como
slave select, la librería SD para administrar archivos de escritura y lectura, la librería DHT Sensor
Library que facilita el uso del sensor DHT11 para obtener los valores de temperatura y humedad
mediante la creación de un objeto tipo DHT (se indica el pin digital de la placa Arduino al que esta
conectado el sensor y el tipo del sensor DHT) para obtener las funciones asociadas readTemperature()
y readHumidity(), y la librería LiquidCrystal() que permite crear un objeto (como argumentos se
indica los pines de la placa Arduino, conectados a los diferentes pines del display) que representa al
display LCD facilitando la programación del dispositivo.
A continuación, se encuentran unas variables que pueden ser modificadas por el usuario antes de
cargar el programa en la placa. Dichas variables permiten cambiar la ruta de almacenamiento de los
ficheros, así como el número de líneas que desea que tenga el fichero de almacenamiento. Después, se
38

encuentran el resto de las variables correspondientes a los sensores DHT11, MQ135 y a la tarjeta de
memoria.
En la función setup() se ha configurado la comunicación serial a 9600 bps, se ha inicializado el sensor
DHT11, el display lcd indicando el tamaño mediante dos argumentos, el primero la anchura en
caracteres y el segundo la altura (número de filas) y la tarjeta de memoria.
Si todo ha ido bien, se accede a la función loop() donde se empiezan a grabar las lecturas en los
ficheros datosX.txt (“X” corresponde al número de fichero) dentro de la carpeta asignada,
visualizándose los datos por el display LCD, indicando previamente la posición del cursor en el
primer carácter de la primera fila mediante la función setCursor(0,0), y por monitor serie donde
además de visualizarse los datos se indica el fichero de grabación respectivo actual y los errores que
puedan surgir en la inicialización de los módulos y en la grabación de las lecturas.
Dado que se encuentra en un bucle infinito, la única forma de salir de el y con ello finalizar el
almacenamiento de datos es extrayendo la tarjeta de memoria microSD. Para reanudar el
almacenamiento de los datos se recomienda cambiar la ruta de la carpeta de almacenamiento, ya que,
al existir ficheros previos, los nuevos datos se copiarán a continuación provocando un análisis
posterior erróneo de los datos. Lo mismo ocurre, si una vez ejecutado el programa se abre el monitor
serie, por lo que se recomienda abrirlo según ha terminado de subirse el código a la placa y
mantenerlo abierto.
A modo de ejemplo, en la Figura 49 se muestran los datos de un fichero con 15 lecturas cuando el
sensor ha sido expuesto a los gases de un mechero, en la Figura 50 la visualización de los datos a
través del display LCD y en la Figura 51 la visualización de las medidas por medio del monitor serie.

Figura 50: Representación en Excel de las concentraciones de gases en ppm, temperatura y humedad medidas por un sistema
estático de cuantificación de calidad del aire

Figura 49: Visualización de la concentración de gases en ppm, temperatura y humedad a través de


un display LCD de las medidas tomadas por un sistema estático de cuantificación de calidad del aire
39

Figura 51: Visualización de la concentración de gases en ppm, temperatura y humedad a través del monitor serie del IDE de
Arduino de las medidas tomadas por un sistema estático de cuantificación de calidad del aire

Es importante destacar que la visualización de los datos en tiempo real está disponible solo para dos
personas: la persona que este haciendo uso del ordenador a través del cual se alimenta el sistema y
para cualquier otra persona que observe la pantalla LCD asociada al sistema.
En un sistema de cuantificación de calidad del aire se considera que los datos deben estar disponibles
para todos los empleados y usuarios de una misma oficina o industria, incluyéndose al profesional
encargado de analizar las lecturas medidas. Para ello, se ha hecho uso de las tecnologías de redes
inalámbricas añadiendo al sistema un módulo WIFI ESP-01S que establece un servidor web al que se
transmiten los datos de los sensores para su visualización.
Para evitar duplicidad de código en la memoria y facilitar la lectura del lector, se ha diseñado un
programa con el IDE de Arduino, cuyo código comentado puede verse en el Anexo J y donde
únicamente se ha empleado el módulo ESP-01S y las lecturas de los sensores MQ-135 y DHT11 con
una placa Arduino UNO. En la Figura 52 se muestra un flujograma explicando cada una de las partes
de código que se ejecutaría en Arduino para ayudar a su comprensión.
Setup() loop()

Se cargan librerías Se configura velocidad de comunicación Se detecta un nuevo dispositivo


SoftwareSerial, DHT monitor serie a 9600 bps conectado al servidor

OK OK

Se configura velocidad de la instancia Se obtiene el número de conexión del


Se definen el objeto tipo DHT y la
SW módulo WIFI a 115200 bps nuevo dispositivo usando la función find()
instacia SW asociados a las
librerías que facilitan la OK OK
interacción con los módulos
Inicialización sensor DHT11 Se genera un String con la inicialización
de las etiquetas html de una página
OK
Se definen las variables donde se guardan los OK OK
Configuración inicial
datos de las lecturas del sensor MQ-135 y DHT11 módulo WIFI. Se despliega Se actualiza la
Promedio de cinco lecturas medidas cada
un servidor web segundo de los sensores MQ-135 y DHT11 página cada 5
OK segundos
OK mientras que haya
dispositivos
Error en la Se genera el código html correspondiente a una tabla, conectados al
incluyendo las lecturas y se cierra el String html servidor
configuración del
módulo WIFI OK

Calcula la longitud del String html generado

OK
Se realizan dos envíos al módulo WIFI con el comando
AT+CIPSEND
1. Número de conexión del dispositivo y la longitud del
String html que se le quiere mandar.
2. Se envía la página html guarda en el String.
OK

Se cierra la conexión con el comando


AT+CIPCLOSE

Figura 52: Flujograma de Funcionamiento de Sistema estático de cuantificación de la calidad del aire con despliegue de servidor
Web
40

La estructura del programa es la siguiente: en primer lugar, se han añadido las librerías necesarias
para interactuar con los módulos, SoftwareSerial que permite crear una instancia del módulo ESP-01S
(se la ha denominado “SW” asignando los pines digitales 2 y 3 de la placa Arduino UNO como Rx y
Tx respectivamente) para poder comunicarse con la placa y la librería DHT Sensor Library que
facilita el uso del sensor DHT11 mediante la creación de un objeto tipo DHT para obtener las
funciones asociadas readTemperature() y readHumidity(). A continuación, se encuentran las variables
correspondientes a los sensores.
En la función setup() se ha configurado la velocidad de comunicación para el monitor serie a 9600 bps
y la instancia “SW” a 115200 bps. También, se ha inicializado el sensor DHT11 y la configuración
inicial del módulo WIFI mediante comandos AT, donde se establece el modo WIFI como cliente, se
introduce el SSID y la contraseña del punto de acceso de la conexión a red, se configura para recibir
múltiples conexiones y se activa el servidor web en el puerto 80.
En la función loop() se extraen las lecturas de los sensores como en previos programas y se consulta si
el módulo WIFI ha enviado datos a Arduino. Si hay datos recibidos, se obtiene el número de la
conexión (es decir, un nuevo dispositivo se ha conectado al servidor desplegado en el puerto 80)
buscando en la sentencia recibida lo siguiente a la cadena “IPD,” y se genera una variable String que
incluye una página en html con las lecturas en tiempo real proporcionadas por los sensores en formato
tabla y con actualización de la página cada cinco segundos. Finalmente, se calcula la longitud de la
variable “pagina” y se realizan dos envíos aplicando el comando “AT+CIPSEND”: en el primero se
envía el número de la conexión y la longitud de la página, y en el segundo se envía la página con toda
la estructura html creada. Por ultimo, se cierra la conexión mediante el comando
“AT+CIPCLOSE=conexion”.
A modo de ejemplo, en la Figura 53 se muestra una captura del servidor web desplegado con la
visualización de las lecturas accediendo por medio de su dirección IP “192.168.43.254”, la cual se ha
obtenido con el comando “AT+CIFSR” previamente a la ejecución del programa.

Figura 53: Visualización de la concentración de gases en ppm, temperatura y humedad a través del despliegue de un servidor Web
de las medidas tomadas por un sistema estático de cuantificación de calidad del aire
41

4. RESULTADOS
En el apartado desarrollo se han descrito los módulos y placas más adecuados para implementar en
nuestro sistema. En este apartado se describe el procedimiento de calibración del sensor MQ-135 así
como las medidas de prueba realizadas.

4.1. CALIBRACIÓN DEL SENSOR MQ-135


El proceso de calibración consiste en detectar la desviación que tiene el sensor objeto de estudio
respecto a la realidad, que será distinta para cada sensor. Es necesario realizar dicha calibración
cuando se realicen las medidas en campo.

4.1.1. ESTIMACIÓN CURVA CO2 POR MÍNIMOS CUADRADOS

La hoja de características del fabricante proporciona las curvas de sensibilidad de los distintos gases
detectados por el sensor MQ-135 en unas condiciones dadas de temperatura estándar de 20ºC y 65%
de humedad relativa (Figura 54). También, proporciona información sobre la sensibilidad del sensor
en condiciones de 33% y 85% de humedad relativa (Figura 55).

Figura 54: Curvas de sensibilidad del sensor MQ-135 para varios gases

Figura 55: Dependencia del sensor MQ-135 por temperatura y humedad


42

Observando las escalas de los ejes de las curvas de sensibilidad del sensor MQ-135 para varios gases,
se puede ajustar la curva a una función potencial del tipo y = a · xb , donde a es el factor de escala, b
es un exponente y x representa la concentración en partes por millón (ppm):
𝑅𝑠
𝑦= (2)
𝑅𝑜
Para calcular los parámetros del modelo, se toman varios puntos (X i, Yi) y, haciendo una
aproximación por mínimos cuadrados, se obtienen los valores de las incógnitas “a” y “b”. El proceso
es el siguiente:

(3)

Para la obtención de las incógnitas se ha creado un programa en MATLAB® [80] cuyo código se
presenta en el Anexo E, y que sirve para ajustar cualquier curva de sensibilidad de los distintos
sensores de la familia MQ por aproximación de mínimos cuadrados.
Para ello, se ha implementado un bucle while en el que se solicita al usuario que introduzca las
coordenadas (x, y) hasta que éste desee salir del mismo, mediante la introducción de un comando de
control, denominado ‘s’. A continuación, se obtienen los parámetros a (factor de escala) y b
(exponente) como se ha definido en el proceso, realizándose una representación gráfica para comparar
la curva original con la obtenida por el ajuste por mínimos cuadrados y, finalmente, se evalúa el error
de la suma [a·xib-yi]2, que debe ser mínimo para los valores de a y b obtenidos.
En nuestro caso, para obtener la curva de sensibilidad correspondiente al sensor MQ-135 para el gas
CO2 en las condiciones ambientales de 20ºC de temperatura y 65% de humedad relativa se han
tomado los siguientes puntos Xi Yi (Tabla 8):
Tabla 8: Pares (Xi, Yi) utilizados para obtener la curva de sensibilidad del sensor MQ-135 al CO2

Xi 10 20 30 40 50 60 70 80 90 100 200
Yi 2.3 1.8 1.6 1.5 1.4 1.3 1.2 1.1 1.08 1.05 0.8
43

Obteniéndose los siguientes resultados (Figura 56):

a = 5,2735
b = -0,3503
Ecuación buscada: y = 5,2735·x-0,3503
Error = 0,0000530493

Figura 56: Curva de sensibilidad del sensor MQ-135 para el gas CO2

4.1.2. CALCULO R O

En el apartado anterior se ha estimado la curva del gas CO2 del sensor MQ-135:
1 1
−0,3503
𝑅𝑠 𝑏 𝑅𝑠
𝑅𝑠 ( ) ( )
𝑅 𝑅𝑜
= 𝑎 · [𝑝𝑝𝑚]𝑏 → 𝑝𝑝𝑚 = ( 𝑜 ) → 𝐶𝑂2 = ( ) (4)
𝑅𝑜 𝑎 5,2735

Para poder medir concentraciones de este gas, es necesario calibrar un parámetro denominado R o, que
es una constante que equivale al valor de la resistencia del sensor cuando se expone a una
concentración de 100 ppm de amoniaco en aire limpio. En esta memoria se van a dar tres opciones de
calibración. En todas ellas, el primer paso consiste en un precalentamiento del sensor durante 24 horas
de forma ininterrumpida, con el objetivo de eliminar cualquier resto de humedad del proceso de
fabricación y, solamente debe hacerse la primera vez que se conecte.
Primera Opción: se calcula el valor de Ro en el laboratorio.
Segunda Opción: se necesita usar un aparato de medición de concentraciones de dióxido de carbono
para calibrar nuestro sensor. En este caso, el parámetro Ro se considerará constante quedando la
ecuación a estimar de la siguiente forma: 𝐶𝑂2 = 𝑎 ∗ (𝑅𝑆 )𝑏
Con el aparato de medición se tomarán dos muestras de CO 2, midiéndose con nuestro sensor el valor
Rs de dichas muestras, quedando un sistema de dos ecuaciones que al resolver permite conocer los
valores de los parámetros a y b.
Dado que para la realización de este proyecto no se ha dispuesto de un aparato de medición real de
concentraciones de CO2, las dos primeras opciones no se han podido llevar acabo para calibrar el
sensor.
Tercera Opción: se conecta el sensor a su alimentación durante un periodo de precalentamiento de 15
minutos para que empiece a darnos medidas fiables. A continuación, se toma la lectura analógica
44

ADC del sensor cada segundo durante 10 minutos y, para cada lectura, se calcula el valor de la
resistencia variable del sensor:

(5)

Se ha tomado como valor de resistencia de carga RL = 20 k, como viene especificado en la curva de
sensibilidad del sensor.
Posteriormente, se calcula el valor medio de los datos medidos, para obtener la resistencia media de
sensor:
∑𝑛1 𝑅𝑆
𝑅𝑠𝑀𝑒𝑑𝑖𝑎 = (6)
𝑛
Y, conociendo la cantidad actual del gas CO2 (para ello, se toma la lectura analógica del sensor en el
último instante de tiempo coincidente con el décimo minuto, aunque lo ideal hubiese sido haber
dispuesto de un dispositivo real de concentraciones de CO 2 para tomarla), se puede obtener la
constante Ro mediante la siguiente expresión:
𝑅𝑆 _𝑀𝑒𝑑𝑖𝑎
𝑅𝑜 = (7)
𝑎 · (𝑝𝑝𝑚𝐶𝑂2 𝑎𝑐𝑡𝑢𝑎𝑙 )𝑏

Se ha desarrollado un programa en Arduino que calcula la constante R o, como se ha descrito en la


tercera opción y cuyo código se presenta en el Anexo F.

4.2. MEDIDAS DE PRUEBA Y RESULTADOS ALCANZADOS


Siguiendo el procedimiento de calibración del sensor MQ-135 se ha ejecutado varias veces el código
presente en el Anexo F, obteniéndose los siguientes valores del parámetro RO (Tabla 9):
Tabla 9: Medidas realizadas del parámetro RO correspondiente a la curva del gas CO2 del sensor MQ-135

Mediciones Parámetro RO ()


Medición 1 20767,17
Medición 2 20614,6
Medición 3 20098,78
Medición 4 20678,1
Medición 5 20678,1
Medición 6 20767,17
Medición 7 20767,17

A la vista de los resultados obtenidos, en los códigos desarrollados en el apartado 3.5. se ha elegido el
valor de RO = 20767,17  para calcular las concentraciones de CO2 proporcionales a las lecturas de la
salida analógica del sensor MQ-135 en ppm.
Se ha probado el sensor MQ-135 midiendo las salidas de los gases del tubo de escape de dos
automóviles, en un lugar abierto donde previamente no había concentraciones de gases
contaminantes.
45

En la Figura 57 se muestra una imagen del montaje: sensor, tarjeta de memoria microSD de
almacenamiento de las lecturas y un juego de leds que indica como aumentan/reducen las
concentraciones detectadas al someterse a los gases salientes del tubo de escape. En las Figuras 58 y
59 se representan las gráficas de las concentraciones medidas durante diez minutos (120 lecturas)
desde que se arrancan los vehículos hasta un tiempo después de apagar el motor, comparándose la
salida analógica del sensor con la ecuación obtenida del gas CO 2. A la vista de los resultados se
observa que el automóvil más antiguo emite el doble de gases contaminantes que el vehículo nuevo,
como se era esperable. Sin embargo, también se observa la notable diferencia entre representar
directamente la salida analógica del sensor (ppm) con la obtenida por la estimación de la curva del gas
CO2 (ppm) calculada, cuyo razonamiento concluye que con el tercer procedimiento de calibración del
sensor MQ-135 también es necesario disponer de un aparato de medición real de concentraciones de
CO2.

Figura 57: Sensor MQ-135 midiendo los gases salientes de un tubo de escape

Salida analógica del sensor MQ-135 (ppm) Concentraciones de CO2 (ppm)


500 60
450
50
400
350 40
300
250 30
200
20
150
100 10
50
0 0
1
6
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
101
106
111
116
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
1
6

101
106
111
116

Coche Nuevo Coche Viejo Coche Nuevo Coche Viejo

Figura 59: Medida de concentraciones de gases (ppm) Figura 58: Medida de concentraciones de CO2 (ppm) salientes
salientes del tubo de escape de un coche del tubo de escape de un coche
46

En la Figura 60 se muestra el sistema portátil desarrollado montado en un coche.

Figura 60: Sistema Portátil de medida de concentraciones de CO2 montado sobre un coche

A la hora de poner en prueba el sistema portátil de medida de concentraciones de CO2 con control por
mensajes SMS han aparecido los siguientes errores que se esperan solucionar en líneas futuras de
desarrollo: el módulo SIM808 no es capaz de cargar la trama completa de coordenadas GPS cuando el
sistema está midiendo la lectura de dos sensores en el mismo instante y, por ello, no se graban los
datos de posición y tiempo en la tarjeta de memoria. Lo mismo ocurre cuando se tienen que medir las
lecturas y enviarlas a través de las redes GSM/GPRS. En ocasiones también se ha averiguado que por
algún motivo desconocido los comandos “@GRABAR” y “@DATOS” entran en conflicto
bloqueando el sistema e impidiendo la ejecución de nuevos comandos entrantes. También se ha
averiguado que el sensor MQ135 es incompatible con la librería TinyGPS que permite al módulo
SIM808 convertir los datos de posicionamiento global en formato NMEA en variables fáciles de usar
para latitud, longitud, altitud, hora, fecha y otra información.
Al margen de los fallos comentados, el sistema implementado aquí se ha desarrollado para realizar un
estudio de los niveles de contaminación encontrados en la comunidad de Madrid (CAM) centrándose
en las concentraciones de dióxido de carbono (CO2). Teniéndose en cuenta que la superficie de la
capital de Madrid es de 604,45 km2 [81] y que cada sistema portátil colocado en un vehículo móvil
circula en una pequeña área de unos 10 km2 con periodicidad para obtener unos resultados más
precisos, se ha considerado una cantidad de 60 sistemas adecuada para monitorizar la capital.
Finalmente, en función de los resultados comentados y con las posibles representaciones de los datos
representados a lo largo del apartado 3.5. se han considerado las siguientes funcionalidades para los
dos sistemas desarrollados en sus variables códigos:
47

- Circular por ciertas áreas con la misma periodicidad durante distintos días, periodos del año y
a diferentes horas del día para analizar como varían las concentraciones.
- Comparación de las concentraciones en parques y jardines con las encontradas en entornos de
alta contaminación como colegios, industrias y atascos.
- Comparación de las concentraciones producidas en un área cuando se encuentra sometida al
tráfico de vehículos y cuando está libre.
- Medición de la elevación de emisiones de concentraciones producidas por el tubo de escape
de un coche cuando se encuentra sometido a semáforos, badenes, atascos o limitaciones de
velocidad.
- Comparación de las concentraciones medidas por el sistema portátil en el exterior y el sistema
estático en el interior de una vivienda.
- Representación de las concentraciones en gráficos 3D destacándose las localizaciones con
concentraciones más elevadas.
48

5. CONCLUSIONES Y LÍNEAS FUTURAS

5.1. CONCLUSIONES
Se han diseñado e implementado dos sistemas de monitorización de calidad del aire de bajo coste y
alta eficiencia. El primer diseño trata de un sistema portátil de medida de CO2 implementado en
distintos tipos de vehículos urbanos que registra la posición, tiempo, contaminación acústica y medida
de dicho gas cada diez segundos, almacenando las lecturas en forma de fichero de texto en una tarjeta
de memoria que el sistema lleva incorporado y notificando al usuario de cualquier valor medido por
encima del umbral establecido a través de mensajes de texto. El sistema permite interactuar con el
usuario mediante códigos SMS como si de una aplicación móvil se tratase flexibilizando el manejo y
disponibilidad de los datos. El segundo diseño trata de un sistema estático que permite cuantificar la
calidad del aire en edificios e industrias midiendo datos de los distintos tipos de gases sensibles por el
sensor en partes por millón y los valores de temperatura y humedad correspondientes a las
condiciones ambientales en las que se han realizado las medidas cada cinco segundos y
almacenándose también las lecturas en forma de fichero de texto en una tarjeta de memoria. En este
segundo sistema se ha buscado encontrar distintas alternativas de visualización de los datos en tiempo
real a través del monitor serie, un display LCD y la transmisión de los datos por medio de las
tecnologías WIFI a un servidor Web desplegado por el mismo sistema.
Estos sistemas sirven para analizar los niveles de contaminación encontrados en entornos urbanos con
alta frecuencia de tráfico vehicular, cercanías a colegios, parques e industrias, y para evaluar la
calidad del aire en la que se encuentran los empleados de una fábrica, permitiendo aplicar
restricciones para disminuir las emisiones de gases de efecto invernadero y otros contaminantes por
diversas fuentes. También permite concienciar a las personas de usar transporte público y que
permanecer en lugares donde se han detectado altos niveles peligrosos de gases contaminantes y
respirar dicho aire pueden ser causa de alergias, enfermedades respiratorias e incluso la muerte.

5.2. LÍNEAS FUTURAS


Dentro de las líneas futuras que puedan desarrollarse como complemento a este TFG se propone
transmitir y almacenar los datos registrados a una base de datos (BB.DD.), a partir de la cual se
podrían representar gráficos en tiempo real y realizar un estudio con mayor rapidez y facilidad.
Se podría mejorar el sistema incorporando nuevos sensores para detectar mayor variedad de gases
contaminantes y nuevas funcionalidades como crear una página web y hacer que, mediante peticiones
HTTP el módulo SIM808 transmita las lecturas, sustituyendo la interacción con el sistema por
códigos SMS por una aplicación móvil que permita visualizar y controlar los módulos a distancia o
mantener ambas opciones.
También se podría extender el sistema para establecer una red de sensores que se comuniquen entre sí
inalámbricamente transmitiéndose los datos entre si y con una BB.DD.
Para trabajos futuros se propone montar el sistema en drones para hacer medidas a diferentes alturas
respetándose las restricciones impuestas por la legislación.
49

6. BIBLIOGRAFÍA

[1] T. Stein, «Rise of carbon dioxide unabated,» 4 June 2020. [En línea]. Available:
https://research.noaa.gov/article/ArtMID/587/ArticleID/2636/Rise-of-carbon-dioxide-unabated.
[Último acceso: 15 Junio 2020].
[2] M. McGrath, «Climate change: Greenhouse gas concentrations again break records,» 25
Noviembre 2019. [En línea]. Available: https://www.bbc.com/news/science-environment-
50504131. [Último acceso: 15 Junio 2020].
[3] «World Population Prospects 2019,» 17 June 2019. [En línea]. Available:
https://www.un.org/development/desa/publications/world-population-prospects-2019-
highlights.html. [Último acceso: 15 Junio 2020].
[4] «68% of the world population projected to live in urban areas by 2050, says UN,» 16 Mayo
2018. [En línea]. Available: https://www.un.org/development/desa/en/news/population/2018-
revision-of-world-urbanization-prospects.html. [Último acceso: 15 Junio 2020].
[5] B. Díaz, «El parque de vehículos en España crece un 8% en los últimos cinco años,» 16 Agosto
2019. [En línea]. Available: https://www.caranddriver.com/es/coches/planeta-
motor/a28718922/parque-vehiculos-espana-crecimiento/. [Último acceso: 15 Junio 2020].
[6] «Memoria del Secretario General sobre la labor de la Organización,» 2 Septiembre 2015. [En
línea]. Available: https://undocs.org/es/A/70/1. [Último acceso: 5 Junio 2020].
[7] «Urban air pollution – what are the main sources across the world?,» 30 Noviembre 2015. [En
línea]. Available: https://ec.europa.eu/jrc/en/news/what-are-main-sources-urban-air-pollution.
[Último acceso: 15 Junio 2020].
[8] «Urban air quality. Air pollution affects all areas of the world, with the population in urban
areas particularly exposed to high concentrations of small particulate matter (PM2.5).
Exposure to these concentrations can lead to major health problems.,» 18 Diciembre 2019. [En
línea]. Available: https://www.eea.europa.eu/themes/air/urban-air-quality. [Último acceso: 15
Junio 2020].
[9] «PROTOCOLO DE ACTUACIÓN PARA EPISODIOS DE CONTAMINACIÓN POR
DIÓXIDO DE NITRÓGENO EN LA COMUNIDAD DE MADRID,» [En línea]. Available:
https://www.esmadrid.com/sites/default/files/protocolo_anticontaminacion_08102018.pdf.
[Último acceso: 15 Junio 2020].
[10] D. Stojcsics, Z. Domozi y M. Andras, «Air Pollution Localisation Based on UAV Survey,»
2018. [En línea]. Available: https://ieeexplore.ieee.org/document/8616432. [Último acceso: 15
Junio 2020].
[11] R. A. Lara-Cueva, P. B. Menesses, M. D. Márquez, R. X. Gordillo y D. S. Benítez, «Air
Quality Monitoring System Within Campus by Using Wireless Sensor Networks,» 2019. [En
línea]. Available: http://www.kresttechnology.com/krest-academic-projects/krest-mtech-
projects/ECE/M-TECH%20EMBEDDED%20%202019-
20/2019%20IEEE%20BASE%20PAPERS/21.Air%20Quality%20Monitoring%20System%20
Within%20Campus.pdf. [Último acceso: 15 Junio 2020].
[12] B. A. Bravo Granda, E. J. Coronel González, L. A. Belduma Belduma y A. Soto Sarango,
«Desingning a wireless sensor network for vehicular traffic and CO2 pollution monitoring in
an urban area,» 2017. [En línea]. Available: https://ieeexplore.ieee.org/document/8240168.
[Último acceso: 15 Junio 2020].
50

[13] Y. Mohammed Faraukh, A. A. Mohammed Abdelkarim AL-Ali, A. Omar Adwan, A.


Alhammadi, M. Mubasshir Shaikh, A. Mohammed Faroukh y I. Fernini, «Environmental
Monitoring using Cansat,» 2019. [En línea]. Available:
https://ieeexplore.ieee.org/document/8905942. [Último acceso: 15 Junio 2020].
[14] A. Tapashetti, D. Vegiraju y T. Ogunfunmi, «IoT-Enabled Air Quality Monitoring Device,»
2016. [En línea]. Available: https://ieeexplore.ieee.org/abstract/document/7857352. [Último
acceso: 15 Junio 2020].
[15] J. I. Currie y G. Capper, «Urban road traffic pollution and its effect on indoor air quality,»
2009. [En línea]. Available: https://ieeexplore.ieee.org/document/5163731. [Último acceso: 15
Junio 2020 ].
[16] «Placa Waspmote. Hoja de características,» [En línea]. Available:
http://www.libelium.com/development/waspmote/documentation/waspmote-datasheet/.
[Último acceso: 15 Junio 2020].
[17] «Web oficial de Arduino. ARDUINO NANO,» 2020. [En línea]. Available:
https://store.arduino.cc/arduino-nano. [Último acceso: 15 Junio 2020].
[18] «Web oficial de Arduino. ARDUINO MEGA 2560,» 2020. [En línea]. Available:
https://store.arduino.cc/arduino-mega-2560-rev3. [Último acceso: 15 Junio 2020].
[19] «Raspberry Pi 4 Model B. Hoja de características,» June 2019. [En línea]. Available:
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_
1p0_preliminary.pdf. [Último acceso: 15 Junio 2020].
[20] «88MW32X 802.11n Wi-Fi® Microcontroller SoC. Hoja de características,» 10 Junio 2020.
[En línea]. Available: https://www.nxp.com/products/wireless/wi-fi-plus-bluetooth/88mw32x-
802-11n-wi-fi-microcontroller-soc:88MW32X. [Último acceso: 15 Junio 2020].
[21] «Placa de sensores de gases Waspmote 2.0. Hoja de características,» [En línea]. Available:
http://www.libelium.com/uploads/2013/02/gases-sensor-board_2.0_eng.pdf. [Último acceso:
15 Junio 2020].
[22] «MG811 CO2 Sensor. Hoja de características,» [En línea]. Available:
https://datasheetspdf.com/pdf-file/576123/ETC/MG811/1. [Último acceso: 15 Junio 2020].
[23] «MQ-135 GAS SENSOR. Hoja de características,» [En línea]. Available:
https://www.olimex.com/Products/Components/Sensors/Gas/SNS-MQ135/resources/SNS-
MQ135.pdf. [Último acceso: 15 Junio 2020].
[24] «MQ-9 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-9.pdf. [Último acceso: 15 Junio 2020].
[25] M. Paulasky, L. Waters, R. Counts y R. Jenkins, «Adapting the Brüel and Kjaer Multi-gas
Monitor Type 1302 to Measure Selected Volatile Organic Chemicals (VOCs) in Soil*,» 2008.
[En línea]. Available:
https://digital.library.unt.edu/ark:/67531/metadc694127/m2/1/high_res_d/52789.pdf. [Último
acceso: 15 Junio 2020].
[26] «XBee®/XBee-PRO® RF Modules.,» 23 Septiembre 2009. [En línea]. Available:
https://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-Datasheet.pdf. [Último acceso:
15 Junio 2020].
[27] «MAX-6 u-blox 6 GPS Modules. Hoja de características,» 2012. [En línea]. Available:
https://www.iot-lab.info/wp-content/uploads/2013/10/GPS_MAX6.pdf. [Último acceso: 15
Junio 2020].
51

[28] «KY-038 Microphone sound sensor module. Hoja de características,» 16 Junio 2017. [En
línea]. Available: https://datasheetspdf.com/pdf-file/1402048/Joy-IT/KY-038/1. [Último
acceso: 15 Junio 2020].
[29] «Tutorial Arduino y memoria SD y micro SD.,» [En línea]. Available:
https://naylampmechatronics.com/blog/38_Tutorial-arduino-y-memoria-SD-y-micro-SD-.html.
[Último acceso: 15 Junio 2020].
[30] «Reloj de tiempo real RTC DS3231. Extremely Accurate I2C-Integrated RTC/TCXO/Crystal.
Hoja de características,» 2015. [En línea]. Available:
https://datasheets.maximintegrated.com/en/ds/DS3231.pdf. [Último acceso: 15 Junio 2020].
[31] «Lipo Rider Pro. Hoja de características,» [En línea]. Available:
https://wiki.seeedstudio.com/Lipo_Rider_Pro/. [Último acceso: 15 Junio 2020].
[32] «USB to serial chip CH340. Hoja de características,» [En línea]. Available:
https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF. [Último acceso: 15
Junio 2020].
[33] «What is Arduino?,» 2020. [En línea]. Available:
https://www.arduino.cc/en/Guide/Introduction. [Último acceso: 15 Junio 2020].
[34] «Wikipedia. Arduino,» 2 Junio 2020. [En línea]. Available:
https://es.wikipedia.org/wiki/Arduino. [Último acceso: 15 Junio 2020].
[35] «Entornos de aplicación Arduino,» [En línea]. Available:
https://aprendiendoarduino.wordpress.com/2016/06/26/entornos-de-aplicacion-arduino/.
[Último acceso: 15 Junio 2020].
[36] «Wiring,» [En línea]. Available: http://wiring.org.co. [Último acceso: 15 Junio 2020].
[37] «Language Reference,» 2020. [En línea]. Available: https://www.arduino.cc/reference/en/.
[Último acceso: 15 Junio 2020].
[38] L. del Valle Hernández, «Breve introducción al Arduino. El Microcontrolador,» [En línea].
Available: https://programarfacil.com/blog/breve-introduccion-al-arduino/. [Último acceso: 15
Junio 2020].
[39] «Download the Arduino IDE,» 2020. [En línea]. Available:
https://www.arduino.cc/en/Main/Software. [Último acceso: 15 Junio 2020].
[40] «Arduino Software (IDE),» 2020. [En línea]. Available:
https://www.arduino.cc/en/Guide/Environment. [Último acceso: 15 Junio 2020].
[41] «Installing Additional Arduino Libraries,» 2020. [En línea]. Available:
https://www.arduino.cc/en/Guide/Libraries. [Último acceso: 15 Junio 2020].
[42] «Tutorial Arduino II: Librerias Arduino,» 28 Junio 2014. [En línea]. Available:
https://cetroniconline.blogspot.com/2014/06/tutorial-arduino-ii-librerias-arduino.html. [Último
acceso: 15 Junio 2020].
[43] «Placas Arduino,» [En línea]. Available:
https://aprendiendoarduino.wordpress.com/2017/06/19/placas-arduino-2/. [Último acceso: 15
Junio 2020].
[44] «ARDUINO UNO,» 2020. [En línea]. Available: https://store.arduino.cc/arduino-uno-rev3.
[Último acceso: 15 Junio 2020].
[45] «ATmega328P,» 2015. [En línea]. Available:
52

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-
Microcontrollers-ATmega328P_Datasheet.pdf. [Último acceso: 15 Junio 2020].
[46] «Drivers para modelo de placa Arduino NANO con circuito integrado FT232RL,» [En línea].
Available: https://www.ftdichip.com/Drivers/VCP.htm. [Último acceso: 15 Junio 2020].
[47] «Drivers para modelo de placa Arduino NANO con circuito integrado CH340G,» [En línea].
Available: http://www.wch-ic.com/downloads/CH341SER_EXE.html. [Último acceso: 15
Junio 2020].
[48] «Arduino as ISP and Arduino Bootloaders,» 2020. [En línea]. Available:
https://www.arduino.cc/en/tutorial/arduinoISP. [Último acceso: 15 Junio 2020].
[49] «Atmel ATmega640/V-1280/V-1281/V-2560/V-2561/V,» 2014. [En línea]. Available:
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2549-8-bit-AVR-Microcontroller-
ATmega640-1280-1281-2560-2561_datasheet.pdf. [Último acceso: 15 Junio 2020].
[50] Dräguer, «Introducción a los Sistemas de Detección de Gases,» 2009. [En línea]. Available:
https://www.draeger.com/Library/Content/9046703_infoflip_gds_es_l3.pdf. [Último acceso:
15 Junio 2020].
[51] «Tutorial sensores de gas MQ2, MQ3, MQ7 y MQ135,» [En línea]. Available:
https://naylampmechatronics.com/blog/42_Tutorial-sensores-de-gas-MQ2-MQ3-MQ7-y-
MQ13.html. [Último acceso: 15 Junio 2020].
[52] «Aplicaciones y características principales sensores de gas de la serie MQ,» [En línea].
Available: http://www.china-total.com/Product/meter/gas-sensor/Gas-sensor.htm. [Último
acceso: 15 Junio 2020].
[53] «MQ-2 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-2.pdf. [Último acceso: 15 Junio 2020].
[54] «MQ-3 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-3.pdf. [Último acceso: 15 Junio 2020].
[55] «MQ-4 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-4.pdf. [Último acceso: 15 Junio 2020].
[56] «MQ-5 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-5.pdf. [Último acceso: 15 Junio 2020].
[57] «MQ-6 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-6.pdf. [Último acceso: 15 Junio 2020].
[58] «MQ-7 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-7.pdf. [Último acceso: 15 Junio 2020].
[59] «MQ-8 GAS SENSOR. Hoja de características,» [En línea]. Available: http://www.china-
total.com/Product/meter/gas-sensor/MQ-8.pdf. [Último acceso: 15 Junio 2020].
[60] «Alcohol Gas Sensor. (Model: MQ303B). Manual,» 1 Mayo 2014. [En línea]. Available:
http://www.china-total.com/Product/meter/gas-sensor/MQ303B.pdf. [Último acceso: 15 Junio
2020].
[61] «MQ131 Semiconductor Sensor for Ozone. Hoja de características,» [En línea]. Available:
http://www.china-total.com/Product/meter/gas-sensor/MQ131.pdf. [Último acceso: 15 Junio
2020].
[62] «Hydrogen Sulfide Gas Sensor. (Model:MQ136). Manual,» 10 Marzo 2015. [En línea].
53

Available: http://www.china-total.com/Product/meter/gas-sensor/MQ136-new.pdf. [Último


acceso: 15 Junio 2020].
[63] «MQ137 Semiconductor Sensor for Ammonia. Hoja de características,» [En línea]. Available:
http://www.china-total.com/Product/meter/gas-sensor/MQ137.pdf. [Último acceso: 15 Junio
2020].
[64] « MQ138 Semiconductor Sensor for Organic Steam. Hoja de características,» [En línea].
Available: http://www.china-total.com/Product/meter/gas-sensor/MQ138.pdf. [Último acceso:
15 Junio 2020].
[65] «SIM808: GSM/GPRS + GPS Localización GPS, llamadas, mensajes e Internet,» [En línea].
Available: https://www.prometec.net/sim808/. [Último acceso: 15 Junio 2020].
[66] M. Álvarez-Campana y E. Vázquez Gallo, «Portal Web de la ETSIT UPM. Departamento de
Ingeniería de Sistemas Telemáticos. Redes de Comunicaciones Móviles. Redes 2G,» 2018. [En
línea]. [Último acceso: 15 Junio 2020].
[67] M. Álvarez-Campana y E. Vázquez Gallo, «Portal Web de la ETSIT UPM. Departamento de
Ingeniería de Sistemas Telemáticos. Redes de Comunicaciones Móviles. GPRS,» 2018. [En
línea]. [Último acceso: 15 Junio 2020].
[68] WIKIPEDIA, «GPS,» 5 Junio 2020. [En línea]. Available:
https://es.wikipedia.org/wiki/GPS#Funcionamiento. [Último acceso: 15 Junio 2020].
[69] «GSM/GPRS+GPS Module. Hoja de características,» [En línea]. Available:
https://simcom.ee/documents/SIM808/SIM808%20SPEC_V1507.pdf. [Último acceso: 15
Junio 2020].
[70] SIMCom, «SIM900_A T Command Manual_ V1.03,» 24 Diciembre 2010. [En línea].
Available: https://www.espruino.com/datasheets/SIM900_AT.pdf. [Último acceso: 15 Junio
2020].
[71] M. Electronics, «DHT11 Humidity & Temperature Sensor,» [En línea]. Available:
https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-
1143054.pdf. [Último acceso: 15 Junio 2020].
[72] L. SHENZHEN EONE ELECTRONICS CO., «Specification for LCD Module 1602A-1,» [En
línea]. Available: https://www.openhacks.com/uploadsproductos/eone-1602a1.pdf. [Último
acceso: 15 Junio 2020].
[73] Joy-IT, «KY-038 Microphone sound sensor module. Hoja de características,» 16 Junio 2017.
[En línea]. Available: https://datasheetspdf.com/pdf-file/1402048/Joy-IT/KY-038/1. [Último
acceso: 15 Junio 2020].
[74] L. Hernández y L. R. Barriere, «Diseño de un Monitor de Parámetros Ambientales para
Unidades de Cuidados Intensivos Neonatales.,» Noviembre 2017. [En línea]. Available:
10.24254/cnib.17.7. [Último acceso: 15 Junio 2020].
[75] S. Benito, «NIVELES DE CONTAMINACIÓN ACÚSTICA EN LA CIUDAD,» 11 Abril
2018. [En línea]. Available: https://www.salesa.es/es/noticias/niveles-de-contaminacion-
acustica-en-la-ciudad/_noticia:136/. [Último acceso: 15 Junio 2020].
[76] «Web oficial de ESPRESSIF. ESP8266,» [En línea]. Available:
https://www.espressif.com/en/products/socs/esp8266/overview. [Último acceso: 15 Junio
2020].
[77] «ESP-01 WiFi Module. Hoja de características,» [En línea]. Available:
54

http://www.microchip.ua/wireless/esp01.pdf. [Último acceso: 15 Junio 2020].


[78] PROMETEC, «MODIFICANDO EL FIRMWARE ESP8266,» [En línea]. Available:
https://www.prometec.net/firmware-esp8266/. [Último acceso: 15 Junio 2020].
[79] «Tutorial de comandos AT módulos WIFI ESP8266,» [En línea]. Available:
https://cdn.instructables.com/ORIG/FNH/02M6/IRXT1COS/FNH02M6IRXT1COS.pdf.
[Último acceso: 15 Junio 2020].
[80] H. Moore, «MATLAB® for Engineers,» [En línea]. [Último acceso: 15 Junio 2020].
[81] WIKIPEDIA, «Madrid,» [En línea]. Available: https://es.wikipedia.org/wiki/Madrid. [Último
acceso: 15 Junio 2020].
[82] «Portal Web de la ETSIT UPM. Electrónica e Instrumentación Básicas. Técnicas de soldadura
y material para prácticas,» 2016. [En línea]. [Último acceso: 15 Junio 2020].
[83] «Portal web de la ETSIT UPM,» [En línea]. Available: http://www.etsit.upm.es/.
55

ANEXO A: ASPECTOS ÉTICOS, ECONÓMICOS,


SOCIALES Y AMBIENTALES

A.1 INTRODUCCIÓN
La utilización de dispositivos portátiles de medida de emisiones de gases de efecto invernadero y
otros contaminantes puede llegar a ser muy útil en el mundo actual, pudiendo tenerse más
información acerca de la calidad del aire que respiramos, concienciar a la sociedad del cambio
climático que estamos presenciando y tomar restricciones para reducir las emisiones. Actualmente, el
problema se utilizan estaciones fijas de medición situadas en ciertas zonas que, en función de los
datos que suministran, toman medidas en un territorio mayor al de su detección. Con el fin de obtener
una mayor granularidad en la medida, con una resolución espacio temporal más adecuada, se
necesitarían instalar nuevas estaciones de medición, cuya construcción y mantenimiento sería
demasiado costoso. Por este motivo, nacen este tipo de dispositivos montados sobre vehículos móviles
de bajo coste y reducido mantenimiento, que pueden operar de manera autónoma y con
monitorización remota centralizada. En temas sociales este proyecto permite mejorar la calidad de la
vida de las personas en entornos urbanos fundamentalmente donde es más necesario controlar las
concentraciones de los gases que se emiten. Este proyecto se enmarca en determinados grupos de
interés entre los que se destacan tres, los clientes o usuarios del producto final, que corresponde con
instituciones políticas, empresas privadas y centros de investigación donde se continuará
desarrollando el producto y analizando los datos recolectados, el medio ambiente interesado en
reducir emisiones y concienciar a la gente de tomar medidas de desarrollo sostenible y los
concesionarios de venta de vehículos, desfavorecidos por el apoyo al transporte público y que
requieren de una transición hacia los coche eléctricos y de hidrógeno. En relación a los temas
ambientales, es posible reducir residuos instalando una alimentación del equipo mediante baterías
recargables, por placas solares o directamente el conexionado del dispositivo a la alimentación del
vehículo de forma cómoda y eficiente.

A.2 DESCRIPCIÓN DE IMPACTOS RELEVANTES


RELACIONADOS CON EL PROYECTO
Socialmente, estos dispositivos están destinados a suministrar medidas de calidad del aire y, en
función de los resultados obtenidos, aplicar restricciones de movilidad urbana privada, lo que puede
suscitar una controversia entre determinados tipos de usuarios por limitarles el uso de sus automóviles
al no cumplir con la clasificación ambiental establecida en episodios de contaminación.
Económicamente, no son dispositivos caros ya que están constituidos por unos cuantos sensores y
componentes montados sobre una placa, cuya fabricación en masa reduce el precio de la unidad.
En cuanto al impacto ambiental es destacablemente el más importante y por ello se realizará un
análisis detallado en la siguiente sección.

A.3 ANÁLISIS DETALLADO DE ALGUNO DE LOS


PRINCIPALES IMPACTOS
El impacto ambiental es el más importante de todos. La idea de disponer de una red de dispositivos
operativos las 24h del día, movilizando y analizando la calidad del aire de un completo entorno
urbano puede proporcionar mucha más información acerca de los gases medidos en el aire en tiempo
real y a partir de dicho conocimiento implantar nuevas y modificaciones en las restricciones actuales
del tráfico y quema de combustibles entre otros con el objetivo de frenar la pendiente del
calentamiento global. Sin embargo, queda bajo responsabilidad del usuario, empresa o entidad pública
la correcta utilización de los dispositivos y el adecuado sistema de desecho y reciclado de los
56

elementos electrónicos que se estropeen, ya que contiene componentes perjudiciales para el medio
ambiente y la salud si no son reciclados adecuadamente bajo las normas vigentes.

A.4 CONCLUSIONES
El proyecto desde el punto de vista ético es indiferente. Como se ha visto tras analizar los aspectos
sociales, económicos y medioambientales involucrados en el proyecto, este puede generar un gran
beneficio en la reducción de las emisiones fundamentalmente en entornos urbanos y en la salud de las
personas. Todo ello puede generar un valor añadido al proyecto.
ANEXO B: PRESUPUESTO ECONÓMICO

COSTE DE MANO DE OBRA (coste directo)


Horas Precio/Hora TOTAL
450 15 € 6.750 €

COSTES DE RECURSOS MATERIALES (coste directo)


Elemento Precio Uso en meses Años Amortización Total
Ordenador personal (Software incluido) 1.500,00 € 9 5 225,00 €
Arduino UNO R3 19,90 € 0 0 19,90 €
Cable USB azul para UNO R3 2,40 € 0 0 2,40 €
RPS 9V 1A cargador alimentador compatible con Arduino UNO 13,95 € 0 0 13,95 €
Arduino NANO 4,99 € 0 0 4,99 €
Cable USB 2.0 Macho a mini B 2,93 € 0 0 2,93 €
Kit 65 cables jumper macho-macho 2,25 € 0 0 2,25 €
40 cables jumper macho-hembra 2,56 € 0 0 2,56 €
Protoboard (x2) 5,54 € 0 0 5,54 €
Sensor MQ135 (x2) 11,58 € 0 0 11,58 €
SIM808: GSM/GPRS + GPS 32,99 € 0 0 32,99 €
Lector Micro SD (x2) 9,98 € 0 0 9,98 €
Tarjeta Micro SD 16 GB (x2) 11,98 € 0 0 11,98 €
Tarjeta SIM 4GB 6,95€/mes 34,75 € 0 0 34,75 €
Baterias recargables 9V 1000mA (x2) 16,99 € 0 0 16,99 €
Conector de clip de bateria 9V a DC Alimentación adaptador Arduino (x2) 4,36 € 0 0 4,36 €
Sensor DHT11 6,79 € 0 0 6,79 €
LCD1602A 4,69 € 0 0 4,69 €
Sensor KY038 1,38 € 0 0 1,38 €
Módulo WIFI ESP8266-01S 7,29 € 0 0 7,29 €
Potenciometro 10KΩ, resistencias y LEDs 2,00 € 0 0 2,00 €
Soldador 10,99 € 7 5 1,28 €
Soldadura de alambre de estaño 1,00 € 0 0 1,00 €
TOTAL 426,58 €

TOTAL
Coste Total
Mano de obra 6.750 €
Recursos materiales 426,58 €
Gastos Generales (costes indirectos) 15% sobre CD 1.076,49 €
Beneficio Industrial 6% sobre CD+CI 495,18 €
SUBTOTAL 8.748,25 €
IVA (21%) 1.837,13 €
TOTAL 10.585,39 €
ANEXO C: SOLDADURA DE PINES PLACA
ARDUINO NANO
La placa Arduino Nano viene con los pines sin montar (Figura 61), por lo que se hace necesario
realizar una breve descripción del proceso de soldadura de los pines.
Según [82], la soldadura de los pines (Figura 62) se logra fundiendo unas aleaciones especiales que
suelen ser de estaño-plomo o estaño-plata de bajo punto de fusión mediante la aplicación de calor. El
calor se aplica sobre los terminales (pines) hasta que estos estén calientes. Posteriormente, se acerca el
hilo de estaño al punto donde se va a realizar la soldadura, tocando con el estaño los pines a soldar,
nunca la punta del soldador. Una vez fundido el estaño, se retira el hilo y el soldador, quedando una
unión pin-placa de baja resistencia óhmica.
El elemento calefactor o soldador suele tener forma de lápiz con punta de cobre estañado, que es
calentado por una resistencia, de la que está aislada eléctricamente. Las potencias del soldador oscilan
entre 15W y 250W. En la soldadura sobre pistas de circuitos impresos será suficiente con soldadores
de baja potencia (15 a 35W).

Figura 61: Visión de placa Arduino Nano con y sin los pines soldados Figura 62: Soldadura de pines.
El soldador aplica calor sobre el pin, y el pin
sobre el estaño que al fundirse moja la pista de
cobre y el pin.
ANEXO D: PROGRAMA EN ARDUINO QUE CARGA
LA COMUNICACIÓN SERIE ENTRE EL MÓDULO
SIM808 Y EL ARDUINO UNO PARA PROBAR LOS
COMANDOS AT MANUALMENTE
ANEXO E: PROGRAMA EN MATLAB PARA EL
CALCULO DE LA CURVA DEL GAS CO2 DEL
SENSOR MQ135 POR AJUSTE POR MÍNIMOS
CUADRADOS
%% Calibracion del sensor MQ135
clear, clc
n = 0;
x = []; % ppm
y = []; % Rs/Ro
x_new = [];
y_new = [];

disp('Calculo de la ecuacion correspondiente a la curva de CO2');


disp('Tomamos varios puntos Xi Yi');

while(1)
n = n+1;

x_valor = input('Introduzca un valor de x ("s" para salir): ');


if x_valor == 's'
break
end
x(n) = x_valor;
x_new(n) = log(x(n));

y_valor = input('Introduzca un valor de y ("s" para salir): ');


if y_valor == 's'
break
end
y(n) = y_valor;
y_new(n) = log(y(n));

clc
end

% Solucion de un sistema de ecuaciones lineales en forma matricial A·X=B


A = [ones(n-1,1) x_new'];
B = y_new';
% X=A\B; %Resolucion por eliminacion de Gauss
X=A\B;
%Obtencion de incognitas
a = exp(X(1)); % c= X(1)
b = X(2);
fprintf('El factor de escala asociado al gas CO2 vale %6.4f\n', a)
fprintf('El exponente asociado al gas CO2 vale %6.4f\n', b)

% Representacion grafica
h = plot(x,y,'-rs');
set(h,'Color','k','LineStyle','-','MarkerEdgeColor','r', 'LineWidth',2,
'MarkerFaceColor','g', 'MarkerSize',5);
title('Curva de sensibilidad del sensor MQ-135 para CO2');
xlabel('ppm');
ylabel('Rs/Ro');
grid;
hold on
y1 = a*(x.^b); %Curva obtenida del ajuste por minimos cuadrados
t = plot(x,y1, '-ro');
set(t,'Color','r','LineStyle','-','MarkerEdgeColor','k', 'LineWidth',2,
'MarkerFaceColor','b', 'MarkerSize',5);
legend('Curva original','Curva obtenida del ajuste por minimos cuadrados');
hold off;

% Calculo del error debido al ajuste de la curva por minimos cuadrados


Error = sum(a.*x.^b-y)^2;
fprintf('Recta de regresion --> Error= %6.10f\n', Error)
ANEXO F: PROGRAMA EN ARDUINO PARA
CALIBRACIÓN DEL PARÁMETRO R O DE LA
CURVA DEL GAS CO2 DEL SENSOR MQ-135
ANEXO G: PROGRAMA EN ARDUINO PARA UN
SISTEMA PORTÁTIL DE MEDIDAS DE
CONCENTRACIONES DE CO2 SIN CONTROL
ANEXO H: PROGRAMA EN ARDUINO PARA UN
SISTEMA PORTÁTIL DE MEDIDAS DE
CONCENTRACIONES DE CO2 CON CONTROL POR
MENSAJES SMS
ANEXO I: PROGRAMA EN ARDUINO PARA UN
SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE LA
CALIDAD DEL AIRE EN EDIFICIOS E INDUSTRIAS
ANEXO J: PROGRAMA EN ARDUINO PARA UN
SISTEMA ESTÁTICO DE CUANTIFICACIÓN DE LA
CALIDAD DEL AIRE EN EDIFICIOS E INDUSTRIAS
POR VISUALIZACIÓN DE LOS DATOS MEDIANTE
DESPLIEGUE DE UN SERVIDOR WEB
Firmado: Víctor de Pablo Gozalo.

Madrid, 18 de junio de 2020

También podría gustarte