Herramientas de usuario

Herramientas del sitio


acemu:proyectos:ema:meteorologia:estacion_fq

¡Esta es una revisión vieja del documento!


Prototipo de Estación Terrena: Estación AGUADA

Para demostrar la factibilidad del proyecto, una vez que se armó el ciruito de microcnotrolador (Arduino Nano) + sensores (temperatura, presión, humedad), se decidió montar una estación terrena que recolectara los datos que emitía el microcontrolador y los publicara de alguna manera en internet.

Para ello se colocó el microcontrolador y los sensores en un tubo de PVC tal como se ve en la siguiente foto:

Sensores y microcrontrolador Arduino Nano, conectado via RS-232 con el servidor Raspberry Pi

Para protección y se lo tapó con una cobertura y tapa de PVC aislada con espuma plast y todo el conjunto se afirmó con un soporte a una rejilla exterior a a le vantana de una oficina:

La estación propiamente dicha se conectó, mediante un cable serial RS-232 al servidor de datos, en este caso una Raspberry Pi. En la siguiente foto se observa el adaptador RS-232 a USB que se empleó para que el computador pudiese leer los datos seriales

servidor frambuesa.fq.edu.uy

En una primer versión del programa de microcontrolador, éste recoge datos de temperatura, presión, humedad y punto de rocío cada 2 segundos y los publica por la interfase serial RS-232. Del lado del servidor raspberry pi, un programa escrito en python lee esos datos que llegan por el puerto USB (luego del conversor RS-232 a USB)

Servicio de datos meteorológicos

No alcanza con disponer de sensores y un microcontrolador que lea los datos. Tampoco alcanza con un que uncomptador lea esos datos del microcontrolador a los simples efectos de almacenarlos. La idea es disponede algún mecanismo de publicación y/o difusión de esos datos.

Para ello se recurrió al protocolo MQTT (MQ Telemetry Transport), en particular a la implementación de este protocolo en el paquete mosquitto y su biblioteca para Python (python-mosquitto).

En ese sentido se instaló en el computador raspberry pi el demonio sel servicio MQTT y empleando la bilbioteca python-mosquitto se implementó en el programa que lee los datos de la estación la posibilidad de publicar estos datos a través del servidor MQTT.

El servidor MQTT brinda un servicio de publicación y suscripción, que permite a diferentes clientes en internet ya sea publicar datos bajo un cierto “tema” o suscribirse a dicho “tema” y recibir los datos que se pulbiquen allí. Eso elimina completamente la programación de un servicio cliente servidor, ya que el demonio MQTT se encarga de toda esa operación de manera transparente y sencilla.

Es así que es posible, empleando cualquier cliente MQTT, conectarse al servidor meteorolígoco y recibir los datos que levanta la estación.

Hay clientes MQTT para diferentes plataformas: Linux, Android, OS-X, etc.

Ejemplo de acceso a datos meteorológicos

Linux: se puede instalar el paquete mosquitto-clients y desde una consola de Linux se puede ejecutar el siguiente comando:

mosquitto_sub -h frambuesa.fq.edu.uy -t "acemu_tiempo"

Inemdiatamente el cliente se conctará via Internet, mediante el protocolo MQTT al servidor de la estación terrena y recibirá un stream de datos similar al siquiente:

ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.94,74.0,15.24
ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.95,74.0,15.24
ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.94,74.0,15.24
ACEMU-AGUADA,2014-7-12,20:45,18.0,1017.96,74.0,15.24
...

donde cada registro está compuesto por:

  • una identificación de la estación
  • fecha
  • hora
  • temperatura (°C)
  • presión (mbar)
  • humedad relativa (%)
  • punto de rocío (°C)

El formato de los registros es CSV que es un estándar, por lo que esta información es fácilmente transferible a una planilla electrónica o una base de datos.

Publicación gráfica de datos: RRD Tools

Como encionábamos anteriormente, se puede emplear un cliente MQTT para recolectar estos datos y posteriormente procesarlos. Puede ser interesante recoger datos de un período extenso y publicar gráficos de los mismos.

A continuación mostramos una posible solución “out of the box” disponible para cualquier plataforma libre: RRD Tool de Tobias Oiteker

Esta herramienta es muy conocida entre administradores de redes pues es el desarrollo posterior al MRTG (Multi Router Trafic Grapher).

Este paquete permite recolectar series temporales de datos y almacenarlas en una “Round Robin Database”. Esto no es más que una base de datos en la que se ha predefinido cuantos datos se almacenarán y cuando se llena, simplemente los nuevos datos sustituyen los datos más viejos, de allí su nombre.

Luego, la misma herramienta permite generar gráficos de diferentes períodos. Lo usual es generar gráficos de los datos recolectados el último día, la última semana, el último mes y el último año.

A continuación mostramos algunos gráficos generados en un período de una semana, de temperatura, presi{on y humedad relativa ambiente:

Temperatura Presión Humedad

acemu/proyectos/ema/meteorologia/estacion_fq.1405209421.txt.gz · Última modificación: 2014/07/12 16:57 por kenneth