Autor
|
Tema: Manual per fer anar Oregon amb Linux Part1 (Llegit 5693 vegades)
|
Undulatus
Cumulus
  
Desconnectat
Gènere: 
Missatges: 118

Rubí, Vallès Occidental
|
Com fer anar una Oregon WMR-918,WMR968, amb cable o sense amb linux Part 1
Espero que sigui útil, i que no tingui moltes errades. 
Instal·lació:
Baixar el fitxer comprimit tar ball i deixar en un directori apropiat ex. /usr/local/scr i descomprimir:
fitxer: http://azug.minpet.unibas.ch/~lukas/wmr918/wxreport-1.3beta1.tar.gz
Per descomprimir, des de una consola de terminal picar : cd /usr/local/src tar xvzf wxreportd.tar.gz
Ves al directori fent : cd /usr/local/src/wxreprt
Canvia la configuració per defecte del port serie i altres en el fitxer 'config.h'
Que hi ha en aquest fitxer?
Això:
/* nom per defecte dels clients que es connecten */ #define HOST "localhost"
/* port per defecte que el servidor escolta, per on es connecten els clients */ #define PORT 9754
/* nombre de clients màxims que estaran connectats al server */ #define CONNECTIONS 10
/* directori per defecte on es desaran les dades(molt important!!) */ #define DATAPATH "/var/opt/wxdata"
/* port serie per defecte (aquí heu de posar el port serie que feu servir, ttyS0 = com1, ttyS1 = com2, etc..*/ #define WMR918 "/dev/ttyS1"
Un cop fet això ja podeu fer a la consola:
make (per generar els binaris) i
mv wxreportd /usr/local/bin/wxreportd (per moure el executable 'wxreportd' al directori adequat).
Ara cal donar-li els permisos adients al fitxer fent:
chown root.root wxreportd chmod 0550 wxreportd
A partir d'aquí si executem el binari 'wxreportd' se'ns generaran uns fitxers a /var/opt/wxdata amb totes les dades de l'estació meteo amb aquest format:
yyyymmdd.tab: host_system_time (unix epoch, decimal) adjusted_wmr918clock_time (unix epoch, decimal) data_frame_bytes (hex, no preceeding 0xff sync bytes, no trailing checksum)
wind_yyyymmdd.dat: date (yy/mm/dd) time (hh:mm:ss) lobattery(0/1) direction(°) gust(m/s) gust_overflow(0/1) average(m/s) average_overflow(0/1) chill(C) chill_underflow(0/1) chill_nodata(0/1)
rain_yyyymmdd.dat: date (yy/mm/dd) time (hh:mm:ss) lobattery(0/1) current_rate(mm/h) current_overflow(0/1) total(mm) total_overflow(0/1) yesterday(mm) yesterday_overflow(0/1) total_is_since(unix epoch)
out_yyyymmdd.dat: date (yy/mm/dd) time (hh:mm:ss) lobattery(0/1) temperature(C) temperature_overflow(0/1) relative_humidity( dew_temperature(C) dew_temperature_underflow(0/1)
in_yyyymmdd.dat and ins_yyyymmdd.dat: date (yy/mm/dd) time (hh:mm:ss) lobattery(0/1) temperature(C) temperature_overflow(0/1) relative_humidity( dew_temperature(C) dew_temperature_underflow(0/1) barometer(hpa) weatherstatus(12=sunny,6=halfcloudy,2=cloudy,1=rainy) barometer_sealevel_compensation(hpa)
tX_yyyymmdd.dat: date (yy/mm/dd) time (hh:mm:ss) lobattery(0/1) temperature(C) temperature_overflow(0/1)
thX_yyyymmdd.dat: date (yy/mm/dd) time (hh:mm:ss) lobattery(0/1) temperature(C) temperature_overflow(0/1) relative_humidity( dew_temperature(C) dew_temperature_underflow(0/1)
A partir d'aquí si executeu a un finestra del sistema:
datafilter
apareixeran les dades meteo de la vostra estació.
Senyors el sistema ja el tenim funcionant, a partir d'aquí el vestirem per que generi pagines web, o fitxers per meteoclimatic.
Sulut.
|
|
|
|
|
En línia
|
|
|
|
|
|
Egarenc
No ssieennto la visstaaa....
Meteoclimatic projecte
Cumulonimbus Capillatus
   
Desconnectat
Gènere: 
Missatges: 9965

|
No pateixis que aquest el guardarem ben guardadet
|
|
|
|
|
En línia
|
|
|
|
Bigstorm
El terror dels bolets
Meteoclimatic projecte
Cumulonimbus Capillatus
   
Desconnectat
Gènere: 
Missatges: 8404

|
|
|
|
|
|
En línia
|
|
|
|
GarílPhone
L'empordaniccio es un mafiós ¡¡¡¡¡¡¡
Meteoclimatic projecte
Cumulonimbus Capillatus
   
Desconnectat
Gènere: 
Missatges: 12690

Hi ha mòbils e iphone's.....
|
Els que aneu amb Kubuntu davant de cada comando heu de posar sudo
Opció 1: voleu editar un fitxer des de la consola....
Exemple:
sudo nano /directori/nomdelfitxer
nano és l'editor en consola..... en mierdows sería similar al bloc de notas, no s'obre cap finestra, directament des de la consola.
sudo ... per treballar amb superusuari.
Sembla una parida però per a qui no ho controla es pot tornar boig, ja que el primer que es fa es obrir els fitxers directament en qualsevol editor i si no teniu permisos d'administrador (root) no us deixarà fer cap canvi....
Opció 2: treballar els fitxers en mode gràfic....
alt+f2 i al quadre de diàleg teclejeu konquerorsu us demanarà el password d'administrador...
Navegueu fins la carpeta on voleu editar el fitxer, ratolí botó dret i "obre amb": kate (editor de fitxers en mode gràfic) al fer-ho ja com a superusuari podeu modificar el que volgueu.
D'aquesta manera podeu navegar per totes les carpetes del sistema i editar els fitxers que us surti dels collons.. però ULL ¡¡¡¡ amb el que toqueu i remeneu, o la fotreu a cagar de plè.... fitxers del sistema.. etc...
Egarenco rectifica si m'equivoco
|
|
|
|
|
En línia
|
|
|
|
Egarenc
No ssieennto la visstaaa....
Meteoclimatic projecte
Cumulonimbus Capillatus
   
Desconnectat
Gènere: 
Missatges: 9965

|
"sudo" només quan calen accessos d'administrador. Per a la resta, igual
|
|
|
|
|
En línia
|
|
|
|
|
|
Egarenc
No ssieennto la visstaaa....
Meteoclimatic projecte
Cumulonimbus Capillatus
   
Desconnectat
Gènere: 
Missatges: 9965

|
Depèn dels permisos El que com a administrador s'ha de fer és donar permís als usuaris als quals es vol donar accés a certs directoris, i el de la web és un: qualsevol usuari (amb permís) ha de poder posar-hi arxius sense haver de ser root. Imagina't si qualsevol usuari que vulgui posar la seva web hagués de necessitar accedir amb root!
|
|
|
|
|
En línia
|
|
|
|
Undulatus
Cumulus
  
Desconnectat
Gènere: 
Missatges: 118

Rubí, Vallès Occidental
|
Gràcies, Egarenc i Garil per les puntualitzacions que aneu afegint. 
|
|
|
|
|
En línia
|
|
|
|
Undulatus
Cumulus
  
Desconnectat
Gènere: 
Missatges: 118

Rubí, Vallès Occidental
|
Com fer anar una Oregon WMR-918 o WMR968, amb cable o sense amb linux Part 2
No ho he dit en la primera part, però com sempre, és imprescindible llegir els README, MAN, INFO de qualsevol programa que fem servir. 
Ja, ja ho se. Aquí al sur d'Europa no fem servir els manuals fins que estem apurats. No com al nord que fan un curset de 50h. per canviar una bombeta. 
Be recapitulem. 
1- Tenim una consola Oregon connectada a un pc que al hora ens farà de servidor d'Internet 2- Fem corre un programa que descodifica las trames que entren pel port serie. 3- Aquest programa 'wxreportd' el col·loquem a /usr/local/bin/ 4-Un cop executat en genera un històric a /var/opt/wxdata 5- Amb un altre programa que és 'datafilter' podem veure des de una finestra de sistema els valors de la estació meteo.
Jo personalment, tinc muntat el servidor web a casa, crec que alguns de vosaltres també. Això simplifica les coses. I les dades son mes online, ja que si fas correr el wxreportd a la mateixa màquina les actualitzacions de les dades son els pocs segons que triguen els sensors en enviar les trames.
Els curiosos ja hauran vist que en el fitxer que hem descomprimit hi ha una carpeta amb el nom de html. Be, aquí trobareu documents html .cgi .pl que generen pagines web a partir del programa wxreportd.
Ok, una mica de l'estructura de fitxers linux, (encara que es pot fer el que vulgueu, si ho configureu be).
-Dins de /var/www/ van els fitxer d'html que servirem amb l'apache -Dins de /usr/lib/cgi-bin/ posarem els cgi's i .pl (les rutines de perl)
Que s'ha de tenir per muntar-ho?
Paciència. 
I el següent:
-servidor web apache http://apache.rediris.es/httpd/httpd-2.2.3.tar.gz (aquesta és l'última versió)
pels que feu servir debian o derivats ubuntus , sudo apt-get install apache2
-interpret de perl sudo apt-get install perl ( això servirà per fer corre scripts que generen pàgines web i les dades per meteoclimatic)
-gnuplot (per generar gràficas amb els cgi's) sudo apt-get install gnuplot.
Un cop tinguem instal·lats aquest programes i configurats correctament i les pàgines html en el directori corresponent, podeu obrir un navegador i posar:
http://127.0.0.1/plot.html
Ja sabeu 127.0.0.1 = localhost = la nostra màquina.
Si heu configurat l'apache per que la pàgina d'inici sigui index.html, reanomeneu plot.html a index.html i poseu :
http://127.0.0.1/index.html
Si surt això vol dir que alguna hem fet be, però ...

el perl no funciona o no troba el wmrplot.cgi
Aquesta pàgina html crida un script cgi que és wmrplot.cgi que és el que dibuixa les gràfiques.
A comprovar :
que wmrplot.cgi estigui a /usr/lib/cgi-bin/ (com vaig dir abans) que l'apache estigui configurat correctament per fer corre cgi al directori esmentat. que a la primera línia del fitxer wmrplot.cgi hi hagi el path correcte de perl. EPPP !!!! comorrrrr! 
M'explico, si editeu wmrplot.cgi (és un fitxer de text) al principi hi ha això:
#!/usr/bin/perl -wT # # $Id: currentweather.pl,v 0.12 2003/10/10 10:00:21 lukas Exp $ # # Copyright (C) 2000, 2001 Lukas Zimmermann, Basel, Switzerland # # Uses `datafilter' program contained with the wxreportd software to scan # today's wmr918 data file for most recent data frame in each category # and prints out a html page of this recent data.
etc.............
La primera línia
#!/usr/bin/perl -wT
És la que indica al navegador on ha de anar a buscar l'interpret, del que ve a continuació (un script en llenguatge perl)
Si heu instal·lat anteriorment el perl, comproveu que el teniu a /usr/bin/perl
Un altre cosa a comprovar els els permisos dels fitxers amb els que estem treballat.
Be ja tenim molta feina feta.
Ara es qüestió d'anar modificant els html per que surti al nostre gust.
Però que passa amb Meteoclimatic?? 
Bé les dades las tenim ara només cal donar-li forma per que les entengui el robot.
Jo encara estic en aquest pas, a continuació us posaré el que porto fet i va funcionant a falta encara d'alguna dada.
El meu primer programa cutre saltxixero en perl. Espero que els que en saben em perdonin. 
---------- copiar a partir d'aquí ------------- #!/usr/bin/perl -w
use strict; use POSIX ":sys_wait_h"; #$ENV{PATH} = "/var/opt/wxdata/"; $ENV{PATH} = "/usr/lib/cgi-bin";
print <<EOF; Pragma: no-cache Content-type: text/html
EOF
######## Declaració de variables ########### my $linia; my $temperatura; my $temperatura_max=-20; my $temperatura_min=50; my $humitat; my $humitat_max=0; my $humitat_min=100; my $rosada; my $rosada_max=-15; my $rosada_min=30; my $data; my $hora; my $bateria; my $temp_overflow; my $rosada_underflow; my $temp_hora_max; my $temp_hora_min; my $hum_hora_max; my $hum_hora_min; my $ros_hora_max; my $ros_hora_min; my $velocitat_max = 0; my $pressio_max = 930; my $pressio_min = 1080;
my (undef, undef, undef, $mdayf, $monf, $yearf) = localtime; $monf += 1; $yearf += 1900; my $data_file = sprintf "%04d%02d%02d", $yearf, $monf, $mdayf;
my ($direccio,$velocitat,$velocitat_overflow,$mitja, $mitja_overflow,$sensacio,$sensacio_underflow,$sensacio_nodata,$vel_hora_max ); my ($pressio,$status,$pressio_mar,$pres_hora_max,$pres_hora_min ); my ($intensitat,$intensitat_overflow,$total,$total_overflow,$ahir, $ahir_overflow,$total_desde,$total_any ); ######## fi declaracio variables ##########
open(FITXER,"/var/opt/wxdata/out_$data_file.dat") or die "no es pot obrir el fitxer";
my (undef, undef, undef, $mdaye, $mone, $yeare) = localtime; $mone += 1; $yeare += 1900; my $data_ext = sprintf "%02d/%02d/%04d", $mdaye, $mone,$yeare; my @llista_temperatures;
while($linia=<FITXER>) { #print "$linia";
($data_ext,$hora,$bateria,$temperatura,$temp_overflow,$humitat,$rosada,$rosada_underflow)=split / +/,$linia; push @llista_temperatures,$temperatura;
if ($temperatura > $temperatura_max) { $temperatura_max = $temperatura; $temp_hora_max = $hora; } if ($temperatura < $temperatura_min) { $temperatura_min = $temperatura; $temp_hora_min = $hora; }
if ($humitat > $humitat_max) { $humitat_max = $humitat; $hum_hora_max = $hora; } if ($humitat < $humitat_min) { $humitat_min = $humitat; $hum_hora_min = $hora; }
if ($rosada > $rosada_max) { $rosada_max = $rosada; $ros_hora_max = $hora; } if ($rosada < $rosada_min) { $rosada_min = $rosada; $ros_hora_min = $hora; } }
close FITXER;
open(FITXER,"/var/opt/wxdata/wind_$data_file.dat") or die "no es pot obrir el fitxer";
(undef, undef, undef, $mdaye, $mone, $yeare) = localtime; $mone += 1; $yeare += 1900; $data_ext = sprintf "%02d/%02d/%04d", $mdaye, $mone,$yeare; while($linia=<FITXER>) { #print "$linia";
(undef,undef,undef,$direccio,$velocitat,$velocitat_overflow,$mitja, $mitja_overflow,$sensacio,$sensacio_underflow,$sensacio_nodata)=split / +/,$linia;
##############conversio m/s a km/h########## $velocitat *= "3.6"; $mitja *= "3.6"; ############################################
if ($velocitat >= $velocitat_max) { $velocitat_max = $velocitat; $vel_hora_max = $hora; } } close FITXER;
open(FITXER,"/var/opt/wxdata/in_$data_file.dat") or die "no es pot obrir el fitxer";
(undef, undef, undef, $mdaye, $mone, $yeare) = localtime; $mone += 1; $yeare += 1900; $data_ext = sprintf "%02d/%02d/%04d", $mdaye, $mone,$yeare;
while($linia=<FITXER>) { #print "$linia";
(undef,undef,undef,undef,undef,undef,undef,undef, $pressio,$status,$pressio_mar)=split / +/,$linia;
$pressio += "20";
if ($pressio > $pressio_max) { $pressio_max = $pressio; $pres_hora_max = $hora; } if ($pressio < $pressio_min) { $pressio_min = $pressio; $pres_hora_min = $hora; } } close FITXER;
open(FITXER,"/var/opt/wxdata/rain_$data_file.dat") or die "no es pot obrir el fitxer";
(undef, undef, undef, $mdaye, $mone, $yeare) = localtime; $mone += 1; $yeare += 1900; $data_ext = sprintf "%02d/%02d/%04d", $mdaye, $mone,$yeare;
while($linia=<FITXER>) { #print "$linia";
(undef,undef,undef,$intensitat,$intensitat_overflow,$total,$total_overflow,$ahir, $ahir_overflow,$total_desde)=split / +/,$linia;
$total_any = ($total += "388"); } ################# inici patro meteoclimatic ####################
print <<EOF; *VER=DATA2 *COD=08191B *UPD=$data_ext $hora *SKY=--- *TMP=$temperatura *WND=$velocitat *AZI=$direccio *BAR=$pressio *HUM=$humitat *SUN=--- *DHTM=$temperatura_max *DLTM=$temperatura_min *DHHM=$humitat_max *DLHM=$humitat_min *DHBR=$pressio_max *DLBR=$pressio_min *DGST=$velocitat_max *DPCP=--- *MHTM=--- *MLTM=--- *MHHM=--- *MLHM=--- *MHBR=--- *MLBR=--- *MGST=--- *MPCP=--- *YHTM=--- *YLTM=--- *YHHM=--- *YLHM=--- *YHBR=--- *YLBR=--- *YGST=--- *YPCP=$total_any *EOT* EOF
################## fi patro meteoclimatic ######################
while (!eof HTML) { print <HTML>; }; close(HTML); close FITXER ------------fi de fitxer---------------
Copiar això en un fitxer i digueu-li 'meteoclimatic.pl'
Això genera les dades com el 'weather display' .
*VER=DATA2 *COD=08191B *UPD=20/12/2006 23:54:41 *SKY=--- *TMP=4.1 *WND=4.32 *AZI=238 *BAR=1026 *HUM=71 *SUN=--- *DHTM=13.1 *DLTM=1.5 *DHHM=85 *DLHM=38 *DHBR=1026 *DLBR=1022 *DGST=7.92 *DPCP=--- *MHTM=--- *MLTM=--- *MHHM=--- *MLHM=--- *MHBR=--- *MLBR=--- *MGST=--- *MPCP=--- *YHTM=--- *YLTM=--- *YHHM=--- *YLHM=--- *YHBR=--- *YLBR=--- *YGST=--- *YPCP=452.3 *EOT*
Ara aneu a configuració de meteoclimatic i poseu http://el_meu_domini/cgi-bin/meteoclimatic.pl.
D'aquesta forma ja estem connectats a meteoclimatic.
De moment ho deixem aquí. Això es ampliable, modificable, millorable, etc, fins l'infinit. Totes les noves aportacions, rectificacions, i critiques seran benvingudes. La meva pàgina http://www.meteorubi.com està funcionant amb lo explicat aquí.
Sempre que pugui contestaré els dubtes que surtin. 
Salutacions a tots.

|
|
|
|
|
En línia
|
|
|
|
|