MTBlog

Installazione e configurazione del software Weewx su Raspberry PI

All´interno del presente post andremo ad effettuare l´installazione e la relativa configurazione del software Weewx, vedremo inoltre come procedere alla condivisione dei dati della tua stazione meteo online.

Hardware necessario


  • Raspberry PI e scheda SD
    Per la presente guida si considera il Raspberry già preconfigurato. Qui puoi trovare la nostra guida su come creare una installazione funzionante di Linux Raspbian sul tuo Raspberry.
  • Stazione Meteo
    Weewx è un software molto versatile e completo, prima di procedere con l´installazione e la relativa configurazione ti consigliamo però di verificare qui se la tua stazione meteo è supportata. Se la tua stazione è una Oregon Scientific WMR300, ti consigliamo l'utilizzo del software Weather Display, puoi trovare qui una guida dettagliata su come procedere.
  • Connessione internet
    La connessione è necessaria per scaricare le librerie utilizzate da Weewx, inoltre, per poter procedere ad inviare i dati della tua stazione online, è fondamentale che il Raspberry PI abbia accesso ad internet.
  • PC Windows
    Essendo il Sistema Operativo più comune abbiamo deciso di scrivere la procedura e selezionare i software da utilizzare per Microsoft Windows.
  • [Consigliato] UPS
    Il Raspberry PI non ha una batteria propria, consigliamo l´utilizzo di un UPS esterno per garantire continuità nella lettura dei dati dalla tua stazione meteo. Utilizzando tale componente, anche in caso di mancanza di corrente, il Raspberry continuerà a prelevare i dati dalla stazione meteo. L´UPS è particolarmente indicato nel caso in cui la stazione meteo non abbia un datalogger proprio. Qui puoi trovare un prodotto con un ottimo rapporto qualità/prezzo. Se sei interessato a mantenere anche la continuità della connessione internet puoi collegare alla porta 12 V dell´UPS anche il tuo router (la continuità di funzionamento della rete dipende ovviamente dall´estensione del black out).

Software necessario


  • Weewx
    Scaricabile da qui. Ti permette di leggere i dati dalla tua stazione meteo, memorizzarli sul Raspberry e renderli disponibili ad altri utenti online. All´interno della pagina di download dovrai scaricare il pacchetto con estesione ".deb" (es. "weewx_3.9.2-1_all.deb").
  • Putty
    Scaricabile da qui. Ti permetterà di accedere al Raspberry mediante linea comando.
  • WinSCP
    Scaricabile da qui. Ti permetterà di copiare file dal tuo PC Windows al Raspberry e viceversa.
  • Advanced IP Scanner
    Scaricabile da qui. Ti permetterà di individuare l´indirizzo IP del Raspberry dopo che l´hai connesso alla tua rete.
  • Pacchetto software Meteotortona
    Scaricabile da qui. Contiene alcuni script ed estensioni che abbiamo sviluppato per l´invio dei dati online e per migliorare la stabilità del tuo Raspberry nel tempo.

Come procedere


Come prima cosa è necessario scaricare tutti i software presenti nel precedente paragrafo, terminato il download puoi procedere alla estrazione dei file dall´archivio scaricato dal nostro repository ed alla installazione dei software che seguono:
  • Putty
  • WinSCP
