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