ThoughtWorks – Reto Clima

La lectura de variables meteorológicas puede ser una tarea sencilla dependiendo del nivel de exactitud que se desee de las lecturas y de las herramientas que se empleen. A continuación se demuestra como armar una pequeña estación meteorológica con tarjetas ARDUINO y OLINUXINO que permite visualizar mediciones instantáneas de temperatura ambiente, humedad relativa, velocidad y dirección del viento, y precipitación.

Paso 1: Seleccionar los equipos

Para armar la estación empleamos tarjetas ARDUINO UNO que manejan un microcontrolador de 10 bits en su convertidor A/D. Esto es una resolución bastante baja para aplicaciones de pronóstico y predicción meteorológica, pero si lo que se desea es conocer una referencia del tiempo es suficiente.

Como sensores utilizamos instrumentos de una estación meteorológica de alto nivel prestados por el Instituto Nacional de Meteorología del Ecuador (gracias!). Se cuenta con un sensor de temperatura y humedad marca Vaisala modelo HMP155, un sensor de viente marca Young modelo 5178A y un pluviómetro marca Texas Electronics modelo TR-525M.

Paso 2: Lectura de precipitación

Antes de leer el valor de precipitación debemos conocer el funcionamiento de nuestro sensor. El Texas Electronics posee un sistema de balanza: cada vez que uno de los lados de la balanza se llena con 0.1 mm de agua el balancín se inclina y un interruptor magnético envía un pico de voltaje. Para el voltaje, uno de los pines del sensor está conectado a una referencia de 5 V. Cada pico de voltaje es contado como un 1, valor que se acumula en un contador.

Este contador total se multiplica por la resolución del pluviómetro (0.1 mm) y así se obtiene el valor de lluvia. Luego, el dato se transmite serialmente a una tarjeta maestra (OLINUXINO). Se emplea la instrucción PulseIn para leer los datos de la entrada digital.

Paso 3. Lectura de humedad y temperatura

El instrumento utitilizado integra un sensor de temperatura y un sensor de humedad. Es un instrumento activo cuya salidas son de 0 a 1 V para ambas variables. El rango de temperatura es de -80 a 60 °C y el de humedad es de 0 a 100% (relativa).

Se emplean dos entradas analógicas para la adquisición y se les da una referencia de 1.1 V que proporciona internamente el microcontrolador. Esto es para no usar la referencia de 5 V que disminuiría la resolución al no permitir usar todo el rango del ADC. Luego, para transformar la variable eléctrica a un parámetro ambiental se aplica una ecuación obtenido a partir de dos puntos. Finalmente, los datos se transmiten serialmente a la tarjeta maestra (OLINUXINO).

Paso 4, Lectura de dirección y velocidad de viento

Para esta tarea se utilizó un dispositivo WIND MONITOR 05103 que genera una señal analógica para determinar el ángulo de dirección del viento, la cual fue medida mediante una lectura analógica en la placa arduino; para la medición de la velocidad el sensor generó un tren de pulsos en Hz, cuyo valor es necesario multiplicar por una constante propia del sensor para así determinar la velocidad del viento.

Los datos son transmitidos a la tarjeta maestra por un módulo bluetooth que es transparente entre las dos placas.

Paso 5, Lectura de presión, altitud y temperatura

Finalmente se realizó la medición de estas tres magnitudes físicas por medio del sensor WEATHER BOARD, el cual utiliza comunicación I2C para determinar el valor de cada una de las magnitudes integradas en un solo módulo. Posteriormente las señales serían enviadas a la tarjeta maestra para poder realizar su visualización en una interfaz generada en una pantalla.

El código implementado para la adquisición de los cuatro sensores se puede visualizar en el siguiente enlace: https://github.com/eguezgustavo/hackaton

Pluvio

Paso 6. Tarjeta Maestra

En la tarjeta OLINUXINO está implementado la recolección de datos de los diferentes sensores y su presentación mediante un servidor web. El código se encuentra en el mismo enlace detallado anteriormente.

Licencia

Según indicado en https://creativecommons.org/licenses/by-nc-sa/2.5/ar/

 

Leave a Reply

Your email address will not be published. Required fields are marked *