Publié le 11 avril 2015 - par

Un Raspberry Pi pour suivre les avions sur FlightRadar24

20150408_2150_250px Lors du crash de l’Airbus A320 de Germanwings (24 mars 2015), de nombreuses personnes ont découvert l’existence de FlightRadar24.
FlightRadar24 regroupe les données ADS-B (Automatic Dependent Surveillance-Broadcast) fournies par plusieurs milliers de récepteurs répartis à la surface du globe. Ces récepteurs sont mis en œuvre par des personnes qui participent ainsi au fonctionnement de ce système international. D’ailleurs FlightRadar24 fournit des systèmes de réception à ceux qui en font la demande et qui sont éligibles du fait de leur position géographique dans une zone encore mal couverte.

Un Raspberry Pi pour suivre les avions sur FlightRadar24

Comment ça marche, l’ADS-B ?

adsb_flightradar

Principe de l’ADS-B – Source FlightRadar24 ©

La technologie que FlightRadar24 utilise pour recevoir des informations de vol est appelée ADS-B. Cette technologie est illustrée sur l’image ci-dessus.

  • L’avion récupère sa localisation à partir d’un récepteur GPS
  • Le transpondeur ADS-B installé sur l’avion transmet un signal à 1090 MHz contenant cette information de position ainsi que d’autres données (N° du vol et indicatif, altitude, vitesse, vitesse ascensionnelle…)
  • Le signal du transpondeur ADS-B est capté par un récepteur au sol, connecté aux serveurs de FlightRadar24
  • Le récepteur envoie les données reçues à Flightradar24
  • Les données s’affichent sur www.flightradar24.com et les applications FlightRadar24
transpondeur

Transpondeur ADS-B

ADS-B est une technologie relativement nouvelle et toujours en cours de développement ce qui signifie qu’actuellement elle est rarement utilisé pour le contrôle de la circulation aérienne. FlightRadar24 estime que près de 65% des avions commerciaux transportant des passagers (75% en Europe, 35% aux États-Unis) sont équipés d’un transpondeur ADS-B. Pour l’aviation en  général ce nombre est probablement inférieur à 20%. Mais ce pourcentage est en constante augmentation et l’ADS-B deviendra obligatoire mondialement pour la plupart des avions en 2020. Lorsqu’il sera obligatoire, l’ADS-B remplacera les radars primaires comme méthode de surveillance aérienne utilisé par l’ATC.

AXP340angle

Transpondeur ADS-B

FlightRadar24 (basée à Stockholm) dispose d’un réseau de plus de 6000 récepteurs ADS-B répartis dans le monde qui reçoivent les informations de vol des avions équipés de transpondeur ADS-B et renvoie ces informations à ses serveurs. En raison de la haute fréquence utilisée (1 090 MHz) la couverture de chaque récepteur est limitée à environ 250 à 400 km autour de l’antenne en fonction de l’endroit où elle est implantée. Plus un avion vole loin du récepteur plus il doit voler haut pour être dans la zone couverte par le récepteur. La portée maximale fait qu’il est très difficile d’obtenir une couverture ADS-B au-dessus des océans.

Environ 99% de l’Europe est couverte de récepteurs ADS-B. Il ya aussi une bonne couverture ADS-B aux Etats-Unis, Canada, Mexique, Caraïbes, Brésil, Russie, Moyen-Orient, Inde, Japon, Thaïlande, Malaisie, Indonésie, Australie et Nouvelle-Zélande. Dans les autres parties du monde, la couverture ADS-B est très variable.

Les transpondeurs et antennes sur avion

Il existe de nombreux modèles de transpondeurs pour avion, comme ceux qui figurent plus haut dans l’article.

adsb_transponder01Celui-ci est en deux partie, avec un élément de commande qui peut se monter sur le tableau de bord, et un bloc électronique déporté.

adsb_transponder02Cet ensemble (qui intègre un transpondeur présenté plus haut) est équipé d’un afficheur qui permet au pilote de voir les appareils équipés d’un ADS-B sur une carte. Ceci améliore la sécurité des vols.

adsb_antenna2Les antennes peuvent également revêtir des apparences différentes, mais le plus souvent c’est ce type d’antenne qui est utilisé.

adsb_antenna3

Les récepteurs

FR24

Côté réception beaucoup de possibilités existent. en dehors des matériels professionnels ci-dessus.

free-ads-b-equipment-66_400FlightRadar24 offre ce modèle pour équiper les stations situées dans des zones qui sont intéressantes pour le service (zones mal ou peu couvertes).

Caractéristiques

  • Processeur embarqué – opérationnel sans ordinateur
  • Formats reçus : 1090 MHz Mode S, ADS-B et Mode-AC
  • Plage de réception : plus de 225 Km (en fonction de la qualité de l’antenne et de son emplacement)
  • Vitesse de traitement : plus de 1600 trames Mode-S par seconde (dans les zones à fort trafic)
  •  Horodatage en mode 12Mhz ou haute résolution en mode GPS
  • IP automatiquement attribué par DHCP
  • Fonctionne derrière un NAT
  • Consommation d’énergie : moins de 5W
  • Consommation bande passante : 200 à 800 Mo / mois en fonction de la couverture
