Meteorología y Linux


VeletaPronto hará un año que inicié con más pasión que nunca mi afición a la meteorología, y eso incluía tener una estación y un ordenador (evidentemente, en Linux) que registrara esos datos. La estación más económica (que no barata) que registrara los datos esenciales de un observatorio decente, era una Davis Weather Monitor II. Pero el software era para Windows y Mac-OS. No hay software para Linux. ¿Seguro? Pues sí, hay…

Versió en català

La estación meteorológica que monté muestra los datos en la web en tiempo real. Muestra los datos esenciales de cualquier observatorio que se precie: temperatura, humedad, velocidad y dirección del viento, presión barométrica y lluvia. Opté por usar la Davis Weather Monitor II. Se trata de una consola (en la foto) y unos sensores externos que se comunican con la unidad central mediante cableado.
Para que la consola se pueda comunicar con un ordenador, precisa de un accesorio llamado Weatherlink. Este accesorio incluye software, para Windows y Mac-OS, para hacer las lecturas de los datos de la consola. El disquete lo podemos reciclar, pero el accesorio de hardware es necesario.
Weatherlink se comunica con el ordenador mediante un puerto serie RS-232 a la extraordinaria velocidad de 2.400 baudios 🙂
Una vez terminado el cableado y realizadas las conexiones, necesitamos el software que nos permitirá hacer las lecturas. Hay varios programas, pero el más completo es, sin duda, el llamado meteo, del suizo Andreas Müller.
Este programa realizará lecturas constantes en la estación y guardará, en una base de datos de MySQL, las máximas, mínimas y medias de cada minuto.
Lo descargamos, descomprimimos e instalamos por los métodos habituales:

$ ./configure
$ make
$ su -c “make install”

Inicializar la base de datos
En el directorio db de dónde hemos descomprimido la aplicación, encontraremos el fichero meteo.sql. Este fichero contiene las definiciones para crear la base de datos. Debemos editar este fichero para cambiar los nombres de las estaciones en él definidas por el nombre de nuestra estación. En él, hay definidas las estaciones de Gurin, Altendorf, Lajeado y Frauenfeld. Cambiamos el nombre de la primera por la nuestra y eliminamos las tres sobrantes. Una vez terminado, creamos la base de datos y sus tablas:

$ mysqladmin create meteo -u root -p
Password:
$ mysql meteo -u root -p <meteo.sql
Password:

Si el ordenador que hará la colecta de datos lo usamos también como servidor de Internet, es aconsejable crear un usuario en la base de datos con permisos para escribir en esta, y sólo en esta. Por ejemplo:

$ mysql meteo -u root -p
Password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17700 to server version: 4.0.16-log

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> GRANT ALL PRIVILEGES ON meteo.* TO meteo IDENTIFIED BY ‘meteo’;

Esto permitirá al usuario meteo, con contraseña meteo usar esta base de datos.

Configuración del programa
El programa meteo basa su configuración en un archivo en formato XML llamado meteo.xml. La ubicación normal de este fichero es /usr/local/etc.
En el directorio de fuentes de la aplicación hay un directorio conf donde encontraremos el archivo meteo.xml de muestra. Lo podemos usar como origen para iniciar nuestra configuración. Lo copiamos en el directorio /usr/local/etc y lo editamos. Los campos de este archivo son autoexplicativos, con lo cual no iremos a detallar demasiado este tema. En cualquier caso, para facilitar aún más el trabajo, os facilito el archivo meteo.xml que se usa en mi estación. Se debe cambiar el nombre de la estación (Terrassa) por el nombre de vuestra estación.
Una vez terminada la configuración de meteo.xml debemos darle unos permisos decentes para que no nos afanen la contraseña de la base de datos.

Iniciar el programa
En el directorio support de donde hemos descomprimido el programa, encontraremos un fichero llamado rc.meteo. Este archivo lo podemos usar para iniciar y detener el programa cuando se ponga en marcha el ordenador o cuando se pare. Para ello, lo copiaremos allí donde nuestro sistema espera encontrar estos archivos, como pueden ser, según sistema, /etc/init.d o bien /etc/rc.d. Tenemos que editar este fichero y cambiar el valor de la variable station por el nombre de nuestra estación.

Este archivo nos iniciará los programas meteopoll, que es el encargado de hacer las lecturas de la estación; meteodequeue, que los guardará en la base de datos; y meteoavg, que calculará las medias a intervalos regulares.
El programa meteopoll usa un socket en /tmp para que meteodequeue recoja los datos y los guarde en la base de datos. Este socket no se crea automáticamente y, por tanto, debemos modificar el fichero de inicialización rc.meteo para que lo haga. Lo editamos, y después de .start), en la siguiente línea, añadimos otra que diga:

touch /tmp/meteodb-queue.

Ya sólo nos queda iniciar los programas y que estos empiecen a recolectar información. Como root:

# /etc/init.d/rc.meteo

y comprobar que la base de datos se va llenando con la información de la estación. La información se guarda cada minuto, o sea que este es el tiempo que tendremos que esperar entre que el programa se inicie y empiece a grabar datos.

Os sorprenderéis con una afición muy adictiva, y sobretodo, cómo cambiará vuestro vocabulario cuando en una conversación de ascensor alguien os pregunte sobre el tiempo… 😉

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1960 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.