Traffico aereo e ADS-B: come leggere i dati sui voli in tempo reale

Con una semplice ed economica attrezzatura è possibile ricevere e condividere online i dati sui voli aerei in tempo reale. Come si fa come si configura una Raspberry Pi per inviare le informazioni a servizi come FlightAware e Flightradar24.

Articolo a cura di Andrea d’Alessandro, che ringraziamo.

Sapevate che è possibile ricevere le informazioni sui voli aerei direttamente dagli aeromobili? E sapevate che chiunque può farlo con un’apparecchiatura modesta e quasi a costo zero? Come fanno i siti che mostrano in tempo reale i dati sul traffico aereo a condividere informazioni così precise?

In questo articolo presentiamo una breve guida su come realizzare un ricevitore per i dati ADS-B e ricevere in tempo reale informazioni sui voli utilizzando una Raspberry Pi (consigliamo almeno una Raspberry Pi 3) e una chiavetta DVB-T.

Cos’è ADS-B e cosa significa

ADS-B è acronimo di Automatic Dependent Surveillance – Broadcast: le informazioni veicolate da questo sistema (trasmesse direttamente dagli aerei) servono a identificare la posizione del trasmittente trasmettendo dati sulla rotta, la quota di volo, la velocità insieme con altre informazioni utili per il controllo del traffico aereo.

Il sistema ADS-B non va confuso con ACARS che lavora a frequenze diverse (131,5 MHz in Europa) e ha scopi leggermente diversi come l’invio di brevi messaggi di testo, la segnalazione di eventuali anomalie, dati di telemetria e diagnostica.

Nel caso di ADS-B i dati sono inviati in broadcast ovvero senza un destinatario preciso ed oltretutto sono in chiaro, senza l’utilizzo della crittografia.
Sono quindi informazioni immediatamente accessibili da parte di chiunque sia dotato di un ricevitore adatto, sintonizzato sulla frequenza dei 1090 MHz (in Europa, o 978 MHz negli Stati Uniti).
Le informazioni di posizione vengono rilevate dai sistemi GPS a bordo degli aeromobili e vengono utilizzate, oltre che per il controllo del traffico aereo, anche dai vari siti web che rappresentano in tempo reale la mappa del traffico aereo (ad esempio FlightAware, PlaneFinder e Flightradar24).

Ma come fanno questi siti ad avere una copertura globale? La risposta è che viene utilizzata una fitta rete di ricevitori, in continua espansione, come si vede dal grafico dei nodi attivi nel caso di FlightAware.

Chiunque può partecipare al progetto in modo volontario ottenendo in alcuni casi anche dei benefit come l’hardware adatto a titolo completamente gratuito.

Come assemblare un ricevitore ADS-B basato su Raspberry Pi: i requisiti

Per realizzare un ricevitore ADS-B con una Raspberry Pi e condividere i dati ricevuti sia con FlightAware che con Flightradar24 sono necessari i seguenti componenti:

  • Raspberry Pi 3 o versioni successive. Le indicazioni riportate nella nostra guida sono riferibili anche ai modelli inferiori ma la Raspberry Pi 3 si conferma una buona scelta sia per il convincente rapporto prezzo/dotazioni, sia per la presenza del modulo WiFi a bordo
  • Una scheda microSD da almeno 4 GB, possibilmente in classe 10.
  • Un alimentatore per Raspberry
  • Un kit come questo che include anche un case, un dissipatore di calore per la CPU, un lettore di schede microSD oltre a un cavo HDMI che in realtà non è necessario in quanto tutto può essere fatto senza monitor.
  • Un comunissimo dongle DVB-T compatibile con i vari software SDR (software defined radio) come quelli basati sul chipset RTL2832U in accoppiata con il tuner R820T. Un esempio è questo dotato anche di una piccola antenna. Per una ricezione più efficace è possibile installare antenne ad alto guadagno e filtri che tagliano le frequenze al di fuori della banda 1090 MHz.

Il modo più semplice per avere un sistema pronto all’uso è scaricare la ISO dal sito di FlightAware per andare poi a modificare la configurazione al fine di condividere i dati anche con Flighradar24 (ed ottenere gratuitamente il piano business).

Installazione e configurazione del sistema

Per cominciare, dopo essersi attrezzati con l’hardware necessario (vedere il paragrafo precedente), si può scaricare PiAware cliccando qui.
L’immagine di PiAware dovrà essere applicata su una scheda microSD utilizzando ad esempio la nota utilità Etcher.
Il contenuto del file compresso dovrà dapprima essere estratto in una cartella temporanea quindi scritto sulla microSD usando Etcher o utilità analoghe.

Una volta terminata la scrittura si può procedere in diversi modi a seconda che la Raspberry Pi sia dotata o meno di monitor e tastiera, della tipologia di rete – se cablata o WiFi – ed ancora se si desiderasse assegnare un IP statico alla scheda oppure se si preferisse fare affidamento al protocollo DHCP (configurazione consigliata, con prenotazione dell’IP sul router).