free-ads-b-equipment-67_400

L’antenne fournie par FlightRadar24

Contenu du kit de réception fourni par FlightRadar24

  • Le récepteur FR24 ADS-B
  • L’antenne GPS avec 5 m de câble
  • Une alimentation continue (entrée 110V-230V ~)
  • 5 m de câble Ethernet
  • Une antenne mode S de 38 cm de long avec système de montage (0 dBd de gain, 55 cm de long, étanche)
  • Un câble coaxial de 5 ou 10 mètres de long pour antenne mode-S, avec connecteur. Câble de type H155 de 6 mm de diamètre à faible perte. Câble équipé avec connecteur SMA mâle et connecteur de type N

Le stick FlightRadar24

dvbt-stick-adsb-receiver-48_380 53200_mSur la boutique la boutique jetvision vous trouverez les solutions de récepteur DVB-T (Digital Video Broadcast – Terrestrial) préconisées par FlightRadar24. Il existe une version avec la petite antenne représentée ci-dessus (23€) mais vous pouvez choisir une antenne extérieure de meilleure qualité (78€).

La solution d’Erik

Sur blogwifi.fr, Erick d’Infracom a publié un article sur la réception de l’ADS-B avec un récepteur USB DVB-T et un Raspberry Pi. La framboise est utilisée pour décoder les signaux, les afficher et envoyer les trames à FlightRadar24. Il a aussi réalisé une antenne colinéaire pour améliorer la réception

Le projet

Une grande partie des avions est équipée d’un transpondeur, chargé de diffuser des informations destinées à assurer la sécurité aérienne, mais accessibles à ceux qui souhaitent les écouter. On y retrouve l’altitude, la vitesse, le cap, etc. L’avion va donc se faire « voir » des autres avions et du contrôle au sol, mais également de la station au sol réalisée par Erik pour recevoir les données, via un RaspberryPi, pour ensuite les diffuser sur le site FlightRadar24.

L’idée est de contribuer au site, en apportant une nouvelle zone de couverture sur la région de St Nazaire, région peu couverte lorsque les avions sont à basse altitude, comme le montre le suivi de la navette Airbus St Nazaire / Toulouse un matin :

flightradar-LFRZOn ne voit rien du décollage de St-Nazaire, la trace ne débute que lorsque l’avion dépasse les 5000 pieds (1,5 Km) environ, et encore. Depuis Crossac, il devrait être possible de pouvoir améliorer cette couverture qui semble un peu faible, et ainsi suivre les Beluga qui se posent à St-Nazaire, suivre les avions en exercice, les avions de tourisme qui découvrent la côte et les marais de Brière, etc.

Comme tout ce qui tourne autour de la radio, tout commence par l’antenne ! Il y a un proverbe radioamateur qui dit « Ce que vaut l’antenne, vaut la station »… Et qui dit bonne antenne, dit antenne maison 😉 : une colinéaire, taillée pour fonctionner sur 1090 MHz, la fréquence de l’ADS-B !

L’antenne

colineaire-1090-500x1024

Antenne colinéaire d’Erik en cours de construction

Je vous entends déjà : oulaaa, compliqué, impossible, marchera jamais !! Allez, courage, un peu de câble 75 Ohm pour satellite, et prenez bien un câble avec une âme pleine (avec une âme PLEINE, pas multi-brins), et un p’tit tuto sur Youtube :

Pas compliqué non ? Ce que le tuto oublie de dire : ajoutez deux brins à la fois, il faut, au final, avoir un nombre PAIR de brins, très important…

coli2Venons maintenant rajouter un connecteur en bricolant un peu :

colineaire-1090-adbsPar rapport à la vidéo, Erik a utilisé de la gaine thermo-rétractable pour solidifier, pas du scotch. Le câble qui va de l’antenne au récepteur USB DVB-T est lui en H155, faibles pertes, utilisable jusqu’à 5 GHz environ, donc parfaitement adapté pour une simple réception. Erik a ensuite réalisé un petit pigtail (petit bout de câble servant d’adaptateur) MCX / N femelle pour venir sur le module USB, avec du RG316. C’est par contre un petit peu moins accessible au bricoleur lambda, sauf si vous disposez des outils pour réaliser le sertissage.

Avec un petit peu plus de matériel, l’antenne a pris forme, elle a surtout bénéficié d’un habillage de protection, de façon à résister à un usage extérieur :

flightradar-colineaire-1090-MHzLa voici par exemple avant sa finalisation, ouverte. Les matériaux sont simples : un tube PVC diam. 30 coupé à la bonne dimension, des embouts pour le fermer et un vague coup de bombe de peinture blanche pour ne pas effrayer des voisins un peu bizarres :-)

Un peu de colle PVC et hop, voici une antenne prête à être installée au bout d’un mât :

flightradar-colineaire-1090-MHz2

Un câble H155 de 4 m vient s’y raccorder, en connectique N mâle. Sur la clé de réception, Erik a assemblé un adaptateur MCX / N femelle tout simple, en attendant de recevoir un adaptateur coaxial pour réduire encore un brin les pertes en ligne.

Une fois montée, l’antenne a fière allure :

flightradar-colineaire-1090-MHz3Direction l’iMac et surprise… surprise quant à la couverture désormais atteinte, je vous laisse juger par vous même le résultat d’une capture effectuée un matin :

flightradar-coverage

Oui c’est dingue, les avions sont reçus pratiquement jusqu’à Paris ! Certes, ils sont en niveau de vol, pas à 200 m du sol, mais quand même, c’est dingue, considérant que l’antenne n’est qu’à 4 m du sol, et encore, avec des obstacles proches.

Rapide mesure en voyant un appareil au Havre et calcul de la distance qui le sépare du récepteur :

flightradar24-coverage-distance

285 km, soit environ 154 Nm, plutôt pas mal non? Encourageant en tout cas pour aller fixer l’antenne tout en haut, sur le toit. Reste désormais à trouver LA bonne solution pour un montage extérieur durable :

  • antenne et raspberry sur le toit, avec une alimentation PoE
  • antenne seule sur le toit, avec un minimum de câble très faibles pertes (Aircom)

