View
4
Download
0
Category
Preview:
Citation preview
UNIVERSIDAD ANDRÉS BELLO
Facultad de Ingeniería
Escuela de Industrias
FACYM: Prototipo de purificador de aire con monitoreo remoto.
Tesis de pregrado para optar al título de Ingeniero en Automatización y Robótica
Autor:
Diego Antonio Molina Aravena
Profesor Guía: Néstor Palominos González
Santiago de Chile, 2017
2
UNIVERSIDAD ANDRES BELLO
FACULTAD DE INGENIERÍA
ESCUELA DE INDUSTRIAS
INGENIERÍA EN AUTOMATIZACIÓN Y ROBÓTICA
DECLARACIÓN DE ORIGINALIDAD Y PROPIEDAD
Yo, Diego Molina Aravena, declaro que este documento no incorpora material de otros
autores sin identificar debidamente la fuente.
Santiago, Diciembre2017
_____________________________
Firma del alumno
3
Dedicado a todos los que creyeron
y me apoyaron en este camino,
a mis padres Jaime y a mis madres Patricia y Miriam
a mis hermanos Angela, Paloma y Jaime,
a mis suegros Jorge y Blanca,
a mi novia Carolina que me ha acompañado en este camino,
a todos aquellos que me apoyaron
y ayudaron en esta tarea
y a todos aquellos que creen
en la construcción de un mundo mejor.
Diego Antonio Molina Aravena
4
Agradecimientos
Agradecimientos para quienes confiaron y me apoyaron en este arduo camino, mi
familia, aunque fue complicado, me apoyaron en todas mis decisiones, siempre
motivándome y guiándome por el camino correcto.
Agradezco a mis compañeros y amigos, que siempre estuvieron conmigo,
ayudándome y permitiéndome obtener otro punto de vista en los momentos
difíciles.
Agradezco a mi novia Carolina, quien me acompaño en los momentos difíciles, su
incondicional apoyo, fue un escalón clave para lograr mis objetivos y llevar a cabo
esta dura tarea.
Agradezco a mi profesor guía y amigo, Néstor Palominos, quien me enseño y me
dio las herramientas a lo largo de mi etapa de formación, para lograr
desarrollarme, potenciarme y pulirme como un verdadero ingeniero.
5
Contenido
Agradecimientos ...................................................................................................... 4
Índice de figuras ...................................................................................................... 9
1 Antecedentes generales ..................................................................................... 17
1.1 Introducción ..................................................................................................... 17
1.2 Objetivos ......................................................................................................... 21
1.2.1 Objetivo general: .......................................................................................... 21
1.2.2 Objetivos específicos:................................................................................... 21
1.2.3 Carta Gantt : ................................................................................................. 22
2 Marco teórico ...................................................................................................... 24
2.1 Estado del arte ................................................................................................ 24
2.1.1 Descripción de la problemática .................................................................... 28
2.1.2 Impacto del proyecto .................................................................................... 28
2.2 Herramientas empleadas ................................................................................ 29
2.2.1 Cal sodada ................................................................................................... 29
2.2.1.1 Reacción química ...................................................................................... 29
2.2.1.2 Características de absorción ..................................................................... 30
2.2.2 Sensor de PH ............................................................................................... 31
2.2.2.1 PH ............................................................................................................. 31
2.2.2.2 Sensor de pH ............................................................................................ 32
2.2.3 Sensor de ............................................................................................. 34
2.2.4 Raspberry Pi ................................................................................................. 35
2.2.4.1 Hardware ................................................................................................... 36
2.2.4.2 Software .................................................................................................... 36
6
2.2.4.3 Raspberry Pi Zero W ................................................................................. 37
2.2.4.4 Ventajas .................................................................................................... 39
2.2.5 GPS .............................................................................................................. 40
2.2.5.1 Funcionamiento ......................................................................................... 40
2.2.5.2 Protocolo de comunicación ....................................................................... 41
2.2.6 GSM/GPRS .................................................................................................. 42
2.2.6.1 Concepto de funcionamiento ..................................................................... 42
2.2.6.2 Arquitectura de la red GSM ....................................................................... 43
2.2.6.3 Tarjeta SIM ................................................................................................ 45
2.2.6.5 GPRS ........................................................................................................ 46
2.2.6.6 Banda Ancha Móvil.................................................................................... 47
2.2.7 TCP/IP .......................................................................................................... 47
2.2.7.1 Definición ................................................................................................... 47
2.2.7.2 Modelo TCP/IP .......................................................................................... 49
2.2.7.3 Modelo OSI ............................................................................................... 51
2.2.7.4 Socket ....................................................................................................... 53
2.2.7.5 Encapsulamiento de datos ........................................................................ 54
2.2.7.6 Direcciones IP ........................................................................................... 55
2.2.8 MySQL ......................................................................................................... 56
2.2.9 Comunicación I2C ........................................................................................ 57
2.2.9.1 Protocolo de comunicación bus I2C. ......................................................... 58
2.2.9.2 Direccionamiento ....................................................................................... 60
2.2.10 Ventiladores eléctricos ............................................................................... 60
7
2.2.11 Panel solar fotovoltaico .............................................................................. 61
2.2.11.1 Tipos de paneles ..................................................................................... 62
2.2.11.2 Principio de funcionamiento .................................................................... 63
2.2.11.3 Sistemas fotovoltaicos autónomos .......................................................... 63
2.2.12 GNU/Linux .................................................................................................. 65
2.2.13 Python ........................................................................................................ 65
2.2.14 Conversor ADC .......................................................................................... 66
2.2.15 Labview ...................................................................................................... 67
2.2.15.1 Elementos de Labview ............................................................................ 68
3 Desarrollo del proyecto....................................................................................... 72
3.1 Modelamiento de la solución ........................................................................... 72
3.1 Ventajas y aplicaciones ............................................................................... 75
3.2 Raspberry ........................................................................................................ 76
3.3 Configuración y conexión remota .................................................................... 77
3.4 Conexión a internet mediante BAM ................................................................. 80
3.5 Comunicación serial con el GPS ..................................................................... 82
3.6 Conversor análogo-digital................................................................................ 87
3.7 Sensores del dispositivo .................................................................................. 93
3.7.1 Sensor de MQ-135 ............................................................................... 93
3.7.2 Sensor de PH de líquidos ............................................................................. 95
3.7.3 Medidor de carga de batería. ....................................................................... 98
3.8 Sistema de base de datos ............................................................................. 101
3.8.1 Implementación de MySQL en Raspberry .................................................. 101
8
3.8.2 Implementación del servidor web ............................................................... 105
3.8.3 MySQL en Python. ..................................................................................... 112
3.9 Configuración de la zona horaria ................................................................... 115
3.11 Cal sodada .................................................................................................. 116
3.12 Interfaz visual de monitoreo del dispositivo ................................................. 117
3.12.1 Toolkit GDatabase for MySQL™ .............................................................. 118
3.13 Programación en Labview ........................................................................... 121
3.14 Diseño de la placa PCB............................................................................... 127
3.15 Alimentación del sistema ............................................................................. 130
3.16 Diseño del sistema de tuberías internas...................................................... 132
4 Construcción del prototipo ............................................................................ 134
4.1 Confección del circuito PCB ...................................................................... 134
4.2 Sistema de tuberías ................................................................................... 138
4.3 Paneles solares ......................................................................................... 140
5 Resultados .................................................................................................... 141
5.1 Alcances y limitaciones ............................................................................. 141
5.2 Pruebas de funcionamiento ....................................................................... 142
5.2.1 Prueba del prototipo ............................................................................... 142
5.2.2 Prueba del monitoreo del dispositivo en Labview. ................................. 144
5.2.3 Prueba de funciones anexas de Labview. .............................................. 145
5.3 Análisis de resultado. ................................................................................ 148
6 Conclusiones ................................................................................................ 150
Bibliografía .......................................................................................................... 152
9
Anexos ................................................................................................................ 158
Codigo de Python ................................................................................................ 158
Programación en Labview ................................................................................... 161
Índice de figuras
FIGURA 1.1 GRAFICA DE LA EMISIÓN HISTÓRICA DE CO2 EN CHILE. .................................... 17
FIGURA 1.2 GRAFICA DEL PROMEDIO ANUAL DE CONTAMINACIÓN EMITIDA EN AMÉRICA
LATINA SEGÚN LA OMS ......................................................................................................... 18
FIGURA 2. 1PURIFICADOR DE AIRE SAMSUNG .......................................................................... 25
FIGURA 2. 2 PURIFICADOR DE AIRE TOYOTOMI SODIMAC ..................................................... 25
FIGURA 2. 3 SMOG FREE TOWER ................................................................................................. 26
FIGURA 2. 4CALGARY’S CARBON ENGINEERING....................................................................... 27
FIGURA 3.1 GRAFICA DE EFICIENCIA EN COMPARACIÓN CON OTROS ABSORBENTES ..... 30
FIGURA 3.2.1 ELECTRODO PH BNC ............................................................................................. 33
FIGURA 3.2.2 SENSOR DE PH DE LÍQUIDOS ............................................................................... 33
FIGURA 3.3.1 SENSOR MQ-135...................................................................................................... 35
FIGURA 3.4.1 GPIO’S RASPBERRY PI ........................................................................................... 36
FIGURA 3.4.2 RASPBERRY PI ZERO DIMENSIONADO. ............................................................... 37
FIGURA 3.4.3 RASPBERRY PI ZERO W. ........................................................................................ 38
FIGURA 3.5.1 SISTEMA DE SATÉLITES GPS ................................................................................ 41
FIGURA 3.5.2 TABLA DE DESGLOSE TRAMA GPRMC. ............................................................... 42
FIGURA 3.6.1 CELDAS DE UNA RED GSM. ................................................................................... 43
FIGURA 3.6.2 TARJETA SIM. .......................................................................................................... 46
FIGURA 3.7.1 DIAGRAMA PROTOCOLO TCP. .............................................................................. 48
FIGURA 3.7.2 DIAGRAMA PROTOCOLO IP. .................................................................................. 49
FIGURA 3.7.3 PROTOCOLOS RELACIONADO CON EL MODELO TCP/IP. ................................. 50
FIGURA 3.7.4 DIAGRAMA MODELO OSI. ....................................................................................... 53
FIGURA 3.7.5 DIAGRAMA FUNCIONAMIENTO SOCKETS. .......................................................... 54
FIGURA 3.7.6 EJEMPLO DE ENCAPSULAMIENTO DE DATOS.¡ERROR! MARCADOR NO
DEFINIDO.
FIGURA 3.8.1CONFIGURACION ELECTRÓNICA COMUNICACIÓN I2C. ..................................... 58
FIGURA 3.9.1 VENTILADOR ELÉCTRICO. ..................................................................................... 61
10
FIGURA 3.10.1 PANEL SOLAR FOTOVOLTAICO. ......................................................................... 62
FIGURA 3.10.2 CONFIGURACIÓN CLÁSICA DE UN SISTEMA FOTOVOLTAICO AUTÓNOMO. 64
FIGURA 3.11 CONVERSOR ANÁLOGO-DIGITAL ADS1115. ......................................................... 67
FIGURA 3.12.1 PANEL FRONTAL LABVIEW. ................................................................................. 69
FIGURA 3.12.2 VARIABLES SEGÚN COLOR Y DIMENSIÓN LABVIEW. ...................................... 69
FIGURA 3.12.3 INDICADORES Y CONTROLADORES DE VARIABLES EN LABVIEW. ............... 70
FIGURA 3.12.4 BUCLES DE PROGRAMACIÓN EN LABVIEW EN EL ORDEN DE FOR, WHILE Y
SWITCH -CASE. ....................................................................................................................... 70
FIGURA 3.12.5 WAVEFORM CHART LABVIEW. ............................................................................ 71
FIGURA 3.13 DIAGRAMA DE BLOQUES DEL PROYECTO ........................................................... 72
FIGURA 3.14 DIAGRAMA DE FLUJO DE RECOPILACIÓN DE DATOS DEL DISPOSITIVO ........ 73
FIGURA 3.15 DIAGRAMA DE FLUJO DEL PROGRAMA EN LABVIEW ......................................... 74
FIGURA 3.16.1 “RASPBIAN”. ........................................................................................................... 76
FIGURA 3.16.1 PROGRAMA “ETCHER”. ........................................................................................ 77
FIGURA 3.17.1 CONSOLA CON EL COMANDO IFCONFIG. ......................................................... 78
FIGURA 3.17.2 CONEXIÓN A ESCRITORIO REMOTO MEDIANTE WINDOWS. .......................... 79
FIGURA 3.17.3 VENTANA USUARIO Y CONTRASEÑA CONEXIÓN REMOTA. ........................... 79
FIGURA 3.17.4 VISUALIZACIÓN DE ESCRITORIO MEDIANTE CONEXIÓN REMOTA. .............. 80
FIGURA 3.18 VENTANA DE CONFIGURACIÓN CON INTERFAZ VISUAL DE SAKIS3G ............. 82
FIGURA 3.19.1 CONEXIÓN RASPBERRY CON MODULO GPS .................................................... 84
FIGURA 3.19.2 MINICOM COMUNICACIÓN GPS. ......................................................................... 85
FIGURA 3.19.3 DIAGRAMA DE FLUJO PROGRAMACIÓN DEL GPS. .......................................... 87
FIGURA 3.20.1 CONEXIÓN ADS1115 CON RASPBERRY. ............................................................ 89
FIGURA 3.20.2 CONFIGURACIÓN PIN “ADDRESS” ADS1115 ...................................................... 89
FIGURA 3.20.3 CONEXIÓN ADS1115 CON RASPBERRY. ............................................................ 90
FIGURA 3.20.4 LECTURA DEL PUERTO I2C COMUNICANDO RASPBERRY CON EL ADS1115.
................................................................................................................................................... 92
FIGURA 3.21.1 PIN-OUT SENSOR MQ-135. ................................................................................... 95
FIGURA 3.21.2 RESULTADO DE PRUEBAS CON PAPEL TORNASOL ........................................ 96
FIGURA 3.21.3 TABLA DE COLORES PAPEL TORNASOL ........................................................... 97
FIGURA 3.21.4 CONEXIÓN SENSOR DE PH CON RASPBERRY PI ............................................ 98
FIGURA 3.21.5CONFIGURACIÓN DIVISOR DE TENSIÓN. ........................................................... 99
FIGURA 3.22.1 CONSOLA DE RASPBERRY EJECUTANDO EL COMANDO IFCONFIG ........... 102
FIGURA 3.22.2 SERVIDOR APACHE2 DESDE LA RASPBERRY ................................................ 102
FIGURA 3.22.3 CONEXIÓN SERVIDOR MYSQL MEDIANTE RASPBERRY. .............................. 103
11
FIGURA 3.22.4 CONEXIÓN A PHPMYADMIN DESDE EQUIPO REMOTO ................................. 105
FIGURA 3.22.5 CREACIÓN DE MÁQUINA VIRTUAL EN DIGITALOCEAN.................................. 106
FIGURA 3.22.6 LANZAMIENTO DE CONSOLA EN DIGITALOCEAN. ......................................... 107
FIGURA 3.22.7 CONSOLA MÁQUINA VIRTUAL DE DIGITALOCEAN CON SISTEMA OPERATIVO
DEBIAN. .................................................................................................................................. 107
FIGURA 3.22.8 EJECUCIÓN COMANDO IFCONFIG EN CONSOLA DE DEBIAN. ..................... 110
FIGURA 3.22.9 PAGINA DE INICIO DE NUESTRO SERVIDOR APACHE2 MONTADO EN
SERVIDOR WEB. .................................................................................................................... 110
FIGURA 3.22.10 INICIO SERVIDOR PHPMYADMIN DE NUESTRO SERVIDOR WEB. ............. 112
FIGURA 3.23.1VISUALIZACION DE LA HORA EN NUESTRA RASPBERRY SIN CONFIGURAR.
................................................................................................................................................. 115
FIGURA 3.23.2 VISUALIZACIÓN DE LA HORA EN NUESTRA RASPBERRY CONFIGURADA. 116
FIGURA 3.24.1 PANEL FRONTAL DE LA INTERFAZ DE MONITOREO EN LABVIEW. ............. 118
FIGURA 3.24.2 VI PACKAGE MANAGER. ..................................................................................... 119
FIGURA 3.24.3 VENTANA DE INSTALACIÓN DE GDATABASE FOR MYSQL™ EN VI PACKAGE
MANAGER. ............................................................................................................................. 119
FIGURA 3.24.4 BLOQUE OPEN CONNECTION DEL TOOLKIT GDATABASE FOR MYSQL™.. 120
FIGURA 3.24.5 BLOQUE USE DATABASE DEL TOOLKIT GDATABASE FOR MYSQL™. ........ 120
FIGURA 3.24.6 BLOQUE SELECT QUERRY DEL TOOLKIT GDATABASE FOR MYSQL™....... 121
FIGURA 3.24.7 BLOQUE CLOSE DEL TOOLKIT GDATABASE FOR MYSQL™. ........................ 121
FIGURA 3.25.1 PROGRAMACIÓN DE BLOQUES PARA OBTENCIÓN DE INFORMACIÓN EN
TIEMPO REAL. ....................................................................................................................... 122
FIGURA 3.25.2 PROGRAMACIÓN DE BLOQUES PARA LA VISUALIZACIÓN DE LA UBICACIÓN
DEL DISPOSITIVO.................................................................................................................. 122
FIGURA 3.25.3 PROGRAMACIÓN DE BLOQUES PARA LA VISUALIZACIÓN DE LA TASA DE
PURIFICACIÓN DEL DISPOSITIVO. ...................................................................................... 123
FIGURA 3.25.4 PROGRAMACIÓN DE BLOQUES PARA LA OBTENCIÓN DEL PH DEL QUÍMICO
DEL DISPOSITIVO.................................................................................................................. 124
FIGURA 3.25.5 PROGRAMACIÓN DE BLOQUES PARA LA ALERTA POR CORREO
ELECTRÓNICO. ...................................................................................................................... 126
FIGURA 3.25.6 PROGRAMACIÓN DE BLOQUES PARA LA EXPORTACIÓN DE LA BASE DE
DATOS A EXCEL. ................................................................................................................... 126
FIGURA 3.26.2 DISEÑO PLACA PCB EN PROTEUS. .................................................................. 128
FIGURA 3.26.3 MODELADO 3D EN PROTEUS. ........................................................................... 129
12
FIGURA 3.26.4 CONFIGURACIÓN ELÉCTRICA DE REGULADORES DE VOLTAJE DE LA
FAMILIA LM78XX. ................................................................................................................... 129
FIGURA 3.27.1 SISTEMA DE ALIMENTACIÓN EN BASE A PANELES SOLARES. .................... 131
FIGURA 3.27.2 PANELES SOLARES CONECTADOS EN PARALELO. ...................................... 131
13
Resumen
El problema de la contaminación ambiental provocada por la emisión de CO2 en
las grandes ciudades específicamente en Santiago de Chile, se ha ido tornando
cada vez más grave y difícil que controlar.
Santiago se encuentra dentro de las 15 ciudades más contaminadas de Latino
América (World Health Organization, 2014). Hoy en día las autoridades proponen
diversas soluciones para mantenerlo controlado, pero no existe ninguna solución
definitiva ya que los actuales sistemas de purificación del aire implican altos costos
y gran mantenimiento, provocando que se opte por otras formas de controlar la
emisión de estos gases de invernadero.
La solución propuesta para esta problemática consiste en la instalación de un
dispositivo que limpie el aire del CO2 presente en él, que posea un sistema de
alimentación autónomo basado en energías limpias, con baja mantención y con un
sistema de monitoreo para esta, en donde nos permita acceder a su ubicación,
tasa de purificación del aire, estado del filtro y de su batería.
En este entorno, FACYM encaja perfectamente a la hora de ser una solución
concreta para la disminución del CO2 presente en el aire. Se cuenta con módulos
GPS para obtener su ubicación exacta en el mapa y GSM/GPRS obteniendo
conexión a internet mediante la red 3G permitirá monitorear el estado de las
variables contempladas por el dispositivo permitiendo un monitoreo detallado del
dispositivo en terreno.
En este proyecto, una placaRaspberry Pi Zero W será el encargado de adquirir los
datos desde los sensores instalados en el dispositivo para obtener la tasa de
purificación del aire, el estado del filtro, la carga de las baterías y mediante un
módulo GPS, se obtendrá su localización exacta. Luego mediante un módulo
GSM/GPRS tendrá comunicación con una base de datos en MySQL de la cual se
14
consultarán los datos y podrán ser visualizados en un HMI directo desde un
equipo remoto mediante Labview. Sin mencionar que tendrá un sistema de
alimentación completamente autónomo basado en la utilización de paneles solares
y cogeneración eólica mediante turbinas.
Una vez desarrollado el dispositivo se evaluó su desempeño en la comuna de
Quilicura, obtenido una purificación un volumen de 20 litros de CO2. Logrando
reducir en 480 litros de contaminación ambiental diario y se provee que con un
año de funcionamiento se purificaraaproximadamente 180000 litros de CO2
anuales.
FACYM es un dispositivo completamente innovador al momento de brindar una
solución factible, de bajo costo de implementación y de mantención a la hora de
disminuir la contaminación del aire provocada por la emisión de CO2.
Palabras clave: purificador de aire, Raspberry Pi Zero W, CO2
15
Abstract
The problem of environmental pollution caused by the emission of CO2 in large
cities, specifically in Santiago of Chile, has become increasingly serious and
difficult to control.
Santiago is among the 15 most polluted cities in Latin America (World Health
Organization, 2014). Today the authorities propose various solutions to keep it
under control, but there is no definitive solution since the current air purification
systems involve high costs and high maintenance, causing other ways to control
the emission of these greenhouse gases.
The solution proposed for this problem consists in the installation of a device that
cleans the air of CO2 present in it, that has an autonomous power system based
on clean energies, with low maintenance and with a monitoring system for it, where
Allow access to your location, air purification rate, filter status and your battery.
In this environment, FACYM fits perfectly when it comes to being a concrete
solution for the reduction of CO2 present in the air. There are GPS modules to
obtain their exact location on the map and GSM / GPRS obtaining an internet
connection through the 3G network will allow to monitor the status of the variables
contemplated by the device allowing a detailed monitoring of the device in the field.
In this project, a Raspberry Pi Zero W board will be responsible for acquiring the
data from the sensors installed in the device to obtain the air purification rate, the
filter status, the charge of the batteries and by means of a GPS module. You will
get your exact location. Then through a GSM / GPRS module you will have
communication with a database in MySQL from which the data will be consulted
and can be viewed in a direct HMI from a remote computer through Labview. Not
16
to mention that it will have a completely autonomous power system based on the
use of solar panels and wind cogeneration using turbines.
Once the device was developed, its performance in the commune of Quilicura was
evaluated, obtaining a purification volume of 20 liters of CO2. Achieving a
reduction of 480 liters of daily environmental pollution and providing a year of
operation to purify approximately 180000 liters of CO2 per year.
FACYM is a completely innovative device at the moment of providing a feasible
solution, low cost of implementation and maintenance at the time of reducing air
pollution caused by the emission of CO2.
17
1 Antecedentes generales
1.1 Introducción
Hoy en día la contaminación ambiental provocada por las emisiones de CO2 es
cada vez más alarmante. World Health Organization (2014) Chile se encuentra en
partida doble en las ciudades con peor calidad del aire en latino américa,
ubicándose Rancagua y Coyhaique en el séptimo lugar y Santiago en el décimo.
Pese a que Chile es el país con mayor cantidad de estudios sobre la calidad del
aire, este no ha mejorado con el paso de los años, ya que la cantidad de CO2
emitido al ambiente ha ido en alza año a año, alcanzando niveles críticos, los
cuales se pueden ver reflejados en la cantidad de smog presente en Santiago, los
múltiples planes de contingencia como lo son las restricciones vehiculares durante
el año y la cantidad de enfermedades respiratorias presentes en los meses de
invierno. Actualmente se ha logrado ir controlando la emisión de este
contaminante, pero no se ha llegado a ninguna solución que permita la
disminución de este.
Figura 1.1 Grafica de la emisión histórica de CO2 en Chile.
18
Refiriéndose a la anterior problemática es que se plantea una solución capaz de
disminuir la concentración de CO2 emitida a nuestra atmosfera, mejorando así la
calidad del aire para la biodiversidad, disminuyendo la temperatura urbana y
mejorando la calidad de vida de la población, sin conllevar un alto costo de
inversión ni de mantenimiento. Es por este motivo que FACYM es desarrollado,
con el fin de dar una solución factible para este problema, usando a favor las
tecnologías actuales y la sustentabilidad de las energías limpias, otorgando
múltiples beneficios no solo a la sociedad, sino también al medio ambiente en
donde vivimos.
Figura 1.2Grafica del promedio anual de contaminación emitida en América latina según la OMS
19
El dispositivo FACYM, está basado en el uso de un microcontrolador Raspberry Pi,
el cual cuenta con un módulo de conexión GSM/GPRS y otro de geo
posicionamiento GPS. El microcontrolador obtendrá los datos provenientes de sus
sensores, obteniendo así: el estado de la batería, la tasa de purificación del aire, el
estado del filtro y mediante su módulo GPS se obtendrá su ubicación. Estos se
obtendrán mediante la utilización de sensores de calidad del aire y un sensor de
PH de líquidos, los cuales serán utilizados en conjunto con un módulo ADC de 16-
bits.
Los datos anteriormente nombrados serán enviados mediante comunicación por
la red 3G directamente a un servidor de MySQL, con el fin de almacenar sus
datos. De esta manera la base de datos podrá ser consultada por una aplicación
desarrollada en el entorno de programación de Labview. Finalmente, el usuario
podrá visualizar los datos desde el computador, pudiendo observar su ubicación
en el mapa y el estado del dispositivo. Como ultima herramienta el dispositivo
constara con una alarma, la cual avisara al usuario mediante un correo electrónico
(definido por el usuario) cuando el dispositivo necesite de mantención.
Cabe destacar que el dispositivo constara con una alimentación eléctrica basada
en la utilización de energías limpias con el fin de no contribuir a la emisión de
CO2. Con la utilización de paneles solare y cogeneración eólica mediante sus
turbinas, el dispositivo dispondrá de una autonomía total para su funcionamiento.
Finalmente, el filtro de purificación del aire será constituido por Cal sodada.
En cuanto a la directriz de esta tesis, esta se encuentra destinada al desarrollo del
dispositivo en su totalidad, abarcando así las fases de investigación de la
problemática, desarrollo de protocolos y tramas de comunicación de la información
20
de este, modelamiento y confección del dispositivo, estudio técnico y finalizando
con su evaluación e implementación en terreno.
FACYM está enfocado directamente a la disminución del CO2 en el aire,
específicamente este será evaluado en Santiago de Chile, pero no se descarta ni
se limita su implementación en otras ciudades y lugares con el fin de disminuir la
huella de carbono y sus consecuencias como lo es el calentamiento global, sin
mencionar una mejora en la calidad del aire en las grandes ciudades.
21
1.2 Objetivos
1.2.1 Objetivo general:
Desarrollar un dispositivo de filtrado de aire que permita limpiar el aire de
contaminantes (CO2) presente en él, apuntando fundamentalmente a la
autonomía energética del dispositivo y un sistema de supervisión de estado
mediante una interfaz gráfica.
1.2.2 Objetivos específicos:
Implementar un sistema de alimentación basado en la generación de
energía mediante paneles solares, capaz de alimentar al dispositivo
brindándole autonomía energética.
Implementar un sistema de envió de datos de cuatro sensores analógicos
con el fin de censar la saturación del filtro, porcentaje de batería y la tasa de
purificación desde el dispositivo hacia una base de datos MySQL.
Desarrollar un sistema de purificación de aire mediante el uso de dos
turbinas, un filtro hecho de Sodasorb, siendo controlado por un
microcontrolador Raspberry Pi Zero W.
22
1.2.3 Carta Gantt :
Proyecto
Diseñador
Fecha de inicio
Fecha de termino
Carta Gantt
FACYM
Diego Molina
13 de Marzo del 2017
20 de Noviembre del 2017
tarea duracion (semanas)
1 Recopilacion de informacion 5
2 Redaccion del marco teorico 6
3 Diseño de la solucion 1
4 Desarrollo de lectura de sensores 1
5 Puebas de sensores con SODASORB 2
6 Desarrollo de la comunicación GSM GPRS 1
7 Desarrollo de la localizacion GPS 1
8 Desarrollo del servidor MySQL 1
9 Desarrollo de la comunicación del dispositivo con la base de datos 2
10 Desarrollo de la aplicación en JAVA 2
11 Desarrollo del diseño del dispositivo 2
12 Pruebas del dispositivo 3
13 Evaluacion del dispositivo 2
14 Redaccion de resultados 4
15 Diseño de la presentacion 4
24
2 Marco teórico
2.1 Estado del arte
En la actualidad, los sistemas de purificación de aire son considerados una
herramienta necesaria para los espacios confinados en donde no existe una
ventilación adecuada como es el caso de las mineras y excavaciones.
Mientras que en oficinas y espacios abiertos es considerado un gasto innecesario.
Sin embargo, el aumento de CO2 en la atmosfera provoca que ya sea una variable
por considerar, tanto en la salud de las personas, como en su rendimiento día a
día, provocando sensación de cansancio, perdida de concentración y dolor de
cabeza.
Actualmente los purificadores de aire a pesar de producir una efectiva limpieza de
este, su costo está bordeando los $100.000 y $200.000 siendo considerado un
gasto sobredimensionado para la inversión de privados. Sin considerar el gran
consumo energético que estos tienen, el cual bordea los 20 a 35 Watts,
provocando una contribución a la huella de carbono en la generación eléctrica y
manteniendo una mantención anual, la cual consiste en el cambio del filtro por
parte del usuario.
25
Figura 2. 1Purificador de aire Samsung
Figura 2. 2 Purificador de aire Toyotomi Sodimac
A nivel de limpieza ambiental actualmente existen proyectos enfocados a la
limpieza del aire de las grandes ciudades como lo es el “Smog Free Tower”, un
26
purificador de aire de 7 metros de alto que limpia 30000 de aire por hora, el
cual utiliza generación eólica y alimentación eléctrica externa. Como atractivo
principal, tiene la creación de joyería con las partículas de smog extraídas del
ambiente.
Figura 2. 3 Smog Free Tower
Actualmente existe un proyecto en Vancouver el cual extrae el CO2 del aire
mediante ventiladores gigantes, utilizando una seria de procesos químicos para
filtrar el CO2.
La fabricación de la planta costo 9 millones de dólares y tras 3 meses de
funcionamiento logro limpiar 10 toneladas de CO2, el cual planea tratarse para
poder producir combustibles ecológicos.
27
Figura 2. 4Calgary’s Carbon Engineering
A diferencia de los productos anteriormente mencionados, FACYM posee un costo
de producción inferior a los 90 mil pesos, cuenta con una mantención cada 5
meses por parte del productor, sin mencionar que, al poseer una alimentación
totalmente autosustentable, este no contribuye al aumento en la huella de carbono
por parte de la generación eléctrica, además de su fácil instalación en cualquier
lugar debido a su compacto tamaño y peso. Sin mencionar su fácil monitoreo
desde cualquier lugar del mundo, mediante acceso a internet.
28
2.1.1 Descripción de la problemática
El principal problema radica en la calidad del aire presente en las grandes
ciudades del mundo debido a la emisión de .
La falta de una medida para reducir y eliminar este contaminanteno ha permitido
encontrar una solución definitiva y óptima para esta problemática. Si bien,
actualmente existen dispositivos que permiten purificar el aire de manera continua,
estos poseen un elevado costo de implementación y mantenimiento, además de
funcionar con un consumo considerable de energía eléctrica, contribuyendo a la
huella de carbono, siendo soluciones poco eficientes y eficaces a la hora de
encontrar una solución.
2.1.2 Impacto del proyecto
Al observar los críticos niveles de que actualmente está alcanzando el aire en
las grandes ciudades. Es aquí en donde es imperativo encontrar una manera de
disminuir eficazmente la cantidad de , contemplando las ventajas y facilidades
de la comunicación inalámbrica como lo es el TCP/IP entre una Raspberry Pi,
Labview y MySQL, en conjunto a una red de sensores, geolocalización GPS y un
sistema de alimentación autónomo. Nos permitirá realizar una limpieza efectiva y
continua del presente en el aire, bajando los niveles de este y logrando una
mejor calidad del aire, de vida y de salud para la población.
29
2.2 Herramientas empleadas
2.2.1 Cal sodada
2.2.1.1 Reacción química
La reacción química global de la cal sodada es:
La reacción puede considerarse como catalizada por una base fuerte, mientras
que el agua la facilita.
Reacción química paso a paso:
30
2.2.1.2 Características de absorción
En un recipiente adecuadamente embalado y bien diseñado de aproximadamente
100 gramos de Sodasorb, absorberán 15 litros de dióxido de carbono. La
eficiencia de absorción puede verse alterada con el uso de altos flujos de gas,
disminución de humectación del absorbente y si el tiempo de contacto entre el
y el absorbente es menor a un segundo. (W.R.Grace & CO.-Conn, Manual of CO2
absorption, 1993)
Figura 3.1 Grafica de eficiencia en comparación con otros absorbentes
Para señalar el agotamiento progresivo del absorbente, se añade un colorante
durante su fabricación, el cual cambia de blanco a purpura a medida que se satura
el Sodasorb, la saturación total del Sodasorb se ve indicada con un color purpura
intenso. Cabe señalar que, dado que la reacción no es uniforme en todo el
recipiente, el cambio de color tampoco lo es, la zona de mayor reactividad (la
entrada del filtro) será mayor.
31
El color violeta es solo un indicador visual, pero también cuenta con Etil violeta, un
particular indicador cuyo PH critico es 10.3. Como el hidróxido de sodio (NaOH) se
consume y se sustituye por el hidróxido de calcio, el cambio de color es paralelo a
la caída de PH en el recipiente.
2.2.2 Sensor de PH
2.2.2.1 PH
Puesto que las concentraciones de los iones en disoluciones acuosas
con frecuencia son números muy pequeños y, por tanto, es difícil trabajar con
ellos, Soren Sorensen propuso, en 1909, una medida más practica denominada
pH. El pH de una disolución se define como el logaritmo negativo de la
concentración del ion hidrogeno (en mol/L)
[ ] [ ]
Hay que recordar que la ecuación es solo una definición establecida para tener
números convenientes con los cuales trabajar. El logaritmo negativo proporciona
un numero positivo para el pH, el cual, de otra manera, sería negativo debido al
pequeño valor de [ ]. Así, el termino [ ] en la ecuación solo corresponde a la
parte numérica de la expresión para la concentración del ion hidrogeno, ya que no
32
se puede tomar el logaritmo de las unidades. Entonces, al igual que la constante
de equilibrio, el pH de una disolución es una cantidad adimensional.
Debido a que el pH solo es una manera de expresar la concentración del ion
hidrogeno, las disoluciones acidas y básicas a 25°C se identifican por sus valores
del pH(Chang, 2010), como sigue:
[ ]
[ ]
[ ]
2.2.2.2 Sensor de pH
El sensor de pH con BNC para Raspberry Pi consta de dos partes que trabajando
en conjunto, logran completar el sensor de pH. La primera parte consta de la
sonda BNC de lectura, la cual tiene contacto directo con el líquido a censar y va
directamente conectado al sensor de pH con BNC, el cual va directamente
conectado alADC de 16-bits, pudiendo determinar el pH de una disolución entre 0-
14.
Sus características principales de funcionamiento son:
Voltaje de funcionamiento: 5V
Tamaño del sensor: 43x32 mm
Rango de medición: 0-14 pH
33
Precisión: ±0.1 pH (25°C)
Tiempo de respuesta: ≤ 1 min
Rango de temperatura: 0 – 60 °C
Figura 3.2.1 Electrodo pH BNC
Figura 3.2.2 Sensor de pH de líquidos
34
2.2.3 Sensor de
El sensor MQ-135 es un sensor análogo, fácil de implementar en cualquier
microcontrolador. Es un sensor electroquímico, que varía su resistencia eléctrica
cuando se expone a determinados gases.
Internamente posee un calentador encargado de aumentar la temperatura interna
y con esto provocar una reacción con los gases provocando un cambio de valor en
su resistencia.
El sensor MQ-135 está diseñado para la lectura de alcohol, benceno, humo,
Además de poseer una salida análoga, también posee una salida
digital con el fin de poder determinar si algunos de estos gases se encuentran
presentes en el aire.
Características principales de funcionamiento:
Voltaje de operación: 5V
Corriente de operación: 150mA
Potencia de consumo: 800mW
Tiempo de precalentamiento: 20 segundos.
Humedad de operación: <95%
Temperatura de operación: -20 – 70°C
35
Figura 3.3.1 Sensor MQ-135
2.2.4 Raspberry Pi
Raspberry Pi es un mini computador de tamaño compacto, económico y de gran
rendimiento. Sus características técnicas son variables según el modelo y cuenta
con un sistema operativo basado en Linux ARM.
Algunos modelos de Raspberry Pi traen integrada la conexión a internet mediante
WIFI y conexión Bluetooth, además de poseer GPIO’s de salida y de entrada, los
cuales pueden ser configurados para su uso. Esto le permite a la Raspberry Pi
establecer una comunicación serial mediante los puertos TX y RX y comunicación
I2C mediante los puertos SDA y SCL.
Raspberry Pi no posee un conversor análogo-digital integrado, pero mediante la
comunicación I2C se puede conectar a uno y obtener la lectura de sensores de
manera precisa.
36
Figura 3.4.1 GPIO’s Raspberry Pi
2.2.4.1 Hardware
El hardware de Raspberry Pi es básicamente un computador, el cual va variando
sus características según su modelo, pero todos tienen en común su memoria de
almacenamiento, la cual consta de una ranura para insertar memorias micro SD a
elección. Todos los modelos de Raspberry Pi cuentan con su procesador, su
memoria DDR2, tarjeta de video y distintos módulos de comunicación, entre los
cuales está la conexión Wifi, Bluetooth y cable de red.
Raspberry Pi cuenta con GPIO’s, los cuales se pueden configurar como entradas
o salidas digitales, o bien como puertos de comunicación. Esto permite que la
Raspberry Pi sea compatible con diversos módulos de comunicación como lo son
el puerto serial, I2C y SPI. Sumado a lo anterior cuenta con entradas USB, HDMI y
otra entrada de alimentación, esto permite montarla con teclado, mouse y pantalla,
similar a un computador de escritorio.
2.2.4.2 Software
Raspberry Pi funciona en base a sistemas GNU/Linux, pero el fabricante
recomienda la utilización de Raspbian, un sistema operativo derivado del Debian,
el cual esta optimizado para el hardware de la Raspberry Pi. Pero también
37
funciona con diferentes sistemas Linux, mientras este pueda funcionar bajo las
características del modelo de Raspberry Pi a utilizar.
Para poder efectuar programaciones utilizando nuestros GPIO’s se recomienda
utilizar Python, el cual viene por defecto instalado en Raspbian y se puede
desarrollar y ejecutar códigos mediante Python IDE o directamente desde la
consola de nuestro sistema operativo.
2.2.4.3Raspberry Pi Zero W
La Raspberry Pi Zero W es uno de los modelos de Raspberry Pi más pequeños,
ya que cuenta con dimensiones 65 mm de largo y 30 mm de ancho. Pero pese a
su pequeño tamaño cuenta con módulo Wifi y Bluetooth incorporados.(Raspberry
Pi, 2017)
Figura 3.4.2 Raspberry Pi Zero dimensionado.
38
Sus especificaciones técnicas son:
Procesador Broadcom BCM2835 de 1 GHz de un núcleo.
512 MB de memoria RAM
Posee un puerto mini-HDMI con salida 1080p/60p
Ranura para tarjetas MicroSD
Posee dos entradas de Micro-USB, una de alimentación y otra de
datos
Conector de cámara CSI
Wifi 802.11n
Bluetooth 4.0
Cabezal de 40 pines (GPIO’s)
Reloj tiempo real interno
Consumo de 160 mAh
(Casa Editorial El Tiempo, 2017)
Figura 3.4.3 Raspberry Pi Zero W.
39
2.2.4.4 Ventajas
Entre las ventajas de la utilización de Raspberry Pi en el proyecto son:
La compatibilidad con diferentes módulos de comunicación como lo son el
puerto UART y I2C.
Bajo costo en comparación con otras plataformas.
Su software es compatible con Python, facilitando su programación e
implementación en proyectos de comunicación mediante red.
Posee un lenguaje de programación flexible, simple y gracias a sus librerías
permite una fácil implementación de componentes y módulos.
Fácil acceso en el mercado de la placa y de componentes compatibles.
Gran velocidad y robustez en comparación con otros sistemas de Micro
control.
40
2.2.5 GPS
2.2.5.1 Funcionamiento
El sistema de posicionamiento global (GPS) está compuesto por una red de 24
satélites operacionales y 3 de respaldo, los cuales giran alrededor de la tierra,
dando dos vueltas al día dentro de una órbita muy precisa, transmitiendo señales
de radio a la tierra donde indican su ubicación y la hora que les entrega un reloj
atómico en su interior. Todos los satélites están sincronizados, así todos los
satélites emiten su información en el mismo instante. Los receptores reciben la
información y la utilizan para triangular y calcular su localización exacta en el
globo.
Las señales se mueven a la velocidad de la luz, pero llegan a los receptores a
distinto tiempo debido a que estos se encuentran a distintas distancias. Es por eso
que el receptor GPS compara el tiempo que toma una señal en llegar desde el
satélite al receptor, la diferencia en los tiempos de recepción con respecto a
diferentes satélites, le permiten al receptor determinar con gran exactitud su
posición y desplegarla en un mapa electrónico para el usuario del sistema.
Cuando el receptor considera la distancia de al menos 4 satélites, puede
determinar su posición en las tres dimensiones (Longitud, Latitud y Altitud).
Los receptores de GPS, calculan con velocidad y precisión los tres valores que
requieren para posicionarse en el mapa. El valor de Longitud, referente al
meridiano de Greenwich o Prime Meridian hacia el este (E) o hacia el Oeste (W),
41
el valor de Latitud con respecto a la línea del Ecuador, hacia el norte (N) o hacia al
Sur (S) y el valor de Altitud que es la referencia con respecto al nivel del mar.
Figura 3.5.1 Sistema de satélites GPS
2.2.5.2 Protocolo de comunicación
Actualmente los dispositivos GPS se comunican siguiendo un protocolo de
comunicación desarrollado por la NMEA (National Marine Electronics Association),
la cual propone diversos formatos de comunicación, uno de los más utilizados es
el formato GPRMC, la que contiene una trama de comunicación, la cual contiene
información de la hora, fecha, posición, dirección y velocidad. Siguiendo una
estructura definida y permitiendo obtener la información de manera simple y
eficiente.
A continuación, se muestra un ejemplo de la trama GPRMC real y su significado:
$GPRMC,064951.000,A,2307.1256,N,12016.4438,E,0.03,165.48,260406,3.05,W,A*2C
42
Figura 3.5.2 Tabla de desglose trama GPRMC.
2.2.6 GSM/GPRS
2.2.6.1 Concepto de funcionamiento
Las redes de telefonía móvil se basan en el concepto de celdas, es decir, zonas
circulares que se superponen para cubrir una zona específica. La cual, en
43
conjunto de un receptor transmisor central en cada celda, denominado “estación
base” o “Estación base transceptora” (BTS).
Cuanto menor sea el espacio abarcado por una celda, mayor será el anche de
banda disponible. Por lo que, en zonas urbanas, hay celdas con radio de unos
cientos de metros, mientras que en zonas rurales hay celdas de hasta 30 Km de
cobertura.
Figura 3.6.1 Celdas de una red GSM.
2.2.6.2 Arquitectura de la red GSM
En una red GSM, el terminal de usuario se llama estación móvil. Esta consiste en
una tarjeta SIM (módulo de identificación de abonado), la cual permite identificar al
usuario y su dispositivo de manera única.
Los terminales se identifican mediante una numeración única de 15 dígitos
conocido como IMEI (identificación internacional de equipos móviles). Cada tarjeta
Sim posee un número de identificación único denominado IMSI (identificador
internacional de abonados móviles). Este código se protege mediante una clave
de 4 dígitos denominada código PIN.
44
La tarjeta SIM permite identificar a cada usuario independiente de la terminal
utilizada durante la comunicación con la estación base. La comunicación entre una
estación móvil y una estación base se produce mediante un vínculo de radio,
denominado interfaz de aire.
Todas las estaciones bases de una red GSM están conectadas a un Controlador
de estaciones base (BSC), la cual, administra la distribución de los recursos. El
sistema compuesto por un conjunto de estaciones bases y su controlador de
estaciones base se denomina Subsistema de estaciones base (BSS).
Los controladores de estaciones bases están físicamente conectados al centro de
conmutación móvil (MSC) que los conecta a la red de telefonía pública y con la red
de internet. El centro de conmutación móvil pertenece a un Subsistema de
conmutación de red (NSS), el cual gestiona las identidades de los usuarios y
ubicación, además de establecer la comunicación con otros usuarios.
El MSC se conecta a diversas bases de datos que proporcionan diferentes
funciones adicionales:
Registro de ubicación de origen (HLR): Contiene información sobre la
posición geográfica y administrativa de los abonados registrados
dentro de la zona del conmutador MSC.
Registro de ubicación de visitante (VLR): Contiene información de
usuarios que no son abonados locales. El VLR recupera los datos de
un usuario nuevo en la HLR dela zona, estos datos se conservan
mientras el usuario este dentro de la zona y se eliminan en cuanto
45
abandona la zona o después de un periodo de inactividad
prolongado.
Registro de identificación del equipo (EIR): Contiene la lista de
terminales móviles existentes en la zona.
Centro de autentificación (AUC): verifica las identidades de los
usuarios.
a red celular está diseñada de esta manera para permitir movilidad a través de la
gestión de traspasos entre una celda y otra.
2.2.6.3 Tarjeta SIM
La tarjeta SIM (subscriber identy module) es una tarjeta inteligente usada en
dispositivos móviles con el fin de almacenar de forma segura la clave de servicio
del abonado o suscriptor para poder ser identificado en una red GSM.
Contiene la siguiente información:
Número telefónico del abonado (MSISDN).
Número internacional del abonado (IMSI).
Estado de la tarjeta SIM.
Código de servicio del operador.
Clave de autentificación.
El PIN (código de identificación personal).
46
El PUK (código personal de desbloqueo).
Figura 3.6.2 tarjeta SIM.
2.2.6.5 GPRS
El servicio general de paquetes vía radio GPRS (General Packet Radio Service),
fue desarrollado en la década de 1980. Corresponde a una extensión de sistema
GSM para la transmisión de datos mediante conmutación de paquetes.
Una conexión GPRS ofrece servicios como el Wireless Application Protocol
(WAP), servicio de mensajes cortos (SMS), Multimedia Messaging System (MMS),
internet, correo electrónico y la World Wide Web (WWW).
Los servicios de paquetes GPRS están orientados al tráfico de paquetes de datos
y conmutación de paquetes mediante radio enlaces, lo cual permite enviar tramas
de datos o paquetes de manera segura y eficiente.
47
2.2.6.6 Banda Ancha Móvil
La banda ancha móvil (BAM) es un servicio de internet otorgado por algunos
proveedores de telefonía, que cuenta con un modem USB, el cualpermite
conectarse a internet mediante la red GSM/GPRS en cualquier zona que posea
cobertura.
Para poder conectarse a internet mediante BAM se debe constar con un modem
USB otorgado por el proveedor del servicio. Ademas se debe contar con una
configuración APN (Access Point Name) para poder acceder a la red, un usuario y
una contraseña determinada.
El modem a utilizar es un USB ZTE MF669, el cual es compatible con las
frecuencias 3G de 1920-2170 MHz a una velocidad de transmisión de 21.6 Mb/s y
con un almacenamiento de hasta 32 Gb. Incorpora las funciones de servicios
SMS, manejo de aplicaciones y soporte de tarjetas microSD.
2.2.7 TCP/IP
2.2.7.1 Definición
El protocolo de control de transmisión (TCP) y el protocolo de internet (IP), en
conjunto TCP/IP es un sistema de protocolos que permiten llevar a cabo servicios
como Telnet, FTP, E-mail, etc. Entre ordenadores que no pertenecen a una misma
red física.
48
El protocolo de control de transmisión (TCP) permite a dos anfitriones establecer
una conexión e intercambiar datos, garantizando la entrega de datos durante la
transmisión sin modificar su orden al ser enviados.
El protocolo de internet (IP) utiliza series de cuatro números octetos (Byte) con
formato de punto decimal como direcciones para el enrutamiento en élenvió de
paquetes de datos.
El modelo TCP/IP está dividido en diversos módulos, cada uno realiza una tarea
específica y estas se realizan de manera secuencial, logrando un sistema
estratificado. De esta manera un mensaje enviado por la red atraviesa distintos
niveles de protocolos, siendo procesado por cada nivel, luego les agrega un
elemento de información (encabezado) y los envía a la capa siguiente.
Figura 3.7.1 Diagrama protocolo TCP.
49
Figura 3.7.2 Diagrama protocolo IP.
2.2.7.2 Modelo TCP/IP
El modelo TCP/IP utiliza un enfoque modular, ya que tiene 4 módulos con tareas
muy diversas.
Las capas del modelo TCP/IP son las siguientes:
1) Capa física: Describe las características físicas de la comunicación,
como las convenciones sobre el medio usado para la comunicación
(cable, fibra óptica o radio), y todos los detalles como los conectores,
códigos de canales y modulación de señales, etc.
2) Capa de enlace de datos: Esta capa especifica como son
transportados los paquetes sobre el nivel físico, incluyendo los
delimitadores (patrones de bits que marcan el inicio y el fin de cada
trama).
50
3) Capa de internet: El nivel de red soluciona el problema de transporte
de paquetes por una red.
4) Capa de transporte: Esta capa resuelve los problemas de fiabilidad
(confirmación en la recepción de información), la seguridad en el
orden de los datos y determina el destino de los datos.
5) Capa de aplicación: En este nivel aplicaciones especificas pasan
datos a nivel de aplicación, los cuales son codificados de acuerdo a
protocolos estándares.
Figura 3.7.3 Protocolos relacionado con el modelo TCP/IP.
51
2.2.7.3 Modelo OSI
Similar al modelo TCP/IP el modelo OSI (interconexión de sistemas abiertos) es
un modelo de 7 capas desarrollado por la organización internacional para la
estandarización (ISO) para estandarizar las comunicaciones entre equipos de una
red.
Cada capa del modelo OSI incorpora protocolos de comunicación diferentes, los
cuales van desde la parte más orientada al hardware (parte física) hasta la parte
más lógica y cercana al usuario.
Las capas del modelo OSI son las siguientes:
1) Capa física: Define la forma en la que los datos se transforman
físicamente en señales digitales en los medios de comunicación.
Maneja elementos relacionados al hardware como conectores,
cables y componentes de interfaz mediante pulsos eléctricos,
definiendo las especificaciones eléctricas y físicas de los dispositivos.
2) Capa de enlace de datos: Provee los medios funcionales y de
procedimiento para el envió de información entre equipos
pertenecientes a una red y detectar e intentar corregir errores
provenientes de la capa física.
3) Capa de red: Provee los medios funcionales y de procedimiento para
enviar secuencia de datos de diversa longitud de un equipo
conectado a la red (Host de origen) a un equipo de destino
conectado a una red diferente (Host de destino), mientras mantiene
el mensaje después de atravesar la capa de enlace. La capa de red
52
realiza el ruteo del mensaje mediante el uso de Routers, los cuales
trabajan en conjunto formando una red extendida.
4) Capa de transporte: Provee una transferencia de datos transparente
para el usuario final, mediante un servicio de transferencia confiable
para las capas superiores. Esta capa controla la confiabilidad de un
enlace dado mediante el control de flujo, segmentación y control de
errores. La capa de transporte puede mantener un seguimiento de
los segmentos y retransmitir los que fallan, también emite una
confirmación de que la transmisión fue exitosa.
5) Capa de sesión: Esta capa controla las conexiones entre
computadoras. Establece, administra y finaliza las conexiones entre
aplicaciones locales y remotas. Esta capa es la responsable del
cierre correcto de sesiones, el checkpoint de sesiones y
recuperación.
6) Capa de presentación: Esta capa establece contexto entre entidades
en la capa de aplicación, en los cuales las entidades pueden ocupar
sintaxis y semánticas diferentes, realizando un mapeo entre ambas.
Esta capa provee independencia de representación de datos
mediante la traducción entre los formatos de aplicación y red,
dándole formato y cifrando los datos que serán enviados a través de
la red.
7) Capa de aplicación: Es la capa más cercana al usuario final ya que
interactúan directamente con la aplicación de software
53
Figura 3.7.4 Diagrama modelo OSI.
2.2.7.4 Socket
Un socket es un método para la comunicación entre un programa del cliente y un
programa del servidor de una red, para enviar un elevado número de datos de
manera eficiente y segura.
Un socket está definido por:
Un par de direcciones IP local y remota, las que definen el equipo de
salida y el equipo de llegada del socket.
Un protocolo de transporte define el protocolo a utilizar.
54
Un par de número de puerto local y remoto, para determinar el puerto
de conexión entre los dos equipos.
Figura 3.7.5 Diagrama funcionamiento sockets.
2.2.7.5 Encapsulamiento de datos
Durante la comunicación entre dos hosts, los paquetes de datos deben ser
empaquetados para su envió en un proceso que se llama encapsulamiento.
El encapsulamiento agrega información de protocolo necesaria antes de iniciar el
tránsito por la red. Por ende, a medida que los datos se mueven a través de las
capas del modelo OSI recibe encabezados, los cuales recopilan la información
para garantizar la transmisión de datos. Después de atravesar cada capa, el
encabezado se lee y después se elimina, volviendo el mensaje a su estado
original.
55
En cada nivel se le agrega un encabezado cambiando su aspecto. Por lo tanto, las
designaciones cambian según las capas. El paquete de datos se denomina
mensaje en la capa de aplicación, luego al pasar a la capa de transporte se
encapsula en forma de segmento. Una vez en la capa de internet se encapsula y
pasa a llamarse datagrama. Para luego hablar de un datagrama a nivel de capa de
acceso de red.
2.2.7.6 Direcciones IP
Las direcciones IP sirven para la identificación de equipos conectados a una red.
Dependiendo del tipo de red en la que se desarrolle la comunicación podremos
determinar distintos tipos de direcciones IP.
56
1) IP Local: Esta dirección IP es la que se ocupan en redes privadas o
locales (LAN).
2) IP Publica: Esta dirección IP se ocupa para identificar el equipo dentro
de una red global de internet y esta puede clasificarse en dos tipos.
a) IP Publica Dinámica: Este tipo se le asigna al equipo por el
proveedor de servicios de internet (ISP) cada vez que el equipo
establece conexión con la red.
b) IP Publica Estática: Este tipo se refiere a una dirección IP definida
que tiene el equipo, independiente de cuantas veces realice
conexión.
2.2.8 MySQL
MySQL es un sistema de administración de base de datos de código abierto,
basado en lenguaje de consultas estructurado (SQL).
Una base de datos es un conjunto de información o datos agrupados y
estructurados en forma de tablas, los cuales puede ser explorado y consultados
por sistemas de administración de base de datos. Una base de datos permite
consultar los datos mediante el uso de reglas lógicas (comandos), acceso a los
datos mediante múltiples usuarios, seguridad de acceso, respaldo de datos e
independencia lógica y física de los datos guardados.
57
Entre las ventajas de ocupar MySQL como sistema de administración de base de
datos se encuentra:
Su velocidad y rendimiento en el procedimiento de consulta.
Bajos requerimientos de hardware para su funcionamiento.
Fácil implementación de servidores y es soportado por múltiples
sistemas operativos.
Baja probabilidad de sufrir daños en los datos de la base.
Su conectividad, velocidad y seguridad, permiten mantener un
servidor de base de datos de manera segura y eficiente.
2.2.9 Comunicación I2C
El protocolo de comunicación bus I2C es un sistema de intercambio de
información en serie mediante la utilización de dos líneas de señal. Una de ellas,
marca el tiempo (pulsos) y la otra se utiliza para el intercambio de datos. La señal
SCL (System Clock) marca los pulsos de sincronización y la señal SDA (System
Data) es la encargada del movimiento de datos entre dispositivos. Estas líneas
permiten la conexión en paralelo de varios dispositivos a la vez, mediante una
configuración electrónica determinada, conectando múltiples entradas y salidas
dentro del mismo bus de información.
58
Figura 3.8.1Configuracion electrónica comunicación I2C.
2.2.9.1 Protocolo de comunicación bus I2C.
Debido a que existen diversos dispositivos conectados al bus, se crea una relación
maestro-esclavo, siendo el maestro el encargado de iniciar la comunicación.
El bus se encuentra libre cuando ambas señales se encuentran en estado lógico
alto. Entonces el maestro inicia la comunicación mediante la condición “start”, la
cual invierte el estado de la línea SDA.
FIGURA 3.8.2 CONDICIÓN “START” COMUNICACIÓN I2C.
59
Luego de iniciar la comunicación se envía la dirección del dispositivo que se desea
seleccionar y un bit que define la operación a realizar (lectura/escritura). Si la
dirección se encuentra en el bus, este envía un bit de reconocimiento (ACK),
reconociendo la solicitud y se establece la comunicación, condicionada por el bit
R/W (lectura/escritura), si se escribe la comunicación continua hasta que se hayan
transmitido la totalidad de los datos y si se reciben datos, se envían bytes de
reconocimiento y se mantiene la comunicación mediante condiciones de
sentencias de inicio reiteradas, hasta que se ejecuta la sentencia “stop” y la
comunicación se detiene.
FIGURA 3.8.3BITS PARA ESTABLECER LA COMUNICACIÓN I2C.
FIGURA 3.8.4 CONDICIÓN “STOP” COMUNICACIÓN I2C.
(Robots Argentina, 2017)
60
2.2.9.2 Direccionamiento
Comúnmente los dispositivos que se comunican mediante bus I2C utilizan
direcciones de 7 bits, aunque existen dispositivos con direcciones de 10 bits. Una
dirección de 7 bits implica que se pueden tener hasta 128 dispositivos conectados
al bus.
Cuando se envían las direcciones, se componen por cadenas de 8 bits, las 7
primeras son la dirección y el octavo bits define si es lectura o escritura. Los
primeros 7 bits manejan la dirección mediante la utilización de un numero
hexadecimal
2.2.10 Ventiladores eléctricos
Un ventilador es una máquina de fluido, la cual genera la presión necesaria para
mantener un flujo continuo de aire. Su funcionamiento se basa en el uso de
energía eléctrica en forma de corriente continua.
El ventilador a utilizar será un Brushless DC Fan modelo 4010s, un pequeño
ventilador de anta potencia y bajo consumo. Sus especificaciones técnicas son las
siguientes:
61
Voltaje de operación: 7 ~ 13.8 v
Corriente de operación: 150mA
Potencia de consumo: 1800mW
Revoluciones por minuto: 7000
Caudal máximo:
⁄
Presión estática máxima: 36.87 Pa
Dimensiones: 40x40x10 mm
Figura 3.9.1Ventilador eléctrico.
2.2.11 Panel solar fotovoltaico
Los paneles o módulos fotovoltaicos están formados por un conjunto de células
fotovoltaicas que producen electricidad a partir de la luz que incide sobre ellos
mediante efecto fotoeléctrico.
Los paneles a utilizar en el proyecto poseen las siguientes características:
Potencia de generación: 2.5W
Voltaje de operación: 12V
62
Tipo de panel: Policristalino
Dimensiones: 19,4x12x0,3 cm
Peso: 70g
Figura 3.10.1 Panel solar fotovoltaico.
2.2.11.1 Tipos de paneles
Los paneles fotovoltaicos se clasifican según el tipo de célula que los conforman.
Los tipos de paneles según su cristalinidad son:
Monocristalinas: El panel se compone por secciones de un único cristal de
silicio.
Policristalinas: El panel está formado por pequeñas partículas cristalizadas.
Amorfas: Se le denomina amorfos cuando el silicio al interior del panel no
se utiliza en forma de cristales.
63
2.2.11.2 Principio de funcionamiento
Los paneles solares fotovoltaicos se rigen por determinados principios para su
funcionamiento:
Los fotones provenientes de los rayos solares que impactan sobre la
primera superficie son absorbidos por múltiples semiconductores como el
silicio.
Los electrones que se encuentran en la periferia son golpeados por los
fotones, siendo liberado de su órbita separándose del núcleo.
Un conjunto de paneles transforma la energía solar en energía eléctrica, en forma
de corriente continua (DC).
2.2.11.3 Sistemas fotovoltaicos autónomos
Un sistema fotovoltaico autónomo (SFA), es aquel sistema alimentado por paneles
solares fotovoltaico capaz de satisfacer el consumo de cargas eléctricas no
conectadas a la red, con la implementación de un sistema de acumulación
energética para mantener su funcionamiento en periodos que el consumo
energético es mayor a la generación eléctrica.
64
Figura 3.10.2 Configuración clásica de un Sistema fotovoltaico autónomo.
Los componentes que conforman un sistema fotovoltaico autónomo son:
Acumulador electroquímico: Es una batería recargable capaz de almacenar
energía eléctrica mediante procesos electroquímicos. Debe ser de mayor
capacidad que la necesaria por el circuito, incluyendo los momentos que el
sistema no esté generando, brindándole autonomía al sistema.
Regulador de carga: Un regulador de carga es un equipo electrónico capaz
de evitar la sobrecarga y la descarga excesiva de un acumulador, mediante
la desconexión de la batería al generador o al consumo cuando se alcanzan
determinados estados determinados por la tensión del sistema.
Carga: Todo dispositivo que necesite ser alimentado por el sistema
fotovoltaico.
65
2.2.12 GNU/Linux
GNU/Linux es un sistema operativo open-source que puede funcionar con una
interfaz gráfica de por medio o directamente desde líneas de comandos. Es un
sistema multitareas, multiusuario y compatible con UNIX.
Sus orígenes radican en los años noventa cuando Linus Torvalds, un estudiante
finlandés que creo un sistema operativo nuevo, cambiando el núcleo o kernel de
un sistema operativo en desarrollo denominado GNU y desarrollado por Richard
Stallman. A este nuevo sistema lo denomino Linux y al poseer herramientas de
GNU paso a ser GNU/Linux.
Dentro de sus versiones mas populares, se encuentra Debian, una distribución
actualmente mantenida por una red de desarrolladores voluntarios, los que han
mantenido los principios del software libre. En base a este sistema nace Raspbian,
un sistema operativo desarrollado por Raspberry Pi, el cual esta optimizado para
el funcionamiento con el hardware de la Raspberry Pi.(Ciberaula, 2017)
2.2.13Python
Python es un lenguaje de programación de scripting, de propósito general y
orientado a objetos. Puede utilizarse tanto como en aplicaciones de Windows,
servidores web, GNU/Linux y páginas web.
66
Python es un lenguaje interpretado, esto significa que no es necesario compilar el
código para ser ejecutado, lo que permite una mayor rapidez de desarrollo y
simplicidad en su ejecución.
Entre las ventajas de Python se encuentra su gran cantidad de librerías y
funciones incorporadas, sencillez en la creación de programas, la cantidad de
plataformas en la que se puede implementar y además es de código abierto, lo
que significa que es gratuito.
(DesarrolloWeb.com, 2017)
2.2.14 Conversor ADC
Un conversor análogo-digital, es un dispositivo electrónico que convierte una señal
análoga (Voltaje) a una señal digital mediante la utilización de un escalamiento. En
el rendimiento de la transformación análoga digital juega un papel muy importante
la resolución de la transformación, es decir cuanto voltaje se necesita para
cambiar la señal analógica en el bit menos significativo. La calidad o resolución de
la transformación va arraigada a numero de bits que posee el conversor. Pudiendo
ser determinado mediante la siguiente formula:
67
Siendo el valor de referencia superior y n el número de bits.
El conversor a utilizar para la lectura de sensores será un ADS 1115 de 16 bits, el
cual cuenta con cuatro entradas análogas y comunicación mediante bus I2C. Sus
especificaciones técnicas son las siguientes:
Rango de VDD a GND: -0,3 a +5,5V
Corriente máxima de entrada análoga: 100mA
Voltaje máximo entrada análoga: VDD+0,3
SDA, SCL, ADDR, ALERT/RDY voltaje de funcionamiento: 5,5v
Temperatura de operación: -40 a 140 °C
Figura 3.11 Conversor análogo-digital ADS1115.
2.2.15 Labview
Labview es un lenguaje de programación desarrollado por National Instrument, el
cual esta diseñado para la elaboración de pruebas, controles y monitoreos. Es un
programa de programación grafica mediante la unión de bloques de programación
68
o VI’s (virtual instrument), los cuales cumplen diversas funciones dentro de la
programación.
Dentro de las ventajas que posee Labview esta su simplicidad para la generación
de programaciones, su gran cantidad de librerías (VI’s) disponibles, la vasta
cantidad de información por parte de su fabricante National Instrument y la
facilidad en la creación de una interfaz visual para el desarrollo de aplicaciones.
(National Instruments, 2017)
La programación de Labview permite la utilización de los típicos bucles de
programación, definición de variables de diferentes tipos (int, booleana, doublé,
string array, etc). Pero a diferencia de otros lenguajes de programación Labview
divide su programación en dos partes, la primera se denomina panel frontal, el
cual tiene contacto directo con el usuario final y permite la visualización y control
de variables y procesos. La segunda parte corresponde al diagrama de bloques,
aquí es donde se desarrolla la programación.
2.2.15.1 Elementos de Labview
Panel frontal: El panel frontal es la que esta en contacto directo con el
usuario final, aquí podemos encontrar indicadores y controladores. Los
controladores nos permiten insertar variables a nuestra programación y los
indicadores nos muestran información de nuestra programación o proceso.
69
Figura 3.12.1 Panel frontal Labview.
Diagrama de bloques: La ventana del diagrama de bloques es en donde se
escribe y desarrolla la promoción visual de Labview, en esta ventana se van
enlazando los bloques mediante hilos o hebras.
Variables de programación: El color y forma del hilo que conecta dos
terminales de diferentes bloques de programación, identifica el tipo de
variable.
Figura 3.12.2 Variables según color y dimensión Labview.
Indicadores y controladores: Los indicadores son los encargados de
transportar nuestras variables desde nuestra ventana de diagrama de
bloques a nuestro panel frontal en forma de visualizadores, es decir que no
se pueden alterar en e panel frontal. Los controladores hacen la función
70
inversa son las partes modificables por el usuario y transportan las
variables definidas por el usuario al diagrama de bloques.
Figura 3.12.3 Indicadores y controladores de variables en Labview.
Estructuras: Su objetivo es realizar una tarea reiteradamente mientras se
cumplan ciertas condiciones, al igual que en otros lenguajes de
programación poseemos los bucles For, While y Switch-Case.
Figura 3.12.4 bucles de programación en Labview en el orden de For, While y Switch -Case.
Graficas: Labview provee una variedad de gráficas similares a la hora de
ser visualizadas, pero se diferencia en como grafican los datos. Para el
proyecto se utilizará la “Waveform Chart” la que permite representar
variables e ir actualizándose en tiempo real.
72
3 Desarrollo del proyecto
3.1 Modelamiento de la solución
La estructura del proyecto comienza con un mecanismo de adquisición de datos,
el cual consta con 3 sensores y un divisor de tensión que proporcionan la tasa de
purificación de , el estado de la batería en porcentaje y el estado de saturación
de la cal sodada. Además, cuenta con un sistema de geo posicionamiento GPS y
un modem de conexión BAM, los cuales permiten determinar la localización de
dispositivo y su respectiva comunicación mediante internet 3G.
Figura 3.13 Diagrama de bloques del proyecto
La Raspberry Pi Zero W recibe los datos entregados por los sensores, el divisor
mediante el conversor análogo-digital y el módulo GPS. Luego, mediante USB y el
modem de BAM establece la conexión a internet y envía los datos directamente a
una base de datos establecía en un servidor de base de datos MySQL, el cual
73
será consultado por una aplicación desarrollada en Labview, la que permitirá la
monitorización del dispositivo por el usuario.
El dispositivo cuenta con una lectura en tiempo real de los datos y continua
actualización del servidor MySQL,esto permitirá un exhaustivo monitoreo por parte
de la aplicación, permitiendo detectar cuando existan problemas con el dispositivo
Figura 3.14 Diagrama de flujo de recopilación de datos del dispositivo
74
La aplicación en JAVA mostrara el porcentaje de la batería, la tasa de purificación
de , el estado de saturación de la cal sodada y la localización del dispositivo.
También se emitirá una alarma cuando la cal sodada alcance un estado de
saturación determinado, indicando que el dispositivo necesita mantención.
Figura 3.15 Diagrama de flujo del programa en Labview
75
3.1 Ventajas y aplicaciones
Las principales ventajas que posee FACYM es su autonomía energética, la cual
permite su fácil instalación en cualquier lugar que cuente con luz solar, además de
contar con un sistema de monitoreo cómodo para el usuario, el cual emite alarmas
de emergencia con el fin de facilitar el monitoreo de múltiples dispositivos a la vez,
permitiendo elaborar mantenciones oportunas y de manera eficiente.
FACYM también permite una versatilidad en su diseño ya que el mecanismo de
funcionamiento permite implementar mejoras en el sistema de filtros, con el fin de
purificar otras sustancias contaminantes presentes en el aire, además de aceptar
modificaciones en su sistema de alimentación, pudiendo ser implementado en
cavernas o lugares privados de luz solar.
76
3.2 Raspberry
Para comenzar con el desarrollo del dispositivo primero debemos preparar nuestro
controlador. Para ello debemos instalar el sistema operativo de este denominado
“RASPBIAN STRETCH WITH DESKTOP” versión de kernel 4.9, por lo cual
debemos descargarlo directamente de la página
“https://www.raspberrypi.org/downloads/” (Raspberry Pi Foundation, 2017), para
este caso seleccionaremos la opción con escritorio agregado para poder hacer
más amigable su manejo y posterior programación.
Figura 3.16.1 “Raspbian”.
Una vez descargado el “Raspbian”, debemos grabar la imagen del disco en
nuestra memoria SD y para ello ocuparemos el programa que nos recomienda
Raspberry Pi Foundation, denominado “Etcher”. Seleccionamos la imagen de
disco a guardar, seleccionamos la memoria y grabamos. Ya está lista para su uso.
77
Figura 3.16.1 Programa “Etcher”.
3.3 Configuración y conexión remota
Una vez boteado el Raspbian en nuestra SD, encendemos nuestra Raspberry Pi
Zero W, debemos configurar nuestra conexión a internet para comenzar a
actualizar nuestras librerías e instalar otras. Este modelo de Raspberry Pi cuenta
con Wi-Fi y Bluetooth incorporados, por ende, solo debemos conectarnos a
nuestra red doméstica.
Ya conectados a internet, actualizaremos nuestro repositorio, con el cual
descargamos e instalamos nuestros programas, mediante la ejecución del
siguiente código en consola:
$ sudo apt-get -y update
Esperamos a que finalice y actualizamos nuestros programas con el siguiente
comando:
$ sudo apt-get -y upgrade
78
Como ultima configuración, actualizamos nuestro kernel para obtener mejoras y
soporte actualizado:
$ sudo rpi-update
(geekytheory, 2017)
Ya que tenemos actualizada nuestra Raspberry Pi, ahora instalaremos nuestro
servidor RDP para su control de manera remota desde nuestro PC personal. Para
ello ejecutamos el siguiente comando en consola:
$ sudo apt-get install xrdp
Una vez finalizada la instalación, consultamos nuestra IP en la red local para
poder establecer la comunicación, para ello ejecutamos el comando:
$ ifconfig
Figura 3.17.1 Consola con el comando ifconfig.
79
Extraemos nuestra IP de la red wlan0, en nuestro caso 192.168.1.20 y nos
dirigimos a nuestro PC con Windows y buscamos la aplicación de conexión a
escritorio remoto, escribimos la IP de la Raspberry Pi y conectamos.
Figura 3.17.2 Conexión a escritorio remoto mediante Windows.
Se nos abrirá una ventana, pidiendo el usuario y la contraseña. Por defecto en
nuestra Raspberry Pi el usuario es “pi” y nuestra contraseña es “raspberry”.
Figura 3.17.3 Ventana usuario y contraseña conexión remota.
80
Y ya estamos conectados remotamente con nuestra Raspberry Pi.
Figura 3.17.4 Visualización de escritorio mediante conexión remota.
(redeszone, 2017)
3.4 Conexión a internet mediante BAM
Para permitir la comunicación mediante internet con el servidor de base de dato,
configuraremos nuestro sistema “Raspbian” para que pueda establecer
comunicación mediante un dispositivo de Banda Ancha Móvil, proporcionado por
nuestro proveedor GSM/GPRS. Para ello necesitamos conexión a internet
mediante wifi o cable de red, luego abrimos el terminal y ejecutamos los siguientes
comandos:
Para instalar el protocolo de comunicación punto a punto (point-point protocol
(ppp)).
$Sudo apt-get install ppp
81
Ahora creamos un nuevo directorio llamado “3g”
$Mkdir ~/3g
$Cd ~/3g
Ahora debemos descargar la última versión del sakis3g de este link:
https://sourceforge.net/projects/vim-n4n0/files/sakis3g.tar.gz/download
$ gunzip -d sakis3g.tar.gz
$ tar xvf sakis3g.tar
$ chmod +x sakis3gz
$sudo ./sakis3g—interactive
Una vez ejecutado los comando anterior, seleccionamos:
1. conexión mediante 3g.
2. USB device.
3. ZTE WCDMA Technologies MSM.
4. Custom APN.
5. Ingresamos el APN de nuestro operador.
6. Ingresamos el usuario de nuestro proveedor.
7. Ingresamos la contraseña de nuestro proveedor.
82
Figura 3.18 Ventana de configuración con interfaz visual de sakis3g
Y ya estamos conectados, para desconectarnos debemos ingresar el siguiente
comando:
$sudo ./sakis3g –interactive
Y seleccionamos desconectarnos.
(Vazquez, 2017)
3.5 Comunicación serial con el GPS
Para poder determinar la localización GPS del dispositivo debemos recurrir al
módulo GPS y para ello debemos comunicarnos con el mediante comunicación
serial por los puertos GPIO14 (TX) y GPIO15 (RX) a una velocidad de 9600
Baudios. Para realizar la comunicación con el módulo, primero debemos
configurar nuestra Raspberry para permitir la lectura de datos desde estos pines,
para ello debemos seguir los siguientes pasos:
83
1. Debemos editar el archivo cmdline.txt, para ello ingresamos el siguiente
código en el terminal:
$sudo nano /boot/cmdline.txt
ahora borramos eltexto que dice “console=ttyAMA0,115200” y
“plymouth.ignore-serial-consoles”, guardamos y cerramos.
2. Ahora debemos detener y deshabilitar los servicios tty para realizar la
lectura del ttyAMA0 (UART), por lo que ejecutaremos los siguientes dos
comandos:
$sudo systemctl stop serial-getty@ttyAMA0.service
$sudo systemctl disable serial-getty@ttyAMA0.service
3. Como la Raspberry Pi Zero W posee Bluetooth incorporado, debemos
desactivarlo para permite la liberación de los GPIOs 14 y 15. Para ello
debemos ejecutar el siguiente comando en consola:
$ sudo systemctl disable hciuart
4. Debemos reiniciar la raspberry para que los datos sean guardados en la
memoria, ejecutando el siguiente comando:
$Sudo reboot
(Adafruit, 2017)
84
Figura 3.19.1Conexión Raspberry con modulo GPS
5. Ahora debemos realizar la prueba de comunicación, la cual realizaremos
con un monitor de comunicación serial llamado “minicom”, para ello
debemos instalarlo ejecutando el siguiente comando en consola:
$sudo apt-get install minicom
6. Ahora realizamos la prueba mediante el siguiente comando:
$sudo minicom -D /dev/ttyAMA0 -b9600
(on the Brian Dorey.com , 2017)
85
Figura 3.19.2 Minicom comunicación GPS.
Una vez terminado de configurar nuestro puerto UART, debemos ejecutar una
programación en Python la cual nos extraiga los datos de latitud y longitud
entregadas por nuestro geo localizador GPS. Para ello implementaremos a una
comparación para determinar la sentencia de información que utilizaremos para
extraer la información, también aremos un Split con el fin de aislar los datos
necesarios según el protocolo de comunicación establecido por la NMA.
Se desarrollo el siguiente código en Python para la extracción de datos del módulo
GPS:
#Se importa librería serial
Import serial
#Se crea la comunicación con el GPS mediante el puerto
ttyAMA0 (pines UART), a una velocidad de 9600 baudios
86
Gps = serial.Serial(―/dev/ttyAMA0‖, baudrate = 9600)
While True:
#Se lee la sentencia entregada por el GPS y se guarda en
una variable
Line = gps.readLine()
#Se realiza un Split con el fin de separar la trama por
cada ―,‖
Data = line.split(―,‖)
#Se compara el encabezado de la línea para diferenciar
las sentencias y buscar los datos necesarios
If data[0] = ―$GPRMC‖:
#Se extraen y se muestran en consola los datos de
latitud y longitud
Print (―Latitud: ―+ data[3])
Print (―Longitud: ―+data[5])
87
Figura 3.19.3 Diagrama de flujo programación del GPS.
3.6 Conversor análogo-digital
Para poder realizar una lectura de sensores emplearemos un ADC de 16-bits y
cuatro canales modelos ADS1115, el cual se comunicará mediante comunicación
I2C con la Raspberry mediante los puertos GPIO2 (SDA) y el puerto GPIO3 (SCL).
88
Para poder establecer esta comunicación, primero debemos configurar nuestra
Raspberry para poder liberar los puertos (GPIO2 y GPIO3), para ello debemos
seguir los siguientes pasos:
1. Agregamos los puertos en el archivo módulos y para eso, ejecutamos el
siguiente código en consola y agregamos las líneas al texto:
$sudo nano / etc / modules
i2c-bcm2708
i2c-dev
Para guardar el archivo presione Control-XY
2. También debemos modificar el archivo /boot/config.txt, ejecutando el
siguiente comando:
$ sudo nano /boot/config.txt
Y agregando al final del texto:
dtparam = i2c1 = en
dtparam = i2c_arm = on
Guardamos y cerramos presionando Ctrl+x Y
3. Reiniciamos la raspberry para guardar las configuraciones ejecutando el
comando:
$sudo reboot
4. Ahora que ya teneos instalado el puerto, mapeamos las conexiones
disponibles, ejecutando el siguiente comando:
$ sudo i2cdetect -y 1
(Adafruit, 2017)
89
Figura 3.20.1 Conexión ADS1115 con Raspberry.
Como se puede observar en el mapeo nuestra dirección corresponde a 0x48 por
ende debemos aplicar la siguiente configuración a nuestro pin “Address”.
Figura 3.20.2 Configuración pin “Address” Ads1115
90
Figura 3.20.3 Conexión ADS1115 con Raspberry.
Ahora que ya tenemos configurado el puerto, debemos agregar los paquetes y
librerías para el puerto, seguiremos las siguientes instrucciones:
1. Ejecutar los siguientes comandos en consola:
$ sudo apt-get update
$ sudo apt-get install build-essential python-dev
python-smbus git
$ cd ~
$ git clone
https://github.com/adafruit/Adafruit_Python_ADS1x15.git
$ cd Adafruit_Python_ADS1x15
$ instalación de sudo python setup.py
2. Una vez terminada la instalación debemos instalar los paquetes de Python
y para ello ejecutamos los siguientes comandos en consola:
$ sudo apt-get update
$ sudo apt-get install build-essential python-dev
python-smbus python-pip
$ sudo pip install adafruit-ads1x15
91
3. Para poder utilizar la librería, modificaremos y ejecutaremos un ejemplo de
programación en Python, para lo que debemos ejecutar los siguientes
comandos en algún terminal:
$ cd ~ / Adafruit_Python_ADS1x15 / ejemplos
$ nano simpletest.py
4. Inspeccionamos el código y lo modificamos según convenga:
# Crear una instancia ADS1115 ADC (16 bits).
adc = Adafruit_ADS1x15.ADS1115 ()
# Tenga en cuenta que puede cambiar la dirección
I2C de su valor predeterminado (0x48) y / o el I2C, Como
nuestra dirección es 0x48 como nos mostró el mapeo, no
modificamos este codigo
GANANCIA = 1
print (‗Lectura de valores ADS1x15, presione Ctrl-C para
salir ...‘)
# Imprimir buenos encabezados de columna de canal.
print (‗| 0:> 6 | 1:> 6 | 2:> 6 | 3:> 6 |‘
formato (* rango (4)))
imprimir (‗-‗ * 37)
# Lea todos los valores del canal ADC en una lista.
valores = [0] * 4
# Lea el canal ADC especificado utilizando el valor
de ganancia establecido previamente.
valores [i] = adc.read_adc (i, ganancia =
GANANCIA, da)
92
# Tenga en cuenta que también puede pasar un
parámetro de data_rate opcional que controla
# el tiempo de conversión de ADC (en muestras /
segundo).
# conjunto de valores de velocidad de datos
permitidos, ver hoja de datos Tabla 9 registro de
configuración
# Valores de bit DR.
#values [i] = adc.read_adc (i, gain = GAIN,
data_rate = 128)
# Imprimir los valores de ADC.
print (‗| 0:> 6 | 1:> 6 | 2:> 6 | 3:> 6 |‘
formato (* valores))
# Pausa por medio segundo.
time.sleep (0.5)
5. Guardamos, cerramos y ejecutamos, presionando Ctrl+X, Y. Después
ejecutamos el siguiente comando en consola:
Figura 3.20.4 Lectura del puerto I2C comunicando Raspberry con el ADS1115.
(Adafuits, 2017)
93
3.7 Sensores del dispositivo
El prototipo del proyecto dispone de tres sensores análogos dos sensores de
MQ-135 y un sensor de PH de líquidos, ambos son compatibles con la plataforma
de Arduino y entregan señales de salida que fluctúan entre los 0 – 5 V.
3.7.1 Sensor de MQ-135
El sensor MQ-135 mide la calidad del aire variando su resistencia en presencia de
determinados gases. Mediante un mini calentador, el cual reacciona con la
presencia de alcohol, benceno, humo, , emitiendo una salida
análoga proporcional a la concentración de estos, además de poseer una salida
digital, la cual se activa cuando alguno de estos gases se encuentra presente.
Para logar determinar con exactitud cuanto en censado, se ocupará un
dispositivo diseñado para medir el en ppm (partes por millón), con el cual
queremos determinar dos puntos de lectura y poder formular una función que nos
describa la lectura mediante una ecuación de la recta.
Mediante la experimentación se pudo determinar 4 puntos referenciales,
resumidos en la siguiente tabla:
94
Concentración de (ppm) Medida ADC Raspberry
0.52 4097
12.42 11560
103.88 23500
485.52 32767
Ahora que tenemos los datos podemos modelar una función con el
comportamiento del sensor. Seleccionaremos los dos puntos más alejados para
poseer un rango de lectura sin la necesidad de extrapolar.
x y
Punto 1 4097 0.52
Punto 2 32767 485.52
Con estos puntos modelaremos nuestra función de la forma:
95
Mediante esta función podremos obtener nuestra concentración de a partir de
la lectura entregada por nuestro sensor.
Figura 3.21.1 Pin-out sensor MQ-135.
3.7.2 Sensor de PH de líquidos
El sensor de PH de líquidos consiste es una sonda BNC, la cual está en contacto
directo con el líquido a censar y un integrado encargado de la traducción en la
lectura para ser compatible con Raspberry Pi, entregando una lectura del PH entre
0-14 mediante una lectura análoga entre 0 y 32767.
Para determinar con exactitud el PH del líquido se determinará una ecuación de la
recta tomando dos puntos como referencia, midiendo la señal entregada por el
sensor, PH teórico (conevyt, 2010) y midiendo PH con papel tornasol para una
mayor exactitud. Se evaluarán tres líquidos de distinto PH, la muestra uno
96
constara de jugo de limón, la muestra dos de agua con bicarbonato y la tercera
muestra solo agua.
Muestra PH teórico Papel tornasol
Señal del sensor
1 Jugo de limón 2 2 30717
2 Agua con bicarbonato
9 9 22600
3 Agua purificada 7 7-8 24972
Figura 3.21.2 Resultado de pruebas con papel tornasol
97
Figura 3.21.3 Tabla de colores papel tornasol
Teniendo en consideración la información obtenida, utilizaremos la muestra del
jugo de limón y la del agua con bicarbonato para determinar nuestra ecuación de
la resta y así poder determinar una función que nos determine el PH mediante la
señal de entrada de nuestro sensor.
PH Señal del sensor
Jugo de limón 2 30717
Agua con Bicarbonato 9 22600
98
Mediante esta ecuación podemos determinar el PH exacto de una sustancia
mediante la señal que emite el sensor a la Raspberry Pi.
Figura 3.21.4 Conexión sensor de PH con Raspberry Pi
3.7.3 Medidor de carga de batería.
Para lograr determinar un aproximado del porcentaje de carga de la batería
ocuparemos la medida de tensión entre sus terminales, determinando 5 niveles de
carga.
Voltaje batería (V) Medida de carga
V =< 10v Batería descargada
10v < V =< 12v Batería al 25%
12v < V =<12,5v Batería al 50%
99
12,5v < V =< 13v Batería al 75%
13v < V Batería al 100%
(NeoTeo, 2017)
Una vez determinado los niveles de carga, debemos censar este voltaje, pero
como nuestro ADC soporta solo tensiones entre 0 – 5 volts debemos implementar
un divisor de tensión para no dañar nuestro equipo. El divisor de tensión poseerá
la siguiente configuración:
Figura 3.21.5Configuración divisor de tensión.
Siguiendo la configuración, determinamos los voltajes de salida y de entrada y el
valor de las resistencias. El voltaje de entrada se fijará en 15 volts para tener un
margen de error y proteger el equipo de posibles peak de voltaje en el sistema, el
voltaje de salida se fijará en 5 volts ya que es el máximo permitido por el ADC. Si
definimos la resistencia de abajo con un valor de 100KΩ, la ecuación resultante
será:
100
Una vez obtenido los resultados de nuestras resistencias ahora debemos
determinar la lectura que obtendrá nuestra Raspberry Pi para determinar nuestro
% de batería, para ello realizaremos una simulación mediante un potenciómetro,
emulando el voltaje que el divisor de tensión le entregará a la Raspberry Pi,
calculándolo según la formula anteriormente planteada. Obteniendo los siguientes
resultados:
Porcentaje de batería
Voltaje de la batería
Voltaje entregado a la Raspberry Pi
Señal entregada por el ADC
0% V =< 10v V =< 3.33v S =< 26130
25% 10v < V =< 12v 3.33v < V =< 4v 26130 < S =< 28863
50% 12v < V =<12,5v 4v<V =< 4.17v 28863 < S =<30195
75% 12,5v < V =< 13v 4.17v < V =< 4.33v 30195< S =< 31890
100% 13v < V 4.33v < V 31890< S
101
3.8 Sistema de base de datos
El sistema de bases de datos es parte fundamental del proyecto, debido a que
este servirá de enlace entre el dispositivo y la aplicación de monitoreo remoto en
Labview. El sistema constara con un servidor web, el que servirá de servidor de
base de datos, el dispositivo que enviara la información a la base de datos y el
programa en Labview que consultara estos datos a medida que se van
actualizando.
3.8.1 Implementaciónde MySQL en Raspberry
Para implementar un cliente-servidor de MySQL en Raspberry debemos iniciar un
servidor Apache. Para esto se instalará apache2 ejecutando el siguiente comando
en consola:
$ sudo apt-get install apache2
Ahora para verificar si nuestro servidor apache2 este operativo, ejecutaremos el
siguiente comando en consola para conocer nuestra IP dentro de la red local, con
el fin de visualizar nuestro servidor desde un ordenador remoto conectado a la
misma red local.
$ ifconfig
102
Figura 3.22.1 Consola de Raspberry ejecutando el comando ifconfig
Una vez obtenida nuestra IP en la red local podemos acceder a ella desde
cualquier operador en la red local y visualizaremos nuestro servidor apache2.
Figura 3.22.2 Servidor apache2 desde la Raspberry
Ahora instalaremos y ejecutaremos nuestro servidor-cliente en la Raspberry, para
ello instalamos MySQL ejecutando el siguiente comando en consola:
$ sudo apt-get install mysql-server mysql-client php5-mysql
103
Ahora iniciamos nuestro servidor MySQL, ejecutando el siguiente comando en
consola:
$ sudo service mysql start
Una vez iniciado nuestro servido, nos conectamos a el desde nuestra Raspberry
para comprobar que este está funcionando, para ello nos conectaremos como
usuario root a nuestro servidor, ejecutando el siguiente comando en consola:
$ sudo mysql -u root -p
Figura 3.22.3 Conexión servidor MySQL mediante Raspberry.
Una vez conectado a nuestro servidor, salimos de el presionando las teclas “Ctrl” y
“C”. Ahora para administrar nuestro servidor instalaremos PhpMyAdmin, para eso
primero debemos instalarlo, lo cual aremos ejecutando el siguiente comando en
consola:
$ sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
104
Durante el proceso de instalación, el sistema nos consultara que tipo de servidor
es el que tenemos, seleccionamos “apache2” y luego nos preguntara si
configuramos nuestro servidor de bases de datos, seleccionamos que si y
rellenamos los campos requeridos para su configuración.
Una vez configurado nuestro servidor, definiendo el host, usuario y password, se
editará el fichero php.ini para iniciar nuestro servidor una vez encendida la
Raspberry, para ello ejecutamos el siguiente comando en consola:
$ sudo nano /etc/php5/apache2/php.ini
Una vez abierto el fichero se agrega la siguiente línea al documento:
extension=mysql.so
Guardamos los cambios en el fichero y cerramos, ahora modificaremos el
arranque de nuestro servidor apache ejecutando el siguiente comando en consola:
$ sudo ln -s /etc/phpmyadmin/apache.conf
/etc/apache2/conf.d/phpmyadmin.conf
Ahora se reinicia nuestro servidor apache2 mediante el siguiente comando:
$ sudo /etc/init.d/apache2 reload
105
Una vez terminada nuestras configuraciones, nos dirigimos al navegador de
nuestro operador remoto y accedemos a nuestro servidor PhpMyAdmin indicando
nuestra IP de la siguiente manera:
http://(IP local)/phpmyadmin/
Figura 3.22.4 Conexión a phpMyAdmin desde equipo remoto
(Coyan.es, 2017)
3.8.2 Implementación del servidor web
Para lograr que nuestro dispositivo se encuentre en línea desde cualquier lugar
donde sea instalado, montaremos un servidor web que sea visible desde cualquier
dispositivo conectado a internet.
Se montará un servidor web mediante la utilización de una página de servidores
online, en el cual, mediante una suscripción y el pago de una cuota mensual de 5
dólares, se puede montar un servidor con una máquina virtual con una IP fija y un
106
sistema operativo Debian, con 512 MB de memoria RAM y 2 GB de disco duro. Es
este servidor instalaremos e iniciaremos nuestro servidor web de MySQL.
Primero debemos iniciar nuestra máquina virtual. Para ello, nos registramos en la
página http://digitalocean.com/, registramos una tarjeta de crédito y seleccionamos
las características y el sistema operativo de nuestra máquina virtual, cada
máquina cuenta con un precio distinto.
Figura 3.22.5 Creación de máquina virtual en Digitalocean
Para este caso se escogió la máquina virtual con las características anteriormente
mencionadas. Nos dirigimos a nuestra cuenta y arrancamos nuestro servidor,
dando clic en “Launch Console” en la pestaña de acceso de nuestro servidor.
107
Figura 3.22.6 Lanzamiento de consola en Digitalocean.
Para nuestro primer uso se nos enviara nuestro usuario y contraseña al correo,
luego de ingresar por primera vez, podremos cambiar nuestra contraseña e
ingresar a la consola de comandos.
Figura 3.22.7 Consola máquina virtual de Digitalocean con sistema operativo Debian.
108
Ya en nuestra máquina virtual, procederemos a actualizar nuestro sistema y
nuestras aplicaciones instaladas. Para ello ejecutamos los siguientes comandos
en la consola de nuestra máquina virtual.
$ sudo apt-get update
$ sudo apt-get upgrade
Una vez terminando de actualizar nuestra máquina virtual, instalaremos MySQL en
nuestro servidor, ejecutando los siguientes comandos:
$ sudo apt-get install mysql-server mysql-client
Ya instalado nuestro servidor MySQL, ingresamos a el como usuario root
mediante el siguiente comando:
$ sudo mysql -u root
Primero eliminaremos el acceso público a los usuarios locales de la red, con el fin
de asegurarnos que solo puedan ingresar nuestros usuarios registrados. Para ello
ejecutamos el siguiente comando en consola:
DROP USER ―@‘localhost‘;
DROP USER ―@‘localhost.localdomain‘;
Ahora crearemos nuestro usuario “disp1” el cual corresponderá al dispositivo y
permitiremos su conexión desde cualquier host, mediante el siguiente comando:
CREATE USER ‗disp‘@‘%‘ IDENTIFIED BY ‗contraseña‘;
109
Una vez creado nuestro usuario, crearemos nuestra base de datos denominada
“facym”, ejecutando el siguiente comando en consola:
CREATE DATABASE IF NOT EXISTS ‗facym‗;
Ya creada la base de datos, le otorgaremos privilegios de administrador a nuestro
usuario “disp1”, utilizando el siguiente comando:
GRANT ALL PRIVILEGES ON ‗facym‗. * TO ‗disp‘@‘localhost‘;
Ahora salimos de nuestra base de datos utilizando el comando.
QUIT;
(Medina, 2017)
Ahora que, ya que se tiene instalada nuestra base de datos en nuestro servidor
web, se instalara un servidor PhpMyAdmin con la finalidad de administrar y
visualizar la base de datos desde un equipo remoto. Para ello se debe instalar un
servidor apache2, similar a lo hecho anteriormente con nuestra Raspberry. Se
instala ejecutando la siguiente sentencia en consola:
$ sudo apt-get install apache2
Ya instalado nuestro servidor apache, se averigua la IP para ver si el servidor
apache se encuentra operativo, mediante el siguiente comando:
$ ifconfig
110
Figura 3.22.8 Ejecución comando ifconfig en consola de Debian.
Una vez determinada nuestra IP, se ingresa a un navegador y se direcciona hacia
la IP anteriormente consultada. Se debe observar la página de inicio de nuestro
servidor apache2.
Figura 3.22.9 Pagina de inicio de nuestro servidor apache2 montado en servidor web.
111
Comprobando que el servidor apache2 se encuentra operativo, se procede a
instalar PhpMyAdmin, ejecutando el siguiente comando en la consola de nuestro
servidor web.
$ sudo apt-get install phpmyadmin php-mbstring php-gettext
Ya ejecutado el comando anterior, nos pedirá configurar nuestro servidor de la
misma forma que lo hicimos anteriormente con nuestra Raspberry, debemos
definir el servidor como apache2, seleccionamos nuestra base de datos, el host y
se establece conexión como usuario con su respectiva contraseña.
Ya configurado nuestro servidor PhpMyAdmin, se modificará la configuración de
nuestro servidor MySQL para que acepte conexiones remotas. Para permitir
conexiones al servidor MySQL fuera de la red local, se edita el archivo “my.cnf”,
ejecutando el siguiente comando en consola:
$ sudo nano /etc/mysql/my.cnf
Ya abierto nuestro documento, agregamos la siguiente línea al final del
documento:
bind-address=0.0.0.0
Cerramos y guardamos presionando “Ctrl”+”x” y después “y”. Ahora reiniciamos
nuestro servidor MySQL ejecutando la siguiente sentencia:
$ /etc/init.d/mysql restart
112
Finalizando estos pasos se ingresará a nuestro servidor PhpMyAdmin ingresando
al siguiente enlace en cualquier navegador, http://ip_servicio/phpmyadmin/. En
nuestro caso ocupamos la IP de nuestro servidor web, en este caso 45.55.161.80.
Figura 3.22.10 Inicio servidor PhpMyAdmin de nuestro servidor web.
3.8.3 MySQL en Python.
Para establecer la comunicación entre la Raspberry Pi Zero W y el servidor web
de base de datos, con el fin de permitir él envió reiterado de datos desde la
Raspberry Pi Zero W hacia el servidor. Para ello se utilizara el repositorio Python-
mysqldb, el cual conecta Python con MySQL. Su instalación se efectua mediante
la ejecucion del siguiente comando en consola:
$sudo apt-get install python-mysqldb
113
Se desarrollo un código en Python que lee y envía datos desde la Raspberry Pi
hacia el servidor web:
#Primero se importa el repositorio MySQLdb
import MySQLdb
#Se establece la comunicación con la base de datos,
definiendo host, usuario, contraseña y la base de datos a
utilizar
db = MySQLdb.connect(host=‖45.55.161.80‖,
user=‖disp1‖,passwd=‖pi‖, db=‖facym‖)
#Se crea un cursor con la coneccion anterior, este cursor
ejecutara nuestras sentencias de consulta e inserción de
datos
cur = db.cursor()
#Se ejecuta la consulta en MySQL
cur.execute(―SELECT MAX(ID) FROM FACYMv1‖)
#Se almacena dentro de una variable la respuesta del servidor
id=cur.fetchone()
#Se ejecuta una sentencia de inserción de datos en una tabla
determinada, definiendo sus columnas y valores variables
cur.execute(―INSERT INTO FACYMv1 (ID, Fecha, Hora, Latitud,
Longitud, Tco2, PH, Bateria) VALUES (‗%s‘,‘%s‘, ‗%s‘, ‗%s‘,
‗%s‘, ‗%s‘, ‗%s‘, ‗%s‘)‖ % (ID, fecha, hora,lat, long, cot,
ph, $
db.commit()
114
Inicio
¿Se establece conexión con el
servidor MySQL?
Se establece conexión con el servidor
Se selecciona una base de datos
¿Existe la tabla a
utilizar?
Se selecciona una tabla
¿Existe la base de datos a utilizar?
Se envían datos a la tabla
si
si
si
no
no
no
115
3.9 Configuración de la zona horaria
Con el objetivo de tener un monitoreo más exacto y confiable, se utilizará la hora y
fecha del envió de información a nuestra base de datos. Se realizará una
configuración de la zona horaria para dejarlo con la zona horaria correspondiente
a Santiago de Chile.
Para realizar la configuración primeros consultaremos nuestra fecha y hora
ejecutando el siguiente comando en consola:
$ timedatectl
Figura 3.23.1Visualizacion de la hora en nuestra Raspberry sin configurar.
Como se puede observar en la imagen anterior la hora se encuentra desfasada en
tres horas debido a que no está configurada la zona horaria. Para configurarla,
primero debemos instalar la zona horaria y configurarla para que el sistema la
ocupe, ejecutando las siguientes sentencias en consola: ¿Existe la base de datos a utilizar?
¿Existe la tabla a
utilizar?
Fin
116
$ timedatectl list-timezones | grep Santiago
$ timedatectl set-timezone America/Santiago
Ahora se vuelve a consultar la fecha y la hora del sistema para comprobar los
cambios, utilizando el mismo código anterior.
Figura 3.23.2 Visualización de la hora en nuestra Raspberry configurada.
(Sanchez, 2017)
3.11Cal sodada
El químico Ventisorb, es cal sodada del fabricante Flexicare. La cal sodada es un
elemento crucial en la investigación, ya que es el encargado de realizar la
purificación del aire, absorbiendo el . Por este motivo es que su estudio es
esencial para el desarrollo de una interfaz de usuario (HMI) y la generación de
alarmas.
117
Para determinar cuándo debe ser renovada la cal sodada, monitorearemos su PH
mediante la lectura de nuestro sensor. Se utilizará el PH de cambio de color de su
colorante violeta de etilo, el cual oscila entre 14 y 10,3. Siendo más acido cuando
este comienza a saturarse. Determinando la alarma aproximada de saturación
preventiva a los 10,5 PH obtenido por el sensor.
Para lograr determinar el rendimiento de nuestro filtro, se debe determinar la
cantidad de es absorbida por una determinada cantidad de químico. Es por
eso que se analizara el rendimiento de la cal sodada, el cual es aproximadamente
26 Litros de por cada 100 gramos de cal sodada.
(Ramirez, 2013)
3.12 Interfaz visual de monitoreo del dispositivo
La implementación de una interfaz visual es primordial para mantener una relación
amigable entre el dispositivo y el usuario. Para esto se utilizará el software
Labview de National Instrument, el cual permite crear una interfaz visual dinámica
e intuitiva, permitiendo que el usuario que se encuentre monitoreando el
dispositivo desde una ubicación remota, pueda conocer el estado de todas sus
variables en tiempo real.
Además de contar con botones específicos, los cuales permiten visualizar la
localización en la página de Google maps y exportar la base de datos del
dispositivo a un Excel para su posterior estudio. También cuenta con una alarma
118
de recambio de químico mediante un correo electrónico, el cual será enviado a un
correo especificado por el usuario. El dispositivo cuenta con la opción de ejecutar
la lectura del estado de saturación del filtro, mediante la utilización de una ventana
móvil, la cual permite determinar el promedio de un número determinado de datos
establecidos por el usuario, con el fin de disminuir su error de lectura.
Figura 3.24.1 Panel frontal de la interfaz de monitoreo en Labview.
3.12.1 Toolkit GDatabase for MySQL™
La programación de Labview permite utilizar paquetes de bloques de
programación denominados Toolkit. Para el desarrollo de la programación se
utilizará el Toolkit GDatabase for MySQL™ para la conexión con el servidor base
de datos MySQL de manera simple y efectiva.
119
Figura 3.24.2 VI Package Manager.
Este Toolkit se instala mediante el VI Package Manager, el cual viene incorporado
en Labview, solo hay que buscarlo e instalarlo.
Figura 3.24.3 Ventana de instalación de GDatabase for MySQL™ en VI Package Manager.
Ya instalado el Toolkit, se puede empezar a desarrollar la programación. Debido a
que es un sistema de solo de monitoreo, solo consultaremos los datos de nuestra
base de datos, para lo que ocuparemos solo cuatro bloques dentro de la amplia
gama que nos ofrece este Toolkit.
120
1) Open connection: Este bloque nos permite establecer la conexión con
nuestra base de datos, definiendo el usuario y la contraseña mediante un
array, el host del servidor (IP de servidor) y el puerto de este.
Figura 3.24.4 Bloque Open connection del Toolkit GDatabase for MySQL™.
2) Use database: Este bloque de programación permite seleccionar la base de
datos a utilizar en nuestro servidor, definiendo el nombre de esta.
Figura 3.24.5 Bloque use database del Toolkit GDatabase for MySQL™.
3) Select Querry: Este bloque de programación permite realizar un querry del
tipo Select. Se debe definir el nombre de la tabla, las columnas que se
quieren extraer mediante la utilización de un array de n dimensiones con el
nombre de las columnas a consultar y la sentencia “Where” permite
determinar que filas específicas se extraerán de la tabla.
121
Figura 3.24.6 Bloque Select querry del Toolkit GDatabase for MySQL™.
4) Close: Este bloque permite cerrar la conexión con el servidor de base de
datos.
Figura 3.24.7Bloque Close del Toolkit GDatabase for MySQL™.
3.13 Programación en Labview
Para realizar todas las funcionalidades de nuestro HMI se debe desglosar la
programación en bloques de Labview, para que esta funcione en paralelo según
las distintas funcionalidades, a continuación, se describirá la función y la
programación de cada función.
122
1) Obtención de datos en tiempo real:
Para obtener los datos en tiempo real se utilizará una consulta al nuestro
servidor MySQL utilizando como referencia el ID máximo de nuestra tabla,
lo que consultará el último dato subido a nuestro servidor.
Figura 3.25.1 Programación de bloques para obtención de información en tiempo real.
2) Ubicación y confección del URL de Google Maps:
Para visualizar la ubicación del dispositivo se ocuparán dos métodos, el
primero es mostrar su latitud y longitud directamente en pantalla y la otra
será concadenando un Sting, para formar una URL de Google Maps para
que el navegador direccione al mapa de ubicación del dispositivo.
Figura 3.25.2 Programación de bloques para la visualización de la ubicación del dispositivo.
123
3) Visualización en tiempo real de la tasa de purificación de :
Para visualizar los datos de manera más eficiente, se implementó un gráfico
en tiempo real el cual muestra la tasa de purificación del aire en PPM
versus la hora de visualización del equipo de monitoreo remoto y dos
indicadores numéricos, el primero nos indica directamente la taza de
purificación en PPM de y el segundo indica la tasa el litros por hora de
, el cual se calcula mediante los parámetros de caudal de aire del
ventilador, lo que permite determinar el volumen total de purificado.
Figura 3.25.3 Programación de bloques para la visualización de la tasa de purificación del dispositivo.
4) Estado del filtro y selección de numero de variables a considerar:
Con el propósito de disminuir el error en la lectura del sensor, se
implementó una ventana móvil, la cual le permite al usuario definir el
número de registros que serán considerado para determinar el PH del
124
químico, realizándose un promedio entre estos elementos, disminuyendo el
error en la lectura instantánea del sensor.
Figura 3.25.4 Programación de bloques para la obtención del PH del químico del dispositivo.
125
Figura 3.25.5Diagrama de flujo de la lectura del estado del filtro.
5) Alerta de cambio de filtro mediante correo electrónico:
Para hacer más amigable la interacción con el usuario se implementó una
alerta mediante correo electrónico, se envía un correo al usuario (definido
por el), desde un correo establecido, alertándole sobre el cambio de filtro e
informándole donde se encuentra este ubicado.
126
Figura 3.25.6Programación de bloques para la alerta por correo electrónico.
6) Exportación de base de datos a Excel:
Para poder obtener un registro del historial de actualizaciones del
dispositivo se implementó una exportación de nuestra base de datos en
forma de tabla al programa Excel.
Figura 3.25.7Programación de bloques para la exportación de la base de datos a Excel.
127
3.14 Diseño de la placa PCB
Una vez determinado todos los componentes de nuestro circuito ahora
diseñaremos una placa PCB para fijar estos componentes y no tener problemas
con el cableado y poseer una plataforma firme y presentable.
Figura 3.26.1Diagrama de conexión dispositivo FACYM.
La placa del prototipo se diseñará utilizando el programa de simulación y diseño
Proteus, el cual nos permite diseñar el circuito para luego crear nuestra placa.
128
Figura 3.26.2Diseño placa PCB en Proteus.
Mediante su diseño, podemos definir los componentes del circuito y determinar su
consumo:
Componente Cantidad Consumo mAh
Raspberry Pi Zero W 1 160
Sensor de PH 1 10
Sensor de CO2 (MQ-135) 2 160
Modulo GPS (NEO-6M GY-NEO6MV2)
1 60
Modulo ADC(ADS1115) 1 10
Ventilador grande turbina 2 150
Como podemos observar en la tabla anterior, el consumo del dispositivo es
aproximadamente 860 mAh y necesita una alimentación mínima de 12 volts,
entregando un consumo de 10,32 Wh.
129
Figura 3.26.3 Modelado 3D en Proteus.
Para regular el voltaje dentro del circuito ocuparemos dos reguladores de voltaje
con su respectiva configuración. El primero es un LM7812 y nos regulara el voltaje
en 12v para poder conectar nuestros ventiladores y el segundo en un LM7805, el
cual nos regula el voltaje para poder alimentar a nuestra Raspberry Pi Zero W,
laque se encargara de alimentar a nuestros sensores y módulos de comunicación.
Figura 3.26.4 Configuración eléctrica de reguladores de voltaje de la familia LM78xx.
130
3.15 Alimentación del sistema
El sistema de alimentación del dispositivo debe ser totalmente autónomo, para
facilitar su instalación fuera de cualquier fuente de alimentación externa y
erradicando la huella de carbono producida por la corriente utilizada.
Para poder alimentar el dispositivo se ocuparán paneles solares fotovoltaicos de
12 volt y 2.5 watts, luego se debe calcular cuánto será el consumo diario
aproximado que este tendrá. Anteriormente determinamos que el consumo
promedio del dispositivo bordea los 10.32Wh aproximadamente. Considerando un
consumo de 24 horas tenemos un consumo total de 247,68Wd.
Ahora debemos determinar la corriente generada por los paneles solares. Para
ello ocuparemos la siguiente formula:
[ ]
HSP: Horas sol pico (Electricistas de chile, 2017).
0,9 [Whd]: Coeficiente de rendimiento
[ ] [ ] [ ]
[ ]
(sfe-solar.com, 2017)
131
Para el diseño de la red de alimentación ocuparemos 32 paneles solares de 12V,
un regulador de paneles solares de 12V 10ª y una batería recargable GP 1272de
7,2ª.
Figura 3.27.1 Sistema de alimentación en base a paneles solares.
El sistema funcionara en base a 12 volts por ende tanto los paneles solares y la
batería deben actuar en base a este voltaje. Por este motivo, los paneles solares
serán conectadas en paralelos para mantener el voltaje e ir aumentando la
corriente que generan.
Figura 3.27.2 Paneles solares conectados en paralelo.
132
3.16 Diseño del sistema de tuberías internas
Para poder aislar la Cal Sodada del aire externo con el fin de evitar su saturación
prematura y llevar un censado concreto de su purificación, se ha diseñado un
sistema de tuberías en el software Inventor de AutoCAD que constara con un
sensor de en la entrada y otro en la salida, de esta forma obtendremos
nuestra taza de purificación. Para la lectura del PH del químico se utilizará un
collarín de derivación en el almacenador del químico para así permitir introducir un
sensor sin romper el aislamiento del químico.
Para realizar el movimiento del aire adentro de las tuberías se instalarán dos
ventiladores, uno en cada extremo de la tubería, el primero funcionará como
intractor de aire y el segundo como extractor, pudiendo asegurar así que el flujo de
aire será constante dentro de la tubería.
Figura 3.28.1 Diseño de la tubería armada en Software Inventor.
134
4 Construcción del prototipo
4.1 Confección del circuito PCB
El circuito PCB se llevará a cabo mediante el método de planchado, el cual se ara
para imprimir y fabricar el circuito anteriormente diseñado en Proteus. Una vez
diseñado el circuito se debe imprimir en una impresora láser y con papel
fotográfico, para ello nos dirigimos a la pestaña Output >Export Graphics> Export
Adobe PDF File y exportamos nuestro diseño como PDF
Figura 4.1.1 Exportación a PDF de nuestro circuito diseñado en Proteus.
Ahora debeos seleccionar que capas o componentes se exportaran al PDF, en
este caso seleccionaremos solo “Bottom Copper”, exportamos y se imprime.
135
Figura 4.1.2 Ventana de exportación a PDF de Proteus.
Figura 4.1.3 Circuito impreso en papel fotográfico con impresora láser.
Ya impreso nuestro circuito este debe ser planchado durante aproximadamente 10
minutos sobre nuestra placa PCB anteriormente pulida y limpia. Este proceso se
realiza para imprimir nuestro circuito sobre la placa de cobre.
136
Figura 4.1.4 Circuito impreso en placa de cobre mediante el método de planchado.
Ya impreso nuestro circuito en nuestra placa de cobre, esta se sumerge en cloruro
férrico, para deshacer el cobre de nuestra capa y dejando intacto el cobre con el
circuito impreso. Dejando nuestro circuito formado.
137
Figura 4.1.5 Circuito en placa PCD mediante el método de planchado.
Ahora se debe perforar la placa y soldar los componentes que esta tendrá y
nuestro sistema estará listo.
138
Figura 4.1.6 Sistema electrónico ya terminado.
4.2 Sistema de tuberías
El sistema de tuberías anteriormente diseñado se llevará a cabo con un conjunto
de tubos de PVC. En los extremos se dispondrán de tubos de 40 mm de diámetro
para que los ventiladores calcen a la perfección, estos también tienen orificios en
donde se calzaran los sensores de , también dispondrá de uniones americanas
y un conjunto de adaptadores hasta llegar a un tubo central de diámetro 110 mm,
este tubo central será el compartimiento de almacenamiento de la Cal Sodada
dando abasto para almacenar 1,5 kilos de químico aproximadamente.Este tendrá
un collarín de derivación al cual ira una pieza de adaptación que tendrá el sensor
de PH insertado en él.
139
Figura 4.2.1 Sistema de tuberías.
Para lograr una estructura más estable se le ara un soporte de madera para lograr
una estructura en donde pueda ser montado nuestro sistema electrónico.
Figura 4.2.2 Sistema de tubos con soporte y circuito electrónico.
140
4.3 Paneles solares
Para los paneles solares se hará una estructura de madera en cual los dispondrá
en un ángulo de 45° para la prueba del sistema de alimentación y de lectura de
batería. El cual se realizará con la conexión de 6 paneles en paralelo.
Figura 4.3 Estructura de paneles solares en paralelo.
141
5 Resultados
5.1 Alcances y limitaciones
Las limitaciones para la etapa de prototipaje radican en la implementación de la
alimentación autónoma, debido a que no se dispone del numero requerido de
paneles solares para poder implementar el sistema de alimentación autónomo,
pero la prueba funcionamiento del sistema solar fotovoltaico se llevara a cabo
mediante la conexión de seis paneles solares en paralelo, determinando el estado
de la batería y si esta es cargada mediante el sistema solar fotovoltaico.
La segunda limitación consiste en la optimización en la programación del
dispositivo, tanto como su aplicación en Labview, como su programación en
Python. Como el dispositivo se encuentra en una etapa de prueba y evaluación,
cuenta con un resultado satisfactorio, pero se deben implementar mejoras en la
optimización del código y corrección de posibles errores en su funcionamiento.
Como se conoce la alimentación requerida por el dispositivo, este se alimentara
con un transformador de 5 volts y para la Raspberry Pi y otro de 12 volts para los
ventiladores, ambos de 1 Ampere de corriente, esto sustituirá la alimentación en
base a paneles solares diseñada para el prototipo.
142
5.2 Pruebas de funcionamiento
Para evaluar el funcionamiento y desempeño de Facym, se realizaráncinco
pruebas de funcionamiento, relacionadas con su envió de información y
actualización de la base de datos, el sistema de monitoreo en Labview y las
pruebas de funcionamiento de las funciones de nuestra aplicación en Labview.
Primero se realizará una prueba de funcionamiento del prototipo y su inserción de
información en la base de datos. Después se evaluará la visualización de
información en tiempo real del sistema de monitoreo en Labview y posteriormente
se analizará el desempeño y funcionamiento de las funciones anexas en Labview.
5.2.1 Prueba del prototipo
La prueba inicia con la puesta en marcha de la Raspberry Pi Zero W y la ejecución
de la programación en Python anteriormente desarrollada. Ya iniciado el programa
en la Raspberry Pi, se logran visualizar de manera local la información obtenida
por nuestro sistema electrónico.
143
Figura 5.1 Visualización de información obtenida por la Raspberry de manera local.
Ya visualizados los datos entregados por nuestra Raspberry Pi de manera local,
se procede a visualizar la actualización de la base de datos de manera remota
mediante PhpMyAdmin desde un equipo fuera de la red local.
Figura 5.2 Visualización de la información insertada a la base de datos.
Ya evaluado su actualización de estado del dispositivo en un delta de tiempo no
superior a los cuatro segundos se determina como una lectura eficaz y
144
satisfactoria del estado del dispositivo en tiempo real y su visualización de
información de manera remota.
5.2.2 Prueba del monitoreo del dispositivo en Labview.
La evaluación del monitoreo del estado del dispositivo en Labview se realizará
mediante la puesta en marcha simultanea de nuestro prototipo y nuestra
aplicación en Labview fuera de la red local. Para ello iniciamos la aplicación en
Labview observamos su comportamiento y comparamos el tiempo de visualización
de datos en Labview con la actualización de estado en la base de datos en
MySQL.
Figura 5.3 Visualización de estado del dispositivo mediante aplicación en Labview.
145
Con la realización de la prueba anterior se pudo determinar que la aplicación en
Labview presenta un pequeño desface de aproximadamente tres segundos con
relación a la actualización en estado en la base de datos, pero pese a este
desface entrega información detallada y de manera visualmente amigable al
usuario, la gráfica de purificación de aire presenta una buena resolución debido a
que su tiempo de muestreo no supera los cuatro segundos.
5.2.3 Prueba de funciones anexas de Labview.
Ya probado y analizado su funcionamiento en tiempo real, se dará inicio a las
pruebas de las funciones anexas incluidas en nuestra aplicación en Labview, las
cuales consisten en la visualización de la ubicación del dispositivo en el navegador
web, la exportación de la base de datos a Excel y la alerta por correo electrónico.
La visualización de la posición del dispositivo se realiza de dos maneras, mediante
la visualización directa de la latitud y longitud del dispositivo en la aplicación y
también puede efectuarse con la utilización del botón “Abrir mapa en navegador
web”, el cual despliega una ventana de el navegador web definido por defecto en
el equipo, la cual dirige a la página de Google Maps y muestra la ubicación de
nuestro dispositivo en el mapa.
146
Figura 5.4 Visualización de la ubicación del dispositivo en el navegador.
La exportación de la base de datos a Excel se realiza mediante el botón “Exportar
base de datos a Excel”, el cual abre una pagina en Excel en la cual se muestra
una tabla con encabezados predefinidos y mostrando toda la base de datos
extraída de del servidor MySQL.
Figura 5.5 Exportación de la base de datos a Excel.
147
Como ultima prueba se corroborará el funcionamiento de nuestra alarma por
correo electrónico, para la cual definiremos un correo personal, activaremos la
alarma y desconectaremos el sensor de PH para simular que nuestro químico se
encuentra saturado.
Figura 5.6 Visualización del filtro agotado en Labview.
A continuación, se muestra el correo recibido por la alerta de cambio de filtro.
Figura 5.7 Correo de alerta recibido.
148
Ya realizada las pruebas anteriores se puede determinar que las funciones anexas
implementadas en nuestra aplicación de Labview funcionan de manera
satisfactoria para el desarrollo del prototipo del dispositivo.
5.3 Análisis de resultado.
Para lograr determinar el desempeño y cuantificar los resultados obtenidos en el
desarrollo y construcción del dispositivo se comparará las características del
prototipo confeccionado con otros purificadores de aire actualmente encontrados
en el mercado. Dando énfasis a la purificación neta generada y la vida útil del filtro.
Dispositivo Facym Medisana 60300
Homedics AR-10
Toyotomi AC-20
Precio de venta o construcción
$ 110000 $ 79990 $ 99990 $ 99990
Vida útil del filtro 5 meses 5 meses 18 meses 12 meses
Consumo eléctrico (Wh)
0 1,5 48 30
Purificación de
(Litros por hora)
20 2.1 37.8 34.2
Huella de carbono generada (Litros por hora)
0 0.934 29.89 18.68
Purificación neta
de (Litros por hora)
20 1.166 7.91 15.52
Los cálculos de purificación de se hicieron en base al caudal máximo de aire
del dispositivo y contemplando una concentración de promedio del 0,03% del
149
aire (Uriarte, 2015). La huella de carbono se determinó según su consumo de la
red eléctrica y utilizando una calculadora de huella de carbono disponible en
línea(arboliza, 2017).
Para determinar su rendimiento de purificación se compara la purificación neta
generada por nuestro purificador en un día versus la purificación neta de una
planta. Para ello se ocupará como eje de comparación un pino maduro, el cual
purifica aproximadamente 500000 kilos de en un año, lo que equivale a
aproximadamente 475000 litros de , para hacer mas minucioso se ara un
estudio por día, arrojando una tasa final de 1300.14 litros diarios de versus los
480 litros aproximados que purifica el dispositivo.
(Conciencia Eco, 2017)
Por último, se evaluará su desempeño en espacios confinados para su uso en la
industria, para ello compara la purificación de versus la generada por una
persona. Un adulto normal genera aproximadamente 18 litros de por hora, por
lo que se puede determinar que el dispositivo FACYM da abasto para mantener a
una persona de manera segura en un espacio confinado totalmente aislado.
150
6 Conclusiones
El desarrollo del dispositivo FACYM para la anterior investigación dejo demostrado
el grabe momento en el que se encuentra el medio ambiente debido a las
emisiones de de manera desmesurada. Pudiendo provocar grandes daños,
tanto en el ambiente y clima del ecosistema, como en la salud de las personas. El
tratamiento y limpieza del aire de contaminantes es un tema cada vezmás
alarmante, lo que ha llamado la atención tanto de instituciones gubernamentales
como privadas.
La calidad del aire, específicamente el presente, puede ser monitoreado y
controlado de manera efectiva, tanto en lugares aislados como es espacios
abiertos. Brindando la posibilidad de mantener un ambiente de trabajo limpio y
seguro, ofreciendo mejoras en el rendimiento cognitivo de las personas y mayor
seguridad en espacios donde hay poca ventilación.
El dispositivo FACYM puede implementarse a nivel de oficinas, espacios
confinados o instalarlo a la intemperie. Ya que su sistema de alimentación y
monitoreo remoto permiten su instalación en cualquier espacio que tenga acceso
la luz solar y señal GSM/GPRS.
La estructura de manejo de información del proyecto permite volver independiente
el sistema de monitoreo mediante un equipo remoto, al dispositivo en sí.Lo que
permite una mayor flexibilidad a la hora de implementar mejoras o modificaciones
al dispositivo, tanto en su alimentación como en su conexión a la red de internet.
151
Pese a que el prototipo alcanzo un desempeño satisfactorio en sus pruebas de
funcionamiento, se proponen mejoras en la optimización de códigos de
programación, en la alimentación del dispositivo, implementando algún modo de
ahorro de batería y el desempeño del filtro, con el fin lograr purificar otros
contaminantes presentes en el ambiente, además de a hacer hincapié a la posible
utilización de materiales amigables con el medio ambiente para su construcción.
152
Bibliografía
A.Sanchez, O.Reinoso, L.Paya, D.Ubeda, M.Julia, & A.Gil. (2012). Implementacion
de un laboratorio remoto para la realizacion de practicas de robotica movil.
Abella, M. (2010). Sistemas fotovoltaicos.
Adafruit. (22 de 10 de 2017). Configuring I2C | Adafruit's Raspberry Pi Lesson .
Obtenido de Configuring I2C | Adafruit's Raspberry Pi Lesson :
https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-
setup/configuring-i2c
Adafruit. (19 de 10 de 2017). Introduction | Adafruit Ultimate GPS on the Raspberry
Pi | Adafruit Learning System. Obtenido de Introduction | Adafruit Ultimate
GPS on the Raspberry Pi | Adafruit Learning System:
https://learn.adafruit.com/adafruit-ultimate-gps-on-the-raspberry-pi?view=all
Adafuits. (22 de 10 de 2017). ADS1015 / ADS1115 | Raspberry Pi Analog to Digital
Converters . Obtenido de ADS1015 / ADS1115 | Raspberry Pi Analog to
Digital Converters : https://learn.adafruit.com/raspberry-pi-analog-to-digital-
converters/ads1015-slash-ads1115
Bello, C. (2010). Equipamiento de adquisicion de datos para sistemas fotovoltaicos
autonomos instalaos en escuelas de corrientes. Corrientes.
Capraro, F., Tosetti, S., & Serman, F. V. (2010). Laboratorio virtual y remoto para
simular, monitorizar y controlar un sistema de riego por goteo en olivos. San
Juan.
Casa Editorial El Tiempo. (28 de 11 de 2017). Características del Raspberry Pi
Zero W - Novedades Tecnología - Tecnología - ELTIEMPO.COM. Obtenido
de Características del Raspberry Pi Zero W - Novedades Tecnología -
153
Tecnología - ELTIEMPO.COM:
http://www.eltiempo.com/tecnosfera/novedades-tecnologia/caracteristicas-
del-raspberry-pi-zero-w-63022
Chang, R. (2010). quimica 10 edicion.
Ciberaula. (28 de 11 de 2017). Qué es Linux ? - Sistema Operativo Linux -
Ciberaula. Obtenido de Qué es Linux ? - Sistema Operativo Linux -
Ciberaula: http://linux.ciberaula.com/articulo/que_es_linux/
conevyt. (07 de 04 de 2010). conevyt. Obtenido de conevyt:
http://www.conevyt.org.mx/actividades/acidos/EscalapH.htm
Coyan.es. (18 de 10 de 2017). Servidor web casero y económico con el Raspberry
Pi | CoyaN.es. Obtenido de Servidor web casero y económico con el
Raspberry Pi | CoyaN.es: http://www.coyan.es/Blog/2012-06/servidor-web-
raspberry-pi/
DesarrolloWeb.com. (28 de 11 de 2017). Qué es Python. Obtenido de Qué es
Python: https://desarrolloweb.com/articulos/1325.php
Diaz, P. (2003). Confiabilidad de los sistemas fotovoltaicos autonomos: Aplicacion
a la electrificacion rural.
El periodico. (02 de Noviembre de 2009). Elperiodico. Obtenido de Elperiodico:
http://www.elperiodico.com/es/opinion/20091102/los-balances-del-co2-
222993
Electricistas de chile. (31 de 10 de 2017). Electricistas de Chile ::::Electricista -
Electricidad. Obtenido de Electricistas de Chile ::::Electricista - Electricidad:
http://www.electricistas.cl/Articulo16.html
154
Espinosa, O. L., Perez, G. A., & Luna, S. A. (2014). Paquete tecnologico para el
monitoreo ambiental en invernaderos con el uso de hardware y software
libre.
F.J.Munñoz, Torres, M., J.V.Muñoz, C.Rus, J.D.Aguilar, & J.Aguilera. (2010).
Laboratorio remoto para el aprendizaje de los sistemas fotovoltaicos
autonomos.
Fernandez, R., Ordieres, J., Martinez, F., Gonzales, A., Alba, F., Lostado, R., &
Pernia, A. (2009). Redes inalambricas de sensores.
Fexicare. (22 de 11 de 2017). Anaesthetic Face Masks, Soda Lime, Catheter
Mounts & Components - PDF. Obtenido de Anaesthetic Face Masks, Soda
Lime, Catheter Mounts & Components - PDF:
http://docplayer.net/38677457-Anaesthetic-face-masks-soda-lime-catheter-
mounts-components.html#download_tab_content
Gamez, A., Cabrera, J., Castañeda, E., Lopez, F., & Morera, M. (2009). Control de
un sistema eolico-fotovoltaico utilizando un controlador fuzzy. La Habana.
geekytheory. (1 de 11 de 2017). Actualizar nuestra Raspberry Pi con Raspbian.
Obtenido de Actualizar nuestra Raspberry Pi con Raspbian:
https://geekytheory.com/actualizar-nuestra-raspberry-pi-con-raspbian
Gimeno, F., Sanchez, C., Ibañes, F., Segui, S., Alcañiz, M., & Capilla, R. (s.f.). La
formacion en energia solar fotovoltaica en la universidad politecnica de
Valencia.
Grupo copesa. (5 de Agosto de 2017). Icarito. Obtenido de Icarito:
http://www.icarito.cl/2009/12/60-1899-9-la-respiracion-oxigeno-y-
supervivencia.shtml/
Ledesma, P. (2011). Analisis dinamico de sistemas electricos con generacion
eolica. Madrid.
155
Lozano, M., & Ramos, J. (2007). Analisis energetico y economico de sistemas
simples de cogeneracion. Zaragoza.
Medina, L. A. (14 de 11 de 2017). Como Instalar MySQL en Debian. Obtenido de
Como Instalar MySQL en Debian: https://www.comoinstalarlinux.com/como-
instalar-mysql-en-debian/
Menendez, A. d. (2015). Desarrollo de un sistema de sensores para la deteccion
de sustancias peligrosas. Madrid.
Ministerio del medio ambiente. (2010). Cambio climatico.
Ministerio del medio ambiente. (2010). Informe del estado del medio ambiente.
Morero, B., Gropelli, E., & Campanella, E. (2010). Revision de las principales
tecnologias de purificacion de biogas.
Murillo, D. G. (2003). Modelado y analisis de sistemas fotovoltaicos. Barcelona.
National Instruments. (28 de 11 de 2017). ¿Por qué usar LabVIEW? - National
Instruments. Obtenido de ¿Por qué usar LabVIEW? - National Instruments:
https://www.ni.com/academic/why_labview/esa/
NeoTeo. (30 de 10 de 2017). Analizador de voltaje para baterías - NeoTeo.
Obtenido de Analizador de voltaje para baterías - NeoTeo:
http://www.neoteo.com/analizador-de-voltaje-para-baterias
on the Brian Dorey.com . (19 de 10 de 2017). Raspberry Pi 3 UART Boot Overlay
Part Two | on the Brian Dorey.com blog. Obtenido de Raspberry Pi 3 UART
Boot Overlay Part Two | on the Brian Dorey.com blog.
ORACLE. (13 de 07 de 2017). JAVA. Obtenido de JAVA:
https://www.java.com/es/download/help/linux_x64_install.xml
Ramirez, J. (20 de 04 de 2013). Maquina de anestesia y quirofano. Obtenido de
Maquina de anestesia y quirofano:
156
https://es.slideshare.net/JenniferCarolinaRamirezM/maquina-de-anestesia-
y-quirfano
Raspberry Pi. (28 de 11 de 2017). Introducing the Raspberry Pi Zero. Obtenido de
Introducing the Raspberry Pi Zero: https://www.raspberrypi-
spy.co.uk/2015/11/introducing-the-raspberry-pi-zero/
Raspberry Pi Foundation. (17 de 10 de 2017). Raspberry Pi. Obtenido de
Raspberry Pi: https://www.raspberrypi.org/
redeszone. (1 de 11 de 2017). Controla tu Raspberry Pi de forma remota a través
del protocolo RDP. Obtenido de Controla tu Raspberry Pi de forma remota a
través del protocolo RDP: https://www.redeszone.net/raspberry-pi/controla-
tu-raspberry-pi-de-forma-remota-traves-del-protocolo-rdp/
Robots Argentina. (28 de 11 de 2017). Comunicación - Bus I2C - Robots
Argentina. Obtenido de Comunicación - Bus I2C - Robots Argentina:
http://robots-argentina.com.ar/Comunicacion_busI2C.htm
Rocabert, J., Busquets, S., & Bordonau, J. (2010). Sistema autonomo de
generacion de energia renovable. catalunya.
Sanchez, C. T. (15 de 11 de 2017). Ubuntu 14.04 LTS : Cambiar la zona horaria.
Obtenido de Ubuntu 14.04 LTS : Cambiar la zona horaria:
https://www.cristiantala.cl/ubuntu-14-04-lts-cambiar-la-zona-horaria/
sfe-solar.com. (31 de 10 de 2017). Cómo dimensionar y calcular paneles solares
fotovoltaicos necesarios. Obtenido de Cómo dimensionar y calcular paneles
solares fotovoltaicos necesarios: https://www.sfe-
solar.com/noticias/articulos/modulo-fotovoltaico-calculo-paneles-solares-
fotovoltaicos/
Vazquez, S. (14 de 10 de 2017). Raspberry Pi con Banda Ancha con modem ZTE
MF180 - Saúl Vázquez. Obtenido de Raspberry Pi con Banda Ancha con
157
modem ZTE MF180 - Saúl Vázquez:
http://blogvazquezsaul.blogspot.cl/2013/09/raspberry-pi-con-banda-
ancha.html
W.R.Grace. (2012). Sodasorb HP carbon doixide absorbent.
W.R.Grace, & CO.-Conn. (1993). Manual of CO2 absorption. Cambridge.
World Health Organization. (07 de MAYO de 2014). World Health Organization.
Obtenido de World Health Organization:
http://www.who.int/mediacentre/news/releases/2014/air-quality/en/
158
Anexos
Codigo de Python
import time
import serial
import Adafruit_ADS1x15
import MySQLdb
adc = Adafruit_ADS1x15.ADS1115(address=0x48, busnum=1)
gps = serial.Serial('/dev/ttyAMA0', baudrate = 9600)
db = MySQLdb.connect(host="45.55.161.80", user="disp1", passwd="pi", db="facym")
cur = db.cursor()
GAIN = 1
dt = 0
cur.execute("SELECT MAX(ID) FROM FACYMv1")
id=cur.fetchone()
ID= int(id[0])
print ID
while True:
values = [0]*4
for i in range(4):
values[i] = adc.read_adc(i, GAIN, data_rate=128)
while(dt==0):
line = gps.readline()
data = line.split(',')
159
if data[0] == '$GPRMC':
if data[2] == 'A':
dt = 1
lat =float(data[3])/-100
long = float(data[5])/-100
sb = int(values[0])
dt = 0
senal = int(values[1]) * - 0.000862387 + 28.48995934
co2 = int(values[2]) * 0.0169766376 - 68.7874642472
co1 = int(values[3]) * 0.0169766376 - 68.7874642472
if sb <= 26130:
bat = 0
elif 26130 < sb and sb <= 28863:
bat = 25
elif 28863 < sb and sb <= 30195:
bat = 50
elif 30195 < sb and sb <= 31890:
bat = 75
elif 31890 < sb:
bat = 100
if co1 <= 0:
coI = 0
else:
coI = co1
if co2 <= 0:
coO = 0
else:
coO = co2
if senal > 14:
ph = 14
160
elif senal < 0:
ph = 0
else :
ph = senal
cot = coI - coO
hora = time.strftime("%H:%M:%S")
fecha = time.strftime("%Y-%m-%d")
print('tasa de co2; %s'%(cot))
print('ph: %s'%(ph))
print('latitud: %s '%(lat))
print('longitud: %s '%(long))
print('bateria: %s '%(bat))
print('fecha: %s'%(fecha))
print('hora: %s' %(hora))
ID = ID+1
cur.execute("INSERT INTO FACYMv1 (ID, Fecha, Hora, Latitud, Longitud, Tco2, PH, Bateria) VALUES ('%s','%s', '%s', '%s', '%s', '%s', '%s', '%s')" % (ID, fecha, hora,lat, long, cot, ph, $
# cur.execute("UPDATE FACYMV SET latitud='%s', longitud='%s', ph='%s', co2='%s', bateria='%s'" % (lat, long, ph, cot, bat))
db.commit()
time.sleep(2)
Recommended