Prima di inserire la microSD nella Raspberry Pi bisognerà modificare da PC il contenuto del file di configurazione piaware-config.txt.
Si può aprire il file con il Blocco Note di Windows oppure con un editor di testi su macOS.

Se si desiderasse assegnare un IP statico all’interfaccia Ethernet, scorrendo il file e considerando che le righe che iniziano per # sono commenti, si dovrà individuare la parte seguente:

# Alternatively, a static address configuration
# can be provided; set "wired-type" to static to use this.

Aggiungere le seguenti righe personalizzando gli indirizzi secondo proprie necessità:

wired-address 192.168.1.10
wired-netmask 255.255.255.0
wired-broadcast 192.168.1.255
wired-gateway 192.168.1.254
wired-nameservers 8.8.8.8 8.8.4.4

Per configurare la rete WiFi, portarsi in corrispondenza della sezione:

# Wifi SSID and password.
# This should be changed to match your wireless
# network SSID and, for networks that require
# a passphrase, the passphrase.
wireless-ssid MyWifiNetwork <-----(inserire qui il SSID della propria rete)
wireless-password s3cr3t <-----(inserire qui la password della propria rete)

Volendo assegnare un IP statico, procedere come per la rete cablata, aggiungendo dopo il commento

# Alternatively, a static address configuration
# can be provided; set "wireless-type" to static to use this.

le seguenti righe:

wireless-address 192.168.1.10
wireless-netmask 255.255.255.0
wireless-broadcast 192.168.1.255
wireless-gateway 192.168.1.254
wireless-nameservers 8.8.8.8 8.8.4.4

La configurazione di default prevede l’utilizzo del protocollo DHCP su entrambe le interfacce.

Facendo leva su questo file è inoltre possibile configurare diversi parametri avanzati: per i più curiosi suggeriamo la guida ufficiale.

Da ultimo bisognerà salvare il file in “plain-text” assicurandosi specialmente su macOS di non utilizzare codifiche particolari (con il Blocco Note di Windows non ci sono problemi).
A questo punto si potrà finalmente inserire la scheda microSD nella Raspberry Pi.

Ovviamente tutte le impostazioni sono configurabili direttamente dalla Raspberry, se dotata di monitor e tastiera effettuando l’accesso al primo avvio.

Teniamo presente che il pacchetto PiAware installato è completamente basato su Raspbian (il sistema operativo linux based ottimizzato per Raspberry) quindi tutte le conoscenze e le funzionalità di questo sistema sono utlizzabili senza problemi.

All’avvio però non ci si troverà di fronte alla classica schermata di login, come su una comune installazione di Raspbian, ma sulla schermata diagnostica di PiAware. Per ottenere l’accesso è sufficiente premere ALT+F2 e ci si troverà nella schermata di login.

L’utente configurato di default è il solito “pi” e la password è “flightaware”. Per personalizzarla, come in Raspbian o altri sistemi linux, è possibile usare il comando linux passwd.

Già che ci siamo, possiamo abilitare SSH che di default è disabilitato. Per farlo è sufficiente portarsi nella directory /boot e crearvi un file vuoto chiamato ssh (senza alcuna estensione). Riavviando il sistema sarà possibile proseguire via terminale SSH.
In alternativa è possibile proseguire tutta la configurazione attraverso la riga di comando, direttamente dalla console.

Sin dalla prima accensione, se la chiavetta USB DVB-T è stata collegata alla Raspberry, subito dopo il boot la stazione è pronta per inviare i dati ricevuti a FlightAware ma è necessario associarla al proprio account per aggiungere alcuni dettagli importanti.

Per verificare che tutto stia funzionando regolarmente, è possibile puntare un qualsiasi browser all’IP privato della Raspberry.
Se alla Raspberry fosse stato collegato un monitor, l’IP è visibile sulla schermata principale insieme con altre informazioni diagnostiche come lo stato delle interfacce di rete, del ricevitore, il collegamento con FlightAware e l’utilizzo della multilaterazione, sulla quale torneremo più tardi.
Da browser, invece, puntando all’IP indicato si troverà una schermata simile a questa:

Gli indicatori verdi indicano il corretto funzionamento. In caso di problemi uno o più indicatori saranno in giallo o rosso.
L’ultimo (MLAT), al primo avvio, è sicuramente giallo: vedremo dopo il motivo. Anche 1090 Radio potrebbe essere in giallo a indicare che il ricevitore è attivo ma non ha ancora rilevato alcun dato.

Cliccando sul bottone Go to 1090 SkyAware Map si accede immediatamente alla mappa con le rilevazioni istantanee e se si è fortunati sarà già presente qualche velivolo.

Cliccando su View your site statistics online verremo portati sul sito di FlightAware con le statistiche dei dati inviati dalla nostra stazione, disponibili già qualche minuto dopo le prime rilevazioni.

