Formia - LT - Italy - JN61TG
iz0fiu@gmail.com

Ricezione Autonoma dei Satelliti NOAA con Raspberry PI

Fun with everyone, Fun everywhere. Enjoy

Ricezione Autonoma dei Satelliti NOAA con Raspberry PI

Oggi vi proponiamo la possibilità di ricevere una un Raspberry e una chiavetta SDR le immagini meteo dai satelliti NOAA

Materiali necessari:

Raspberry PI 
Chiavetta SDR ( io ho usato la chiavetta SDR-RTL ) 

Io vi consiglio di inserire un filtro 88-108 tra l’antenna e il raspberry. La ricezione migliorerà sicuramente, evitando di mandare in saturazione le chiavette a causa dei forti segnali delle radio commerciali

Preparare la distribuzione ( se non l’avete a portata di mano ) sul raspberry e avviarlo. inserite i seguenti comandi:

sudo apt-get update
sudo apt-get upgrade
sudo reboot now

Andiamo avanti, appena riavviato, installando le libreire ed il tool cmake

sudo apt-get install libusb-1.0
sudo apt-get install cmake

creiamo il file no.rtl.conf con:

sudo nano /etc/modprobe.d/no-rtl.conf

ed inseriamo:

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

Ora installiamo la suite SDR:

cd ~
git clone https://github.com/keenerd/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot now

Per poter registrare l’audio e far partire la decodifica ad un orario prestabilito usiamo:

sudo apt-get install sox
sudo apt-get install at
sudo apt-get install predict

Ora installiamo il software di decodifica:

cd ~
wget https://www.iz0fiu.it/wxtoimg_arm/wxtoimg-armhf-2.11.2-beta.deb
sudo dpkg -i wxtoimg-armhf-2.11.2-beta.deb

Adesso, dobbiamo inserire la chiavetta SDR nella porta USB del raspberry. Spegniamo il tutto, inseriamo la chiavetta e riaccendiamo. Per vedere se e’ andato tutto ok inseriamo il comando:

sudo rtl_test

Dovrebbe restituirci una risposta simile:

Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 ... 
Sampling at 2048000 S/s.

Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.

Reading samples in async mode...

Ora prepariamo il software per prevedere i passaggi:

predict

Apparirà una grafica dove dobbiamo inserire i parametri della nostra stazione:

*  Ground Station Location Editing Utility  *



                        Station Callsign  : IZ0FIU
                        Station Latitude  : 41.2621 [DegN]
                        Station Longitude : -13.6245 [DegW]
                        Station Altitude  : 50 [m]



            Enter the callsign or identifier of your ground station

Ora avviamo WxtoIMG per accettare i termini di utilizzo:

wxtoimg

Chiudiamolo e creiamo il file di configurazione:

sudo nano ~/.wxtoimgrc

Anche qui inseriamo le nostre coordinate:

Latitude: 41.2621
Longitude: 13.6245
Altitude: 50

In questo caso la Longitudine e’ EST, quindi a differenza di prima non dobbiamo inserire il segno “-” davanti il numero. Proseguiamo:

cd ~
mkdir weather
cd weather
mkdir predict
cd predict
sudo nano schedule_all.sh

ed inseriamo all’interno:

#!/bin/bash

# Update Satellite Information

wget -qr https://www.celestrak.com/NORAD/elements/weather.txt -O /home/pi/weather/predict/weather.txt
grep "NOAA 15" /home/pi/weather/predict/weather.txt -A 2 > /home/pi/weather/predict/weather.tle
grep "NOAA 18" /home/pi/weather/predict/weather.txt -A 2 >> /home/pi/weather/predict/weather.tle
grep "NOAA 19" /home/pi/weather/predict/weather.txt -A 2 >> /home/pi/weather/predict/weather.tle
grep "METEOR-M 2" /home/pi/weather/predict/weather.txt -A 2 >> /home/pi/weather/predict/weather.tle



#Remove all AT jobs

for i in `atq | awk '{print $1}'`;do atrm $i;done


#Schedule Satellite Passes:

/home/pi/weather/predict/schedule_satellite.sh "NOAA 19" 137.1000
/home/pi/weather/predict/schedule_satellite.sh "NOAA 18" 137.9125
/home/pi/weather/predict/schedule_satellite.sh "NOAA 15" 137.6200

Usciamo salvando con CTRL+X e proseguiamo:

sudo nano schedule_satellite.sh

ed inseriamo:

#!/bin/bash
PREDICTION_START=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" | head -1`
PREDICTION_END=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" | tail -1`


var2=`echo $PREDICTION_END | cut -d " " -f 1`

MAXELEV=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" | awk -v max=0 '{if($5>max){max=$5}}END{print max}'`

while [ `date --date="TZ=\"UTC\" @${var2}" +%D` == `date +%D` ]; do

