Il y a vraiment autant d'avions au-dessus de chez moi ?
Au départ, je voulais simplement savoir si mon impression correspondait à la réalité. Quelques recherches plus tard, une station ADS-B suivait les avions passant au-dessus de la maison. Et puisqu'ils étaient là, autant essayer de mesurer le bruit qu'ils produisent. De fil en aiguille : tracking local, base de données et sonomètre maison.
Dans la région où j'habite, les plans de vol liés à l'aéroport de Bruxelles font régulièrement parler d'eux. Manifestations, contestations, changements de routes… Le sujet ne date pas d'hier et je n'ai aucune intention de refaire ici le débat sur le bien-fondé de ces survols.
Mais ces derniers temps, nous avons connu quelques périodes de survol particulièrement… présentes.
Le problème n'est d'ailleurs pas tellement qu'un avion passe au-dessus de la maison. C'est surtout le bruit qu'il génère. Et, bizarrement, depuis cet été, j'ai commencé à trouver la situation franchement difficile à supporter.
Avec, en prime, cette impression que certains avions passaient vraiment très bas.
Alors forcément, une question s'est posée : est-ce que la situation a réellement changé… ou est-ce simplement moi qui suis en train de devenir un vieux râleur ?
La seconde hypothèse étant parfaitement plausible, il fallait quand même vérifier la première.
Combien d'avions passent réellement au-dessus de chez nous ? À quelle altitude ? Certains passent-ils effectivement beaucoup plus bas que les autres ? Et surtout : combien de bruit produisent-ils réellement ?
Vous commencez probablement à voir le problème.
Moi aussi.
Il fallait mesurer tout ça.
Commençons par trouver les avions
Premier réflexe : trouver comment récupérer les trajectoires des avions et, tant qu'à faire, intégrer tout ça dans Home Assistant.
Quelques recherches plus tard, je tombe assez vite sur des intégrations basées sur Flightradar24. Sur le papier, c'est exactement ce qu'il me faut : les avions, leur position, leur altitude… le tout sans réinventer la roue.
Parfait. Faisons simple pour une fois.
Enfin… essayons.
Première petite désillusion : il faut s'enregistrer. Puis je découvre que pas mal de contraintes se sont ajoutées autour du service : limitations de requêtes, clé API, conditions d'accès…
Rien de dramatique en soi, mais plus je creuse, moins la solution me plaît.
Pour un projet dont le but est justement de mesurer tranquillement ce qui passe au-dessus de chez moi, dépendre d'un service externe avec ses quotas, ses règles et ses éventuels changements futurs commence à sentir le cul-de-sac.
Je continue donc mes recherches et finis par tomber sur FlightAware et son réseau communautaire de suivi des avions.
Là, ça devient tout de suite plus intéressant.
Tel quel, ça ne résout pas encore mon problème initial, mais le principe mérite qu'on s'y attarde : plutôt que d'interroger un service pour lui demander où se trouvent les avions, on peut tout simplement écouter ce que les avions émettent eux-mêmes.
Sans entrer ici dans les détails techniques, les avions diffusent des informations permettant notamment de connaître leur position, leur altitude ou leur identification. Avec une antenne, un récepteur et un peu de logiciel, il est donc possible de recevoir et traiter ces informations localement.
FlightAware propose justement de participer à son réseau en installant son propre récepteur et en lui transmettant les données collectées.
Et là, forcément, la question change légèrement :
si je peux recevoir ces données moi-même, pourquoi aller les rechercher ailleurs ?
Une petite station qui voit un peu loin
Quelques recherches, un peu de matériel et forcément quelques lignes de code plus tard, je me suis donc retrouvé avec ma propre petite station FlightAware.
Et ça fonctionne plutôt bien.
J'ai également installé tar1090, qui permet de visualiser en temps réel les avions reçus par la station et leurs trajectoires sur une carte.
Sans avoir particulièrement cherché à optimiser quoi que ce soit, elle reçoit les informations émises par des avions situés à 150 km de la maison, voire davantage.
C'est légèrement surdimensionné pour savoir ce qui passe au-dessus de mon toit, mais au moins, on ne devrait pas en rater beaucoup.
Ce qui devrait normalement être largement suffisant.
Évidemment, constater qu'un montage réalisé sans optimisation particulière porte déjà aussi loin a eu l'effet inverse : j'ai maintenant sérieusement envie de fabriquer une antenne spider et d'aller l'installer sur le pignon de la maison.
Pas parce que j'en ai besoin.
Juste pour voir jusqu'où ça pourrait aller.
Mais avant de chercher à recevoir encore plus d'avions dont je n'ai pas besoin, revenons quand même au problème initial.
Voir les avions, c'est bien. Récupérer les données, c'est mieux.
La carte est amusante et permet déjà de constater que le système fonctionne.
Mais les avions qui s'y déplacent ne sont évidemment que la représentation graphique des informations reçues et décodées par la station.
Et si ces données sont disponibles, autant les exploiter directement.
Pour mon besoin, je ne conserve évidemment pas tout ce que reçoit la station. J'ai écrit un petit service qui surveille les avions détectés et ne commence réellement à s'intéresser à eux que lorsqu'ils entrent dans un rayon de 2 km autour de la maison.
À partir de ce moment-là, il suit leur passage.
Tant que l'avion se rapproche, sa distance, son altitude et les autres informations disponibles continuent d'évoluer. Lorsqu'il s'éloigne à nouveau, je conserve dans une petite base SQLite le moment où il est passé au plus près de la maison.
J'y enregistre notamment l'heure, la distance minimale calculée, l'altitude à cet instant, la vitesse et, lorsqu'elles sont disponibles, les informations permettant d'identifier l'appareil, le vol, la compagnie et sa route.
Je me constitue ainsi progressivement un historique des avions qui sont réellement passés à proximité de la maison, plutôt qu'une copie de tout ce que mon récepteur peut entendre à 150 km à la ronde.
Et puisque j'avais maintenant les données sous la main, il fallait évidemment pouvoir les regarder autrement qu'en interrogeant directement SQLite.
Cette interface n'est donc que la partie visible du système. Derrière elle, le petit service continue à surveiller les données fournies par la station, détecte les passages dans la zone qui m'intéresse et alimente progressivement la base.
À ce stade, une autre possibilité commence évidemment à me démanger : faire remonter une partie de ces informations dans Home Assistant.
MQTT semble être un candidat assez naturel. Le tracker pourrait publier les informations relatives au dernier passage, quelques compteurs ou d'autres données utiles, et Home Assistant n'aurait plus qu'à les consommer.
Je ne sais pas encore exactement ce que j'en ferai.
Mais ce serait dommage de laisser ce tiroir fermé.
Quand une impression commence à devenir un nombre
Pendant ce temps, FlightAware accumule lui aussi des statistiques sur ce que reçoit la station.
Et là encore, une fois passé le plaisir de voir des petits avions bouger sur une carte, il devient assez difficile de ne pas commencer à regarder les chiffres.
Combien d'appareils ? Combien de positions ? Jusqu'à quelle distance ? Dans quelles directions ? ADS-B ou MLAT ?
Bref, la carte avait commencé à produire des questions.
C'est devenu particulièrement intéressant les jours où les survols commençaient sérieusement à m'exaspérer.
Plutôt que de rester avec cette impression de « mais ce n'est pas possible, il y en a encore un ! », je pouvais désormais aller regarder les chiffres.
Et certains jours, ils étaient assez parlants.
Lors des journées les plus chargées que j'ai observées, plus de 300 avions en phase d'atterrissage sont passés au-dessus de la maison en une seule journée.
Mais le nombre total ne raconte qu'une partie de l'histoire.
Ces passages ne sont pas répartis uniformément sur 24 heures. Ils ont tendance à se concentrer sur certaines plages horaires, typiquement entre 6 h et 9 h, puis entre 16 h et 21 h.
À certains moments, j'ai pu observer un rythme moyen proche d'un avion toutes les deux minutes, parfois même autour d'un toutes les 1 minute 30.
Mon impression de répétition permanente commençait donc tout de même à reposer sur quelque chose d'un peu plus tangible.
Ce qui m'a également amusé, c'est d'en discuter avec quelques voisins. Ils étaient évidemment conscients du passage des avions, mais ne semblaient pas avoir réalisé l'ampleur réelle du phénomène.
Quand on vit avec quelque chose au quotidien, on finit probablement aussi par ne plus compter.
Les données d'altitude ont également fait apparaître quelques passages qui m'interpellent. Mais c'est un autre débat, qui dépasse largement le cadre de ce projet. Je préfère donc ne pas l'ouvrir ici.
Il reste surtout une donnée essentielle à ajouter.
Le bruit.
Il manque encore le bruit
Savoir qu'un avion est passé à telle altitude et à quelques centaines de mètres de la maison, c'est intéressant.
Mais ça ne répond toujours pas complètement à la question qui a déclenché tout ça :
combien de bruit a-t-il réellement fait ?
Il me fallait donc ajouter une seconde source de données au système : un sonomètre capable de rester dehors en permanence et, surtout, de fournir automatiquement ses mesures à mon tracker.
Je pensais naïvement que cette partie serait simple.
Je n'ai évidemment rien trouvé qui corresponde réellement à mon besoin pour un budget cohérent avec une expérience de ce genre.
Alors j'en ai construit un.
Un ESP32-S3, un improbable module sonomètre chinois à une quinzaine d'euros, quelques composants, une API JSON, MQTT et un boîtier imprimé en 3D plus tard, j'ai maintenant quelque chose qui commence sérieusement à ressembler à un sonomètre extérieur connecté.
La construction de ce petit machin ayant elle-même suffisamment dérapé pour mériter son propre récit, elle est détaillée dans Des avions, des décibels et un ESP32.
Il ne reste maintenant plus qu'à l'installer dehors et à réunir les deux mondes.
Les deux mondes se rejoignent
Pendant que je construisais le sonomètre, la station de suivi des avions, elle, a continué à collecter tranquillement ses données.
J'ai donc déjà commencé à obtenir des réponses à certaines des questions qui avaient déclenché ce projet.
Oui, il peut réellement y avoir énormément d'avions au-dessus de la maison.
Oui, leur concentration sur certaines plages horaires explique probablement en partie pourquoi certaines journées donnent cette impression de survol pratiquement permanent.
Et une autre impression commence également à se dégager.
J'aurais spontanément pu penser que les appareils les plus imposants seraient aussi les plus bruyants.
Or ce n'est pas vraiment ce que je constate à l'oreille.
Ce qui semble faire une différence beaucoup plus importante, c'est l'âge — ou plus exactement la génération — de l'appareil.
Certains avions plus anciens semblent produire nettement plus de bruit que des appareils récents, parfois pourtant plus imposants.
Pour l'instant, ça reste une observation subjective.
Mais c'est précisément le genre d'hypothèse que le sonomètre va maintenant permettre de confronter aux mesures.
Car depuis son installation sur la façade, les deux parties du projet sont enfin reliées.
Lorsqu'un avion passe à proximité de la maison, le tracker ne se contente plus d'enregistrer son identification, son vol, sa trajectoire, son altitude et sa distance minimale.
Pendant toute la durée du passage, il interroge également le sonomètre.
Pour chaque avion, la base conserve désormais les mesures acoustiques obtenues au moment où il passe au plus près de la maison, mais également le niveau maximal observé pendant son passage.
Et comme le maximum sonore ne se produit pas nécessairement exactement au point de rapprochement maximal, le tracker conserve également la distance et l'altitude de l'avion au moment de ce pic.
J'ai au passage élargi la zone de suivi de deux à trois kilomètres afin de disposer d'une fenêtre un peu plus confortable autour de chaque passage.
Le BME280 installé dans le boîtier apporte également la température, l'humidité, la pression et le point de rosée.
Ces données ne serviront peut-être jamais à expliquer quoi que ce soit.
Mais puisqu'elles sont disponibles, autant les conserver.
Mesurer n'est pas forcément savoir ce que l'on mesure
Il reste évidemment une difficulté assez importante.
Le sonomètre, lui, ne sait absolument pas qu'il écoute un avion.
Une voiture, une tondeuse, un chien ou le train qui passe derrière la maison peuvent parfaitement produire un pic sonore pendant qu'un avion traverse la zone de suivi.
Le niveau maximal associé à un passage ne signifie donc pas automatiquement que l'avion en est responsable.
Et c'est finalement assez intéressant.
Parce que ça rappelle une chose assez évidente qu'il est facile d'oublier une fois qu'on commence à accumuler des chiffres :
mesurer quelque chose est une chose, déterminer ce que l'on mesure réellement en est une autre.
Il faudra donc suffisamment de données pour commencer à distinguer les tendances des coïncidences.
Un passage isolé ne dira probablement pas grand-chose.
Quelques centaines devraient déjà être nettement plus intéressants.
Maintenant, on collecte
Le projet entre donc dans une nouvelle phase.
Jusqu'ici, l'essentiel du travail consistait finalement à construire les outils nécessaires pour répondre aux questions de départ.
La station ADS-B identifie et suit les avions.
Le tracker conserve leur passage et leurs caractéristiques.
Le sonomètre mesure maintenant en permanence l'environnement sonore extérieur.
Et les deux systèmes mettent désormais leurs données en commun.
Pour une fois, la prochaine étape consiste surtout à ne plus toucher à grand-chose et à laisser tout cela fonctionner.
Des dizaines, puis des centaines de passages vont progressivement s'accumuler avec, pour chacun d'eux, le type d'appareil, l'altitude, la distance et les mesures acoustiques correspondantes.
Ensuite viendra le moment de regarder ce que ces données racontent réellement.
Est-ce que certaines générations d'appareils sont effectivement plus bruyantes ?
Quelle influence ont réellement l'altitude et la distance ?
Le pic sonore intervient-il généralement lorsque l'avion passe au plus près de la maison ou existe-t-il un décalage significatif ?
Est-ce que certains modèles ou certaines motorisations ressortent clairement ?
Et combien de fois le train aura-t-il réussi à se faire passer pour un Boeing ?
Pour l'instant, je n'en sais rien.
Et c'est précisément pour ça que je collecte les données.
Et Home Assistant dans tout ça ?
Le sonomètre y est déjà intégré.
Les niveaux sonores, les différentes statistiques calculées ainsi que les données du BME280 remontent dans Home Assistant via MQTT.
Il reste maintenant à faire probablement la même chose avec certaines informations provenant du tracker d'avions.
Pas nécessairement toute la base de données.
Mais disposer dans Home Assistant de quelques informations sur l'avion actuellement à proximité — son callsign, son type, son altitude, sa distance ou encore le niveau sonore associé — pourrait être intéressant.
Cela permettrait aussi d'imaginer quelques représentations ou automatisations sans transformer Home Assistant en outil d'analyse aéronautique.
Ce sera probablement l'une des prochaines évolutions du projet.
L'autre devra simplement attendre.
L'analyse.
Pour celle-là, il me faut maintenant laisser le système travailler suffisamment longtemps pour disposer d'un jeu de données qui commence réellement à avoir du sens.
Beaucoup de choses pour répondre à une petite question
Et quand j'aurai finalement obtenu les réponses aux questions qui ont déclenché tout ça ?
Eh bien…
Il me restera une station ADS-B qui tourne en permanence et contribue au réseau FlightAware.
Il me restera un historique local des avions qui passent réellement à proximité de la maison.
Il me restera un sonomètre extérieur connecté, installé sur la façade et intégré à Home Assistant.
Il me restera probablement aussi une partie des informations du tracker d'avions directement accessible depuis la domotique.
Il me restera peut-être également une antenne spider accrochée au pignon dont je n'avais absolument pas besoin pour répondre à la question de départ.
Et surtout, j'aurai appris pas mal de choses en construisant tout ça.
Le tout pour une somme finalement assez modique.
Il faut tout de même apporter une nuance à ce dernier point : j'ai déjà à la maison une petite infrastructure informatique qui fonctionne 24 heures sur 24.
Home Assistant y tourne déjà et y ajouter quelques conteneurs Docker, une petite base SQLite ou quelques scripts ne représente pratiquement aucun coût supplémentaire pour moi.
Si vous partez de zéro et devez acheter une machine uniquement pour reproduire tout ça, le calcul sera évidemment différent.
Dans mon cas, l'essentiel du coût supplémentaire se résume donc au matériel de réception ADS-B et aux quelques composants nécessaires au sonomètre.
Et si ce dernier survit durablement aux conditions extérieures, il finira probablement par servir à autre chose.
À quoi ?
Aucune idée.
Compter les éclairs, peut-être…
On verra bien.

Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire