Estación meteorológica
Cómo montar una estación meteorológica
Juan Antonio Villalpando
-- Tutorial de montaje y configuración --
Volver al índice del tutorial
____________________________
20.- Comprar la estación y configurarla con LINUX.
- En los tutoriales 1 y 2 vemos los detalles de la estación:
1.- Caracteristicas, compra e instalación.
2.- Veamos los sensores.
en los tutoriales 3 y siguientes vimos como configurarla con el programa Cumulas que funciona en Windows.
Ahora vamos a ver la estación configurada en LINUX.
____________
- LINUX.
Vamos a instalar programas en LINUX (en mi caso en la distribución de Ubuntu-9.10) para ver los datos de la estación FWS 20 (W 8681, Fine Offset WH1080 / WH1081) conectada a un puerto USB.
Instalaremos:
- XAMPP bajo LINUX
- Weater Station 0.3rc1 (wwsr)
- Weather Station 0.9 r160 con Python
- Wine
- VirtualBox.
Vendor y Product de un USB
Lo primero que vamos hacer es conectar la estación a un Windows para ver fácilmente algunos de sus datos.
Conectamos la estación mediante USB a Windows, pulsamos en
Inicio / con el botón derecho Equipos / Administrar / Administrador de dispositivos / Dispositivos de interfaz de usuario (HID) / Dispositivo de interfaz humana USB / Detalles
Cada USB tiene asignado dos números, uno llamado Vendor ID y otro Product ID
(estos números lo asigna http://www.usb.org/developers/vendor/)
El USB de nuestra estación meteorológica es: Vendor ID es 1941 y el Product ID es 8021
Aquí tenemos un listado de fabricantes y productos USB, observamos que el Vendor de la estación meteorológica es Dream Link y el Product USB Missile Launcher (Listado de Vendor y Product de USB)
_________________________________________________
- Instalación de Apache, php5, MySQL y phpmyadmin en nuestro ordenador con LINUX (Ubuntu)
Recuerda que para instalar este tipo de programas en Ubuntu debes ser Administrador (root) o saber la contraseña del sudo. Por eso la mayoría de las líneas de comandos comienzan por sudo (hacer de superusuario)
- Bajamos el XAMPP (50 MB)
- Creamos el directorio /opt:
sudo mkdir /opt (Es posible que ya estuviera creado de antes)
- Copiamos el archivo xampp-linux-1.6.5a.tar.gz al directorio /opt
sudo cp /home/minombredeusuario/Descargas/xampp-linux-1.6.5a.tar.gz /opt
- Lo descomprimimos y desempaquetamos
sudo tar -vzxf /opt/xampp-linux-1.6.5a.tar
- Para ver si funciona, lo iniciamos:
sudo /opt/lampp/lampp start
Vamos a un navegador web y en Dirección ponemos: http://localhost
Si sale una página como esta, es que vamos por buen camino...
Para pararlo sudo /opt/lampp/lampp stop
Si queremos poner otras páginas web, la debemos situar en el directorio... /opt/lampp/hdocs/
Pero si tenemos las páginas web en otro directorio y no queremos moverla al directorio por defecto ( "/opt/lampp/hdocs/), vamos al archivo de configuración del Apache
/opt/lampp/etc/httpd.conf) y cambiamos estas líneas como indico...
sudo gedit /opt/lampp/etc/httpd.conf
# DocumentRoot "/opt/lampp/hdocs/"
DocumentRoot "/home/minombredeusuario/meteo/"
# <Directory "/opt/lampp/hdocs/">
<Directory "/home/minombredeusuario/meteo/">
Cada vez que hacemos un cambio en el archivo httpd.conf, debemos parar, stop y arrancar, start, el servicio del Apache (restart).
sudo /opt/lampp/lampp restart
_________________________________________________
Creación de una Base de datos
El paquete XAMPP ha instalado el servidor web Apache, pero también ha instalado la utilidad de datos MySQL y un gestor phpmyadmin, vamos a crear una base de datos.
Vamos al FireFox y escribimos: http://localhost/phpmyadmin
Luego creamos una base de datos llamada weather
Entramos en la base de datos que hemos creado weather e Importamos este archivo... wwsr.sql
Este archivo es del progama que vamos a instalar y mediante él, se construye la tabla de la base de datos
Ya hemos creado una base de datos llamada weather con una tabla llamada wwsr
Mediante la pestaña de Privilegios podemos poner permisos.
_________________________________________________
Vamos a instalar un programa para recibir los datos de la estación meteorológica FWS 20 conectada al puerto USB de nuestro ordenador.
Antes de instalar el programa vamos a instalar una biblioteca (library) para que se pueda leer el dispositivo USB de la estación meteorológica, para ello debes bajar la biblioteca (library) libusb de libusb.sf.net
Bajamos libusb-1.0.6.tar.bz2, la descomprimimos.
Entramos en el directorio de la librería
cd libusb-1.0.6
Debemos de compilar esta library, para ello escribimos los siguientes comandos:
sudo ./configure
sudo make
sudo make install
¡¡A mí no funcionó!!. No me creaba la cabecera usb.h cuando compilaba el programa wwsr que veremos posterior mente, así que fuí al Gestor de paquetes Synaptic e instalé varias versiones del libusb, la que mejor me fue la libusb-dev
Con la librería libusb-dev ya no me dió problemas el archivo usb.h al compilar el programa wwsr que veremos a continuación, así que te recomiento que instales todas las que ves marcada de verde en el caso de que cuando compiles wwsr te de problemas el archivo usb.h.
_________________________________________________
- Instalación del programa Wireless Weather Station Reader (wwsr)
El programa es de Michael Pendec http://www.pendec.dk/weatherstation.htm pero parece que lo dejó en 2007.
Michael Andersson lo ha modificado y ha creado nuevas versiones para que se puedan guardar la información en una base de datos MySQ, pero es complicado configurarlo para que funcione la base de datos. http://oh1jty.toimii.net/wh1080/
Aquí lo tenemos también ... weather-station-0.3rc1.tar.gz (58 KB)
La bajas a tu directorio /home/tunombredeusuario/Descargas.
Pulsa para descomprimirlo, yo la puse en el directorio: /home/nombredeusuario/weater_station-0.3rc1
El programa está en código fuente y hay que compilarlo para hacerlo ejecutable.
Vamos al directorio /home/usuario/weater_station-0.3rc1
sudo make clean
sudo make all
___________________________
Ahora vamos a realizar esta copia...
sudo cp wwsr.conf /usr/local/etc/wwsrc.conf
Vamos a ver el contenido dell archivo /usr/local/ect/wwsrc.conf
sudo gedit /usr/local/etc/wwsrc.conf
Aquí hay información sobre la base de datos de MySQL, nos dice que se va a utilizar la base de datos weather, el usuario propietario de esa base de datos es wwsr, la clave de esa base de datos es passw0rd.
___________________________
Vamos a copiar también el archivo wwsr
sudo cp /home/usuario/weater_station-0.3rc1/wwsr /user/local/bin/
___________________________
Lo ejecutamos en el terminal, escribimos wwsr -a, puede que salga esto...
da este error:
wwsr: wwsr.c:131: _open_readw: Assertion 'dev' failed
esto significa que no lee el puerto USB
Vamos a comprobar si lee el puerto USB, para ello escribimos la siguiente orden para comprobar qué puertos USB tienen algo conectado.
lsusb
(Nota: si escribes lsusb -v te saldrán más datos de los puertos USB)
Ummmm... no está leyendo ningún puerto USB.
Si te hubiera salido lo siguiente, significaría que está leyendo la estación...
Fíjate que está leyendo el Dispositivo 1941:8021 que es el puerto de la estación meteorológica, como vimos al principio de esta página, el Vendor es Dream Link y el Product USB Missile Launcher.
En este caso cuando escribas wwsr -a te debe salir la siguente pantalla...
___________________________
- Cuando escribo lsusb me reconoce el Dream Link USB Missile Launcher, pero cuando pongo wwsr -a me sale esto...
Reading last updated record from device
Could not open usb device, errorcode - -1
___________________________
Corrección de errores
Tal vez sigas sin poder conectar... bueno, podemos hacer dos cosas:
1.- Crear un grupo llamado usb y añadir a los usuarios que queramos que ejecuten el programa, la manera de crear un grupo usb se verá en el apartado siguiente.
2.- Pero la forma más fácil es la siguiente... abrimos el archivo /etc/udev/rules.d/70-persistent-cd.rules
sudo gedit /etc/udev/rules.d/70-persistent-cd.rules
y ponemos el MODO de permisos de manera que todos los usuarios puedan entrar en el 1941:8021, para ello cambiamos MODE="0660" por MODE="0666"
SYSFS{idVendor}=="1941", SYSFS{idProduct}=="8021", MODE="0666",GROUP="usb"
Es importante reiniciar (restart) el ordenador para que los cambios se ejecuten.
Bueno, creo que ya a estas alturas el programa te funcionará.
___________________________
Otro programa basado en éste http://www.ogimet.com/pub/freewestat-0.3.tar.gz
freewestat-0.3.tar.gz
_________________________________________________
Crear un grupo llamado usb e introducir en él, a los usuarios root y el actual, en mi caso utele11
Sistema / Administración / Usuarios y grupos. Pulse para realizar los cambios
En la línea del archivo sudo gedit /etc/udev/rules.d/70-persistent-cd.rules
SYSFS{idVendor}=="1941", SYSFS{idProduct}=="8021", MODE="0660",GROUP="usb"
observamos que pueden entrar en el dispositivo los usuarios del grupo usb, así que o creamos usuarios en el grupo usb para que puedan entrar o bien cambiamos el permiso MODE a 0666, tal vez sea mejor esta última opción y así nos evitamos crear al grupo usb.
Es importante reiniciar (restart) el ordenador para que los cambios se ejecuten.
_________________________________________________
Entrar en la configuración de mysql y cambiar su contraseña
Debemos evitar que cualquiera entre en http://localhost/phpmyadmin sin contraseña y cambie las bases de datos. Para ello le debemos poner contraseña a MySQL y a phpmyadmin.
sudo /opt/lampp/bin/mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('1234');
mysql> exit
Ahora vamos al archivo... config.inc.php que se encuentra en /opt/lampp/phpmyadmin
sudo gedit /opt/lampp/phpmyadmin/config.inc.php
y modificamos estas lineas
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'pass';
cambiar por estas
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '1234';
Vamos a http://localhost/phpmyadmin y observamos que ahora nos pide usuario: root y contraseña: 1234
y a partir de ahora para entrar en mysql tendremos que escribir:
sudo /opt/lampp/bin/mysql -p
_________________________________________________
¿Cómo hacer que un servicio arranque de forma automática?
update-rc.d /opt/lampp/lampp start 20 3 4 5 . stop 20 1 2 6 .
Supongamos que teníamos un apache2 que arrancaba al inicio automáticamente y no queremos que vuelva a arrancar auotmáticamente ¿Cómo lo hacemos?
update-rc.d -f apache2 remove
_________________________________________________
- WeatherStation. Otro programa para recibir datos de la estación meteorológica basado en Python.
Vamos a ver otro programa para obtener los datos de la estación meteorológica bajo Ubuntu que tal vez te guste más que el anterior.
Vamos a este sitio lo bajamos... http://code.google.com/p/pywws/
Aquí lo tenemos... weather-0.9_r160.tar.gz
Leemos el README y observamos que el programa necesita varias dependencias que podemos instalar mediante el Gestor de paquetes Synaptic
libusb (http://libusb.sf.net)
Python (http://www.python.org/) version 2.4 or higher
PyUSB (http://pyusb.berlios.de/) version 0.4 or higher
For graph drawing:
gnuplot (http://www.gnuplot.info/) v4.2 or higher
El libusb ya lo hemos instalado del programa anterior...
De igual manera podemos instalar el Python2.6 y el python-usb (pyusb)
Para ver si funciona nos situamos en el directorio donde esté instalado y escribimos
python TestWeatherStation.py
Debe salir algo así...
Escribe python TestWeatherStation.py -d -h 5 para que salgan los datos anteriores decodificados
Sigue las indicaciones del README
- Si no te funciona, sigue las indicaciones de Corrección de errores del apartado anterior, es decir actuando sobre el archivo:
sudo gedit /etc/udev/rules.d/70-persistent-cd.rules
y cambiando
SYSFS{idVendor}=="1941", SYSFS{idProduct}=="8021", MODE="0666",GROUP="usb"
Es importante reiniciar (restart) el ordenador para que los cambios se ejecuten.
_________________________________________________
- WeeWX. Otro programa para recibir datos de la estación meteorológica basado en Python.
http://www.weewx.com/downloads/
En Rasperry Pi: https://docs.google.com/document/d/1l4I58cEjLojdSJ3BZ6lPfpVEuMduh77TPZ4Gb1XgOMQ/edit
Imágenes: http://www.jantoni.es/download/raspweather
https://groups.google.com/forum/#!forum/weewx-user
_________________________________________________
- Wine y EasyWeather
Otra cosa que podemos intentar es instalar el programa wine, con este programa podemos instalar en LINUX-Ubuntu, aplicaciones de Windows, en nuestro caso vamos a instalar el EasyWeather para Windows que viene con la estación en LINUX.
Primero instalamos el wine1.2-dev.
Luego copiamos el setup.exe del EasyWeather en tu directorio de LINUX. Depués pulsa con el botón derecho del ratón en setup.exe y pulsa Abrir con Wine Cargador de programas de Windows.
Vamos a Aplicaciones / Wine / Programas / EasyWeather.
En este caso el problema puede ser que Wine no lea los puertos USB, para solucionarlo debes instalar un patch mediante un proceso un poco complicado.
_________________________________________________
- VirtualBox y Windows / EasyWeather / Cumulus
Otra cosa que puedes intentar es instalar en LINUX (Ubuntu, Guadalinex...) el programa VirtualBox, mediante él podremos instalar un Windows (por ejemplo, un Windows XP) dentro del mismo LINUX.
Para que te funcione los USB debes instalar la versión PUEL, con la versión OSE no te funcionará los USB.
La versión PUEL la puedes bajar de... http://www.virtualbox.org/wiki/Downloads
Una vez instalado reiniciamos el ordenador y vamos a Aplicaciones / Herramientas del sistema / Sun Virtual
Creamos una Nueva máquina virtual, llamada Windows.
Too palante...
Introducimos un CDROM de Windows XP en el lector de CDROM y lo instamos bajo LINUX.
- Si quieres extraer el CDROM, debes desmontarlo, para ello vas a Lugares / Equipo / botón derecho en el CDROM y Expulsar.
Aquí tenemos Windows XP funcionando bajo Ubuntu 9.10 mediante el programa VirtualBox.
Podemos instalar el EasyWeather de nuestra estación y ejecutarlo bajo este Windows.
Pero antes vamos hacer lo siguiente: entrar en Sistema / Administración / Usuarios y grupos y añadir a los usuarios que queramos al grupo vboxusers
Para que funcione el USB
Vamos a cerrar el Windows virtual (Máquina / Cerrar) y a entrar en Configuración del VirtualBox...
Vamos a USB y luego pulsamos el icono de la derecha "Agregar filtro desde dispositivo"
Agregamos el 1941:8021 que es nuestra estación meteorológica, también he puesto como ejemplo una memoria USB 2.0 que tenía conectada en ese momento.
Iniciamos nuestro Windows.
Y en Dispositivos USB habilitamos los USB que queramos...
Ahora nuestro EasyWeather podrá leer su información por el correspondiente puerto USB.
Lo mismo si instalamos el programa Cumulus del que hemos hablado en otra ocasión.
_________________________________________________
- Otro programa para recibir datos de la estación meteorológica basado en perl.
Otra versión del wwsr esta vez en perl
En este caso hay que bajar los módulos
Los puedes bajar de... http://www.cpan.org/modules/01modules.index.html
Para compilar los módulos entras, mediante el terminal, en cada uno de los directorios y escribes:
sudo perl Makefile.PL
sudo make
sudo make install
Luego para ejecutar el programa escribes
perl meteoperl.pl
_________________________________________________
http://www.noaa.gov/
http://www.digitalham.co.uk/weather/W8681_EasyWeather_UIView_script.php
(Con el EasyWeather funcionando en Windows)
http://www.wviewweather.com/
http://www.jim-easterbrook.me.uk/weather/
_____________________________________________
Como he comentado anteriormente, con los sensores y la centralita ya tenemos nuestra estación meteorológica montada. El emisor envía los datos y la centralita los recibe y los muestra en su pantalla.
Podemos colgar la centralita en algún lugar (siempre que pueda recibir los datos del emisor) y consultar los datos recibidos. No hace falta ordenador ni internet.
Pero si queremos que los datos se muestren en la pantalla de un ordenador o que se envíen a internet para mostralo en una web, entonces necesitamos un ordenador y conexión a internet.
Lo veremos en el siguiente tutorial.
___________________________________________________
Siguiente tema: 3.- Lo conectamos al ordenador.
|