Ora è necessario individuare l´indirizzo IP del Rasperry. Se hai appena terminato l´installazione di Linux Raspbian con la nostra guida, l´indirizzo è lo stesso che hai utilizzato prima. Altrimenti, per individuarlo, puoi avviare il programma precedentemente scaricato Advanced IP Scanner, non è necessario installarlo, dopo aver accettato la licenza ti verrà chiesto se eseguire il programma o se installarlo sul tuo PC, puoi semplicemente eseguirlo. Prima di procedere dobbiamo verificare su quale set di indirizzi effettuare la scansione, per fare ciò puoi premere start, digitare "cmd", aprire l´applicazione "Prompt dei Comandi" e digitare il seguente comando seguito da invio:
ipconfig
Nella figura sottostante è stato riportato un esempio di quello che dovresti vedere.
Come puoi vedere nella figura soprastante è evidenziato in rosso l´indirizzo IP del mio PC (il tuo potrebbe essere diverso), è necessario prelevare i primi tre ottetti del tuo indirizzo. Prendendo come esempio il mio indirizzo, i primi tre ottetti sono 192.168.1. Ora, come visibie nell´immagine sottostante andiamo a popolare l´interfaccia di Advanced IP Scanner con i tre ottetti seguiti dalla stringa "1-254", nel mio caso la stringa completa sarà 192.168.1.1-254 (come in figura). Ora puoi premere il bottone "Scansione". Al termine della scansione otterrai la lista di tutti i dispositivi che sono connessi alla tua rete di casa, tra cui anche il Raspberry.
Prendi nota del campo "IP", ci servirà per la prossima fase. Ora possiamo quindi procedere ad effettuare l´accesso al Raspberry per le configurazioni necessarie. Apri il programma Putty (che hai installato in precedenza), inserisci l´indirizzo IP del raspberry nel campo "Hostname (or IP address)" e premi "open". Nella finestra che ti compare è necessario inserire le credenziali di accesso, Username: "pi" (senza apici), come password è invece necessario inserire quella che hai impostato durante la fase di configurazione del tuo Raspberry. Nella figura sottostante abbiamo riportato la finestra che dovresti vedere sul tuo schermo, ciò che vedi è una console a caratteri che ti permette di configurare ed eseguire comandi sul tuo Raspberry.
Procedimo quindi alla creazione di una cartella dove posizionare i file che ci serviranno per l´installazione di Weewx, digita il seguente comando seguito da invio:
mkdir meteo
Ora puoi iconizzare la finestra e procedere a copiare sul Raspberry i file necessari alla installazione di Weewx. La copia può essere effettuata mediante WinSCP, che dovresti aver installato nella prima parte del post. Per la copia dei file è necessario configurare "SCP" come protcollo e inserire l´indirizzo IP del Raspberry all´interno del campo "Nome Server". I campi "Nome Utente" e "Password" vanno valorizzati con i rispettivi valori che hai utilizzato precedentemente per la connessione al Raspberry. Infine puoi premere "Accedi". In figura è rappresentata la schermata iniziale del software.
Terminata la fase di connessione troverai nella parte sinistra dello schermo la lista di file e cartelle presenti sul tuo PC e nella parte destra la cartella denominata "meteo" che hai creato in precedenza. Per copiare i file dal tuo PC al Raspberry e necessario trascinarli dalla parte sinistra dello schermo alla parte destra, all´interno della cartella "meteo". Puoi procedere alla copia dei seguenti file:
  • Binario Weewx (es. "weewx_3.9.2-1_all.deb")
  • File presenti all´interno del "Pacchetto software Meteotortona", precedentemete estratto dall´archivio. È molto importante che i file siano nella cartella meteo e non in sottocartelle.