A questo punto, se ci fosse è precedentemente registrati su FlightAware con il piano gratuito, circa 30 minuti dopo le prime rilevazioni, sarà possibile associare il ricevitore al proprio account cliccando sul simbolo raffigurante un piccolo ingranaggio (presente nella pagina delle statistiche).

Nel popup che si apre andranno inserite alcune informazioni per completare la registrazione:

Una volta inserita la propria posizione si attiverà anche la multilaterazione (MLAT) che rileva la posizione degli aerei incrociando i dati di ritardo tra i segnali ricevuti da più ricevitori.

La configurazione è così completata, e a breve l’account free sarà automaticamente trasformato in enterprise.

Consigliamo di posizionare l’antenna in spazi aperti, più in alto possibile. Sarà facile in questo modo ricevere dati da aerei che distano anche 250 chilometri o più.

Vediamo ora come aggiungere il collegamento a Flightradar24 (nel seguito, FA24) e ottenere anche in questo caso un account business gratis.

La configurazione di questa parte è leggermente più complessa ed è indispensabile accedere almeno una volta alla console della Raspberry tramite monitor e tastiera, quantomeno per abilitare l’accesso SSH, o fare tutto da console.

Per prima cosa, una volta arrivati alla riga di comando, indifferentemente via console o SSH, si dovrà lanciare uno script che si occuperà di scaricare e installare tutto l’occorrente per condividere i dati con FA24:

sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"

Partirà una breve configurazione per completare l’installazione: sono necessarie alcune attenzioni per poter far coesistere PiAware e FA24.

È importantissimo non selezionare DVB-T stick come ricevitore, altrimenti il pacchetto installerà automaticamente la propria versione dell’utility dump1090, che non è compatibile con quella precedentemente installata da FlightAware impedendone il funzionamento.

Con questo accorgimento, invece, è possibile utilizzare i dati già acquisiti. Il ricevitore e l’elaborazione dei dati sono già configurati ed attivati sul Raspberry: per via della precedente installazione possiamo “agganciarci” a quel flusso di dati.
Procedere quindi nella configurazione come segue, inserendo le risposte evidenziate in rosso ignorando il suggerimento di utilizzare dump1090:

Step 4.1 - Receiver selection (in order to run MLAT please use DVB-T stick with dump1090 utility bundled with fr24feed):

1 – DVBT Stick (USB)
—————————————————–
2 – SBS1/SBS1er (USB/Network)
3 – SBS3 (USB/Network)
4 – ModeS Beast (USB/Network)
5 – AVR Compatible (DVBT over network, etc)
6 – microADSB (USB/Network)
7 – SBSx via Basestation (localhost:30006)

Enter your receiver type (1-7)$: 4

Step 4.2 - Please select connection type:

1 – Network connection
2 – USB directly to this computer

Enter your connection type (1-2)$: 1

Step 4.3A - Please enter your receiver's IP address/hostname
$:
127.0.0.1 (indirizzo locale del raspberry stesso)

Step 4.3B - Please enter your receiver's data port number
$:
30005

Step 5.1 - Would you like to enable RAW data feed on port 30334 (yes/no)$:

no

Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:

no

Seguiranno alcune domande per completare la configurazione. La cosa più importante è l’inserimento dell’indirizzo email che deve coincidere con quello utilizzato per registrarsi su FA24 così da ottenere l’upgrade gratuito al ricevimento dei primi dati.

Durante la prima configurazione viene chiesta anche una Sharing key che va lasciata vuota se è la prima volta che si condividono i dati con Flightradar. Verrà automaticamente assegnata successivamente.

Al termine della configurazione, per verificare che tutto funzioni regolarmente, ci sono due possibilità: da console o SSH digitare il comando fr24feed-status.

Se tutto è andato a buon fine dovrebbe comparire qualcosa del genere:

pi@piaware:~ $ fr24feed-status
[ ok ] FR24 Feeder/Decoder Process: running.
[ ok ] FR24 Stats Timestamp: 2021-01-12 12:20:31.
[ ok ] FR24 Link: connected [TCP].
[ ok ] FR24 Radar:.
[ ok ] FR24 Tracked AC: 0.
[ ok ] Receiver: connected (1220 MSGS/0 SYNC).
[ ok ] FR24 MLAT: ok [UDP].
[ ok ] FR24 MLAT AC seen: 0.

In alternativa si può puntare il browser sull’IP della raspberry, lo stesso utilizzato in precedenza, utilizzando però la porta 8754. Esempio: http://ip-del-raspberry:8754.

Si dovrebbe ottenere una schermata come la seguente:

FR24 Radar Code potrebbe non apparire immediatamente ma solo quando i primi dati vengono acquisiti dal sito.

Dopo qualche minuto, al rilevamento di qualche aeromobile, si vedranno crescere i valori Aircraft tracked e Aircraft uploader. Il proprio account free sarà trasformato in business con la rimozione dei banner e l’accesso a molte informazioni avanzate.

Ti consigliamo anche

Link copiato negli appunti