START_TIME=`echo $PREDICTION_START | cut -d " " -f 3-4`
var1=`echo $PREDICTION_START | cut -d " " -f 1`

var3=`echo $START_TIME | cut -d " " -f 2 | cut -d ":" -f 3`

TIMER=`expr $var2 - $var1 + $var3`

OUTDATE=`date --date="TZ=\"UTC\" $START_TIME" +%Y%m%d-%H%M%S`

if [ $MAXELEV -gt 19 ]
  then
    echo ${1//" "}${OUTDATE} $MAXELEV

    echo "/home/pi/weather/predict/receive_and_process_satellite.sh \"${1}\" $2 /home/pi/weather/${1//" "}${OUTDATE} /home/pi/weather/predict/weather.tle $var1 $TIMER" | at `date --date="TZ=\"UTC\" $START_TIME" +"%H:%M %D"`

fi

nextpredict=`expr $var2 + 60`

PREDICTION_START=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" $nextpredict | head -1`
PREDICTION_END=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}"  $nextpredict | tail -1`

MAXELEV=`/usr/bin/predict -t /home/pi/weather/predict/weather.tle -p "${1}" $nextpredict | awk -v max=0 '{if($5>max){max=$5}}END{print max}'`

var2=`echo $PREDICTION_END | cut -d " " -f 1`

done

Salvare, uscire e creiamo l’ultimo file:

sudo nano receive_and_process_satellite.sh

ed inseriamo:

#!/bin/bash

# $1 = Satellite Name
# $2 = Frequency
# $3 = FileName base
# $4 = TLE File
# $5 = EPOC start time
# $6 = Time to capture

sudo timeout $6 rtl_fm -f ${2}M -s 60k -g 44.5 -p 55 -E wav -E deemp -F 9 - | sox -t wav - $3.wav rate 11025

PassStart=`expr $5 + 90`

if [ -e $3.wav ]
  then
    /usr/local/bin/wxmap -T "${1}" -H $4 -p 0 -l 0 -o $PassStart ${3}-map.png

    /usr/local/bin/wxtoimg -m ${3}-map.png -e ZA $3.wav $3.png
fi

In questo file facciamo attenzione ad un parametro, ovvero il numero dopo “-g” che dovrà variare da chiavetta a chiavetta a seconda dei parametri supportati del “Gain” che abbiamo letto prima, cerchiamo di trovare il valore che corrisponda al 70-75% del massimo supportato, ci garantirà la migliore qualità. Probabilmente dovremo cambiarlo in futuro a seconda della qualità immagini ricevute. Un altro parametro di cui tener nota è la correzione in ppm (il numero dopo il parametro “-p”) del quarzo della nostra chiavetta, di default è a 0 ma andrà revisionato a seconda del nostro hardware

sudo chmod +x schedule_all.sh
sudo chmod +x schedule_satellite.sh
sudo chmod +x receive_and_process_satellite.sh

rendiamo eseguibile il tutto:

export EDITOR=nano
crontab -e

ed inseriamo in fondo:

1 0 * * * /home/pi/weather/predict/schedule_all.sh
@reboot sleep60 && /home/pi/weather/predict/schedule_all.sh

Riavviamo il tutto e siamo pronti a ricevere le immagini dai satelliti NOAA.

Ad ogni passaggio e successiva decodifica, nella cartella weather ci saranno tre file, 2 immagini di cui una mappa ed un file audio.

Tags: , , , ,

5 risposte

  1. IZ4MEH ha detto:

    Ciao
    Ho installato il tutto e funziona perfettamente , ma le immagini hanno sfondo nero e non a colore.
    Ho letto che bisogna cambiare le impostazioni di wxtoim .
    Non so come fare dal promt dei comandi e dal desktop non ho la possibilità di aprire wxtoimg.
    Mi puoi dare qualche suggerimento ?
    Grazie

    • admin ha detto:

      Grazie per il tuo interesse. Da prompt, quindi da terminale, devi digitare wxtoimg e si avvia il programma. Infatti, coma da tuo riferimento, non c’e’ una icona per avviare il software. Fammi sapere

      • IZ4MEH ha detto:

        Ciao
        grazie della info , ho trovato il percorso e ho cambiato impostazioni.
        adesso devo capire perchè il sistema funziona bene per due/tre giorni e poi si blocca
        Grazie ancora

  2. IW0UWF ha detto:

    Salve, ho provato a fare quanto descritto x poter ricevere qualcosa…purtroppo ho messo solo una jpole che comunque un segnale lo riceve..
    Penso che non trovo niente nella cartella perche’ al raspi gli manca qualcosa ….help

    • admin ha detto:

      Il sistema gira in back-ground? Non vorrei che il software non è attivo al riavvio del Raspberry

Rispondi