Ora possiamo tornare alla finestra di Putty e procedere alla installazione. Come prima cosa è necessario spostarsi all´interno della cartella "meteo", digita il seguente comando seguito da invio:
cd meteo
Per installare Weewx dobbiamo digitare il seguente comando seguito da invio (es. sudo dpkg -i weewx_3.9.2-1_all.deb):
sudo dpkg -i "nome binario weewx"
Durante l´esecuzione del comando ti verranno chieste alcune informazioni in merito alla stazione, tra cui nome, coordinate geografiche, altitudine e modello della stazione. Posizionati sul valore desiderato e premi invio. Al termine della procedura di installazione sarà necessario installare tutti i software aggiuntivi per il corretto funzionamento di Weewx con il seguente comando seguito da invio:
sudo apt-get -f install
Durante l´esecuzione del comando potrebbe essere necessario premere "y" ed invio per confermare l´installazione dei software. Terminata l´esecuzione Weewx è già attivo, procediamo quindi a fermare il processo con il seguente comando seguito da invio:
sudo service weewx stop
Ora possiamo procedere alla apertura del file di configurazione con il seguente comando seguito da invio:
sudo nano /etc/weewx/weewx.conf
ed alla modifica dei seguenti parametri:
  • Giorno inizio settimana
    Muoviti all´interno del file con le freccette fino al raggiungimento del parametro "week_start". Se vuoi che il Weewx consideri il Lunedì come primo giorno della settimana inserisci il valore 0.
  • Unità di misura dei dati
    Muoviti all´interno del file con le freccette fino al raggiungimento del parametro "target_unit". Se vuoi i dati rilevati con le unità di misura più comuni in Italia inserisci il valore "METRIC" (senza apici).
  • Range dati accettati
    Muoviti all´interno del file con le freccette fino al raggiungimento del parametro "barometer". Qui puoi impostare i limiti entro i quali Weewx considererà attendibili i dati ricevuti dalla stazione. Per evitare problemi ti consigliamo di estendere i range rispetto alle reali rilevazioni, valuta in base alla tua zona come impostare i parametri. Per alcune tipologie di stazioni meteo, tali parametri non sono realmente efficienti, in quanto il valore letto da Weewx non è normalizzato in base alla altitudine. A seguito della lettura, Weewx, provvederà ad allineare la lettura in base ai parametri di configurazone. Di seguito un esempio:
    						
    barometer = 900, 1100, hPa
    pressure = 900, 1100, hPa
    outTemp = -30, 50, degree_C
    inTemp = 0, 50, degree_C
    outHumidity = 0, 100
    inHumidity = 0, 100
    windSpeed = 0, 120, km_per_hour
    rain = 0, 1000, mm
    					
  • Intervallo di rilevazione dei dati
    Muoviti all´interno del file con le freccette fino al raggiungimento del parametro "archive_interval". Qui puoi impostare ogni quanti secondi Weewx ti fornirà i dati rilevati. Il valore di default è 300 secondi, overo 5 minuti, a nostro parere risulta un valore ottimale. All´interno di Weewx sono presenti due diverse tipologie di dati, i dati di loop e i dati di archivio. I primi sono i valori rilevati istantaneamente dalla stazione. I secondi invece sono i valori calcolati da Weewx ogni intervallo di rilevazione (es. ogni 300 secondi). Nel momento in cui vengono generati i dati di archivio, Weewx si occupa di effettuare una media dei dati di loop e restituisce il valore corrispondente al precedente intervallo di rilevazione.
Terminate le modifiche puoi premere CTRL + x per uscire, durante l´uscita è necessario premere "y" ed il tasto invio per salvare il file.
Ora, in base a come vorrai visualizzare o condividere i dati con i tuoi utenti, è possibile adottare due differenti soluzioni:
  • Soluzione 1: Ho / sto creando un sito web che si occupa della visualizzazione dei miei dati
    In questo caso potrebbe esserti utile poter caricare solo un file txt contenente i dati "raw". Un esempio della tipologia di file che otterrai e visibile qui.
  • Soluzione 2: Non ho un sito web che si occupa della visualizzazione dei miei dati
    Se sei interessato a condividere i tuoi dati senza dover creare un sito web ad-hoc è possibile utilizzare dei template preconfigurati di Weewx, qui puoi osservare un esempio del risultato che otterrai. I dati visualizzati nell´esempio sono generati da un simulatore, non sono quindi correlati alla data o ad una particolare zona geografica.
In entrambi i casi, se la tua stazione è localizzata in Piemonte, Lombardia, Liguria o Valle D´Aosta possiamo provvedere noi a visualizzare i tuoi dati all´interno di Meteotortona.it, per maggiori informazioni contattaci.

Soluzione 1

