Beacon Meteo WX in Perl da file CSV

Dopo aver visto come mandare in APRS il proprio beacon tramite uno script perl, stasera vi propongo una variante suggeritami dal collega Antonio IS0HHA, l’invio di dati meteo estrapolati da un file CSV generato da un software di terze parti:

 


#! /usr/bin/perl -w
use IO::Socket;
 use strict;
 # -------------- inizio parte da modificare -----------------------
my $aprsServer = "italy1.aprs2.net"; # server aprs a cui collegarsi
my $port = 14580; # porta del server
my $callsign = "XXXXX-1"; # inserire qui il nominativo
my $pass = "YYYYY"; # inserire qui il passcode
my $coord = "AAAA.BBN/CCCCC.CCE_"; # inserire qui le coordinate
my $altInFeet = 0; # inserire qui l'altitudine in piedi
my $file = "/home/luca/Scrivania/dati.txt"; # prercorso del file contenente i valori
my $comment = "BeaconWXTest"; # modificare a proprio piacimento
# ------------- fine parte da modificare --------------------------
 my ($vento,$direzvento,$piccovento,$tempf,$pioggiaoggi,$pioggiaulth,$pioggia24,$umidita,$pressione);
open DATA, $file or die "ERRORE APERTURA FILE: $!";
 while (<DATA>) {
 chomp;
 ($vento,$direzvento,$piccovento,$tempf,$pioggiaoggi,$pioggiaulth,$pioggia24,$umidita,$pressione) = split (',');
 }
 close DATA;
my $sock = new IO::Socket::INET (
PeerAddr => $aprsServer,
PeerPort => $port,
Proto => 'tcp'
);
die( "Could not create socket: $!n" ) unless $sock;
$sock->recv(my $recv_data,1024 );
print $sock "user $callsign pass $pass ver\n";
$sock->recv( $recv_data,1024 );
if( $recv_data !~ /^# logresp $callsign verified.*/ )
{
die( "Errore! il server ha risposto con un errore: $recv_data\n" );
}
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime();
my $message = sprintf( "%s>APRS,TCPIP*:@%02d%02d%02dz%s%s/%sg%st%sr%sp%sP%sh%sb%s%s\n",
$callsign,$hour,$min,$sec,$coord,$vento,$direzvento,$piccovento,$tempf,$pioggiaulth,$pioggia24,$pioggiaoggi,$umidita,$pressione,$comment );
print $sock $message;
close( $sock );
print "Script invio beacon completato!.\n"

 

Se il file di testo contenente i dati da inviare è stato letto correttamente vedremo su APRS.FI il nostro beacon con tanto di telemetria!

schermata-del-2016-12-22-20-57-03

il file contenente i dati dovrà necessariamente essere formattato in questo ordine:

  • media della velocità del vento negli ultimi 5 minuti (3 cifre)
  • direzione del vento in gradi (3 cifre)
  • picco massimo di vento negli ultimi 5 minuti (3 cifre)
  • temperatura in gradi fahreneit (3 cifre)
  • pioggia dalla mezzanotte (decimi di pollice – 3 cifre)
  • pioggia nell ultima ora (decimi di pollice – 3 cifre)
  • pioggia nelle ultime 24 ore (decimi di pollice – 3 cifre)
  • umidità relativa in percentuale (2 cifre)
  • pressione in decimi di mbar (5 cifre)

ogni valore dovrà essere separato dal successivo con una virgola

Qui trovate il calcolatore per il PASSCODE APRS

Download: script aprs-wx-pl – file TXT di esempio dati.txt

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *