Post

Estación de sondas meteorológicas usando auto-rx

Estación de sondas meteorológicas usando auto-rx

Introducción

Una de las cosas de las que no se habla es de las sondas meteorológicas. Una sonda meteorológica es un dispositivo (tx) equipado con algunos sensores que se eleva con un globo de helio hasta los 30 - 40 km de altura, durante su viaje van recabando y transmitiendo por uhf información como posición, temperatura, velocidad de cada capa de la atmósfera, humedad, presión o incluso ozono. Básicamente es un transmisor con muchos sensores y un globo que lo sube. Lo interesante es que son cruciales para elaborar modelos meteorológicos y para un montón de cosas mas, es mas, cada día se lanzan una cantidad enorme de sondas en todo el mundo, en España hay alrededor de 5 puntos de lanzamientos. Una cosa interesante es que en España funcionan en la banda de 400 MHz, y no es información codificada, por lo que cualquiera puede, con una antena y un SDR recibir esta información y plotearla en un mapa.

Configuración de una estación

Bueno, ya os he contado que son las sondas, y podríamos desarrollar varios programas en python o en bash para montar una estación automática. Pero es mas sencillo utilizar el trabajo que ya han hecho desde projecthorus y solo tenemos que compilar el programa y listo.

proyecto autorx

Este programa tiene varias funciones, entre ellas recibe y decodifica de forma automática las sondas (dependiendo de una configuración inicial) y manda esos datos a diferentes servicios, entre ellos sondehub luego veremos para que nos pueden servir estos datos, primero vamos a ver como instalarlo. Sobra decir que voy a instalarlo en un entorno Linux, en mi caso un “ubuntu server” que me monté hace años en un pc viejo. En una terminal vamos a ejecutar los siguientes comandos:

1
2
3
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python3 python3-venv sox git build-essential libtool cmake usbutils libusb-1.0-0-dev rng-tools libsamplerate-dev libatlas3-base libgfortran5 libopenblas-dev rtl-sdr

Básicamente lo que hace es actualizar e instalar algunos programas que van a ser necesarios. Una vez tenemos los programas que necesita instalados, clonamos el repositorio y compilamos el código:

1
2
3
4
$ git clone https://github.com/projecthorus/radiosonde_auto_rx.git
$ cd radiosonde_auto_rx/auto_rx
$ ./build.sh
$ cp station.cfg.example station.cfg

Con los comandos anteriores ya lo tendriamos instalado. Pero la parte mas necesaria e interesante de toda la instalación es la configuración de la estación, aquí le decimos quienes somos, que sondas queremos recibir, en que frecuencias queremos que haga el barrido, que frecuencias no nos interesan, a donde queremos subir los datos y muchas cosas mas. Todo esto se realiza en el archivo “station.cfg”

1
$ nano station.cfg

Os podria soltar una chapa de cada cosa que se puede configurar, pero esta bastante bien explicado en el propio archivo de configuración y en la wiki del proyecto.

Configuración horaria

Algo que no he contado es que tengo un problema: no es el único programa que utiliza un sdr para funcionar en este servidor que tengo montado, pero lo que si tengo uno solo es sdr, entonces no puedo tener varios programas que necesitan sdr funcionando al mismo tiempo. La solución es bien sencilla: no tenerlos. Me explico, si comparten recursos en diferentes momentos entonces no hay problema. La gente de autorx ha hecho las cosas de una forma excelente, y han creado un archivo para convertirlo en un servicio en systemctl. La configuración no la voy a reescribir, porque esta toda explicada como he dicho antes en la wiki del proyecto. Pero podemos conseguir que todo el programa corra sin ejecutar nosotros el programa de python, con estos comandos de systemctl:

1
2
$ sudo systemctl enable auto_rx.service
$ sudo systemctl start auto_rx.service

tenemos la forma de arrancar y de parar el programa (cambiando start por stop), por lo que hay otro detallito en los sistemas operativos Linux que nos va a ayudar: crontab. Crontab es una herramienta de los sistemas operativos tipo Unix/Linux que permite programar la ejecución automática de comandos, scripts o tareas en momentos específicos, funciona mediante un archivo de texto que define una lista de tareas junto con sus intervalos de tiempo, gestionado por un daemon. En este artículo se explica realmente como funciona y como configurarlo.

Como soy de la zona cercana a Madrid, me interesa configurar un ancho de frecuencias de 400-405 MHz, que es donde se mueven todas las sondas de España. Por otra parte, sabemos que se lanzan todos los días a 2 horas, 12:15 utc y 00:15 utc, por lo que sabiendo que mas o menos una sonda tiene un viaje de subida y de bajada de 5h, puedo configurar en crontab para que solo este activo a esas horas, liberando los recursos del sdr para otros programas a otras horas.

sonda por fuera

Conclusiones y usos

A ver, realmente esto ha sido un tutorial introductorio para otras cosas. Las sondas meteorológicas solo son útiles para los que las lanzan, desde el momento de su lanzamiento hasta que explota el globo por la presión externa. Una vez ocurre eso, son “basura” que cae en algún sitio desconocido(mas o menos). Por eso hay gente que se dedica a hacer seguimiento de estas sondas e ir a por ellas cuando tocan tierra. Así es como yo he acabado con una caja llena de ellas. Hay un “ester-egg” con la de los miercones, la denominada “chuletón”, esta trae un aparato para medir ozono, por lo que es la mas codiciada entre los que van tras su caza. Si nos damos cuenta, una sonda no es mas que una baliza, o un transmisor con gran cantidad de sensores que funcionan en un gran rango de condiciones meteorológicas (tienen que aguantar las condiciones hostiles de la exosfera) por lo que podemos sacarle algún otro uso. En un futuro haré alguna entrada sobre como utilizarlas para algo, o quien sabe, igual puede correr DOOM. lo veremos en el futuro sonda por dentro

This post is licensed under CC BY 4.0 by the author.