Pour obtenir une solution cohérente et sans trop de pertes radio, on peut envisager de placer le Raspberry dans un boîtier étanche, le munir d’un POE (vous trouverez un exemple de timelapse qui fonctionne sans interruption depuis 2014 sur https://blogwifi.fr/?p=12741), et limiter les liaisons coaxiales vers l’antenne au strict minimum, par exemple en fixant une embase N Femelle sur le boîtier étanche. Le Raspberry Pi et le récepteur DVB-T sont placés le plus près possible de l’antenne et un simple câble Ethernet blindé suffira à venir alimenter le tout et récupérer le réseau.

D’autres antennes ?

La solution d’Erik est excellente pour la réception, mais pour démarrer et faire vos essais vous pouvez commencer par des antennes simples :

Nota : Quelle que soit l’antenne utilisée, elle devra respecter la polarisation verticale du signal pour une réception optimale. L’antenne sera donc disposée verticalement.

La plus simple !

CAhqVmiQ45Y_dip1090Une antenne réduite à sa plus simple expression : dénudez le câble coaxial pour satellite (75Ω) torsadez la tresse, donnez la forme d’un dipôle (voir photo) et coupez (de façon symétrique) pour que la longueur totale soit de 13,7 cm… à peu près.

Si vous trouvez plus simple, dites moi…

Avec un bouchon…

1090_antenna_11090_antenna_21090_antenna_3En trois images c’est clair, pas besoin de beaucoup d’explications… Et ici, en Bourgogne, des bouchons ça va, on en récupère pas mal 😉

Un peu plus compliqué…

adsb-antennaCette antenne est un peu plus complexe mais offre une bonne adaptation…
Longueur totale du fil : 150 + 69 +8 + 69 + 150 = 446 mm

Antenne active 1090 MHz de F5ANN

adsb-f5ann Pour améliorer les performances de l’antenne 1090 MHz, la solution la plus simple est d’ajouter un préamplificateur juste derrière l’antenne. Cependant compte tenu de la technologie de l’antenne sur circuit imprimé, il est possible de transformer cette antenne en antenne active en ajoutant sur le même circuit imprimé un amplificateur faible bruit avec un gain de 20 à 30 dB, et pour s’affranchir des problèmes d’interférences avec les fréquences GSM, d’intégrer un filtre 1090 MHz de type SAW avec une bande passante de 30 MHz, ou moins. On arrive ainsi à avoir une antenne de faible dimensions – 160 mm de longueur – avec un gain important et permettant d’avoir un facteur de bruit de la chaine réception très faible – inférieur à 1 dB-(d’après F5ANN un site incontournable pour l’ADS-B)Si vous aimez bricoler les antennes cherchez donc avec les mots clés suivants : ads-b antenna diy

Un préampli à faible bruit (LNA)

Si vous avez une expérience de la soudure, si vous tremblez en même temps que le circuit que vous soudez, si le mot CMS (Composant Monté en Surface) ne vous effraye pas… 😉 vous trouverez chez jetvision un kit de préampli pour une cinquantaine d’euros…

preampli_ADS-BUne fois monté le préampli est inséré dans son boîtier qui assure la protection contre les interférences :

mini-adsb-boxLe préampli est placé au plus près de l’antenne (ici une ground-plane montée directement sur une prise N) :

ads-b-quart-ant

 

Le récepteur

Le récepteur doit être basé sur le chipset Realtek RTL2832U. Les numéros de type sont E4000 et R820T. Ils peuvent facilement être trouvés sur eBay ou Amazon. Ils sont généralement livrés avec une antenne intérieure simple, qui donne de très bons résultats. Je peux recevoir des avions qui sont à plus de 140 km du côté où j’ai une vue dégagée sur le ciel. Pour des résultats encore meilleurs vous pouvez construire votre propre dipôle.

La conclusion d’Erik

« Le Pi tourne sans discontinuer, c’est vraiment stable. Il va falloir que je pense à installer l’antenne un peu mieux que sur un trépied pour améliorer la couverture vers Nantes et la Vendée, trop faible pour le moment.« 

 Pygmalion vous explique comment configurer le Raspberry Pi

Le récepteur fonctionne sur un Raspberry Pi. Dans son article Erik indique qu’il a configuré le RasPi en suivant le tutoriel de Pygmalion. Celui-ci étant en anglais, je vous en propose la traduction.

Et le Raspberry Pi là dedans ?

Bin oui, jusque là c’était un peu l’arlésienne… Mais le voici : Erik a utilisé un tutoriel de Pygmalion dont je vous propose ici la traduction.

Introduction

Un dongle USB DVB-T peut être utilisé pour recevoir les signaux ADS-B, qui peuvent être décodés avec le logiciel approprié.

Installez les outils de construction du logiciel et la librairie requise

Si vous n’avez pas installé les outils de construction utilisez la commande suivante. Vous devez également libusb-1.0-0-dev.

sudo apt-get -fym install git cmake build-essential libusb-1.0-0-dev

 

Installation de rtl-sdr

Le pack logiciel contient la bibliothèque chargée de communiquer avec le dongle DVB-T (Digital Video Braodcasting-Terrestrial) et un certain nombre d’outils pour l’utiliser comme SDR (Sofware Defined Radio).

mkdir git
cd git
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake .. -DINSTALL_UDEV_RULES=ON
sudo make install
sudo ldconfig
sudo cp ../rtl-sdr.rules /etc/udev/rules.d/

Comme nous ne voulons pas regarder la télévision le pilote DVB-T par défaut doit être supprimé dans la liste noire. Créez le fichier suivant:

/etc/modprobe.d/rtlsdr.conf

Ajoutez lui la ligne suivante :

blacklist dvb_usb_rtl28xxu

Vérifiez si le module est chargé :

lsmod | grep dvb_usb_rtl28xxu

S’il est chargé, supprimez le en exécutant cette commande :

sudo modprobe -r dvb_usb_rtl28xxu

Installer et exécuter Dump1090

Ce logiciel est utilisé pour recevoir et décoder le signa ADS-B. Il permet également de représenter les données que vous aurez collectées sur une page web.

cd ~/git
git clone git://github.com/MalcolmRobb/dump1090.git
cd dump1090
make
./dump1090 --quiet --net --enable-agc &

Maintenant ouvrez une page web à l’adresse de votre Raspberry Pi sur le port 8080 et vous devriez voir une carte avec les données de tous les avions à portée. Vous pourriez avoir envie de présenter ceci dans votre propre page web :

<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Flight Radar Kranenburg-N&uuml;tterden</title>
<meta name="description" content="Flight Radar (ADS-B Receiver) Kranenburg-N&uuml;tterden">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/main.css">
</head>

<body>
<h4>Flight Radar (ADS-B Receiver) Kranenburg-N&uuml;tterden</h4>
<iframe src="http://nitri.ddns.net:8080" name="flight-radar" width="95%" height="90%" align="center"
scrolling="no" marginheight="0" marginwidth="0" frameborder="0"></iframe>
</body>
</html>

Personnaliser Dump1090

Le script config.js se trouve dans le répertoire public_html de Dump1090. Recherchez cette section dans script.js si vous voulez modifier la carte.

// Define the Google Map
var mapOptions = {
center: new google.maps.LatLng(CenterLat, CenterLon),
zoom: ZoomLvl,
mapTypeId: google.maps.MapTypeId.TERRAIN,
mapTypeControl: true,
streetViewControl: false,
mapTypeControlOptions: {
mapTypeIds: mapTypeIds,
position: google.maps.ControlPosition.TOP_LEFT,
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
}

A mon avis la carte normale donne de bons résultats mais si vous voulez utiliser la carte OpenStreetMap :

mapTypeId: "OSM"

Personnalisez l’apparence de la couche données dans config.js. L’exemple ci-dessous devrait vous aider :

// --------------------------------------------------------
//
// This file is to configure the configurable settings.
// Load this file before script.js file at gmap.html.
//
// --------------------------------------------------------

// -- Output Settings -------------------------------------
// Show metric values
Metric = true; // true or false

// -- Map settings ----------------------------------------
// The Latitude and Longitude in decimal format
CONST_CENTERLAT = 51.785982;
CONST_CENTERLON = 6.059338;
// The google maps zoom level, 0 - 16, lower is further out
CONST_ZOOMLVL = 10;

// -- Marker settings -------------------------------------
// The default marker color
MarkerColor = "rgb(127, 127, 127)";
SelectedColor = "rgb(225, 225, 225)";
StaleColor = "rgb(190, 190, 190)";

// -- Site Settings ---------------------------------------
SiteShow = true; // true or false
// The Latitude and Longitude in decimal format
SiteLat = 51.785982;
SiteLon = 6.059338;

SiteCircles = true; // true or false (Only shown if SiteShow is true)
// In nautical miles or km (depending settings value 'Metric')
SiteCirclesDistances = new Array(40,80);

Partagez vos données avec FlightRadar24

Pour partager vos données avec FlightRadar24, vous devez fournir un flux compatible TCP30003 :

./dump1090 --quiet --net --net-sbs-port 30003 --enable-agc &

Installez le logiciel :

mkdir fr24
cd fr24/
wget https://dl.dropboxusercontent.com/u/66906/fr24feed_arm-rpi_242.tgz
tar zxvf fr24feed_arm-rpi_242.tgz

Inscrivez vous pour obtenir une clé :

./fr24feed_arm-rpi_242 --signup

Remplissez le questionnaire. Vous aurez besoin des coordonnées décimales de votre récepteur. Une fois que vous aurez obtenu la clé, vous pouvez partager vos données.

./fr24feed_arm-rpi_242 --fr24key=<key> --bs-ip=127.0.0.1 --bs-port=30003

Lancer le logiciel au démarrage du Raspberry Pi

Plusieurs approches sont possibles. J’ai créé plusieurs scripts pour démarrer le système de réception ADS-B/

/home/pi/start_flight_radar.sh

#!/bin/sh
cd /home/pi/git/dump1090/
./dump1090 --quiet --net --net-sbs-port 30003 --enable-agc&

pkill -f fr24feed
/home/pi/fr24/fr24feed_arm-rpi_242 --fr24key=<key> --bs-ip=127.0.0.1 --bs-port=30003

/etc/init.d/flightradar

#!/bin/bash
# /etc/init.d/flightradar

### BEGIN INIT INFO
# Provides: flightradar
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Flight Radar
# Description: Flight Radar (ADS-B Receiver)
### END INIT INFO

case "$1" in
start)
echo "Starting flightradar"
/home/pi/start_flight_radar.sh &
;;
stop)
echo "Stopping flightradar"
killall dump1090
;;
*)
echo "Usage: /etc/init.d/flightradar start|stop"
exit 1
;;
esac

exit 0

N’oubliez pas de rendre le script exécutable et de configurer update-rc.d

sudo chmod +x /etc/init.d/flightradar
sudo update-rc.d flightradar defaults
raspi_cam_fr

Le système de réception ADS-B de Pygmalion

Conclusion

Désolé si cet article vous a semblé un peu long avant d’arriver à la partie qui vous concerne si vous êtes uniquement RasPinaute… Il m’a semblé intéressant de présenter un peu plus en détails la réception ADS-B qui est réalisable avec des moyens réduits.

Avec un dongle DVB-T à une dizaine d’euros et son antenne de m… très simple, il est déjà possible de recevoir quelques trames lorsque les avions passent au dessus de chez vous… Alors imaginez en installant une antenne un peu plus évoluée 😉

Et un jour où la propagation est favorable, vous aurez peut-être la surprise, comme Erik (le  point rouge sur la carte), de découvrir que vous pouvez suivre une multitude d’avions situés à grande distance…

propag_ads_BSi le sujet vous intéresse, rejoignez le forum de framboise314 : Un tutoriel de Mmega vous y attend, ainsi qu’une intéressante discussion sur l’ADS-B…

 

Mes tests de réception au Creusot

C’est du vite fait pour vérifier la faisabilité :

  • 1 Raspberry Pi 2
  • 1 carte SD 16Go Samsung
  • 1 clé DVB-T modèle SPC-0155
  • 1 antenne livrée avec la clé USB

C’est pas l’installation rêvée puisque j’ai posé l’antenne sur le rebord de fenêtre (métallique) d’un bâtiment industriel le toit est en plus entouré d’un bardage métallique de 3m de haut…

 reception_creusot2 Le récepteur est quand à lui connecté directement sur le câble d’origine qui fait au moins… 1 mètre de long 😉 ainsi que sur le Raspberry Pi :

reception_creusotL’antenne est la prise en haut à droite de l’image. LE RasPi est connecté au réseau, ce qui m’a permis d’observer sur la carte mes premiers avions (yep !)

20150414_10h00_110kmJ’ai tracé un cercle de 110 Km de rayon autour du Creusot et on voit que même avec des moyens très limités (pour ne pas dire primitifs!) il est possible de recevoir les trames ADS-B d’avions situés à plus de 100Km… Imaginez si l’antenne est une colinéaire placée en haut d’un mât avec un préampli 😉

