Diseño de un prototipo de sistema para la medición de parámetros

Anuncio
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Electrónica y Circuitos
DISEÑO DE UN PROTOTIPO DE SISTEMA PARA LA MEDICIÓN DE
PARÁMETROS RELACIONADOS CON LA CALIDAD DEL AGUA
Por
Joel Rafael Salazar Gil
Sartenejas, Febrero de 2007
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Electrónica y Circuitos
DISEÑO DE UN PROTOTIPO DE SISTEMA PARA LA MEDICIÓN DE
PARÁMETROS RELACIONADOS CON LA CALIDAD DEL AGUA
Por
Joel Rafael Salazar Gil
Realizado con la Asesoría de
Tutor Empresarial: Marco J. Gómez M
Tutor Académico: Antonio J. Salazar
Informe Final de Cursos en Cooperación Técnica y Desarrollo Social
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de Ingeniero Electrónico
Sartenejas, Febrero de 2007
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Electrónica y Circuitos
Diseño de un Prototipo de Sistema para la Medición de Parámetros
Relacionados con la Calidad del Agua
Informe Final de Cursos en Cooperación Técnica y Desarrollo Social presentado por
Joel Rafael Salazar Gil
REALIZADO CON LA ASESORIA DE MARCO J GÓMEZ M. Y ANTONIO SALAZAR
RESUMEN
Se ha considerado al agua como la sustancia indispensable para la vida humana, animal y
vegetal. Debido al vertiginoso crecimiento tecnológico, surge la necesidad de mantener este
recurso dentro de ciertos parámetros que lo consideren apto para un fin específico, es decir,
garantizar su calidad. Por ello, se ha diseñado y construido un sistema para el monitoreo y
el análisis de la calidad de un cuerpo de agua. Durante la investigación se determinó la
influencia y la importancia de los parámetros meteorológicos en el tema, por lo que fueron
incluidos en el proyecto. Se escogió como base un microcontrolador PIC para el control y
manejo de los datos, además de sincronizar las mediciones con un reloj de tiempo real,
indispensable para su validez. Asimismo, se desarrolló una interfaz en LabView para el
análisis de los datos adquiridos y la visualización de las variables de medición en tiempo
real. La comunicación entre el sistema y la interfaz será vía RS-232. El prototipo será de
utilidad para usuarios interesados en la automatización de la medición de calidad del agua.
PALABRAS CLAVES
Sistema, medición, parámetros, agua, meteorología, comunicación, tiempo.
Sartenejas, Febrero de 2007
DEDICATORIA
A mis padres, por estar siempre en continua perseverancia en la búsqueda de la
excelencia para sus hijos, por la inmensa confianza demostrada e invalorable formación
infundida, tanto en lo profesional como en lo personal, parte de este triunfo es de ellos.
Joel Salazar Gil
AGRADECIMIENTOS
En primer lugar, agradezco a mi tutor empresarial Ingeniero Marco J. Gómez M.
por su excelente guía, desinteresada paciencia y sabios consejos a lo largo de todo el
proyecto.
A la Ingeniero Martha Peñuela por su invaluable colaboración en la realización de
este proyecto.
A mi tutor académico profesor Antonio Salazar por sus consejos y su ayuda en la
realización del presente escrito.
Al Ingeniero Tomás Ramos por su valiosa colaboración en el montaje del sistema.
A Jemilly Salazar por su meritoria paciencia y sus importantes consejos en la
realización del presente escrito.
Joel Salazar Gil
ÍNDICE GENERAL
CAPÍTULO 1: INTRODUCCIÓN..........................................................................
1
CAPÍTULO 2: MARCO TEÓRICO.......................................................................
3
2.1 Marco Institucional..................................................................................
3
2.2 Marco Legal.............................................................................................
4
2.3 Bases Teóricas..........................................................................................
6
2.3.1 Calidad del Agua.............................................................................
6
2.3.2 Sistemas de Adquisición de Datos..................................................
7
2.3.3 Conversor Analógico Digital..........................................................
9
2.3.4 Termistor NTC................................................................................
10
2
Protocolo de Comunicación I C.....................................................
11
2.3.6 Protocolo de Comunicación Serial Asíncrono................................
14
2.3.7 Pantalla de Cristal Líquido (LCD)..................................................
15
2.4 Variables y su operacionalización............................................................
18
CAPÍTULO 3: PLANTEAMIENTO DEL PROYECTO.......................................
19
3.1 Planteamiento del Sistema........................................................................
19
3.2 El Pluviómetro..........................................................................................
25
2.3.5
CAPÍTULO 4: PROCEDIMIENTOS....................................................................
28
4.1 Diagrama de Bloques del Sistema...........................................................
28
4.2 Manejo del Teclado y el LCD..................................................................
29
4.3 Bus I2C......................................................................................................
31
4.4 Conexión Serial.......................................................................................
33
4.5 Fuente de Alimentación...........................................................................
34
4.6 Señales de los Sensores...........................................................................
35
4.7 Integración de los Bloques......................................................................
47
4.7.1 Protocolo de Almacenamiento.......................................................
48
Unión del Bus I2C..........................................................................
50
4.7.3 Unión de la Conexión Serial..........................................................
51
4.7.4 Protocolo de Datos en Tiempo Real..............................................
52
4.7.5 Prioridades......................................................................................
52
4.7.2
ii
4.7.6 Construcción del Sistema...............................................................
54
4.8 Interfaz Humano-Máquina en el Computador........................................
55
4.8.1 Bloques Principales Utilizados......................................................
55
4.8.2 Configuración de la Estación desde la Interfaz..............................
58
4.8.2.1 Descarga de la Memoria.......................................................
59
4.8.2.2 Configuración de Fecha y Hora............................................
60
4.8.2.3 Configuración del Tiempo de Almacenamiento...................
61
4.8.2.4 Configuración de Sensores Activos......................................
61
4.8.2.5 Borrar Memoria....................................................................
61
4.9 Construcción del Sistema referente al Pluviómetro...............................
62
CAPÍTULO 5: CONCLUSIONES.........................................................................
65
CAPÍTULO 6: RECOMENDACIONES................................................................
67
GLOSARIO.............................................................................................................
69
BIBLIOGRAFÍA.....................................................................................................
73
ANEXOS.................................................................................................................
75
iii
ÍNDICE DE FIGURAS
Figura 2.3.2-1 Diagrama de Bloques General de un Sistema de
Adquisición de Datos.................................................................................................... 9
Figura 2.3.5-1 Formato de un byte transferido vía I2C................................................ 13
Figura 2.3.5-2 Esquema de escritura de un byte vía I2C............................................. 14
Figura 2.3.5-3 Esquema de lectura de un byte vía I2C................................................ 14
Figura 2.3.6-1 Conector DB9 hembra......................................................................... 14
Figura 2.3.7-1 Imagen de un LCD 4x16...................................................................... 16
Figura 2.3.7-2 Diagrama de tiempos de la escritura de un byte en el LCD................. 17
Figura 3.1-1 Diagrama de los Pines del Microcontrolador PIC16F877...................... 21
Figura 3.1-2 Teclado Matricial 4x4............................................................................ 22
Figura 3.1-3 Diagrama de los Pines de la Memoria 24LC64...................................... 24
Figura 3.1-4 Diagrama de los Pines del RTC DS1307N............................................. 24
Figura 3.2-1 Diagrama de los Pines del PIC16F84A.................................................. 26
Figura 4.1-1 Esquemático general del sistema............................................................ 28
Figura 4.2-1 Diagrama de cableado del teclado con el LCD al microcontrolador...... 30
Figura 4.3-1 Distribución de la memoria del DS1307N.............................................. 32
Figura 4.4-1 Diagrama de cableado del MAX-232..................................................... 34
Figura 4.4-2 Conversor Serial-USB............................................................................. 34
Figura 4.5-1 Esquemático de la Etapa de Alimentación.............................................. 35
Figura 4.6-1 Diagrama de Cableado de los Sensores al Sistema................................. 36
Figura 4.6-2 Montaje del experimento de la Caracterización del Termistor............... 37
Figura 4.6-3 Curva Característica R vs. T del Termistor............................................. 39
Figura 4.6-4 Esquemático del Acondicionamiento del Sensor de Temperatura.......... 39
Figura 4.6-5 Diagrama de Pines del Amplificador TL-084.......................................... 41
Figura 4.6-6 Configuración de inversor de voltaje del ICL7660................................. 42
Figura 4.6-7 Configuración no-inversora.................................................................... 43
Figura 4.6-8 Circuito de Acondicionamiento de los Sensores de Pulso...................... 44
Figura 4.6-9 Esquemático del Acondicionamiento del Sensor de pH......................... 46
iv
Figura 4.6-10 Curva Característica V vs. pH luego del Acondicionamiento.............. 47
Figura 4.7.1-1 Correspondencia de los Parámetros y los bits de la Variable
referente a los Sensores Conectados............................................................................. 50
Figura 4.7.1-2 Ejemplo de una trama válida de datos almacenados en memoria........ 50
Figura 4.7.4-1 Ejemplo de una Trama válida de Datos en Tiempo Real..................... 52
Figura 4.7.6-1 Foto de la estación en funcionamiento................................................. 54
Figura 4.8.1-1 Bloques para el manejo de la comunicación serial en LabView.......... 55
Figura 4.8.1-2 Bloques para realizar gráficos en LabView.......................................... 56
Figura 4.8.1-3 Ejemplo Archivo Plano de Texto......................................................... 57
Figura 4.8.1-4 Bloques para manipular archivos planos de texto................................ 57
Figura 4.8.2-1 Pantalla principal de configuración de la interfaz................................ 59
Figura 4.8.2.1-1 Ejemplo de la transmisión de una trama válida de datos
almacenados en la memoria del sistema....................................................................... 60
Figura 4.9-1 Trama válida de datos para la estación del pluviómetro......................... 63
v
ÍNDICE DE TABLAS
Tabla 2.2-1 Parámetros y rangos de interés en aguas tipo 1A...........................................5
Tabla 2.2-2 Parámetros y rangos de interés en aguas tipo 1B.......................................... 5
Tabla 2.4-1 Variables a medir por el sistema y su operacionalización............................ 18
Tabla 4.6-1 Resultados del Experimento de la Caracterización del Termistor R vs. T... 38
vi
LISTA DE SÍMBOLOS Y ABREVIATURAS
ºC – Grados Celsius
ADC – Analog to Digital Converter, conversor analógico - digital
ASCII – American Standard Code for Information Interchange, código de caracteres
basado en el alfabeto latino
Bit – Binary Digit, unidad básica de la electrónica digital
E/S – entrada/salida
GND – ground, tierra
I2C – Inter Integrated Circuit, protocolo de comunicación serial síncrono
km – kilómetros
L – litro
LCD – Liquid Crystal Display, pantalla de cristal líquido
m – metros
m/s – metros por segundo
mL – mililitro
mm – milímetros
mmHg – milímetros de mercurio
nibble – mitad de un byte, 4 bits
PCB – Printed Circuit Board, tarjeta de circuito impreso
R/W – read/write, lectura/escritura
RS-232 – Protocolo de comunicación serial entre computadores
RTC – Real Time Clock, reloj de tiempo real
SI – Sistema Internacional
TTL – Transistor-Transistor Logic, referente a niveles de tensión típicos 0-5V
USB – Universal Serial Bus
Vcc – Voltaje de Alimentación
W/m2 – Watts por metro cuadrado
CAPÍTULO 1: INTRODUCCIÓN
El agua es un recurso vital para la vida humana, animal y vegetal. Su calidad está
determinada por la presencia y la cantidad de ciertos contaminantes, factores físicoquímicos tales como pH y conductividad, cantidad de sales y de la presencia de
fertilizantes, entre otros. Asimismo, los factores climatológicos también afectan la calidad
del agua en regiones abiertas como ríos y lagos. Esto conlleva al objetivo principal del
proyecto que es el diseño y la implementación de un prototipo de un sistema de adquisición
de datos para la medición de parámetros relacionados con la calidad del agua, así como, un
software de aplicación para el procesamiento y análisis de la información obtenida. El
objetivo principal del presente escrito es la descripción del sistema y de los procedimientos
realizados para la construcción del mismo.
Debido al desarrollo vertiginoso de las industrias y la tecnología en las últimas
décadas, se han originado diversas formas de contaminación, las cuales alteran
negativamente la calidad de vida, tanto de los seres humanos como de las plantas, animales
y del medio ambiente que nos rodea. Específicamente, la cantidad de desechos tóxicos o
sustancias no naturales presentes alteran el agua en el ecosistema, produciendo la llamada
contaminación del agua. Estos agentes pueden provenir de infinidades de formas tales
como desechos industriales, erosión, pluviosidad o simplemente el mal uso del recurso,
entre otras causas importantes. En consecuencia, se requiere un monitoreo continuo de
dichos agentes contaminantes para determinar la calidad del agua que se va a utilizar, y
tomar medidas al respecto; ya sea para consumo humano o animal, regadíos, cuidado de
ríos y lagos, entre otros. En Venezuela, no se cuenta con una gran cantidad de equipos de
medición de calidad del agua que permitan el monitoreo remoto, a fin de diagnosticar el
nivel de contaminación presente en estanques o en los cauces normales de los ríos y
manantiales, donde muchas poblaciones obtienen directamente el agua para el consumo
humano.
El proyecto se llevó a cabo en la Fundación Instituto de Ingeniería, específicamente
en el departamento de Ingeniería Eléctrica y Sistemas en un lapso de 20 semanas, tiempo en
el cual se podrá tener en físico un sistema de adquisición de datos con su interfaz humano-
2
máquina. Previo a esto, se identificaron equipos de monitoreo de calidad del agua
existentes en el mercado para evaluar sus ventajas y desventajas, con el motivo de justificar
la factibilidad del proyecto. Luego se llevaron a cabo estudios de ingeniería básica,
conceptual y de detalle para el diseño del sistema y su posterior construcción. Para
finalizar, se desarrolló el software para el análisis de los datos y las pruebas pertinentes al
sistema para determinar su correcto funcionamiento.
El capítulo 2 del presente libro pretende establecer todo el fundamento teórico
necesario para la comprensión del trabajo y las partes que lo conforman. En el capítulo 3 se
concreta un planteamiento del proyecto ante la problemática descrita, además de unos
antecedentes que le dan fuerza y justificación al diseño realizado. En el capítulo 4 se
describen los procedimientos realizados para llevar acabo los objetivos del proyecto, el
propósito de esta sección es que el lector tenga una idea clara del funcionamiento del
sistema y que pueda recopilar información de interés referente al tema. Seguidamente,
estarán las conclusiones del proyecto para finalizar con una serie de recomendaciones para
futuras versiones o para proyectos de la misma línea.
CAPÍTULO 2: MARCO TEÓRICO
En el presente capítulo se describen las bases que fundamentan el proyecto
enmarcadas en un cuadro institucional, legal y teórico. Se plantea un marco institucional
porque el proyecto fue llevado a cabo en una empresa con una misión y visión que se
acoplan con el presente proyecto. Se establece un marco legal ya que el producto final debe
estar acorde con las normas nacionales o internacionales vigentes. Por último, se presentan
las bases teóricas que apoyan y le dan sentido al presente trabajo.
2.1
Marco Institucional
La Fundación Instituto de Ingeniería, tiene por objeto la realización de actividades
de investigación, de desarrollo tecnológico, de asesoría técnica y servicios en los diversos
campos de la ingeniería y disciplinas afines; relacionados con las diferentes industrias
nacionales e internacionales y con los servicios públicos, procurando la vinculación de
estas actividades con los sistemas productivos y educativos. La FII es una Fundación cuya
relación y funcionamiento auspician la República Bolivariana de Venezuela y las demás
figuras fundadoras, en la forma y medios previstos en el Decreto No. 733 del 5 de Octubre
de 1999 y en sus estatutos modificados, según la Resolución No. 155-99 de fecha 22 de
Diciembre de 1999 de la Procuraduría General de la república, publicada en la Gaceta
Oficial No. 36.858 del 28 de Diciembre de 1999. Adscrita al Ministerio de Ciencia y
Tecnología, según lo previsto en el Artículo 21 del Decreto Ley No. 370 del 5 de Octubre
de 1999, publicado en Gaceta Oficial No. 5.395 Extraordinaria de fecha 25 de Octubre de
1999.
Tiene como misión, contribuir de manera eficiente al fortalecimiento industrial del
país mediante la investigación, desarrollo y transferencia de tecnología, así como a la
formación de recursos humanos en áreas prioritarias, con un equipo humano altamente
calificado y comprometido con la razón de ser del Instituto de Ingeniería. Todo ello, bajo
criterios de mejoramiento continuo de calidad, productividad y excelencia, en base al
compromiso ético hacia las personas, clientes e instituciones con las cuales se relacione.
4
Tiene como visión, hacer del Instituto de Ingeniería el Centro de Investigación
Aplicada y Desarrollo Tecnológico por excelencia de Venezuela, soporte fundamental del
crecimiento económico y social del país, reconocido por la capacidad y profesionalismo de
sus recursos humanos, por el impacto nacional e internacional de sus proyectos y por la
calidad de los servicios que presta.
2.2
Marco Legal
Previo a la escogencia de las variables referentes a meteorología y calidad del agua
a medir, se investigó acerca de las normas, decretos y leyes nacionales vigentes referentes
al tema en cuestión. Es de especial interés el decreto Nº 883 con fecha 11 de Octubre de
1995 en el gobierno de Rafael Caldera llamado “Normas para la Clasificación y el Control
de la Calidad de los Cuerpos de Agua y Vertientes o Efluentes Líquidos” (véase Anexo
“E”), debido a que establecen una serie de parámetros necesarios en un cuerpo de agua
particular para considerar su calidad. Concretamente, los artículos 3º y 4º son los de mayor
importancia en el proyecto.
El artículo 3º pretende clasificar los cuerpos de agua en tipos y subtipos. Para
interés de este proyecto, sólo se consideran los aquellos tipo 1 ya que son las que tienen la
mayor utilidad para el ser humano y son de más fácil tratamiento. Los cuerpos tipo 1 son
“aguas destinadas al uso doméstico y al uso industrial que requiera de agua potable,
siempre que ésta forme parte del producto o subproducto destinado al consumo humano o
que entre en contacto con él”. Se pueden categorizar en 3 subtipos:
o Subtipo 1A: “Aguas que desde el punto de vista sanitario pueden ser acondicionadas
con la sola adición de desinfectantes”.
o Subtipo 1B: “Aguas que pueden ser acondicionadas por medio de tratamientos
convencionales de coagulación, floculación, sedimentación, filtración y cloración”.
o Subtipo 1C: “Aguas que pueden ser acondicionadas por proceso de potabilización
no convencional”.
5
El artículo 4º pretende establecer todos los criterios para la determinación de la
calidad un cuerpo de agua según su tipo. Nuevamente, los criterios de interés para el
proyecto son los referentes al tipo 1. En la tabla 2.2-1 se pueden observar los límites y/o
rangos de los parámetros que determinan la calidad de las aguas del subtipo 1A. De igual
forma, en la tabla 2.2-2 se pueden observar los mismos parámetros para las aguas del
subtipo 1B. Referente a las aguas de tipo 1C, el único parámetro que la ley establece para
estos cuerpos es un pH comprendido entre 3,8 y 10,5.
Parámetro
Límite o rango máximo
Oxígeno disuelto (O.D)
mayor de 4,0 mg/l.
pH
mínimo 6,0 y máximo 8,5
Color real
menor de 50, U Pt-Co.
Turbiedad
menor de 25, UNT
Fluoruros
menor de 1,7 mg/l.
Organismos coliformes totales promedio mensual menor a 2000 NMP por cada 100 ml.
Tabla 2.2-1 Parámetros y rangos de interés en aguas tipo 1A
Parámetro
Límite o rango máximo
Oxígeno disuelto (O.D)
mayor de 4,0 mg/l.
pH
mínimo 6,0 y máximo 8,5.
Color real
menor de 150, U Pt-Co.
Turbiedad
menor de 250, UNT.
Fluoruros
menos de 1,7 mg/l.
Organismos coliformes totales promedio mensual menor a 10000 NMP por cada 100 ml.
Tabla 2.2-2 Parámetros y rangos de interés en aguas tipo 1B
Podemos apreciar que el parámetro común que es requisito legal para determinar la
calidad en los tipos de agua nombrados es el pH, por ende se considera como uno de los
parámetros de mayor importancia a medir.
6
2.3
Bases Teóricas
A continuación se exponen los aspectos conceptuales, planteamientos que sustentan
el desarrollo de la presente investigación. Se deben conocer algunos factores teóricos que
respalden los resultados obtenidos, incluyendo componentes y protocolos estándares
utilizados, así como las variables que se han de medir en el proyecto.
2.3.1 Calidad de Agua
El agua representa el medio de vida en el planeta y, de acuerdo a su aspecto y al
punto de vista en que se le mire, el término agua incluye una gran variedad de líquidos con
una característica común, su composición química H2O. Dependiendo del punto de vista del
consumidor, el agua puede tener varias definiciones: para un agrónomo, el agua es el
elemento indispensable para el crecimiento de su cosecha; para un ingeniero, el uso del
agua es principalmente como agente enfriador o vapor; para un meteorólogo, el agua es un
factor climático que genera cambios en la temperatura ambiental, la lluvia. En fin, ya que el
agua no tiene un concepto absoluto, su calidad tampoco lo tendrá. Sin embargo, no
podemos olvidar que es una sustancia vital para el ser humano y por ello se debe garantizar
en todo momento su calidad (COULSTON, F., Water Quality, pp 11).
La normativa venezolana en su decreto Nº 883 define la calidad de un cuerpo de
agua como “la caracterización física, química y biológica de aguas naturales para
determinar su composición y utilidad al hombre y demás seres vivos”. Es decir, para
estipular la calidad de un cuerpo de agua particular se requiere de un complejo proceso de
identificación de ciertos parámetros que clasifican al mismo según su utilidad, por ello, no
es correcto clasificar un cuerpo de agua como bueno o malo si no se conoce el uso para el
cual está destinado. El agua se considera contaminada cuando su composición o estado no
reúne las condiciones requeridas para los usos a los que se hubiera destinado en su estado
natural.
7
Existe una gran cantidad de parámetros que deben ser caracterizados para
determinar detalladamente la calidad de un cuerpo de agua en particular como turbiedad,
oxígeno disuelto, turbiedad y varios elementos químicos como aluminio, bario, cloruros,
mercurio, hierro, zinc, entre otros (véase Anexo “E”, artículo 4º). Sin embargo, se ha
determinado que el parámetro primordial a monitorear en un cuerpo de agua es su grado de
pH. El pH es una medida adimensional que determina el grado de acidez o alcalinidad de
un líquido, haciendo una relación de la cantidad de iones de hidrógeno H+ presentes en el
mismo. La escala de pH va generalmente de 0 a 14 (existen sustancias con valores de pH
fuera de este rango, sin embargo son muy escasos y de poco interés para el proyecto),
siendo 0 muy ácido y 14 muy alcalino o básico.
Teóricamente, el agua pura debe tener un pH de 7, que es el valor neutro donde la
presencia de iones H+ es prácticamente nula. Sin embargo, la presencia de agentes externos
en el agua hace que el pH de la solución varíe y altere su calidad. En las tablas 2.2-1 y 2.2-2
se pueden apreciar los valores de pH requeridos para medir la calidad del agua.
2.3.2 Sistema de Adquisición de Datos
Un sistema de adquisición de datos, o también conocido como datalogger no es más
que un módulo electrónico que recopila información de una serie de señales de entrada
provenientes de sensores especializados que transforman parámetros de interés en señales
eléctricas y las almacena en una memoria en formato digital. Además, debe tener un
software especializado para la descarga de los datos, generalmente en un computador, para
un análisis de los mismos.
Para desarrollar un sistema de adquisición de datos completo, hacen falta una serie
de bloques o etapas indispensables:
o Etapa de Sensores: compuesta por los transductores que transforman los parámetros
de interés en señales eléctricas.
o Etapa de Acondicionamiento: compuesta por una serie de componentes tales como
amplificadores operacionales y de instrumentación, filtros, transistores, entre otros,
8
que mejoran la señal de entrada, estableciendo su rango apropiadamente según el
ADC que se desee utilizar (para el caso de sensores con salida analógica) y
eliminando ruido o efectos no deseados (en caso que aplique).
o Microcontrolador: que es el dispositivo maestro, se encarga de transformar las
señales de entrada en formato digital para luego procesarlas y almacenarlas, y
controla periféricos externos que permiten al usuario interactuar con el sistema.
o Etapa de Almacenamiento: compuesta por algún dispositivo de almacenamiento de
memoria no volátil que sea capaz de guardar los datos provenientes del
microcontrolador.
o Interfaz Humano-Máquina: ya sea un teclado, un LCD o un software en un
computador, permite directamente la interacción entre el usuario y el sistema.
o Reloj de Tiempo Real: el sistema siempre debe estar sincronizado con una hora de
interés para el usuario para corroborar la validez de los datos obtenidos.
o Etapa de Alimentación: compuesta por reguladores y/o baterías que se encargan de
energizar el sistema.
En la figura 2.3.2-1 podemos apreciar un diagrama de bloques general de un sistema
de adquisición de datos. Observamos detenidamente que todo gira entorno al
microcontrolador. A su vez, la comunicación del bloque central con los bloques externos es
diferente para cada uno: en algunos casos es bidireccional, en otros es unidireccional y de
transmisión o recepción, lo que implica que el microcontrolador debe ser una herramienta
poderosa capaz de atender todas las peticiones de los periféricos en su momento preciso.
9
Sistema de
Alimentación
Sensores
Sistema de
Almacenamiento
Acondicionamiento
Micro
controlador
Reloj de
Tiempo Real
LCD
Teclado
Interfaz Humano-Máquina
Figura 2.3.2-1 Diagrama de Bloques General de un Sistema de Adquisición de Datos
2.3.3 Conversor Analógico Digital
Un conversor analógico digital (ADC) es un circuito que tiene como característica
principal una entrada analógica y N salidas digitales. La función principal del circuito es
generar un código binario proporcional al voltaje de entrada analógico, generalmente en
forma proporcional lineal ascendente. El ADC debe tener un voltaje de referencia máximo
Vref+ y un voltaje de referencia mínimo Vref- para establecer su rango de operación como
base para la codificación binaria a la salida del mismo. Cualquier voltaje analógico por
encima de la referencia máxima, será aproximado a Vref+ y para una entrada inferior a la
referencia mínima, será aproximado a Vref-.
Dependiendo del número de salidas digitales N, se puede establecer la apreciación
del ADC y la cantidad de niveles de cuantificación que éste posee. Los niveles de
cuantificación son los niveles de voltaje fijos a los cuales se aproxima la señal analógica
10
presente en la entrada del circuito. La cantidad de niveles depende del número de salidas N
según la relación 2N y por ende, la apreciación del circuito será según la ecuación 2-1:
Ap =
Vref + − Vref
2N
−
(2-1)
Comúnmente, en la mayoría de los sistemas basados en microcontroladores se tiene
un voltaje Vref+ = 5V y un Vref- = 0V. Algunos poseen 8 líneas de salida, lo que implica un
máximo de 256 posibles salidas, es decir, 256 niveles de cuantificación. En sistemas más
precisos podemos encontrar 10 líneas de salida, lo que implica que el sistema posee 1024
niveles de cuantificación y una apreciación de:
Ap =
5V
≅ 4,88mV
2 = 1024
10
(2-2)
De la ecuación 2-2 se concluye que el circuito es capaz de apreciar cambios de
+4,88mV en el voltaje analógico de entrada y reflejarlo en el código binario de salida. Por
supuesto, para un voltaje de entrada igual o inferior a Vref-, la salida será 0 en binario
(tantos ceros como líneas de salida existan) y para un voltaje de entrada igual o superior a
Vref+, la salida será 2N (tantos unos como salidas existan).
2.3.4 Termistor NTC
Un termistor es un dispositivo que varía su resistencia en función de la temperatura
a la cual esté sometido, comúnmente, es un sensor de temperatura. Luego, el termistor NTC
es aquel que posee un coeficiente de temperatura negativo, es decir, la resistencia
disminuye conforme la temperatura aumenta y viceversa. Sus 3 características más
resaltantes son: su alta sensibilidad a cambios de temperatura, lo que lo hace útil para
sistemas que requieran precisión en la medición; la necesidad de un consumo muy bajo de
potencia (menor a 500µW) ya que, por ser un dispositivo resistivo, al disipar mucha
11
potencia genera calor que puede afectar la medición que esté realizando; y su fuerte
relación no lineal R vs. T, generalmente exponencial regida por la ecuación 2-3:
R (T ) = R (T0 ) * e − β (T −T0 )
(2-3)
donde R(T) es resistencia en función de la temperatura T, R(T0) es el valor absoluto a la
temperatura T0 específica, y β un parámetro propio de cada termistor dado por el fabricante.
2.3.5 Protocolo de Comunicación I2C
Es un protocolo de comunicación serial síncrono que permite la interconexión de
muchos periféricos que tengan la posibilidad de comunicarse vía I2C. Por sus siglas en
inglés Inter-Integrated Circuit, el protocolo I2C requiere únicamente de 2 líneas de datos
para la comunicación entre 2 o más dispositivos, lo que se denomina bus I2C. Las 2 líneas
del bus son:
o SCL (Serial Clock): por ser un protocolo síncrono, requiere un reloj o un tren de
pulsos para sincronizar los datos en el bus. Esta es la función de la línea SCL.
o SDA (Serial Data): como su nombre lo indica, es la línea por la cual pasan todos los
datos de manera serial (bit a bit).
Para establecer una comunicación en un bus I2C entre 2 dispositivos, se debe tener
preestablecido un dispositivo maestro y otro esclavo. El maestro se encargará de generar los
pulsos de reloj que viajan por la línea SCL para la sincronización de datos y además será el
único capaz de iniciar una comunicación en el puerto. Sin embargo, en un solo bus I2C
pueden existir varios maestros, lo que lo convierte en un bus multi-maestro. Es importante
destacar que la validez de un bit se refleja cuando no existe ningún cambio de flanco en la
línea SDA cuando la línea SCL está en alto, el cambio de flanco en la línea SDA esta
permitido únicamente cuando la línea SCL esté en bajo.
12
Por otra parte, es un protocolo bidireccional, es decir, existe un intercambio de datos
mutuo entre el maestro y el esclavo, aunque siempre el maestro es el que posee el control
de la comunicación. Esto quiere decir que el maestro puede leer o escribir en el esclavo
interrogado. Para que esto funcione, es importante colocar ambas líneas del bus a
resistencias de pull-up cuyo valor es dependiente de la velocidad de transmisión que se
desee, frecuentemente se manejan las siguientes velocidades de bus:
o V < 100kHz se estilan resistencias de pull-up de 4,7k.
o V = 100kHz se estilan resistencias de pull-up de 2,2k.
o V = 400kHz se estilan resistencias de pull-up de 1k.
Por ser un protocolo, se deben llevar una serie de reglas para la transmisión válida
de una trama por la línea SDA:
o En un principio, cuando no exista comunicación en el bus, ambas líneas SDA y
SCL deben estar en alto debido a las resistencias de pull-up.
o El maestro debe iniciar la comunicación mediante un bit de inicio, a lo que se llama
condición de inicio, que implica llevar a bajo la línea SDA mientras el reloj SCL se
mantiene en alto.
o Seguidamente se envían los 8 bits, uno a uno, vía serial del primer byte; cada bit
debe ir reflejado en cada pulso de reloj correspondiente, recordando que para que
sea válido no debe cambiar de estado mientras en reloj permanezca en alto. Los
primeros 7 bits corresponden a la dirección del esclavo que el maestro desea
interrogar y el último bit indica si se desea hacer una operación de lectura o de
escritura.
o El esclavo interrogado debe responder con un bit de reconocimiento ACK, el cual
consiste en dejar la línea SDA en bajo durante el siguiente pulso de reloj completo.
o Una vez que se desee terminar la transmisión de datos, el maestro debe generar una
condición de parada, la cual consiste en un cambio de flanco ascendente en la línea
SDA mientras el reloj está en alto. Así se genera nuevamente la condición de
inactividad en el bus I2C.
13
Figura 2.3.5-1 Formato de un byte transferido vía I2C
En la figura 2.3.5-1 podemos apreciar el formato que debe tener un byte para ser
enviado por el protocolo I2C. Si se desea mandar más de un byte, que es lo que
generalmente ocurre, se repite toda la figura 2.3.5-1 sin las condiciones de inicio y fin, ya
que estas van reservadas únicamente al inicio y al final de la trama completa
respectivamente. Esto en caso que se desee escribir en el esclavo. Si el maestro desea leer
un dato del esclavo, debe igualmente generar la condición de inicio, indicando en el último
bit de dirección que se desea leer. El maestro debe entrar en un período de espera del byte
por parte del esclavo, dejando la línea SDA disponible para el uso del esclavo interrogado.
Ahora el maestro es el que debe responder con un reconocimiento ACK. El maestro debe
cerrar la transmisión con una condición de parada.
También puede existir la posibilidad de que el maestro desee leer un dato pero el
bus está abierto en modo escritura, el maestro generará una condición de reinicio que
consiste en una sucesión de las condiciones de fin e inicio. Esto se utiliza principalmente
cuando se desea leer un dato de una posición de memoria específica del esclavo, la cual
debe definirse en modo escritura.
En las figuras 2.3.5-2 y 2.3.5-3, llamemos “I” a la condición de inicio, “A” a la
condición de reconocimiento, “D” al byte de dato, “F” a la condición de fin y “R” a la
condición de reinicio. La figura 2.3.5-2 representa un diagrama para escribir en un esclavo
con dirección “M” en el bus un dato “D” proveniente del maestro. La figura 2.3.5-3
representa un diagrama para leer un dato “D” de un esclavo con dirección “M” en el bus.
14
I
M=7bits,R/W=0
D
F
A
MAESTRO
A
ESCLAVO
Figura 2.3.5-2 Esquema de escritura de un byte vía I2C
I
M=7bits,R/W=0
R
A
A
M=7bits, R/W=1
A
F
D
MAESTRO
ESCLAVO
Figura 2.3.5-3 Esquema de lectura de un byte vía I2C
2.3.6 Protocolo de Comunicación Serial Asíncrono
Es un protocolo que tiene como función principal la interconexión y comunicación
de cualquier dispositivo con el puerto serial de un computador. La velocidad de transmisión
de datos está normalizada a 75, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400,
56800 y 115200 baudios. El puerto serial de un computador generalmente tiene un conector
DB9 hembra (véase figura 2.3.6-1) que no es más que un terminal de 9 pines por donde se
transmiten los datos vía serial asíncrono desde y hacia el computador. Como se observa, es
un protocolo de 3 hilos para una comunicación bidireccional, ya que requiere al menos los
pines de transmisión Tx, recepción Rx y voltaje de referencia GND.
Figura 2.3.6-1 Conector DB9 hembra
15
El puerto serial de un computador se maneja mediante niveles lógicos RS-232.
Estos niveles mediante lógica inversa, es decir, un voltaje positivo es interpretado como un
“0” lógico y un voltaje negativo se considera un “1” lógico. Típicamente, para un nivel
lógico “0” existe un voltaje de +12V y para un nivel lógico “1” existe un voltaje de –12V.
La mayoría de los periféricos interpretan el protocolo serial asíncrono con niveles lógicos
TTL, donde el “1” lógico se representa por un voltaje de 5V y el “0” lógico se representa
con 0V. La conversión de niveles TTL a RS232 se hace generalmente por medio del
integrado MAX232, el cual se explicará en los capítulos posteriores.
Por ser un protocolo, se deben cumplir ciertas normas para realizar una
comunicación exitosa, entre ellas está el orden de los bits en el protocolo:
o Bit de inicio: en un estatus de inactividad, el pin Tx debe estar en un nivel lógico
“1” (-12V para niveles RS232 y +5V para niveles TTL). El bit de inicio se
interpreta cuando hay un cambio de flanco en la línea de “1” lógico a “0” lógico.
o Bits de datos: acto seguido vienen los bits del dato a transmitir. Se puede trabajar en
modo de 7 u 8 bits y el traslado de bits se realiza del menos significativo hacia el
más significativo, al contrario de lo que se esperaría.
o Bit de paridad: este es un bit opcional en el cual se representa la paridad de la trama
enviada. Dicho bit puede ser paridad par, en la que la suma lógica de todos los bits
debe ser par, o paridad impar, en la que la suma lógica de todos los bits debe ser
impar. Este bit se utiliza principalmente para la detección de errores.
o Bit de fin: indica la finalización de la transmisión, dejando la línea a “1” lógico.
2.3.7 Pantalla de Cristal Líquido (LCD)
Un LCD es la pantalla donde se visualizan mensajes cortos de texto de importancia
para un usuario. Son generalmente de 1, 2 o 4 filas, y 8, 16, 20 o 40 caracteres por fila.
Consta de 14 pines, de los cuales son 8 líneas de datos, 3 líneas de control (RS, Enable y
R/W) y los pines de alimentación a 5 voltios y referencia. En la figura 2.3.7-1 se puede
observar la imagen de una pantalla de 4x16 caracteres.
16
Figura 2.3.7-1 Imagen de un LCD 4x16
El manejo de las señales de control del LCD es muy importante para su correcto
funcionamiento. La línea RS le indica al LCD si el byte que se está enviando es un
comando o un dato: los comandos son las instrucciones y los datos son los caracteres que se
mostrarán en el LCD. La línea Enable debe estar siempre en 0 y se activa solo cuando se
desea enviar un byte al LCD, ya sea comando o dato. La línea R/W está en 0 si se desea
escribir en el LCD o en 1 si se desea leer del mismo, en nuestro caso, como el LCD es una
pantalla únicamente para visualización, esta línea se coloca a tierra directamente.
Referente a los tiempos de espera entre bytes enviados del microcontrolador al
LCD, es importante resaltar que, si se desean enviar bytes de datos, se requiere de un
mínimo de 50µs entre byte y byte enviado para que cada uno sea considerado como válido.
Si el byte enviado es de comando, al menos debemos esperar unos 2 ms para que el LCD
tenga tiempo suficiente de realizar la acción referente a dicho comando. La clave para que
la pantalla interprete los bytes de datos que se le envían, está en mandar los caracteres
codificados según la tabla ASCII (números, letras y algunos símbolos), ya que de esa forma
están guardados en una memoria no volátil del LCD llamada CGROM. También existe una
zona de memoria volátil CGRAM donde se pueden almacenar temporalmente símbolos
predeterminados que no estén en la CGROM o símbolos nuevos creados por un usuario en
particular.
17
Por tener 8 líneas de datos, la comunicación hacia el LCD es paralela. Se coloca el
byte completo en sus líneas DB0-7 y se configuran las señales de control RS y R/W. En la
figura 2.3.7-2 podemos observar un diagrama de tiempos apropiado para la escritura de un
byte en el LCD. Una vez que se tiene todo listo para la transmisión y haya transcurrido un
tiempo mínimo de 40ns (tAS), se genera una señal de pulso de una duración mínima de
230ns (PWEH) en la línea Enable para iniciar la comunicación. Una vez que se haya
realizado la operación, aproximadamente 80ns a partir que se genera el dato válido (tDSW),
es necesario volver a colocar la línea Enable a un nivel de voltaje bajo para una siguiente
petición. El tiempo mínimo entre flancos de subida de la línea Enable es de 500ns (tcycE).
El valor de tE1 debe ser tan pequeño como sea posible, se recomienda que no sobrepase los
20ns. Por último, antes de hacer cambios de voltaje en las otras líneas de control, se espera
un tiempo de al menos 10ns (tAH, tH) para garantizar la validación del dato.
Figura 2.3.7-2 Diagrama de tiempos de la escritura de un byte en el LCD
18
2.4
Variables y su Operacionalización
Es de interés manejar los conceptos básicos de los parámetros importantes en el
desarrollo del proyecto. La tabla 2.4-1 representa una definición conceptual o significado
físico, y una definición operacional o unidad de medida de cada una de las variables a
trabajar en el presente escrito.
Variable
Temperatura
Ambiental
Definición conceptual
Definición operacional
Cantidad de energía calorífica acumulada La magnitud viene expresada en
en el aire
grados Celsius [ºC]
Humedad que contiene una masa de aire, La magnitud viene expresada en
en relación con la máxima humedad porcentaje [%]
Humedad Relativa
absoluta
que
podría
admitir
sin
producirse condensación, conservando
las mismas condiciones de temperatura y
presión atmosférica
Presión Atmosférica
Peso de la masa de aire por cada unidad La magnitud viene expresada en
de superficie
milímetros de mercurio [mmHg]
Punto del horizonte de donde viene o La magnitud viene expresada en
Dirección del Viento
sopla el viento. Es la componente radial grados [º]
del vector viento
Velocidad del
Viento
Magnitud escalar del vector viento que La magnitud viene expresada en
representa la rapidez con que este se metros por segundo [m/s]
desplaza en un momento determinado
Conjunto
Radiación Solar
de
radiaciones
electro- La magnitud viene expresada en
magnéticas emitidas por el sol
watts por metro cuadrado [W/m2]
Cantidad de lluvia que recibe un sitio en La magnitud viene expresada en
Pluviosidad
pH
un período de tiempo determinado
milímetros por día [mm/día]
Grado de acidez de una sustancia
Es una medida adimensional
Tabla 2.4-1 Variables a medir por el sistema y su operacionalización
CAPÍTULO 3: PLANTEAMIENTO DEL PROYECTO
Con la globalización, la organizaciones mundiales se han estado preocupando en
mayor proporción por la necesidad de tener aguas destinadas a un uso particular con un
sello de calidad cada vez mayor. Estudios realizados por la Organización Mundial de la
Salud (OMS) en el año 2005, demuestran que cerca de la sexta parte de la población
mundial (1100 millones de personas) no tiene acceso a agua potable y cerca de 2 millones
de personas mueren anualmente por la misma causa. La OMS ha creado el programa “El
Agua, Fuente de Vida” para combatir esta problemática mundial; el cual deberá contar,
entre otras infinidades de cosas, con sistemas de potabilización de agua y estaciones de
monitoreo que garanticen la calidad de la sustancia para personas necesitadas.
Sin embargo, no sólo la OMS está en planes de acción referentes a la calidad del
agua, la Organización de las Naciones Unidas (ONU), Departamento de Economía y
Asuntos Sociales, División para el Desarrollo Sustentable, ha creado un programa para la
calidad y suministro del agua a nivel mundial, así como educación en el uso de la misma en
su agenda 21, capítulo 18. En el artículo 18.27 se establece la importancia de los sistemas
de adquisición de datos relacionados con parámetros de calidad del agua para mantenerla
apropiada para un fin específico.
3.1
Planteamiento del Sistema
Existen muchos otros avances y programas referentes a mantener la calidad del agua
que justifican plenamente la realización del presente proyecto. En Venezuela también se
manifiestan estos problemas y por ello surge la necesidad de diseñar y construir un sistema
capaz de monitorear parámetros que determinen la condición de un cuerpo de agua a un
bajo costo, ya que existen equipos capaces de realizar mediciones referentes al tema pero
con un costo muy elevado, lo que los hace poco alcanzables para la población que requiera
de los mismos. Además, debido a la importancia de los parámetros meteorológicos, se ha
decidido incluirlos dentro del sistema y luego de un estudio de estaciones meteorológicas
comerciales se concluyó en medir las siguientes variables en nuestro sistema:
20
o Temperatura.
o Humedad relativa.
o Dirección y velocidad del viento.
o Presión barométrica.
o Pluviosidad.
o Radiación Solar.
o pH.
La finalidad del sistema no es realizar un análisis exhaustivo de la calidad del agua
sino generar una alarma que indique que se deben realizar pruebas de laboratorio para
determinar la causa de dicha alerta. Como se puede apreciar en el decreto Nº 883, artículo
4º (véase Anexo “E”), la cantidad de variables necesarias para un análisis exhaustivo de la
calidad del agua es enorme y la mayoría no pueden ser medibles eléctricamente, y aquellas
que pueden serlo, sus sensores son sumamente costosos. Principalmente por los costos es
que se decide utilizar las variables antes mencionadas a medir por el sistema y, por
supuesto, sujeto a cambios y mejoras en un futuro.
Ahora bien, para poder establecer un sistema de adquisición de datos, necesitamos
un cerebro motor que coordine todas las acciones, procese las mediciones y controle los
periféricos necesarios para la creación de la estación, un microcontrolador. Existe una
amplia gama de estos dispositivos en el mercado y de varios candidatos se escogió el
PIC16F877 de la casa Microchip Technology Inc. debido a la amplia gama de ventajas que
nos brinda y que se nombran a continuación:
o 8 conversores análogo-digital, que permiten hacer mediciones de 8 parámetros
diferentes cuya señal eléctrica sea analógica en un solo integrado.
o Conversor análogo-digital de 10 bits (1024 niveles de cuantificación), aumentando
considerablemente la precisión de la medición con respecto a los ADC de 8 bits.
o 33 pines de E/S, lo que permite tener una buena cantidad de periféricos conectados
al mismo tiempo con un solo microcontrolador.
o 2 contadores externos para los sensores de pulsos.
21
o 1 temporizador interno adicional para sincronización.
o Hardware interno para comunicación serial, tanto síncrona como asíncrona, lo que
facilita la programación del microcontrolador.
o Muy bajo costo.
o Gran cantidad de información y documentación referente a PICs
Inicialmente se pensó en la posibilidad de utilizar un microcontrolador PIC de la
familia 18F, específicamente el PIC18F4455 debido a la posibilidad de manejar
comunicación USB y de una velocidad de tiempo de ciclo interna mucho mayor a la familia
16F. Lamentablemente, el programador PICSTART PLUS disponible no cumplía con la
licencia necesaria para programarlos. Aparte de esto, nos dimos cuenta que el PIC16F877
cumplía con lo necesario para formar parte del sistema. En la figura 3.1-1 podemos apreciar
su diagrama de conexionado.
Figura 3.1-1 Diagrama de los Pines del Microcontrolador PIC16F877
Del diagrama de la figura 2.3.2-1 de un sistema de adquisición de datos, se observa
que se requieren de ciertos periféricos para el funcionamiento total del mismo. El teclado
utilizado es uno matricial de 4x4, suficiente para controlar todos los comandos que un
usuario le desee realizar a la estación; en la figura 3.1-2 se puede observar módulo
22
utilizado. Referente al LCD utilizado, es uno estándar de 4x16 caracteres que trabajará en
conjunto con el teclado para la configuración de la estación. La unión de estos 2 últimos se
puede llamar también interfaz humano-máquina ya que el conjunto le brinda una especie de
interacción a un usuario con el sistema.
Figura 3.1-2 Teclado Matricial 4x4
Referente a los sensores, nuestro objetivo principal es la construcción del
datalogger, por lo que la construcción de los sensores estará fuera del alcance del proyecto.
Es por esto que se plantea el uso de sensores comerciales que, en principio, garanticen el
correcto funcionamiento de la estación. Se realizó una búsqueda exhaustiva de los sensores
relacionados con parámetros meteorológicos y de parámetros relacionados con calidad del
agua disponibles en el mercado. Sin embargo, se encontraron 3 limitantes bastante grandes:
o La gran mayoría de las casas fabricantes de sensores son foráneas, lo que requiere
un tiempo de procura sumamente largo.
o Además de ser foráneas, las casas fabricantes desean vender la solución completa al
cliente, esto es, vender una estaciones meteorológicas automáticas (EMA). El
presente proyecto tiene como objetivo la realización de una EMA que no es más que
un sistema de adquisición de datos que mide parámetros meteorológicos. Por
supuesto, la idea del proyecto no es comprar la solución hecha sino construir el
prototipo electrónico con sensores comerciales individuales.
o Los sensores individuales son muy costosos y algunas de las casas fabricantes
incluso no permite la posibilidad de comprar sensores por separado, debido al punto
anterior.
23
Todo esto hizo la búsqueda de los sensores un poco compleja, quitó algo de tiempo
y nos hizo eliminar muchas de las casas fabricantes. Con respecto a los parámetros
meteorológicos, se utilizaron los sensores de la casa OMEGA Engineering, Inc. Los
modelos de los sensores utilizados son los siguientes:
o WMS-16TH: Sensor de temperatura y humedad relativa
o WMS-16BP: Sensor de presión barométrica
o WMS-16RC: Sensor de pluviosidad
o WMS-16-2E: Sensor de dirección y velocidad del viento
o WMS-16SR: Sensor de radiación solar
Con respecto a parámetros relacionados con calidad del agua, se utilizó el sensor
S650CD de la casa Sensorex, que es un sensor de medición de pH con juntura doble. Se
escogió el parámetro de pH debido a que es el más común y uno de los de mayor interés
para la medición en la calidad de un volumen de agua específico. No se pudo adquirir algún
otro sensor debido a los elevados costos de estos y a la muy poca diversidad de los mismos
ya que comercialmente no se venden sensores sino medidores. Sin embargo, ya habíamos
determinado que este parámetro cumple con los objetivos del proyecto.
En referencia al sistema de almacenamiento, en un principio se desea utilizar algún
dispositivo de almacenamiento masivo, ya sea un pen drive que se conecte vía USB o una
tarjeta de memoria compact flash tipo SD o MMC. Sin embargo, debido a lo reciente de
estas tecnologías y a su complejo funcionamiento, se ha pensado en la posibilidad de
utilizar como memorias alternativas unos integrados EEPROM 24LC64 de 64kbits ya que
son mucho más fáciles de usar y las tenemos en disponibilidad inmediata. Estas memorias
se comunican vía I2C y serán una solución rápida al problema de almacenamiento. En la
figura 3.1-3 se puede apreciar el diagrama de conexionado de este integrado.
24
Figura 3.1-3 Diagrama de los Pines de la Memoria 24LC64
Para el reloj de tiempo real (RTC), se usará un DS1307N de la casa Dallas
Semiconductor. Además de todas sus características eléctricas, se ha elegido este
dispositivo debo a que trabaja en un rango amplio de temperaturas, mayor a las del
ambiente en el que el sistema estará en operación. Este integrado se comunica mediante el
protocolo I2C, lo que implica que estará compartiendo el bus I2C con el sistema de
almacenamiento, lo que trae como ventaja el ahorro en el uso de los pines de E/S del
microcontrolador. Su asignación de pines se muestra en la figura 3.1-4.
Figura 3.1-4 Diagrama de los Pines del RTC DS1307N
En relación al sistema de alimentación, se utilizará una batería de 12V – 7.2AH
como principal fuente de tensión. Como el microcontrolador trabaja con un voltaje de 5V,
se utilizará un regulador comercial LM7805, el cual genera a su salida el voltaje necesario
para la electrónica digital utilizada en la estación. Además, como el sistema debe ser
autosuficiente y la batería es propensa a descargarse, se he pensado en la posibilidad de
utilizar un panel solar para cargar la batería cuando esta este por debajo de un valor
nominal específico; dicho panel puede ser de 10 Watts que son suficientes para que la
estación sea autosuficiente.
25
Por último, la interfaz en el computador será desarrollada en el software de
aplicaciones LabView 7.1 para la comunicación entre el sistema y el computador. El
propósito de esta interfaz será el de descargar los datos del sistema de almacenamiento,
guardarlos y mostrarlos en pantalla en una manera agradable para el usuario. Nuevamente,
el software desarrollado no está destinado al análisis de los datos, simplemente a la
presentación de los mismos.
3.2
El Pluviómetro
Adicional a la investigación bibliográfica y referencias de fuentes electrónicas
visitadas, se realizaron entrevistas con el Centro Nacional de Alerta y Pronóstico
Hidrometeorológico (CENAPH) y se ha encontrado que en Venezuela el parámetro de
mayor interés a ser medido es la pluviosidad. Un pronóstico adecuado de lluvia en un sector
crítico puede ser clave para tomar una decisión adecuada en un momento específico.
Debido a esto, ha surgido la necesidad de desarrollar un pequeño sistema de adquisición de
datos únicamente para nuestra variable de interés: lluvia. Existen 2 motivos principales por
los cuales se decidió hacer un diseño de este sistema:
o Reducción importante de costos, ya que uno de los factores que incrementa en gran
parte los costos del sistema son los sensores.
o Disminución de las dimensiones del sistema, ahora que se requieren de menos
componentes y únicamente el pluviómetro como sensor (la báscula con el embudo),
el sistema se puede colocar en prácticamente cualquier sitio.
El sistema tendrá una particularidad adicional: la redundancia. Se ha descubierto
que la parte más estrecha del embudo en los pluviómetros tiende a obstruirse debido a un
mantenimiento inadecuado, evitando el paso del agua y por ende la posibilidad de contar
eventos que indiquen que en realidad está lloviendo. La obstrucción puede ser de muchas
formas y es importante evitarla a toda costa. Para mayor robustez del sistema, se ha
decidido colocar un segundo pluviómetro, la idea es que ambos cuenten la misma cantidad
de pulsos para garantizar el óptimo funcionamiento del sistema. En caso de que alguno de
26
los pluviómetros esté obstruido o simplemente no esté funcionando correctamente, no se
perderán los datos ya que el otro estará trabajando. Así se reduce enormemente la
posibilidad de que los datos se pierdan, es decir, que ninguno de los pluviómetros esté en
funcionamiento.
La lógica y la distribución del pluviómetro siguen siendo parecidas al sistema
original pero a menor escala, es por ello que se ha decidido utilizar un microcontrolador de
mucho menos capacidad pero, por supuesto, mucho más barato. Siguiendo con la línea de
los PIC, se ha escogido el PIC16F84A como cerebro de nuestro pluviómetro, en la figura
3.2-1 se puede observar su diagrama de conexionado. A continuación se nombran algunas
de las cualidades por las cuales se puede prescindir del PIC16F877 para el sistema en
cuestión:
o No se requiere de conversión análoga-digital ya que el sensor de pluviosidad es un
generador de pulsos.
o Los protocolos referentes a la comunicación serial (tanto asíncrona como síncrona
I2C) pueden ser emuladas por 2 pines utilizando los tiempos de bit teóricos de
manera adecuada.
o Se requieren de menos pines de E/S en el microcontrolador.
o Se puede reducir el uso de un teclado matricial de 4x4 a uno de 4x3.
o El espacio de memoria requerido en el programa es mucho menor.
Figura 3.2-1 Diagrama de los Pines del PIC16F84A
27
El sistema de almacenamiento, la LCD, el RTC, y el sistema de alimentación
quedarán idénticos al sistema original, ya que, a pesar de ser un sistema más pequeño,
igualmente requiere de una memoria para almacenar los datos, una pantalla para
visualización del usuario, un reloj de tiempo real para validez de los datos y un voltaje
externo para suministro del sistema. Igualmente se desarrollará una interfaz en LabView
para poder descargar, guardar y mostrar los datos provenientes del pluviómetro.
CAPÍTULO 4: PROCEDIMIENTOS
Antes de iniciar con los procedimientos experimentales, sería interesante establecer
el diagrama de bloques general del sistema para tener una base clara sobre cual es la meta
que se quiere alcanzar durante el desarrollo del proyecto. En el presente capítulo también se
describirán los pasos que se siguieron para la construcción del sistema y la interfaz en el
computador.
4.1
Diagrama de Bloques del Sistema
De acuerdo a lo establecido en el capítulo 3, se ha acordado un esquemático para
nuestro sistema de adquisición de datos como se muestra en la figura 4.1-1. Se puede
identificar el microcontrolador como el bloque central con todos sus pines de E/S a utilizar,
el bloque de manejo de teclado y LCD del lado izquierdo, el bloque de fuente de
alimentación que suministra el poder eléctrico a todo el sistema, el bloque de entrada de
señales provenientes de los sensores donde está presente la etapa de acondicionamiento, el
bloque de conexión serial que es la puerta de enlace entre la estación y la interfaz en el
computador, y por último el bus I2C compuesto por el sistema de almacenamiento y el reloj
de tiempo real.
Figura 4.1-1 Esquemático general del sistema
29
Ahora se presenta en un orden cronológico los procedimientos llevados a cabo para
la realización de cada uno de los bloques de la figura 4.1-1. Es importante destacar que se
realizaron pruebas de todos los bloques por separado y una vez que se entendía el
funcionamiento de cada uno, se añadía al sistema. Para estas pruebas se utilizó un
PIC16F876 que tiene una arquitectura prácticamente idéntica al PIC16F877 pero con
menos pines de E/S, lo que lo hizo inconsistente ante el sistema como un todo.
4.2
Manejo del Teclado y LCD
En este bloque se encuentran, como su nombre lo indica, el teclado matricial 4x4 y
el LCD de 4x16. El primer paso hacia la construcción de la estación fue determinar el
funcionamiento de estos 2 elementos trabajando en conjunto, ya que todas las entradas que
un usuario pueda realizar mediante el teclado deben tener una respuesta visual en el LCD;
luego, podemos catalogar al teclado como un dispositivo de entradas y al LCD como un
dispositivo de salida. En la figura 4.2-1 se puede observar el diagrama de cableado de este
bloque con el microcontrolador.
Se han escogido los pines del puerto B del microcontrolador como las líneas de
datos referentes al teclado y al LCD. De la figura 4.2-1 se puede apreciar que ambos
comparten 4 pines de datos, este se llama multiplexación de los pines, lo que implica que el
teclado debe ser interrogado continuamente. Otra consecuencia es que el LCD debe ser
utilizado en modo de 4 bits para no perder otros 4 pines de E/S del microcontrolador; en
este modo, el LCD debe recibir el byte de dato por nibble. El truco está en determinar
cuando los datos en el puerto B son para el LCD y cuando son provenientes del teclado. Las
resistencias de pull-up de 10kΩ y las serie de 330Ω están para protección del
microcontrolador ya que existe la posibilidad que al momento de enviar datos al LCD
exista un evento por teclado y genere un nivel de voltaje inapropiado en el puerto. Además,
se ha escogido el puerto D como bus de líneas de control, por ello las 2 señales de control
necesarias para el control del LCD son los pines RD6 y RD7.
30
Figura 4.2-1 Diagrama de cableado del teclado con el LCD al microcontrolador
Es importante destacar que se cuenta a todos los pines del puerto B como líneas de
E/S, incluyendo RB3. Esto significa que al momento de programación del microcontrolador
se debe deshabilitar el modo LVP, por sus siglas en inglés Low Voltage Programming
(Programación de Voltaje Bajo) y utilizar el modo HVP, por sus siglas en inglés High
Voltage Programming (Programación de Voltaje Alto), ya que en LVP se debe colocar el
pin RB3/PGM debe estar conectado a tierra, perdiéndolo como línea de E/S. La única
ventaja que tiene la programación de voltaje bajo es que elimina el uso de un voltaje alto de
12 V para el proceso de grabado del microcontrolador a costa de un pin de E/S que para el
diseño del sistema, es de suma importancia.
31
4.3
Bus I2C
En el bloque referente al bus I2C se encuentran el RTC DS1307N y dos memorias
24LC64, los cuales se encargan de llevar la hora y fecha de la estación así como de la etapa
de almacenamiento respectivamente. Como sabemos de la teoría, el protocolo I2C requiere
únicamente de 2 líneas de E/S para su total funcionamiento y se han elegido los pines 0 y 1
del puerto D del microcontrolador para tal propósito. A pesar de que existe un hardware
interno del propio bloque central para establecer una comunicación I2C, se decidió emular
el protocolo por software y dejar libre los pines referentes a la comunicación síncrona para
alguna futura memoria que sea capaz de comunicarse mediante el protocolo SPI, por sus
siglas en inglés Serial Peripheral Interface (Interfaz Periférica Serial), ya que existen
dispositivos de almacenamiento masivo como las tarjetas MMC (MultiMedia Card) que
pueden utilizar dicho protocolo.
Por otra parte, sabemos que cada dispositivo debe tener una dirección única de 7
bits en el bus I2C para poder ser interrogado (el último bit indica si el maestro desea escribir
o leer un dato). Es evidente que el maestro de la comunicación será el microcontrolador y
existirán 3 esclavos en el bus, las 2 memorias y el RTC. La dirección en el bus del RTC
viene dada en su totalidad por el fabricante, lo que quiere decir que no pueden existir 2
integrados DS1307N en el mismo bus ya que no habría manera de identificarlos; dicha
dirección es “1101000”. Con respecto a las memorias, el fabricante establece los primer 4
bits de la dirección que son “1010” y designa 3 pines en el integrado para los últimos 3 bits
de dirección, lo que quiere decir que se pueden conectar hasta 23 = 8 memorias idénticas en
el bus; para nuestro caso de dos memorias se tomaron los casos “000” y “001” por lo que la
dirección de la memoria A en el bus será “1010000” y la dirección de la memoria B en el
bus será “1010001”.
Ahora bien, debemos estudiar como se reparte la memoria de cada uno de los
dispositivos para poder manipular los datos en el bus de una manera adecuada. Con
respecto al RTC, este tiene una memoria RAM de 64 bytes leíbles y escribibles, como se
32
muestra en la figura 4.3-1. Todos los datos almacenados en los registros 00 al 06 son en
formato BCD. El último registro de configuración es básicamente para una señal cuadrada
de salida del dispositivo, para habilitarla y cambiarle la frecuencia de salida entre 4 posibles
mediante los 2 últimos bits de dicho registro. Para nuestro sistema, esta señal es de poco
interés así que simplemente está deshabilitada. Además de los 8 primeros registros, posee
56 registros adicionales que pueden ser utilizados como registros de propósito general.
Figura 4.3-1 Distribución de la memoria del DS1307N
Adicionalmente, debido a que la memoria del RTC es volátil, éste puede funcionar
con una batería auxiliar de 3V conectada al pin 3 del integrado. Esto es en caso de que la
fuente principal de alimentación llegase a fallar y el pin de alimentación no tenga el voltaje
necesario, el dispositivo entra a trabajar en modo de bajo consumo con esta fuente auxiliar.
El consumo de corriente es menor a los 500nA. El cambio a modo de bajo consumo y
viceversa se hace de manera inmediata y automática por parte del integrado. Todo esto es
para que el RTC, bajo ninguna circunstancia, pierda su valiosa información.
En relación a los integrados 24LC64, posee 8k registros de memoria no volátil los
cuales pueden ser direccionados por (213 = 8k) 13 bits. Sin embargo, como el protocolo sólo
acepta envíos de información por paquetes de bytes, la dirección de memoria se envía en 2
bytes (16 bits) y los 3 bits más significativos no se toman en cuenta. En estas memorias se
33
almacenarán todos los datos de interés para el usuario, por lo que hay que tener especial
cuidado al momento de leer y escribir en ellas.
Un detalle adicional es el manejo del pin de protección contra escritura. Tanto el
RTC como las memorias tienen una entrada que puede está configurada para habilitar el
modo de sólo lectura cuando se encuentra a un nivel de voltaje alto. Como es de nuestro
interés configurar fecha y hora en el RTC, así como almacenar y descargar datos con las
memorias, es decir, escribir en ellos, es imperativo conectar esta entrada a tierra.
4.4
Conexión Serial
La comunicación entre la estación y la interfaz en el computador es de vital
importancia ya que todo el software de análisis se encuentra en este último. Se ha decidido
utilizar el hardware del microcontrolador para establecer la comunicación. Por simplicidad
y siguiendo los estándares, se usó el protocolo serial asíncrono RS-232 a una tasa de 9600
baudios, sin bit de paridad y 8 bits de datos. Sin embargo, los voltajes que se manejan en el
microcontrolador son distintos a los que se manejan en el puerto serial del computador por
lo que se requiere de un driver que conecte físicamente la comunicación y convierta los
voltajes de uno en los voltajes equivalentes del otro.
Este dispositivo es el MAX-232, un integrado de 16 pines especialmente diseñado
para conectar cualquier sistema que se comunique en forma serial asíncrona con niveles
lógicos TTL (0-5 voltios) con el puerto serial de un computador. Las salidas del MAX-232
deben ir conectadas a un conector DB9 hembra, dicho conector será el puente para conectar
el cable serial que va directamente al puerto serial del computador. En la figura 4.4-1 se
puede observar el diagrama de conexionado de la etapa de comunicación serial estacióncomputador. Todos los capacitores son de 1µF.
34
Figura 4.4-1 Diagrama de cableado del MAX-232
Debido a la tendencia de desaparición del puerto serial, se ha pensado en utilizar un
dispositivo que transforma los niveles de voltaje RS-232 en comunicación vía USB.
Adicionalmente, este conversor Serial-USB posee un software de instalación en el
computador que genera un puerto serial virtual, esto es, los datos que lleguen por vía USB
podrán ser leídos en cualquier aplicación como si hubiesen llegado por el puerto serial,
dejando intacto el manejo de los datos en el microcontrolador y en la interfaz en el
computador. Dicho conversor se observa en la figura 4.4-2.
Figura 4.4-2 Conversor Serial-USB
4.5
Fuente de Alimentación
La etapa de alimentación es sumamente sencilla. Tal y como se planteó, se utiliza
una batería de 12 voltios con un regulador. La fuente está conectada a la entrada del
regulador LM7805, esto es, si el interruptor está en cortocircuito, la batería estará conectada
en paralelo con el regulador. La señal de salida del regulador será una señal de 5VDC.
Adicionalmente se colocan 3 capacitores de 1µF, 1nF y 33pF respectivamente que
35
funcionan como filtros para disminuir en la medida de lo posible el ruido externo. En la
figura 4.5-1 se puede observar el circuito de alimentación del sistema. Como detalle
adicional, se colocó un diodo LED con una resistencia en serie de 330Ω en paralelo a la
fuente de 5V. Este es un indicador rápido para detectar alguna falla en el voltaje de
alimentación sin la necesidad algún instrumento de medición.
Figura 4.5-1 Esquemático de la Etapa de Alimentación
4.6
Señales de los Sensores
A priori, del capítulo 3 ya conocemos los sensores que vamos a utilizar en el
proyecto. En la figura 4.6-1 se observa el diagrama de cableado de los sensores al sistema
de adquisición de datos. Es de vital importancia conservar este orden para el correcto
funcionamiento del datalogger y de los sensores ya que si se llegan a conectar los cables en
los lugares errados podemos causar la pérdida de algún sensor o incluso del
microcontrolador. Cada sensor tiene una cantidad específica de hilos, representados cada
uno con colores, como se puede observar en la figura 4.6-1. Se decidió dejar la parte de los
sensores y su acondicionamiento como bloque final ya que fueron los últimos componentes
en llegar, además que existe la capacidad de construir la estación completa sin la necesidad
de los sensores, por supuesto, reservándole su espacio.
36
Figura 4.6-1 Diagrama de Cableado de los Sensores al Sistema
Es importante destacar que, para el caso de las señales analógicas, las variaciones de
los parámetros de interés son prácticamente nulas o requieren de mucho tiempo para notar
un cambio apreciable. Por esto, se pueden considerar voltajes constantes, con lo cual no se
requiere de ningún filtro en especial para el acondicionamiento, lo que hace este a su vez
mucho más fácil de diseñar e implementar.
Con respecto al sensor de temperatura, se utilizó un termistor NTC. Sin embargo, se
desconocía la curva característica del mismo ya que los sensores disponibles vinieron sin
manuales técnicos. Se realizó un experimento que consistió en sumergir el termistor en
agua destilada y conectar sus terminales a un óhmetro e ir variando la temperatura del agua
para poder determinar su curva característica de resistencia en función de la temperatura a
la cual esté sometido. En la figura 4.6-2 podemos observar el montaje del experimento. La
razón por la cual se utiliza agua destilada es porque contiene la mínima cantidad de
impurezas que hagan que el agua aumente su conductividad, es decir, su resistencia con
respecto a la del termistor es despreciable. Esto es para disminuir el error en la medición.
37
Figura 4.6-2 Montaje del experimento de la Caracterización del Termistor
Primero se procedió a enfriar el agua destilada hasta alcanzar una temperatura de
0ºC y a partir de ahí se comenzaron las mediciones según muestra el esquema de la figura
4.3-1. La apreciación del termómetro utilizado fue de 2ºC, por lo que las mediciones de
temperatura fueron acorde a la apreciación del instrumento. La temperatura máxima de
medición fue 42ºC. Se tomó este rango de temperatura ya que nuestro propósito es
caracterizar el dispositivo en el rango de operación en al que estará sometido, el cual es
temperatura ambiente y dicho rango abarca todas las temperaturas posibles en Venezuela.
Los resultados obtenidos de la resistencia del dispositivo en función de la resistencia
se expresan en la Tabla 4.6-1.
38
Temperatura (ºC) Resistencia (kΩ)
0
33
2
30
4
27,5
6
25
8
23
10
21
12
19
14
17
16
15,5
18
14,2
20
13
22
11,9
24
10,9
26
10
28
9,2
30
8,4
32
7,7
34
7
36
6,5
38
6
40
5,6
42
5,2
Tabla 4.6-1 Resultados del Experimento de la Caracterización del Termistor R vs. T
Luego se procedió a graficar los datos de la tabla 4.6-1, y su obtuvo el gráfico
mostrado en la figura 4.6-3. Allí claramente se demuestra el comportamiento no lineal del
dispositivo con respecto a la temperatura. En consecuencia, el tratamiento de la variable
temperatura en el sistema requiere de un cuidado especial ya que es uno de los parámetros
de mayor interés en el sistema. Los puntos azules representan los datos obtenidos
experimentalmente y la línea negra continua es la línea de tendencia de tipo exponencial
con su ecuación 4-1:
R (T ) = 32362 * e −0, 0446*T
(4-1)
39
35000
Resistencia (Ω )
30000
R(T) = 32362e-0,0446T
25000
20000
15000
10000
5000
0
0
10
20
30
40
Tempertaura (ºC)
Figura 4.6-3 Curva Característica R vs. T del Termistor
Debido a que los termistores requiere de un consumo muy bajo, generalmente se
utiliza un circuito muy sencillo para la determinación de la temperatura, como se ve en la
figura 4.6-4, donde R1 debe tener un valor suficientemente alto para garantizar el bajo
consumo de potencia del termistor pero lo suficientemente bajo para notar un cambio
apreciable en el voltaje Vx cuando existan variaciones de temperatura. A continuación se
presenta el desarrollo de la fórmula para determinar R1 a partir del valor nominal de R2.
Figura 4.6-4 Esquemático del Acondicionamiento del Sensor de Temperatura
Llámese Vx al voltaje de salida del termistor y RT a la resistencia del termistor.
Podemos obtener una expresión de Vx en función de RT mediante la expresión 4-2:
40
Vx =
5 * RT
V
RT + R 2
(4-2)
Ahora podemos obtener una expresión de la potencia disipada en el termistor
dependiente únicamente de su resistencia, como se puede ver en la siguiente expresión 4-3:
2
⎛ 5 * RT ⎞
⎜⎜
⎟
2
2
RT + R 2 ⎟⎠
Vx
25 * RT
25 * RT
⎝
PT =
=
=
=
2
RT
RT
RT * ( RT + R 2)
( RT + R 2) 2
(4-3)
Para determinar si dicha expresión cumple con el mínimo de potencia requerido,
debemos derivar la potencia en función de la resistencia para determinar el punto en el cual
se hace máxima la potencia. A continuación se presenta el desarrollo de la derivada:
∂PT
25 * ( RT + R 2) 2 − 25 * RT * (2 * ( RT + R 2))
=
∂RT
( RT + R 2) 4
(4-4)
∂PT ( RT + R 2) * [25 * RT + 25 * R 2 − 50 * RT ]
=
∂RT
( RT + R 2) 4
(4-5)
∂PT
− 25 * [RT − R 2]
=
∂RT
( RT + R 2) 3
(4-6)
Para determinar el valor máximo de potencia disipada, debemos igualar la ecuación
4-6 a cero. Fácilmente se observa que la condición de máxima potencia será cuando R2 sea
igual a RT. Luego, la escogencia de R2 será totalmente dependiente del valor nominal de la
resistencia del termistor. Sabemos que el valor nominal del termistor viene dado por la
resistencia del dispositivo a 25ºC. De la tabla 4.6-1 y el gráfico de la figura 4.6-3 podemos
apreciar que el valor nominal es de 10kΩ. Debido a esto, se ha decido utilizar una
resistencia R2 para el acondicionamiento del sensor de 20kΩ. Utilizando la ecuación 4-3
41
para calcular la potencia máxima disipada por el termistor. Vemos en el resultado de la
ecuación 4-7 que no sobrepasa el valor tope de potencia de 500µW, por lo que el termistor
arrojará una medición fiel a la temperatura a la cual este sometido.
⎡ 25 * RT
⎤
500kΩ
PT max = ⎢
V⎥
=
V = 312,5µW
2
2
⎣ ( RT + 20kΩ) ⎦ RT = 20 kΩ (40kΩ)
(4-7)
Los sensores de humedad y presión barométrica tienen una salida analógica de 0 a 1
voltio. Esta señal así sola representa una pérdida considerable en la medición del ADC. La
solución óptima para este problema estará en amplificar por medio de amplificador
operacional la señal analógica de 1 a 5 voltios. El amplificador utilizado fue el TL-084 de
la casa Texas Instrument. Se escogió este integrado debido a que internamente posee 4
amplificadores en un solo chip y como veremos más adelante, estás no son las únicas
variables que requerirán amplificación. Además es de bajo costo y debido a que nuestra
señal varía con una frecuencia prácticamente nula, no hace falta el uso de filtros para
acondicionamiento de la señal. En la figura 4.6-5 podemos apreciar el diagrama de los
pines de conexión del integrado.
Figura 4.6-5 Diagrama de Pines del Amplificador TL-084
Como la señal tiene un voltaje muy cercano a cero, la referencia negativa del
amplificador no puede ser tierra, ya que debemos respetar un margen de seguridad de los
42
transistores que internamente componen el amplificador. Dicho margen no es más que una
banda de voltaje que asegura el correcto funcionamiento del dispositivo.
Debido a la necesidad de utilizar un voltaje negativo para la alimentación negativa
del amplificador, se utilizó el integrado ICL7660, que es un dispositivo que genera un
voltaje negativo a partir de un voltaje positivo de entrada. En este caso, se alimenta con
+5V y su salida es de –5V. Dicha salida se conecta directamente a la alimentación negativa
del amplificador, garantizando así el correcto funcionamiento del mismo. El esquema del
circuito para generar voltaje negativo se muestra en la figura 4.6-6.
Figura 4.6-6 Configuración de inversor de voltaje del ICL7660
Por otro lado, así como existe la banda de seguridad para voltajes cercanos a la
alimentación negativa, existe la misma banda para la alimentación positiva. Ya que el ADC
del microcontrolador acepta señales de hasta 5V, la mínima alimentación requerida por el
amplificador será de (5V + margen de seguridad). Sin embargo, para no introducir más
circuitería, simplemente se conectan 12V a la alimentación positiva del amplificador.
Una de las configuraciones más comunes de los amplificadores operacionales es la
configuración no-inversora. En la figura 4.6-7 se puede apreciar el diagrama circuital. Su
característica principal es que la forma de onda de la entrada y la de la salida son idénticas
con un factor de ganancia G dependiente de las resistencias R1 y R2. A continuación se
presenta la relación entre la tensión de entrada Vi y la tensión de salida Vo.
43
Figura 4.6-7 Configuración no-inversora
Por ser un circuito con realimentación negativa, se cumple la condición de corto
virtual en el amplificador, lo que quiere decir que tanto pin positivo como el pin de
negativo de entrada en el amplificador están al mismo voltaje (Vi en este caso). Calculemos
entonces la corriente que pasa por la resistencia de R1 por medio de la ley de Ohm:
I− =
Vi
R1
(4-8)
Ahora bien, la resistencia de entrada del amplificador es de aproximadamente
1012Ω, lo que se puede considerar infinito para este cálculo. Esto quiere decir que al pin
negativo no entra corriente alguna y la misma corriente I - pasa por la resistencia de 4kΩ.
De aquí podemos sacar una relación entre el voltaje de salida Vo y el voltaje de entrada Vi
que se puede observar en la ecuación 4-9. Esta proporción es la ganancia del circuito G.
I− =
Vi Vo − Vi
Vo
R2
=
⇒ R 2 * Vi = (Vo − Vi ) * R1 ⇒
= (1 +
)
R1
R2
Vi
R1
(4-9)
Volviendo a los sensores de humedad relativa y presión barométrica, para llevar el
voltaje máximo de 1 a 5 voltios, utilizamos una configuración no-inversora con R1 = 1kΩ y
R2 = 4kΩ, luego, aplicando la fórmula 4-9 obtendremos una ganancia G = 5.
44
El sensor de radiación solar tiene como salida un voltaje analógico de 0 a 0,1
voltios, lo que lo hace incluso más crítico y genera una importancia mayor en el
acondicionamiento de dicha señal. Utilizando nuevamente una configuración no-inversora
con R1 = 1kΩ y R2 = 49kΩ, y aplicando la fórmula 4-9 conseguimos una relación positiva
G = 50, lo cual eleva el voltaje de 0,1 a 5 voltios. Es de especial importancia para este caso
particular, usar resistencias de precisión ya que el cambio es sumamente apreciable.
Para la dirección del viento se utilizó el sensor más común, una veleta. Su salida es
un voltaje analógico de 0V a 5V proporcional de manera lineal a la posición en grados de la
veleta con respecto a su punto de referencia que debe de estar apuntando directamente al
norte. Esto es, para el norte, la veleta estará a 0º y el voltaje de salida será 0V; para el sur, la
veleta estará a 180º y el voltaje de salida será 2,5V. El circuito equivalente no es más que
un potenciómetro de 20kΩ donde ambos extremos de la resistencia están a un voltaje de 5V
y la salida es el voltaje que cae en el terminal móvil del potenciómetro. Claro está, el
terminal móvil del potenciómetro es la flecha de la veleta.
El principio de funcionamiento de los sensores de pluviosidad y velocidad del
viento se basa en contar pulsos en un período de tiempo determinado mediante el principio
corto-abierto, es decir, cuando ocurre un evento válido, ambos hilos del sensor son un corto
y luego un abierto, que con el pequeño circuito de la figura 4.6-8, genera un pulso.
Figura 4.6-8 Circuito de Acondicionamiento de los Sensores de Pulso
45
Se puede apreciar que cuando no ocurre ningún evento válido en el sensor, ya sea
que no esté lloviendo o no exista viento alguno en el lugar de medición, ya sea que Vi1 y
Vi2 sean un cortocircuito o un abierto, el voltaje de salida Vi1 será siempre un voltaje
constante y la medición de la variable será cero. Cuando Vi1 y Vi2 están en cortocircuito,
se observa que la salida es 0V directamente. Cuando Vi1 y Vi2 están abiertas, el capacitor
se carga a 5V y por ende la salida será 5V. La idea de conectar el sensor a una red RC es
evitar los llamados “rebotes”, lo que hace que el microcontrolador cuente más eventos de
los que realmente están sucediendo. Ahora lo que falta por averiguar es la constante τ de la
red y comprobar que es considerablemente menor que la frecuencia de eventos para
garantizar que no se pierde la cuenta de los eventos ocurridos, según la ecuación 4-10.
τ = R * C = 10kΩ *1nF = 10µs
(4-10)
Sabemos además que para un tiempo de 5τ (50µs) justo después del momento de
cambio de estado, el valor de voltaje en el capacitor ha alcanzado el 98% de ser valor final
lo que implica que ya el microcontrolador ha detectado el pulso. De ambos sensores, el que
más rápido puede contar es el de velocidad del viento, teniendo un máximo de 100 pulsos
por segundo, lo que implica 100 cargas y 100 descargas del capacitor. Eso implica un
tiempo de 50ms, 1000 veces más lento que el tiempo que necesita el capacitor para
establecerse en un voltaje fijo, lo que implica que no habrá pérdida de pulsos en el conteo.
Por último, tenemos el sensor de pH, el cual tiene una salida que obedece a la
fórmula 4-11. Como el valor de pH va de 0 a 14, vemos que tiene un rango entre -414mV y
+414mV, lo que no es medible por el ADC del microcontrolador. En la figura 4.6-9 se
puede apreciar el circuito diseñado para el acondicionamiento de este sensor.
V = -0,0591*pH + 0,414
(4-11)
46
Figura 4.6-9 Esquemático del Acondicionamiento del Sensor de pH
La función del amplificador U1 de la figura 4.6-9 es aislar al sensor del circuito de
acondicionamiento, pues el fabricante advierte que la impedancia de salida del dispositivo
es grande y puede afectar su funcionamiento si le circula una corriente considerable. Esta es
la configuración de seguidor de voltaje o buffer, donde el voltaje de salida es igual al
voltaje de entrada y así garantizamos que la corriente que atraviesa el sensor es
prácticamente nula. El amplificador U2 de la figura 4.6-9 está conectado en una
configuración inversora y con ganancia de amplificación 4. La configuración inversora se
escoge para tener ahora una relación proporcional directa del aumento de voltaje de salida
con respecto al aumento de pH en la medición. La función del diodo zener de 3V es la de
subir la referencia del sensor ya que para sustancias alcalinas, la diferencia de voltaje entre
los terminales del sensor resulta negativa y el microcontrolador no puede medir. Ahora
podemos determinar la nueva curva característica del voltaje de salida Vo en función del
pH de una sustancia específica, la cual podemos observar en la gráfica de la figura 4.6-10.
47
5
Voltaje (V)
4
3
V = 0,2366(pH) + 1,344
2
1
0
0
2
4
6
8
10
12
14
16
pH
Figura 4.6-10 Curva Característica V vs. pH luego del Acondicionamiento
4.7
Integración de los Bloques
Una vez que hemos logrado que cada bloque funcione por separado, ha llegado la
hora de unirlos para formar un todo, para construir el sistema de adquisición de datos. Por
supuesto, el sistema de alimentación está directamente integrado al sistema ya que es el que
suministra el voltaje para el funcionamiento de todos los demás bloques. Un punto fuerte
del proyecto está en la programación, en el desarrollo del software del microcontrolador
que será el encargado de arbitrar las actividades que realizan los periféricos unidos a él. El
programa utilizado para el desarrollo del software fue MPLAB v7.40, y se utilizó lenguaje
ensamblador. Para poder realizar la integración con éxito, se pensó en establecer todo el
código referente a cada bloque como subrutinas con variables de entrada y salida, debido a
que la unificación en forma ordenada requiere un código bastante largo y un poco
engorroso.
La primera unión que se realizó fue el bloque del manejo del teclado y LCD con los
canales análogo-digitales del microcontrolador. Esto debido a que el primer paso debe
coincidir con el principio básico de un datalogger: adquisición de una señal analógica y
mostrar la medición. Como primeras pruebas, se utilizaron potenciómetros convencionales
48
en vez de la etapa de sensores para corroborar las mediciones obtenidas. Luego se
estableció una librería para el teclado, una para el manejo del LCD y una para la conversión
analógica-digital.
Se debía establecer un tiempo de muestreo para las señales. Sabemos que las
variables escogidas tienen una frecuencia de cambio muy lenta, por lo que no era mayor
problema tomar tiempos grandes para darle tiempo al microcontrolador de realizar otras
actividades con los demás periféricos. Por medio de la búsqueda de información y
comparaciones con sistemas comerciales, en especial la estación meteorológica WMS-16
de la casa OMEGA Engineering, se determinó un tiempo de muestreo por variable de 5
segundos. También se investigó que el tiempo de almacenamiento de las mediciones en la
memoria del sistema es generalmente de 10 minutos, ya que el propósito de este tipo de
sistemas de adquisición de datos es el análisis de las mediciones por un período de tiempo
considerable (digamos un mes por lo menos), las mediciones en tiempo real no son de
mucha importancia para la mayoría de los usuarios. Con los datos anteriores, somos
capaces de crear un protocolo para el almacenamiento de las mediciones en la memoria del
sistema.
4.7.1 Protocolo de Almacenamiento
Como buen protocolo, debe iniciar con un encabezado, se ha elegido el byte 0xFC
(252 en decimal) para iniciar la trama que indicará el inicio de una trama válida de datos
almacenados en memoria. Ahora bien, hemos reiterado la importancia de relacionar la
medición con la fecha y hora en la que fue tomada, por ello los siguientes 5 bytes de la
trama serán referentes a los datos del RTC en el momento de almacenamiento; el orden de
los mismos será día, mes, año, hora y minuto, todos en formato BCD (tiene poco sentido
colocar los segundos ya que se supone que el almacenamiento se realiza cada 10 minutos,
además que es pérdida de espacio en memoria). Ya que el microcontrolador no tiene un
poder de cómputo extraordinario, se almacenará la sumatoria de todas las mediciones de
cada parámetro realizadas y el número de mediciones realizadas en el tiempo establecido,
49
luego, suponiendo un tiempo de muestreo de 5 segundos y un tiempo de almacenamiento
de 10 minutos, el número de mediciones teórico viene dado por:
# mediciones =
10 * 60 seg
= 120mediciones
seg
5
mediciones
(4-9)
y ese número será el que se almacene en memoria. A pesar que ese número se puede
representar con un byte, se le han asignado 2 bytes por si en algún cambio futuro al sistema
quepa la posibilidad de un número mayor a 256 mediciones por período de tiempo de
almacenamiento. Seguidamente vienen los bytes correspondientes a las mediciones;
sabemos que cada medición se puede representar con 10 bits, sin embargo, la suma de 120
mediciones de 10 bits puede sobrepasar los 2 bytes (120 * 1024 = 122880 se representa con
17 bits) por lo que cada variable debe estar en 3 bytes, y adicionalmente, cada parámetro
tendrá un byte de encabezado antes de sus 3 bytes para poder identificarlo al momento de la
descarga de los datos. Los bytes de encabezado de cada variable son como siguen:
o
Temperatura = 128
o
Humedad Relativa = 64
o
Dirección del Viento = 32
o
Velocidad del Viento = 16
o
Presión Barométrica = 8
o
Pluviosidad = 4
o
Radiación Solar = 2
o
pH = 1
Ahora bien, se ha pensado en la posibilidad que el usuario no tenga interés de medir
todas las variables y utilizar la estación con fines meteorológicos. De ser así, ¿Por qué
almacenar en memoria datos sin utilidad? Se agregó la posibilidad de que dicho usuario sea
capaz de configurar la estación para que trabaje con los sensores de interés y almacene solo
datos de importancia. Debido a este, nos hemos visto en la necesidad de añadir un nuevo
byte al protocolo para solventar este problema, que indica los sensores que se encuentran
50
activos, esto es, cada bit corresponde a un parámetro en particular. Si el bit está en 1 indica
que el sensor está activo y en la trama viene la medición del mismo, si el bit es 0, implica
que en la trama no está la medición de dicho parámetro. La correspondencia de los bits y
los parámetros es la misma utilizada en el punto anterior como se puede ver en la figura
4.7.1-1 (bit más significativo = temperatura, segundo = humedad, etc). Ahora como el
tamaño de la trama de datos es dinámico, se ha decidido colocar este byte al inicio de la
trama, justo después del encabezado para poder determinar el tamaño de la trama.
X
X
X
X
X
X
Temperatura
Humedad
X
X
Radiación
pH
Pluviosidad
Dirección Velocidad
Viento
Viento Presión
Figura 4.7.1-1 Correspondencia de los Parámetros y los bits de la Variable referente a los
Sensores Conectados
En la figura 4.7.1-2 podemos observar una trama válida de datos almacenados en
memoria donde se observan que están todos los sensores activos (segundo byte 0xFF =
‘11111111’b tiene todos los bits en 1, implica que están los 8 sensores activos) y por ende
llegan 32 bytes de datos. Los bytes de RTC indicarán el momento en que fueron tomadas
las mediciones.
Figura 4.7.1-2 Ejemplo de una trama válida de datos almacenados en memoria
4.7.2 Unión del Bus I2C
Una vez que tenemos un protocolo de almacenamiento dependiente de la fecha y la
hora y de una memoria de guardar los datos, parece imprescindible la unión del RTC y las
51
memorias al sistema. Siguiendo con nuestra técnica de programación, se generaron
subrutinas para la lectura y escritura en el RTC así como para el almacenamiento y la
descarga de las memorias. El propósito del momento era que el sistema fuese capaz de
almacenar en memoria una trama válida de datos como se describió en la sección anterior,
además de ser capaces de observar la hora en el LCD y que un usuario fuese capaz de
configurarla mediante entradas por el teclado.
Ahora bien, ya que las tramas de datos son de tamaño dinámico y aleatorio, de
alguna manera debemos conocer el estado de la memoria para almacenar de manera
correcta y eficaz las mediciones venideras. Para ello, se han dejado libres los primeros 4
registros de la primera memoria con motivo de utilizarlos como un apuntador a la última
posición de memoria válida. La razón de dejar 4 bytes es principalmente por si en un futuro
se llegase a instaurar un dispositivo de almacenamiento masivo que puede requerir de los 4
bytes para apuntar a la última posición de memoria válida. Una ventaja de esto es que, si en
algún momento se desease borrar la memoria, bastará con limpiar los primeros 4 espacios
de memoria para invalidar todos los datos dentro de la misma. Además, hace que el
algoritmo de descarga sea bastante sencillo ya que será enviar los datos desde la primera
posición válida (quinto registro) hasta el registro que indique este apuntador.
4.7.3 Unión de la Conexión Serial
El sistema de adquisición de datos, a nivel electrónico, está prácticamente listo, sin
embargo, le hace falta el puente de conexión para la comunicación con la futura interfaz en
el computador, el establecimiento del protocolo serial asíncrono. Ahora que la estación
mide, almacena y tiene su propio tiempo real, hace falta compartir los datos con el exterior.
Nuevamente, se ha creado una subrutina referente a la transmisión y recepción de datos por
el puerto serial. Se ha pensado en la posibilidad de establecer un protocolo que contenga las
mediciones realizadas en tiempo real y enviarlas al exterior por el puerto serial del
datalogger.
52
4.7.4 Protocolo de Datos en Tiempo Real
Para no cambiar mucho la tónica, se parecerá mucho al protocolo de
almacenamiento de la sección 4.7.1. Deberá iniciar con un encabezado, esta vez será el byte
0xF0 (240 en decimal) para iniciar la trama que indicará que los datos a continuación
fueron tomados en tiempo real. Seguidamente viene el byte que indica si los sensores están
activos o no, como se muestra en la figura 4.7.1-1 (se supone que si los sensores están
desactivados, el usuario no desea visualizar estos datos). Como cada medición es de 10 bits,
se utilizan 2 bytes para su transmisión, acompañado de su respectivo byte de encabezado
que indica a que parámetro corresponde una medición dada. Por último, genera un byte de
fin 0xFF (255 en decimal) indicando fin y validez de la trama.
Por ser una medición en tiempo real, la presencia de la fecha y la hora en el
protocolo es de total irrelevancia. Es importante destacar que este protocolo sólo se utiliza
en la transmisión serial ya que no es de interés almacenar y analizar mediciones
instantáneas sino los promedios de las mismas en un período de tiempo específico. En la
figura 4.7.4-1 podemos apreciar un ejemplo de una trama válida enviada por el puerto serial
del sistema hacia la futura interfaz en el computador en donde todos los sensores se
encuentran activos (segundo byte 0xFF = ‘11111111’b tiene todos los bits en 1, implica que
están los 8 sensores activos) y es por ello que luego se envían 3*8=24 bytes de datos para
luego culminar con el byte de fin de trama 0xFF.
0xF0
0xFF
Trama de Datos de 24 bytes
0xFF
Figura 4.7.4-1 Ejemplo de una Trama válida de Datos en Tiempo Real
4.7.5 Prioridades
Ahora que el diseño electrónico está construido y en funcionamiento, se genera la
problemática de la jerarquía de los dispositivos en el sistema. Se debe establecer un orden
53
de prioridades para que el datalogger trabaje en armonía y haga a la perfección todas las
tareas asignadas. Se fija como rutinas de mayor prioridad las peticiones provenientes de la
interfaz, esto debido a que el sistema debe estar en todo momento alerta a la comunicación
serial síncrona para no perder datos importantes de configuración para el usuario, luego, no
importa que proceso se este realizando en la estación, al momento de una interrupción
serial, la petición será acatada inmediatamente.
Como prioridad de segundo orden, tenemos las mediciones. El propósito del sistema
es tomar medidas de las variables de interés por lo que la adquisición de datos no debe
fallar en ningún momento, a menos que un usuario esté en proceso de descarga de datos.
Como ya se expuso, la petición de los canales ADC son cada 5 segundos y tomará el
tiempo necesario para hacer un barrido por todos los sensores, recordemos que el tiempo es
variable y dependiente de la cantidad de sensores activos.
El siguiente nivel jerárquico queda en manos del bloque conformado por el teclado
y el LCD. Como el manejo del teclado es por el método de encuestas y no de
interrupciones, se simplifica un poco el código del microcontrolador para captar las
peticiones de teclado. La parte importante es realizar las encuestas con una frecuencia
mayor al tiempo en que un usuario permanezca pulsando una tecla, generalmente mayor a
100ms, por tanto, realizando encuestas a una frecuencia mínima de 10 veces por segundo
será suficiente para no perder ninguna petición del teclado. Por descarte, queda relegado al
último nivel jerárquico el bus I2C debido a que el RTC no requiere de ningún dispositivo
adicional para funcionar (únicamente alimentación y el cristal de oscilación). Con respecto
a la lectura o escritura en la memoria, esto sólo sucederá se existe una petición de primer o
segundo nivel respectivamente, no existe la posibilidad de utilizar el sistema de
almacenamiento en cualquier momento aleatorio del desempeño de la estación.
54
4.7.6 Construcción del Sistema
Nos vimos en la obligación de tener como base de nuestro sistema una baquelita
matricial, incluso teniendo diagramas de PCB como se observa en el Anexo “B”. Esto es
debido a que la empresa está en procura de una maquinaria especial para la realización de
circuitos impresos y se decidió esperar su llegada para su posterior traslado a baquelita
perforada. Por ser un prototipo sujeto a cambios, el hecho de que el sistema esté sobre una
baquelita matricial no es de mayor importancia por los momentos. En la figura 4.7.6-1 se
observa el montaje final de la estación encendida con los sensores conectados.
4.7.6-1 Foto de la estación en funcionamiento
55
4.8
Interfaz Humano-Máquina en el Computador
Finalmente hemos llegado a la interfaz en el computador que no es más que un
programa diseñado para la comunicación con la estación y el intercambio de información
valiosa de las mediciones realizadas por el sistema de adquisición de datos, tanto datos en
tiempo real como datos almacenados, además de poder mostrar los datos en pantalla de una
manera visualmente agradable. Esta interfaz fue desarrollada en LabView 7.1, una
herramienta de software para el desarrollo de interfaces gráficas referentes a sistemas de
control, de prueba o visualización de datos.
La interfaz tiene 2 funciones primordiales:
o Recopilar, guardar y mostrar los datos de las mediciones prevenientes de la
estación, tanto aquellos provenientes de la memoria del sistema como aquellos
tomados en tiempo real.
o Configurar los parámetros necesarios de la estación que cumplan con los
requerimientos de un usuario en particular.
4.8.1 Bloques Principales Utilizados
Como ya sabemos, los datos de la estación se reciben vía serial asíncrono y para la
manipulación de éstos, se requieren de los bloques VISA de LabView referentes a la
comunicación serial. En la figura 4.8.1-1 podemos apreciar los diferentes bloques
necesarios para el manejo de ésta.
Figura 4.8.1-1 Bloques para el manejo de la comunicación serial en LabView
Describamos la figura 4.8.1-1. El bloque más a la izquierda COM1 es el puerto
serial por el cual llegan los datos de la estación. Luego el bloque siguiente VISA SERIAL
56
es el bloque de configuración de la comunicación serial que por defecto ya viene
configurado para una tasa de 9600 baudios, 8 bits de datos y sin bit de paridad, este bloque
se coloca al inicio del programa y automáticamente habilita el puerto serial, en este caso
COM1, para la lectura y/o escritura de datos. El siguiente bloque es el de escritura de una
trama por el puerto serial, esto es, por la línea Tx del puerto serial del computador saldrán
los datos que se especifican en dicho bloque hacia su destino final. El siguiente bloque es el
de lectura de una trama, la cual debe venir del otro extremo de la comunicación, en nuestro
caso, de la estación. El siguiente bloque se utiliza para borrar el buffer del puerto. El último
bloque se coloca al final del programa y es para deshabilitar y cerrar el puerto serial; es
importante cerrar el puerto para dejar la posibilidad a otras aplicaciones de usarlo.
Figura 4.8.1-2 Bloques para realizar gráficos en LabView
En la figura 4.8.1-2 se observan las 2 formas de realizar un gráfico en LabView que
se utilizan en la interfaz. El bloque Waveform Graph es un gráfico que posee una entrada
unidimensional, esto es, cada punto que se grafique en él irá exactamente una unidad mayor
en el eje X y termina siendo el comportamiento de la variable en función de un corto
período de tiempo. Este tipo de gráficos se utiliza para representar los datos en tiempo real
puesto que lo único que se desea mostrar es el valor actual de una variable en particular.
El bloque XY Graph es un gráfico que posee una entrada bidimensional, esto es, el
gráfico se realiza con las componentes X y Y provenientes de la entrada, se generan los
puntos en el gráfico y se unen con una línea recta aquellos puntos que sean consecutivos.
Este tipo de gráficos se utiliza para representar los datos de las mediciones almacenadas en
la memoria del sistema puesto que ahora el interés primordial es observar el
comportamiento de un parámetro en particular en función del tiempo en que dichas
mediciones fueron tomadas. Así pues, es importante que el eje X muestre la fecha y la hora
en que cierta medición fue almacenada.
57
Ahora bien, sabemos cómo los datos están almacenados en la estación, pero ¿Cómo
se almacenan los datos en el computador? Los datos leídos del sistema deben salvarse de
alguna manera para un posterior análisis de los mismos y/o para poder llevar un registro
completo de ellos. La interfaz en LabView se encarga de salvar todos los datos leídos de la
estación en un archivo plano de texto (*.txt) siguiendo el patrón de la figura 4.8.1-3.
Figura 4.8.1-3 Ejemplo Archivo Plano de Texto
Se guardan los datos con su respectiva fecha y hora para su posterior análisis. Todos
los datos que llegan según el protocolo de almacenamiento se almacenan en este archivo en
orden cronológico. De la figura se puede destacar que se utiliza la hora militar, donde el día
va de 0:00 a 23:59, además de que las unidades no se expresan en ninguna de las
mediciones ya que estás se encuentran en la interfaz.
Figura 4.8.1-4 Bloques para manipular archivos planos de texto
En la figura 4.8.1-4 podemos apreciar los bloques necesarios para manipular un
archivo plano de texto, ya sea para abrirlo, crearlo o reemplazarlo. Es importante destacar
que la interfaz se ha configurado únicamente para crear o reemplazar un archivo, es decir,
no existe la posibilidad de abrir un archivo y sobrescribirlo, esto con motivo de evitar que
el usuario pueda alterar un archivo de interés sin intención alguna. El primer bloque de la
figura de izquierda a derecha corresponde al bloque de configuración en la cual se
especifica que se desea hacer con el archivo (en nuestro caso crear o reemplazar) y el
nombre por defecto del archivo; automáticamente se abrirá una caja de diálogo para
especificar los datos del archivo y el directorio donde se desea guardar. En este punto
tenemos nuestro archivo abierto y en blanco. El segundo bloque corresponde a la escritura
58
de datos en el archivo, en el cual se introduce una trama de caracteres correspondiente a
todo lo que se desea guardar en el archivo. Finalmente, para cerrar el archivo se utiliza el
tercer bloque Close, dejando la posibilidad a otros programas de utilizarlo, o incluso a la
misma interfaz para plasmar los datos en pantalla. El último bloque es simplemente un
detector de errores, cuando un error ocurre se genera una descripción del mismo.
4.8.2 Configuración de la Estación desde la Interfaz
Como se mencionó, uno de los puntos fundamentales de la interfaz está en
configurar la estación. Para ello, debemos crear un nuevo protocolo que englobe todos los
cambios posibles que se le puedan realizar a la estación desde la interfaz; en la figura 4.8.21 podemos apreciar la pantalla principal de configuración que observa un usuario en la
interfaz del programa. Cada vez que se desee hacer un cambio en un parámetro de la
configuración, se debe oprimir el botón OK correspondiente, acto seguido el LED verde se
encenderá indicando que la operación se está llevando acabo.
59
Figura 4.8.2-1 Pantalla principal de configuración de la interfaz
4.8.2.1 Descarga de la Memoria
Esta es quizá la opción más importante de la interfaz del computador ya que
descargará todos los datos almacenados en memoria. Es lo que realmente permitirá realizar
un análisis exhaustivo de los parámetros medidos en un lapso de tiempo determinado.
Por supuesto, si la petición de la descarga de memoria es proveniente del
computador, este debe tomar la iniciativa de la comunicación serial asíncrona hacia la
estación. En un principio, la interfaz le envía a la estación un byte 0x01 de encabezado que
le indica descarga y envío de los datos almacenados en su memoria. Se genera una
interrupción en el microcontrolador y éste hace un eco; le devuelve el byte 0x01 al
computador para afirmar que atenderá su llamado. Luego la estación inicia el proceso de
60
envío de datos con su protocolo de almacenamiento, se transmiten todos los bytes tal y
como estén guardados en el sistema hasta que el apuntador de la memoria indique cuando
terminan los datos almacenados. Para indicarle a la interfaz el fin de datos, el datalogger
genera una condición de fin que consta de 2 bytes 0xFF consecutivos con motivo de
garantizar que el computador ha recibido todos los datos disponibles en forma correcta. En
la figura 4.8.2.1-1 podemos apreciar un ejemplo de una trama válida proveniente del
sistema de datos almacenados en memoria.
0xFC
0xFF
5 bytes de RTC
2 bytes # de
mediciones
Trama de datos de 32 bytes
0xFF
0xFF
Figura 4.8.2.1-1 Ejemplo de la transmisión de una trama válida de datos almacenados en la
memoria del sistema
4.8.2.2 Configuración de Fecha y Hora
Se ha añadido la modalidad de poder configurar el reloj de tiempo real desde la
interfaz en el computador. Para ello, la interfaz envía el byte de encabezado 0x02 que le
indica al sistema que se desea cambiar la fecha del reloj de tiempo real del mismo. La
estación genera un eco y reenvía el byte 0x02 al computador para informar que está en total
disposición de recibir la nueva fecha. La estación recibe el día de la semana (un número del
1 al 7 que corresponde directamente a los días de Lunes a Domingo), el día, el mes y el año
en formato BCD y luego procede a cambiar la fecha en el reloj de tiempo real del sistema.
Para el caso de configuración de la hora, el computador envío un byte de
encabezado que indica al sistema que se desea cambiar la hora del reloj de tiempo real.
Nuevamente, la estación genera un eco del byte 0x03 para informar al computador que está
lista para recibir la nueva hora. El sistema recibe la hora, los minutos y los segundos en
formato BCD para luego proceder a cambiar la hora en el reloj de tiempo real.
61
4.8.2.3 Configuración del Tiempo de Almacenamiento
De una manera muy similar al punto anterior, la interfaz genera un byte de
encabezado 0x04 que le indica al sistema que se desea cambiar el tiempo de
almacenamiento en memoria. Nuevamente, el sistema genera un eco 0x04 que le informa a
la interfaz que ya está lista para recibir el dato. Como sólo existen 2 posibles tiempos de
almacenamiento (10 y 15 minutos), sólo existen 2 posibles bytes que pueden ser enviados,
en nuestro caso será: 0x01 para tiempo de 10 minutos y 0x02 para un tiempo de 15
minutos.
4.8.2.4 Configuración de Sensores Activos
Ahora la interfaz genera un byte de encabezado 0x05 que le indica a la estación que
se desea cambiar la configuración de los sensores activos. Una vez más, el sistema genera
un eco 0x05 que le indica a la interfaz que la estación está lista para recibir el nuevo
comando de configuración de sensores. El byte a enviar es el mismo utilizado en la sección
5.2.1 y se puede observar en la figura X14. Si un bit en particular está en 1 significa que la
medición de dicho parámetro en particular estará activa y si dicho bit está en 0 indicará que
no se realizará medición alguna del parámetro en particular.
4.8.2.5 Borrar Memoria
Esta es una opción particular que sólo se haya en la interfaz del computador, puesto
que se supone que la memoria de la estación debe ser borrada una vez que sea descargada
en un computador para su posterior análisis, evitando posibles errores de parte de algún
usuario del sistema con respecto a la pérdida de los datos, lo que para este proyecto, se
considera lo más valioso.
De manera similar a los puntos anteriores, la interfaz genera un byte de encabezado
0x06 que el sistema interpreta como el comando de borrado de memoria. Nuevamente el
62
sistema genera un eco 0x06 que le indica al computador que la orden ha sido acatada y
todos los datos en la memoria han sido invalidados. Como vimos en la sección 4.7.2, el
proceso de borrado de memoria no es más que colocar 0x00000000 en los primeros 4
espacios de memoria, lo que dejará a todos los datos almacenados completamente
inválidos, haciendo el proceso prácticamente instantáneo.
4.9
Construcción del Sistema referente al Pluviómetro
Como se describió en el planteamiento del proyecto, el sistema para la medición de
pluviosidad es muy similar al sistema de adquisición de datos original. Posee el mismo la
misma memoria 24LC64 como dispositivo de almacenamiento, un LCD, un teclado, un
RTC y el mismo acondicionamiento para el sensor de lluvia. Por tanto, los pasos para su
construcción y la distribución de componentes serán similares a la estación original.
El cerebro central del sistema será en PIC16F84A. Ya que deseamos un sistema con
redundancia, necesitamos 2 entradas contadoras de pulsos para la medición de lluvia, ya
que los pluviómetros a utilizar tienen características idénticas al sistema original. Estos
pines fueron:
o RA4/T0CLK: es un contador ascendente de 8 bits que determina como evento
válido un flanco ascendente en su entrada, por supuesto, con la configuración
adecuada en el software.
o RB0/INT: es una entrada que genera una interrupción en el software por cada
flanco ascendente en la misma.
Como se puede apreciar, ambos pines generan una interrupción en el
microcontrolador por cada evento válido. Si ambos pluviómetros están bien calibrados, y
suponiendo una lluvia uniformemente distribuida en el área donde se encuentren los
mismos, la cantidad de pulsos contados por cada entrada deben coincidir.
63
Un detalle importante a tener en consideración para este sistema es el tiempo de
almacenamiento de los datos. Para realizar un pronóstico acertado es de interés una previa
recolección de datos importantes en cantidad y calidad, esto es, los datos importantes son
los datos del pasado, no del presente. Por tanto, es de poco interés tener un registrador de
datos en tiempo real de pluviosidad. Por recomendaciones, se ha decidido utilizar un
tiempo de almacenamiento de una hora. Además, el hecho de reducir el número de
variables a medir de 8 a 1, implica un protocolo para el almacenamiento de datos más
pequeño. En la figura 4.9-1 se puede apreciar una trama válida del mismo.
0xF0
4 bytes de RTC
4 bytes de datos
0xFF
Figura 4.9-1 Trama válida de datos para la estación del pluviómetro
Inicia con un byte 0xF0 de protocolo que indica el inicio de una trama. Luego 4
bytes provenientes del RTC que indican día, mes, año y hora en que fue tomada dicha
medición; como el tiempo de almacenamiento es de una hora, es de poco interés conocer el
minuto y el segundo en que la medición fue tomada. A continuación vienen 4 bytes de
datos, los 2 primeros bytes corresponden a la medición de un pluviómetro y los 2 últimos
corresponden a la medición del segundo pluviómetro; es de esperar que ambas mediciones
sean iguales para determinar el correcto funcionamiento del sistema. Por último se coloca
un byte 0xFF que indica el fin de la trama.
Debido a que se reduce enormemente la cantidad de datos a almacenar, se ha decido
utilizar una sola memoria 24LC64 para el sistema de almacenamiento. Sabiendo que se
almacenan 10 bytes por cada hora, podemos determinar el tiempo en el que el sistema
puede almacenar datos sin ser borrada la memoria:
t=
8192bytes 819,2horas
=
≅ 34días
bytes
horas
10
24
hora
día
64
Podemos apreciar que la memoria alcanza aproximadamente para un mes, lo cual es
un tiempo prudencial para la toma de datos. Se supone que si el usuario desea hacer
pronósticos con estas mediciones, debe hacer una descarga periódica de los datos. Sin
embargo, también podemos reemplazar la memoria 24LC64 por una 24LC512 sin tener que
alterar el software del microcontrolador, lo que nos da 8 veces mayor capacidad de
memoria y se podría tener el sistema un aproximado de 9 meses en funcionamiento.
Debido a que es un sistema sencillo que no requiere de visualización en tiempo real
o algún requerimiento especial por parte del computador, se ha decidido establecer una
comunicación serial entre el microcontrolador y el computador unidireccional en sentido
Sistema-PC, ya que el principal trabajo del sistema es almacenar datos y enviarlos al
computador con su fecha específica. La configuración de fecha y hora estará disponible
únicamente en la tarjeta de adquisición de datos mediante el teclado y el LCD.
CAPÍTULO 5: CONCLUSIONES
Se identificó en la normativa vigente venezolana los factores referentes a calidad de
agua para posteriormente diseñar y construir un sistema de adquisición de datos capaz de
hacer mediciones de parámetros de interés tales como temperatura, humedad relativa,
dirección del viento, velocidad del viento, presión barométrica, pluviosidad, radiación solar
y pH. Se realizó una interfaz en un computador para la recepción, almacenamiento y
posterior análisis de las mediciones realizadas por el sistema. Este es un primer paso en la
automatización de sistemas para determinar calidad del agua y abre las puertas hacia la
continuación de la investigación en el tema. Además, este sistema puede ser utilizado con
fines meteorológicos ya que cumple con el concepto de estación meteorológica automática
y este campo tiene grandes campos para el estudio de parques eólicos, energía solar, o
simplemente el monitoreo de anomalías ambientales en un área determinada.
Adicionalmente, se planteó el diseño de otro sistema de adquisición de datos que
tuviese la pluviosidad como único parámetro de interés. Posterior al diseño, se construyó el
sistema y se realizó una interfaz de mucha menor complejidad para recibir, almacenar y
analizar los datos provenientes de este nuevo sistema, reduciéndole tamaño y los costos con
respecto al sistema original de manera importante. El análisis de los datos que mide este
sistema tiene un aporte significativo a los organismos y empresas que se dedican
especialmente al pronóstico de lluvias y al estudio de estrategias para el aprovechamiento
de dichas precipitaciones en un área específica, ya sea para prevención de desastres,
campos agrícolas dependientes del agua, cambios en la composición física y química de un
cuerpo de agua, entre otros.
El manejo de los microcontroladores PIC como cerebro de un sistema de
adquisición de datos es una opción muy tentadora a tomar en consideración puesto que
cumplen con los estándares referentes a hardware, específicamente los protocolos serial e
I2C, de forma eficiente a un muy bajo costo y con una enorme cantidad de documentación
disponible que hace fácil su manejo. Aparte de se función de procesamiento, los PIC
interactúan simultáneamente con un sistema de almacenamiento, una interfaz humano-
66
máquina, en reloj de tiempo real y una etapa de acondicionamiento previa a la adquisición
de los datos.
Referente al software utilizado en la implementación de la interfaz en el
computador, podemos concluir que LabView es una herramienta muy poderosa para el
trabajo conjunto con un sistema de adquisición de datos, debido a que presenta la capacidad
de manejo de diversos protocolos estándares de comunicación, manejo de grandes archivos
de datos y análisis gráfico de dichos datos con una presentación estéticamente muy
amigable para el usuario, entre otros.
El problema de la calidad del agua está presente a nivel mundial y debido a su
importancia vital, se debe continuar en la investigación y la automatización de sistemas que
la midan. El propósito del sistema original es el de generar una alarma cuando exista alguna
anomalía en la medición de la sustancia que se esté monitoreando. El pH es uno de los
parámetros más importantes a medir, sin embargo, no es suficiente para una caracterización
completa de un volumen de agua.
CAPÍTULO 6: RECOMENDACIONES
Para futuras versiones o mejoras posteriores al prototipo, se recomienda el uso de
comunicación remota. Para simplicidad en la mejora, se pueden usar un par de módulos de
radiofrecuencia RF, tipo transceiver (transmisor y receptor a la vez) que sean capaces de
recibir una trama de datos según el protocolo serial asíncrono en el emisor, transmitirla vía
RF y que a la salida del receptor, los datos sigan según el protocolo serial asíncrono; de esta
manera no habrá la necesidad de hacer ningún cambio en el software, ni en el sistema de
adquisición de datos, ni en la interfaz en el computador. Un ejemplo de estos dispositivos
puede ser el DS650 de la casa RF Solutions LTD. El problema de está solución es que el
sistema seguirá atado a la interfaz ya que cuando se encuentren a una distancia superior a
un km se empezarán a generar pérdidas de bits en la transmisión y los datos llegarán
distorsionados, algo que debe ser evitado a toda costa.
En vez de utilizar RF, se pueden utilizar módems en la banda de frecuencia celular y
enviar los datos mediante alguna operadora comercial. La ventaja de esta solución es que la
distancia ya no es un problema, el equipo puede estar conectado en cualquier zona donde
exista cobertura celular y los datos pueden ser descargados desde una estación a muchos
kilómetros de distancia, siempre y cuando ésta también tenga cobertura celular, además que
los datos llegan con precisión. La desventaja es que se requerirá del servicio de una
empresa externa, lo que genera una pequeña probabilidad de no tener conexión entre el
sistema y el computador en todo momento, además de un costo adicional periódico por el
uso de dicho servicio. Otra desventaja es que exista la posibilidad de tener que hacer
cambios en el software del sistema, lo que produce un retraso en el proyecto.
Por otro lado, para futuras mejoras se recomienda migrar a dispositivos de
almacenamiento masivo para poder garantizar que todos los datos serán almacenados en
memoria con una probabilidad minúscula de llenarla. Las 2 opciones que se consideran más
viables son los pen drive que se comunican vía USB o las tarjetas de memoria extraíbles
SD o MMC. Estos dispositivos tienen una capacidad para almacenar datos durante años sin
llegar a llenarse. Además, se debe pensar en la posibilidad de una expansión del sistema y
68
que en un futuro se deseen almacenar más variables de las que se tienen hasta el momento.
Debido a esto último, se debe considerar la posibilidad de utilizar un segundo
microcontrolador (3 o 4 de ser necesario) especializados en alguna tarea específica para
hacer una expansión del sistema, ya sea para medir más variables o que se desee hacer un
controlador a un sistema externo dependiente de las mediciones del sistema original. Sin
embargo, nuevamente tiene como desventaja el tiempo requerido en el cambio de hardware
y software para la implementación.
Por último, se podría pensar en la posibilidad de instalar una red de estaciones con
un solo servidor (la interfaz en el computador) para poder realizar monitoreos en distintos
puntos y analizar los datos en un solo lugar. Esto es, realizar un protocolo de comunicación
entre las estaciones y el servidor central. Por supuesto, para un cambio tan radical se
requiere de modificaciones importantes en el sistema, por lo que se podría convertir en un
nuevo proyecto de investigación que tenga como base los resultados del proyecto actual.
GLOSARIO
Agua: Líquido incoloro, inodoro e insípido en pequeñas cantidades (azul en grandes
cantidades) que está compuesta por lo combinación de 2 moléculas de hidrógeno y
una de oxígeno (H2O).
Anemómetro: Instrumento para medir la velocidad del viento. Consta de 3 copas
que giran con una velocidad directamente proporcional a la velocidad del viento.
Apuntador: Variable que contiene la dirección de memoria de otra variable.
Barómetro: Instrumento para medir la presión atmosférica.
Conductividad: Capacidad de una sustancia para la conducción de una corriente
eléctrica.
Contaminación: Presencia de agentes físicos, químicos y/o biológicos en formas y
concentraciones tales que puedan ser nocivos para la salud, bienestar o seguridad de
una población, ya sea humana, animal o vegetal.
Dirección del Viento: Punto del horizonte de donde viene o sopla el viento. Es la
componente radial del vector viento. Por ser una componente radial, la unidad de
medida es grados (º).
Higrómetro: Instrumento para medir la humedad del aire.
Humedad Absoluta: Cantidad de vapor de agua presente en el aire. La humedad de
medida viene expresada en gramos por metro cúbico (gr/m3).
Humedad Relativa: Cantidad de vapor de agua que contiene una masa de aire, en
relación con la máxima humedad absoluta que podría admitir sin producirse
70
condensación, conservando las mismas condiciones de temperatura y presión
atmosférica. Por ser una cantidad relativa, viene expresada en términos de
porcentaje (%).
Lluvia: Fenómeno atmosférico que consiste en la precipitación de agua.
Meteorología: Ciencia y estudio de los fenómenos atmosféricos.
Metrología: Ciencia de las mediciones.
pH: Grado de acidez o alcalinidad de una sustancia. Tiene un rango estándar de 0 a
14, siendo 0 una sustancia muy ácida y 14 una sustancia muy básica. Una sustancia
neutra tiene un valor de 7. Es un factor adimensional.
Pluviómetro: Instrumento para medir la pluviosidad. Consta de un envase con un
área determinada que recolecta agua y una báscula que genera pulsos eléctricos cada
vez que cae una cantidad determinada de agua en el envase.
Pluviosidad: Cantidad de lluvia que recibe un sitio en un período de tiempo
determinado. La intensidad de la lluvia se mide en milímetros (mm) de agua caída.
Un mm de agua equivale a 1 litro de agua en una superficie de 1 m2.
Presión: Fuerza por unidad de área. Según el Sistema Internacional, la unidad de
medida viene expresada en Newton por metro cuadrado (N/m2) lo que equivale a un
Pascal (Pa).
Presión Atmosférica: Peso de la masa de aire por cada unidad de superficie. Es la
presión ejercida por la atmósfera de la tierra. La unidad de medida más común es
milímetros de mercurio y al nivel del mar, la presión atmosférica estándar es de 760
mmHg que también equivale a 101,32 kPa.
71
Protocolo: en informática, conjunto de normas y procedimientos útiles para la
transmisión de datos
Radiación Solar: Conjunto de radiaciones electromagnéticas emitidas por el sol. La
unidad de medida se expresa en Watts por metro cuadrado (W/m2).
Sensor: Dispositivo que detecta variaciones de una cantidad física y las transforma
en una señal, generalmente eléctrica, que puede ser medible.
Temperatura: Propiedad física de un sistema que gobierna la transferencia de
energía térmica, o calor, entre ese sistema y otros. Según el Sistema Internacional,
la unidad de medida es los grados kelvin (ºK), pero la unidad más común es los
grados Celsius (ºC).
Temperatura Ambiental: Cantidad de energía calorífica acumulada en el aire.
Termistor: Resistencia que varía con el cambio de temperatura de una forma no
lineal.
Termómetro: Instrumento para medir la temperatura.
Veleta: Instrumento para medir la dirección del viento. Consta de una parte
delantera (generalmente una flecha) que se orienta con la dirección del viento y una
parte trasera más gruesa que atrapa el viento para quedarse alineado en la posición
correcta.
Viento: Movimiento del aire en la atmósfera con relación a la superficie terrestre,
originado por la diferente densidad de masas de aire que se encuentran a distinta
72
temperatura. Al ser una magnitud vectorial, se define por su dirección y su
velocidad.
Velocidad del Viento: Magnitud escalar del vector viento y representa la rapidez
con que este se desplaza en un momento determinado. Viene expresada en metros
por segundo (m/s) o en millas náuticas.
BIBLIOGRAFÍA
ANGULO, José Mª.; ROMERO, Susana; ANGULO, Ignacio. Microcontroladores
PIC, Diseño práctico de aplicaciones. Segunda Edición. Editorial McGRAWHILL, Madrid, 2000.
CHICALA, Carlos. Adquisición de Datos. Primera Edición. Editorial Soluciones en
Control S.R.L., Buenos Aires, 2004.
PALACIOS, Enrique; REMIRO, Fernando; LÓPEZ, Lucas. Microcontrolador
PIC16F84, Desarrollo de Proyectos. Segunda Edición. Editorial Ra-Ma. Madrid,
2006.
MCGAUHEY, P.H., Engineering Management of Water Quality, Editorial
McGraw-Hill, 1968.
COULSTON, Frederick; MRAK, Emil. Water Quality, proceedings of an
international forum. Editorial Academic Press, 1977
Decreto Nº 883 (Normas para la clasificación y el control de la calidad de los
cuerpos de agua y vertidos o efluentes líquidos). (1976, Octubre 11), Gaceta Oficial
de la República de Venezuela, 5.021 (Extraordinario), Diciembre 18, 1995.
Referencias de Fuentes Electrónicas
Lenntech
(2004),
Evaluación
de
la
Calidad
del
Agua,
http://www.lenntech.com/espanol/la-evaluacion-de-la-calidad-agua-FAQ-calidadagua.htm [Consulta: 2006, Julio 25]
Omega Engineering, Inc. (2006), http://www.omega.com/pptst/WMS16.html
[Consulta: 2006, Agosto 5]
Sensorex (2006), http://www.sensorex.com/support/education/pH_education.html.
[Consulta: 2006, Noviembre 10]
Organización Mundial de la Salud (2005), Celebración del Decenio Internacional
para la Acción “El Agua, Fuente de Vida” 2005-2015, [Documento en línea]
Disponible:
http://www.who.int/water_sanitation_health/2005advocguide/es/
[Consulta: 2007, Enero 15]
74
Organización de las Naciones Unidas (2004), Protection of the Quality and Supply
Freshwater Resources: Aplication of Integrated Approaches to the Development,
Management and Use of Water Resources, Agenda: 21, Capítulo:18, Disponible:
http://www.un.org/esa/sustdev/documents/agenda21/english/agenda21chapter18.ht
m [Consulta: 2007, Enero 15]
Dallas Semiconductor (2005). Datasheet RTC DS1307 [Documento en línea].
Disponible: datasheets.maxim-ic.com/en/ds/DS1307.pdf
Microchip Tenchnology Inc (2001). Datasheet PIC 16F877 [Documento en línea].
Disponible: ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf
Microchip Technology Inc. (2002). Datasheet 24LC64 [Documento en línea].
Disponible: ww1.microchip.com/downloads/en/devicedoc/21189f.pdf
Maxim Integrated Products (2006). Datasheet MAX-232 [Documento en línea].
Disponible: pdfserv.maxim-ic.com/en/ds/MAX220-MAX249.pdf
STMicroelectronics (2001). Datasheet TL-084 [Documento en línea]. Disponible:
www.datasheetcatalog.com/datasheets_pdf/T/L/0/8/TL084.shtml
ANEXOS
Los anexos del presente informe están presentes en el CD adjunto. Cada uno tiene
asignado una carpeta identificada con la letra correspondiente y dentro de ellas se encuentra
la información referida.
Anexo A: Esquemáticos del sistema de adquisición de datos hechos en ORCAD
Anexo B: PCBs del datalogger en formato PDF
Anexo C: Información técnica referente a los integrados utilizados en formato PDF
Anexo D: Imágenes de la interfaz en LabView
Anexo E: Decreto Nº 883 referente a normas para calidad del agua en formato PDF
Anexo F: Materiales Utilizados en formato PDF
Descargar