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

Post Disclaimer

Creative common license BY-NC_SA

Informazioni Importanti

Note generali: Le informazioni contenute in questo articolo sono di carattere informativo e rispecchiano le opinioni personali del autore. Tutte le guide nel sito vengono proposte "as it is" puramente a scopo didattico. L'utente che accetta di seguirne i passaggi si assume ogni responsabilità in caso di guasto/malfunzionamento o altro problema come conseguenza della modifica.

Link di affiliazione e contenuti promozionali: Nei post di iu2frl.it posso includere collegamenti a rivenditori. Posso ricevere una piccola commissione dal rivenditore se effettui un acquisto dopo aver fatto clic su uno di questi link. I post non sono espressamente sponsorizzati da rivenditori, editori, promotori o produttori, se non diversamente specificato chiaramente e tutte le decisioni editoriali sono prese esclusivamente dagli autori dei singoli articoli.

Contenuti riguardanti regolamenti e/o normative: Eventuali riferimenti a normative non costituiscono valore legale, si tratta di libere interpretazioni ed estratti di circolari corredate da eventuali commenti, si invitano tutti gli utenti a verificare la veridicità di tali informazioni sugli organi ufficiali di riferimento, nessuna colpa o responsabilità può essere data agli autori degli articoli.

Licenza di utilizzo: Tutti i contenuti vengono condivisi con licenza CC BY-NC-SA 4.0: Questa licenza consente ad altri di remixare, adattare e sviluppare i contenuti in modo non commerciale, purché accreditino l'autore originale e concedano in licenza le loro nuove creazioni con gli stessi termini. Per maggiori informazioni visitare il sito Creative Commons.

Important Informations

General notes: The information contained in this article is of an informative nature and reflects the personal opinions of the author. All the guides/tutorial on the website are offered "as it is" for educational purposes only. The user who agrees to follow the steps assumes all responsibility in case of failure/malfunctioning or other problem as a result of the modification.

Affiliate links and promotional products: In some posts of iu2frl.it I can include links to resellers. I can get a small commission from the reseller if you make a purchase after clicking on one of these links. The posts are not expressly sponsored by resellers, publishers, promoters or producers, unless otherwise clearly specified and all editorial decisions are made solely by the authors of the individual articles.

Contents about rules and laws: Some articles may contain portions or whole laws or rules regarding specific areas, these kind of content are meant to be indicative only, no responsability can be given to the authors. Always refer to official sources when looking for rules or laws.

Contents licenses: All the contents are published as CC BY-NC-SA 4.0: This license lets others remix, adapt, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms.. For more informations please visit Creative Commons website.

Lascia un commento

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