Personnalisation de l’affichage de Dump1090

Il est possible de personnaliser votre affichage comme indiqué plus haut. Pour ma part, /home/pi/git/dump1090/public_html/config.js est modifié comme suit :

// --------------------------------------------------------
//
// Ce fichier permet de modifier l'affichage sous Dump1090.
// Chargez ce fichier avant script.js dans gmap.html.
//
// --------------------------------------------------------

// -- Valeurs de sortie -------------------------------------
// Affichage métrique : true pour afficher en km
Metric = true; // true ou false

// -- Configuration de la carte -----------------------------
// Latitude et Longitude en format décimal
// Indique le centre de la carte qui sera affichée
// J'ai choisi de centrer sur mon antenne ADS-B
CONST_CENTERLAT = 46.799107;
CONST_CENTERLON = 4.418899;
// Niveau de zoom google map de 0 à 16, 0 est le plus éloigné
CONST_ZOOMLVL   = 5;

// -- Paramètres des marqueurs -------------------------------
// Couleur par défaut des marqueurs
MarkerColor       = "rgb(127, 127, 127)";
SelectedColor = "rgb(225, 225, 225)";
StaleColor = "rgb(190, 190, 190)";

// -- Configuration du site de réception ---------------------
// true affiche une cible aux coordonnées indiquées
// Pour moi : les coordonnées de l'antenne
SiteShow    = true; // true ou false
// Latitude et Longitude en format décimal
SiteLat     = 46.799107;
SiteLon     = 4.418899;

// -- Dessin des cercles donnant la distance des avions ------
// Les cercles ne sont affichés que si SiteShaw est sur true
SiteCircles = true; // true ou false 
// In miles nautiques ou en km (selon la valeur de 'Metric')
// J'ai choisi d'afficher des cercles à 50km, 100km, 150km et 200km
SiteCirclesDistances = new Array(50,100,150,200);

Le résultat

reception_creusot_20150419_2Un dimanche après midi d’avril à 15 heures… L’antenne est la petite antenne d’origine livrée avec la clé USB/TNT posée sur un appui de fenêtre. Les cercles permettent d’estimer rapidement la distance de l’avion. J’attends avec impatience de pouvoir tester une « vraie » antenne et un préampli 1090MHz qui est en chemin depuis le Japon.

Vous pouvez voir le résultat sur RaspiBlog, un serveur hébergé par … un Raspberry Pi 😉 qui comporte une page dédiée pour l’affichage des avions aux alentours de LE CREUSOT (71)

L’affichage sur la console du Raspberry Pi

Dump1090 possède de nombreuses options accessibles par la commande

./dump1090 --help

 

-----------------------------------------------------------------------------
|                dump1090 ModeS Receiver         Ver : 1.10.3010.14         |
-----------------------------------------------------------------------------

--device-index <index>   Select RTL device (default: 0)
--gain <db>             Set gain (default: max gain. Use -10 for auto-gain)
--enable-agc             Enable the Automatic Gain Control (default: off)
--freq <hz>             Set frequency (default: 1090 Mhz)
--ifile <filename>       Read data from file (use '-' for stdin)
--interactive           Interactive mode refreshing data on screen
--interactive-rows <num> Max number of rows in interactive mode (default: 15)
--interactive-ttl <sec> Remove from list if idle for <sec> (default: 60)
--interactive-rtl1090   Display flight table in RTL1090 format
--raw                   Show only messages hex values
--net                    Enable networking
--modeac                 Enable decoding of SSR Modes 3/A & 3/C
--net-beast             TCP raw output in Beast binary format
--net-only               Enable just networking, no RTL device or file used
--net-bind-address <ip> IP address to bind to (default: Any; Use 127.0.0.1 for private)
--net-http-port <port>   HTTP server port (default: 8080)
--net-ri-port <port>     TCP raw input listen port (default: 30001)
--net-ro-port <port>     TCP raw output listen port (default: 30002)
--net-sbs-port <port>   TCP BaseStation output listen port (default: 30003)
--net-bi-port <port>     TCP Beast input listen port (default: 30004)
--net-bo-port <port>     TCP Beast output listen port (default: 30005)
--net-ro-size <size>     TCP raw output minimum size (default: 0)
--net-ro-rate <rate>     TCP raw output memory flush rate (default: 0)
--net-heartbeat <rate>   TCP heartbeat rate in seconds (default: 60 sec; 0 to disable)
--net-buffer <n>         TCP buffer size 64Kb * (2^n) (default: n=0, 64Kb)
--lat <latitude>         Reference/receiver latitude for surface posn (opt)
--lon <longitude>       Reference/receiver longitude for surface posn (opt)
--fix                   Enable single-bits error correction using CRC
--no-fix                Disable single-bits error correction using CRC
--no-crc-check           Disable messages with broken CRC (discouraged)
--phase-enhance         Enable phase enhancement
--aggressive             More CPU for more messages (two bits fixes, ...)
--mlat                  display raw messages in Beast ascii mode
--stats                 With --ifile print stats at exit. No other output
--stats-every <seconds> Show and reset stats every <seconds> seconds
--onlyaddr               Show only ICAO addresses (testing purposes)
--metric                 Use metric units (meters, km/h, ...)
--snip <level>           Strip IQ file removing samples < level
--debug <flags>         Debug mode (verbose), see README for details
--quiet                 Disable output to stdout. Use for daemon applications
--ppm <error>           Set receiver error in parts per million (default 0)
--help                   Show this help 