Come prima cosa, se non hai già un servizio di hosting attivo, è necessario procurarsene uno. Per le nostre installazioni utilizziamo solitamente il servizio gratuito offerto da Altervista, dopo aver compilato il form di iscrizione ed aver verificato l´indirizzo email associato puoi procedere ad utilizzare lo spazio a te dedicato. Ora è necessario configurare Weewx per effettuare l´export dei dati su un file TXT, torna alla finestra di putty e digita il seguente comando seguito da invio per posizionarti nella cartella "meteo":
cd /home/pi/meteo
ed il seguente comando seguito da invio per creare la cartella "output_data":
mkdir output_data
Succesivamente per l´installazione dell´estensione di Weewx digita il seguente comando seguito da invio:
sudo wee_extension --install weewx-crt-0.18_meteotortona.tgz
Il file "weewx-crt-0.18_meteotortona.tgz" dovresti averlo già copiato sul Raspberry in uno dei primi passaggi del presente post. Al termine dell´esecuzione del comando l´installazione è completata, possiamo procedere a connettere la stazione meteo al Rasperry ed ad avviare Weewx mediante il seguente comando:
sudo service weewx start
Dopo pochi minuti dall´avvio, se è stato tutto configurato correttamente, Weewx genererà il file di testo contenente i dati della tua stazione all´interno della cartella "/home/pi/meteo/output_data", per verficarlo puoi digitare il seguente comando seguito da invio:
cat /home/pi/meteo/output_data/realtime.txt
Prima di procedere all´inserimento delle direttive necessarie al caricamento del file è necessario installare il software FTP mediante il seguente comando:
sudo apt-get install ftp
Ed infine è necessario modificare i parametri presenti all´interno del file "upload_file.sh". Digita quindi il comando:
nano /home/pi/meteo/upload_file.sh
All´interno del file è necessario modificare i seguenti parametri:
  • "host"
    È il nome della macchina su cui è ospitato il tuo servizio di hosting. Se utilizzi il servizio offerto da Altervista corrisponde a ftp.username.altervista.org. Ad esempio se il il dominio scelto è mtblog.altervista.org il nome del server sarà ftp.mtblog.altervista.org.
  • "username"
    È necessario inserire lo username utilizzato per la autenticazione al servizio di hosting. Se usi il servizio offerto da Altervista corrisponde al nome di dominio che hai scelto in fase di registrazione. Ipotizzando che il dominio scelto sia mtblog.altervista.org lo user è "mtblog".
  • "password"
    È necessario sostituire alla parola "password" la password con cui accedere al tuo spazio. Se utilizzi il servizio offerto da Altervista ti è arrrivata via email a seguito della registrazione.
  • "path"
    È la cartella del server all´interno della quala Weather Display caricherà i file. Se si utilizza il servizio di hosting solo per Weather Display è possiile procedere ad inserire il valore "/" (senza apici).
Terminate le modifiche puoi premere CTRL + x per uscire, durante l´uscita è necessario premere "y" ed il tasto invio per salvare il file. Ora è necessario assicurarsi che entrambi gli script che andremo ad utilizzare siano eseguibili, digita quindi i seguenti comandi:
chmod +x /home/pi/meteo/reboot.sh
chmod +x /home/pi/meteo/upload_file.sh
È inoltre necessario inserire il nome della località in cui รจ installata la tua stazione, per fare ciò digita il seguente comando:
nano /home/pi/meteo/parse.py
All'interno del file dovrai sostiruire la stringa "Nome stazione" con il nome della località nella seguente linea (es: "Tortona\n"):
file_out.write("Nome stazione\n")
Puoi quindi procedere alla configurazione delle operazioni pianificate di Linux (cronjob) per l´invio del file ed il riavvio periodico del Raspberry. Digita il seguente comando seguito da invio:
crontab -e
Essendo la prima volta che accediamo alla configurazione del crontab ci viene richiesto quale editor di testo utilizzare, seleziona "nano" (premendo il numero corrispondente) e premi invio. Ora posizionati in fondo al file ed inserisci le seguenti righe di testo:

23 1 * * * sudo /home/pi/meteo/reboot.sh
2,7,12,17,22,27,32,37,42,47,52,57 * * * * /home/pi/meteo/upload_file.sh
				
Terminate le modifiche puoi premere CTRL + x per uscire, durante l´uscita è necessario premere "y" ed il tasto invio per salvare il file. Con la configurazione sopra indicata stiamo dicendo di eseguire lo script reboot.sh (quindi di riavviare il Raspberry) tutte le notti alle ore 01:23. Inolte stiamo schedulando l´esecuzione dello script che effettua l´upload del file (upload_file.sh) ogni cinque minuti a partire dal minuto 2 dell´ora. Abbiamo deciso di specificare i minuti in quanto Weewx legge i dati ogni cinque minuti a partire dall´ora, quindi ad esempio alle 22:00, 22:05, 22:10, ecc.. Specificando i minuti 2, 7, 12, ecc.. garantiamo che Weewx termini la lettura dei dati prima che venga effettuato l´invio del file. Ora puoi procedere al riavvio del Raspberry con il seguente comando seguito da invio:
sudo reboot
Se tutto è stato configurato correttamente dopo pochi minuti dal riavvio potrai vedere il risultato all´ interno del tuo spazio web, digitando all´interno del browser web il dominio che hai scelto ed il percorso del file visualizzerai i dati rilevati dalla tua stazione. Ad esempio, se il dominio è mtblog.altervista.org ed hai scelto di posizionare il file all´interno della cartella principale, puoi digitare "mtblog.altervista.org/dati_meteo.txt".
Opzionalmente, per ridurre il carico sul Raspberry e per ridurre il numero di scritture sulla SD card, puoi procedere alla rimozione dei servizi di Weewx non utili al nostro scopo. Per fare ciò apri il file di configurazione con il seguente comando:
sudo nano /etc/weewx/weewx.conf
Successivamente recati nella parte finale del file e commenta i seguenti servizi:
  • Parametro "restful_services": weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS
  • Parametro "report_services": weewx.engine.StdReport
Al termine della modifica i parametri devono risultare come segue:

restful_services = ,
#weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS
	
report_services = weewx.engine.StdPrint
#, weewx.engine.StdReport

Soluzione 2

Come prima cosa è necessario attivare un servizio di hosting online, per le nostre installazioni utilizziamo solitamente il servizio gratuito offerto da Altervista. Dopo aver compilato il form di iscrizione ed aver verificato l´indirizzo email associato puoi procedere ad utilizzare lo spazio a te dedicato. Ora è necessario configurare Weewx per l´invio dei dati online, torniamo quindi alla finestra di Putty e digitiamo il seguente comando seguito da invio:
sudo nano /etc/weewx/weewx.conf
All´interno del file di configurazione dobbiamo cercare la zona dedicata alla configurazione di FTP denominata [[FTP]], nella figura sottostante è visualizzato ciò che dovremmo vedere:
All´interno della zona di configurazione è necessario impostare i seguenti parametri:
  • Abilitazione dell´invio
    Per fare in modo che Weewx carichi in autonomia i file necessari sul tuo dominio il parametro "enable" deve essere impostato a "true"
  • Username
    È il nome utente con cui accedere al tuo spazio, se usi il servizio offerto da Altervista corrisponde al nome di dominio che hai scelto in fase di registrazione. Ipotizzando che il dominio scelto sia mtblog.altervista.org il nome utente è "mtblog".
  • Password
    È la password con cui accedere al tuo spazio, se usi il servizio offerto da Altervista ti è arrrivata via email a seguito della registrazione.
  • Server
    È il nome della macchina su cui è ospitato il tuo servizio di hosting, se usi il servizio offerto da Altervista corrisponde a ftp.username.altervista.org. Ad esempio se il il dominio scelto è mtblog.altervista.org il nome del server sarà ftp.mtblog.altervista.org.
  • Path
    È la cartella del server all´interno della quala Weewx caricherà i file. Utilizzando il servizio di hosting solo per Weewx possiamo procedere ad inserire il valore "/" (senza apici).
Terminate le modifiche puoi premere CTRL + x per uscire, durante l´uscita è necessario premere "y" ed il tasto invio per salvare il file. Prima di procedere a collegare la stazione meteo è necessario impostare il Raspberry per un riavvio quotidiano. Per fare ciò è necessario configurare le operazioni pianificate di Linux (cronjob) per l´esecuzione di una serie di comandi ad una determinata ora. Digitiamo quindi il seguente comando seguito da invio:
crontab -e
Essendo la prima volta che accediamo alla configurazione del crontab ci viene richiesto quale editor di testo utilizzare, seleziona "nano" (premendo il numero corrispondente) e premi invio. Ora posizionati in fondo al file ed inserisci la seguente riga di testo:

23 1 * * * sudo /home/pi/meteo/reboot.sh
				
Terminate le modifiche puoi premere CTRL + x per uscire, durante l´uscita è necessario premere "y" ed il tasto invio per salvare il file. Con la configurazione sopra indicata stiamo schedulando l´esecuzione dello script reboot.sh tutte le notti alle ore 01:23. Lo script è presente all´interno del "Pacchetto software Meteotortona" che hai precedentemente scaricato e si occupa di riavviare il Raspberry PI. È inoltre necessario rendere lo script eseguibile, digita quindi il seguente comando:
chmod +x /home/pi/meteo/reboot.sh
Ora puoi procedere a collegare la tua stazione meteo al Raspberry ed al riavvio con il seguente comando seguito da invio:
sudo reboot
Abbiamo terminato di effettuare tutte le configurazioni necessarie al corretto funzionamento di Weewx. Dopo qualche minuto dal riavvio del Raspberry, recandoti con il tuo browser sul dominio precedentemente registrato dovresti vedere i dati relativi alla tua stazione. Opzionalmente possiamo procedere anche alla configurazione delle unità di misura utilizzate da Weewx, digita il seguente comando seguito da invio:
sudo nano /etc/weewx/weewx.conf
All´interno del file di configurazione dobbiamo cercare la zona dedicata alla configurazione delle unità di misura, denominata [[Defaults]] [[[Units]]] [[[[Groups]]]], nella figura sottostante è visualizzato ciò che dovresti vedere:
Terminate le modifiche puoi premere CTRL + x per uscire, durante l´uscita è necessario premere "y" ed il tasto invio per salvare il file. A seguito di ogni modifica che effettui al file di configurazione di Weewx è necessario riavviare il programma con il seguente comando seguito da invio:
sudo service weewx restart
È inoltre possibile modificare il template utilizzato da Weewx per la visualizzazione dei dati. La modifica non è però oggetto del presente post, per maggiori informazioni puoi consultare la documentazione ufficiale di Weewx.
Se hai deciso di utilizzare Altervista come servizio di hosting è necessaria una ultima modifica. Altervista fornisce un servizio di caching delle risorse quali ad esempio immagini o script, tale servizio è solitamente molto utile in quanto permette il caricamento delle risorse in tempi molto più brevi. Nel nostro caso però, considerando che anche i grafici visualizzati da Weewx sono immagini, è necessario disattivare il servizio per evitare che anche i grafici vengano memorizzati in cache e non risultino aggiornati. Per fare ciò devi accedere al tuo pannello di amministrazione di Altervista, premere sul menù "Risorse" e successivamente "Modifica impostazioni PHP". All´interno della pagina che si apre è necesario selezionare il tab "Modifica sorgente .htaccess (Avanzato)", incollare il testo qui sotto all´interno dell´area di testo e premere salva (potrebbe essere necessaria fino ad una ora perchè la modifica abbia effetto).
					
ExpiresActive On
ExpiresByType image/jpeg "Modification plus 1 seconds"
ExpiresByType image/png "Modification plus 1 seconds"
				
Verifica problemi

In caso di problemi puoi verificare il corretto funzionamento di Weewx accedendo al Raspberry ed effettuando le seguenti operazioni:
  • Check stato del servizio
    Puoi verificare lo stato di Weewx con il seguente comando seguito da invio:
    sudo service weewx status
    Nella figura sottostante è riportato ciò che dovresti vedere se Weewx sta funzionando correttamente:
  • Check file di log
    Puoi verficare i log di Weewx con il seguente comando seguito da invio:
    nano /var/log/syslog
    L´interpretazione dei log potrebbe essere piuttosto complessa in quanto il file utilizzato anche da molti altri programmi. Terminata la consultazione puoi premere CTRL + x per uscire, durante l´uscita, se hai modificato qualcosa, è necessario premere "n" ed il tasto invio per evitare di salvare il file.