Debug mode flags: d = Log frames decoded with errors
D = Log frames decoded with zero errors
c = Log frames with bad CRC
C = Log frames with good CRC
p = Log frames with bad preamble
n = Log network debugging info
j = Log frames to frames.js, loadable by debug.html

Si vous souhaitez afficher un tableau plus lisible que le défilé rapide des messages envoyé par dump1090 vers la console du Raspberry Pi, ajoutez – – interactive à la ligne de commande, vous pourrez lire ce tableau, identique à celui qui apparait sur la page web :

reception_creusot_20150419_3

Sources

Share Button

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. .

32 réflexions au sujet de « Un Raspberry Pi pour suivre les avions sur FlightRadar24 »

      1. Chak

        Je ne suis pas sur que les points hauts soient si intéressants que ça… Il y a déjà une foule d’occupants : antenne radio/radar de l’ATC, des militaires, etc. La multiplication des sites semble être la meilleure option au final.

        Répondre
  1. Antoine

    Très bon article très détaillé pour ceux qui voudraient mettre en place cette solution !

    Je l’ai moi même déjà mise en place depuis plusieurs mois, il ne me manque plus qu’une seule chose : avoir plus d’informations sur une page web local (départ, arrivée, photos de l’avion etc). Si quelqu’un a une solution je suis preneur !

    Répondre
    1. Roland

      Antoine,

      Si tu veux plus d’infos sur les avions que tu captes, il te faut installer PlanePlotter; ce logiciel, qui coûte une trentaine d’€* , récupère les données de RTL1090 installé sur PC (!!!), les affiche sur une carte, et te permet d’avoir des renseignements supplémentaires, Aéroports de départ et d’arrivée, photo de l’appareil si elle se trouve dans la base de données de PP, ou photo cherchée sur le net.
      Il y a aussi Virtual Radar qui fait serveur, et te permet de voir ta réception sur ton ordinateur (aussi sur un Rpi) ou à distance, avec un navigateur.

      * une fois pour toutes pour plusieurs ordinateurs

      Roland
      Fondateur de la liste « PlanePlotter-ModeS »

      Répondre
      1. Bernard Regairaz

        Bonsoir à tous.

        Tout d’abord, un grand merci à François pour ce site qui est pour moi une Bible de la Framboise ( ou un Coran, une Thora, ce que vous voulez).

        Pour en revenir au sujet, j’ai mis en place deux stations a base de RPi qui alimentent FR24, Virtual Radar, PlanePlotter, FlightAware (avec plus ou moins de réussite sur certains sites.. mais ça vient de moi).

        Le matériel est basé sur des dongle RTL820 et des antennes colinéaires 8 éléments comme celles décrites dans le tuto (merci à François F5ANN)

        Concernant l’antenne, un petit mieux à prévoir est de la mettre dans une tube fibre de verre (ça se trouve dans les boutiques de cerf-volant), le PVC assourdit considérablement la réception.

        Pour Antoine et une page web local, le mieux est de passer par VirtualRadarServer
        http://www.virtualradarserver.co.uk/Download.aspx
        Après, il faut se créer une base du type basestation.sqb, un dossier des flags, des images d’avions etc… mais tout ça peut se discuter ailleurs je pense pour ne pas encombrer le forum.

        Merci à tous pour vos conseils et contributions.

        73’s
        Cordialement

        Bernard

        Répondre
  2. Ping : Blog WiFi / Wimax / 3G / 4G / Vidéo sans fil – Antenne ADB-S maison ou pro ? comparons…

  3. Ping : Poursuite radar : ADS-B & Pi (MAJ Avril 2015)Chakram Airlines

  4. Didier

    Salut à tous
    Très intéressant tout cela mais peut on se servir d’un raspberry pour recevoir la TNT (dvb t).
    Si quelqu’un sait merci de m’éclaircir la lanterne
    Amitié à tous
    Didier

    Répondre
  5. romaric

    bonjour, bel article.
    Il existe la même chose pour les planeur. Les planeur utilisent un système anti-collision FLARM qui communique aux autres appareils à proximité sa position GPS sur 868Mhz. Récement un reseau de récepteur au sol a été déployé par des bénévole pour écouter les messages envoyés par le FLARM pour les reporter sur un système de suivi. Les position son d’ailleur transmisent à FR24 qui les affiche aussi.
    Le tout fonctionnant bien sur grâce à des RPi.
    Le site du projet: http://www.glidernet.org
    le site de tracking: http://www.live.glidernet.org
    le site de couverture du système: http://www.ognrange.onglide.com

    notez que la puissance d’émission est limitée à 10mW et que les planeurs ne volent pas aussi haut que la avions de ligne donc la porté est bien moindre qu’en ADS-B, 3à à 60km max.
    Romaric

    Répondre
  6. Thierry

    Bonjour, bon article expliquant bien les bases du système et l’utilisation de Dump1090.
    Il est cependant dommage que ne soit mentionnés ni le site de Flightstats, ni celui de FlightAware.
    Surtout qu’ils apparaissent en haut de la fenêtre de l’interface web quand on clique sur un avion de la liste (ils sont juste à coté de FR24). FlightAware est particulièrement intéressant car ce site web regroupe de nombreuse sources de données et pas seulement les positions ADS-B.
    Pour les possesseurs de RaspberryPI, il existe en plus, une solution tout en un avec leur logiciel PiAware qui s’installe à coté de Dump1090. Celui-ci récupère les données traduites par Dump1090 et les envoi de manière sécurisé vers leur serveur (où vous aurez un compte perso). Sur le web, on a alors accès a des statistiques perso, des données sur l’avion, l’historique des vols, les plans de vols, etc… Bref un truc vraiment complet.
    Il y a juste a installer Dump1090 et PiAware sur le Raspberry, et c’est tout !

    Répondre
  7. Ping : J’ai testé pour vous : Un boîtier de Raspberry Pi 2 chez Selectronic | Framboise 314, le Raspberry Pi à la sauce française….

  8. Ping : Arduino et Raspberry Pi dans Hackable Magazine | Framboise 314, le Raspberry Pi à la sauce française….

  9. Lebalme

    Bonsoir,
    En lisant ces lignes j’avoue être anthousiasmé par la qualité des présentations qui y sont faites. Je viens d’acquerir un Pi, que j’ai acheté dans le but de l’utiliser comme serveur pour écouter les avions près de chez moi. Seulement voilà, je ne suis pas un expert en informatique et malgré une première séance de reglage prometteuse je ne sais pas comment faire pour installer les différents programmes nécessaires à la réception avec DSR#. Je viens de lire l’article pour la réception de l’ADS-B. Le d’ongle étant le même, je me dis que l’installe doit être presque identique. Mais je ne suis pas certain. Pourriez vous m’aider à finaliser ce projet, peut être une présentation sur ce sujet.
    Cordialement

    Répondre
    1. François MOCQ Auteur de l’article

      Bonjour
      si je comprends bien, vous souhaitez réaliser un récepteur pour recevoir les conversations entre les avions et le sol ?
      c’est différent de ce projet qui reçoit des infos numériques.
      Mais ça doit pouvoir se faire également…
      je n’ai pas de projet en ce sens en ce moment et pas trop le temps de me lancer dessus
      regardez du côté de http://www.adafruit.com/products/1497 qui présente un scanner… et il doit y avoir d’autres ressources sur le web : http://florentsegouin.me/articles/utiliser-sa-raspberry-comme-recepteur-radio/ 😉
      cordialement
      François

      Répondre
  10. Ping : Ecoutez la radio avec votre Raspberry Pi | Framboise 314, le Raspberry Pi à la sauce française….

  11. denis

    bonjour j’utilise depuis 4 mois, un raspi + dump 1090 + piaware (ce qui me permet d’envoyer les info vers flightaware, mais je cherche à rajouter flaightradar 24 dessus mais impossible
    auriez vous une image pour la carte SD
    d’avance merci

    Répondre
    1. Georges (HE9JSD)

      Bonjour, je me permet de vous répondre car je viens de plancher ce matin pour faire fonctionner mon installation pour fournir en données ces deux sites.

      Voici donc comment j’ai procédé: 1) installation de rasbian (jessie) depuis l’image officielle. 2) installation des « pilotes » RTL-SDR depuis les sources. 3) installation du package de FlightAware. 4) installation du package FlightRadar24 « par dessus », là il détecte qu’il y a déjà une instance de dump1090, répondre yes et miracle, le PI envoye les données (avec MLAT) aux deux sites.

      Bonne chance, n’hésitez pas à prendre des note durant l’installation pour éventuellement recommencer.

      Salutations

      Répondre
  12. Ping : Rasberry - teoteam | Pearltrees

  13. Ping : Réalisez un analyseur de spectre avec le Raspberry Pi 2 | Framboise 314, le Raspberry Pi à la sauce française….

  14. BENARD JP

    Bonjour,
    Nous sommes une association de lutte contre les nuisances aériennes. notre zone, Aix-les-Milles est peu couverte par Flightradat24. En pratique comment participer à la couverture Flightradar24 avec ADS-B ?
    Merci

    Répondre
  15. Ping : Réalisez un analyseur de spectre avec le Raspberry Pi 2 – Radioamateur France

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.