SDRとGrafanaで航空無線監視システムを作って学園祭で展示した話
この記事は学生ハム Advent Calendar 2025の19日目の記事です。
こんにちは。東京科学大学無線研究部(JA1YAD)のけんたろうと申します。
JA1YADでは、毎年開催される工大祭で、部員がそれぞれ作ったものを展示しています。
私は今回、ADS-Bを用いた航空機の受信・可視化システムと航空無線の受信システムを制作し展示したので、その内容と作るまでの過程を紹介します。
ADS-B受信システム
ADS-Bとは
ADS-B(Automatic Dependent Surveillance–Broadcast, 放送型自動従属監視)とは、航空機が自分の位置情報を定期的に地上に向けて送信するシステムです。
送信周波数は1090MHzで、比較的高めの周波数を使用しています。
地上のレーダーで航空機の位置を把握する方式と比べて、広範囲の航空機の位置情報を高精度で把握できたり、航空機同士でお互いの位置を把握できるというメリットがあります。
そしてこのADS-B信号は暗号化されていないため、受信環境を用意すれば誰でも受信できます。
実際、有名なFlightradar24などの航空機の位置を可視化できるサービスは、世界中の人が各地で受信したADS-B信号を集約することで成り立っています。
私は個人的に航空機が好きで、さらに大学のキャンパスの近くに羽田空港があり面白い結果を期待できると考えたため、ADS-B受信システムを作ることを考えました。
受信してみる
まずは受信してみます。
幸い、JA1YADは無線の実験のためにRTL-SDRという安価なソフトウェア無線受信機を所有していたため、これを利用することにしました。
受信ソフトはdump1090というものがよく使われています。いろんな人がフォークを繰り返していて派生が多いですが、今回はflightaware/dump1090を利用しました。
理由は、nixpkgs(Nixのパッケージレジストリ)に含まれているdump1090がこのバージョンだったためです。WebUIも付属していて使いやすかったです。
まずはアマチュア無線に使用している常設のログペリオディックアンテナをRTL-SDRに接続し、dump1090を起動してみましたが、極めて稀に航空機が現れるのみでほとんど受信できませんでした。
正確な理由は不明ですが、これらの理由が考えられます。
- アンテナの指向性が鋭いため広範囲の航空機を補足できない
- 同軸ケーブルが非常に長いかつ周波数が高いため、損失が大きくなってしまった
- 普段から1200MHz帯のアマチュア無線もほとんど受信できていなかった
アンテナが普段入れない場所に設置されており損失は免れないことと、アンテナの指向性を変えられないことから、代わりのアンテナが必要になりました。
そこで、次にSDR用として部室にあった小型のホイップアンテナを使用してみました。
すると40機程度の航空機の受信に成功しました。
要因としては周波数が高いため、波長が短く小さいアンテナでも良く受信できることと、指向性が弱く広範囲をカバーできたことが考えられます。

43機受信できている🙌
また嬉しいことに、羽田空港の地上にいる航空機や着陸・離陸直後の航空機も受信できました。

ちょうど離陸したBAW6便

地上にいるANA618便。右下にon groundと書いてある
受信感度の改善を目指して
受信を確認できたので、より多くの航空機を受信できるようにアンテナの改善を目指しました。
アンテナの改善には専用アンテナを買うか自作するという方法がよく用いられるようです。
自作も非常に興味がありましたが、今回は時間の都合上、専用アンテナを購入することにしました。
私は発送期間の都合上Amazonで購入しましたが、AliExpressでも同一商品が売られているので確認してみてください。

到着したアンテナ。コンパクトなサイズ感
到着し早速設置して受信してみたところ、受信性能が約1.3倍に向上し、受信可能な距離も伸びました。
太平洋上にいる航空機や、長野あたりにいる航空機も受信できています。

53機受信できている🙌
可視化システムの構築
受信が順調に進んだので、次に可視化システムを構築しました。
今回は以下の理由からGrafanaを用いることにしました。
- 同じく所属している東京科学大学デジタル創作同好会traPの10周年記念イベントであるtraPavilionでも、Grafanaを用いて可視化システムを構築した経験があった
- 可視化するために必要なものがExporterの作成くらいで簡単
- 地図を表示できるので、航空機の位置情報の可視化に向いている
- シンプルにGrafanaが大好き
adsb2lokiを用いた可視化
Grafanaを使うことを決めて調べたところ、Grafana公式のブログにADS-BとGrafanaを用いた可視化の記事がありました。
そこで、とりあえずこの記事の著者が公開しているadsb2lokiを用いてGrafanaで可視化してみました。
ダッシュボードも公開されていたため、簡単に可視化できました。Burnettさん、素晴らしいツールをありがとうございます。

かっこいい!
adsb-exporterの開発
可視化はできましたが、dump1090で得られるデータは数値データが多いため、Lokiのログ形式よりPrometheusの時系列データ形式で保存することで、可視化や分析がより楽になると考えました。
そこで、dump1090のデータをPrometheusに送信するためのExporterであるadsb-exporterを開発しました。
開発したと書きましたが、記事執筆時点では100%純AI製でドキュメントも書けていないです...
メンテナンスはしたいと考えています。体制が整い次第リリースするので、Starをつけて頂けると嬉しいです🙏
これにより、Grafanaダッシュボードの作成がより楽に行えるようになりました。
展示環境の構築
今年の工大祭での展示場所は地上階であり、そこにアンテナを設置しても感度が期待できませんでした。
そこで、部室のある建物の屋上にアンテナを設置し、同軸ケーブルで部室に引き込みサーバーと接続することで受信環境を構築しました。
GrafanaとPrometheus、adsb-exporterも同じサーバーで動かしました。

同軸ケーブルを固定し、サーバーへ挿入したRTL-SDRに繋げている
使用した設定ファイル群はGitHubに公開しています。
航空無線受信システム
先程述べた通り、大学のキャンパスの近くに羽田空港があり、航空無線もよく受信できると考えられました。
変調方式はAMであるため、対応しているアマチュア無線機や受信機を用いれば簡単に受信できます。
そこでログペリオディックアンテナを使用して受信してみたところ、羽田空港の様々な周波数帯の航空無線をよく受信できました。
これを先程のADS-Bで受信したデータを見ながら聞くと、自作管制システムになります。航空機好きにはたまらず、ずっと見ていられるシステムができました。
リモート受信環境の構築
こちらはログペリオディックアンテナを使用することにしたのですが、アンテナと展示場所が離れていたため、これもなんとかする必要がありました。
こちらはデスクトップPCにCubicSDRをインストールしRTL-SDRを接続して受信して、リモートデスクトップで展示場所から操作することで解決しました。
当日の展示の様子
ダッシュボードはプロジェクターでスクリーンに映し出し、ノートパソコンで航空無線を受信して聞けるようにしました。
ダッシュボードには航空機の位置情報の他に、高度や速度による分布やコールサインのコード別航空機数なども表示しました。

展示の様子
当日はアマチュア無線家の方々や、航空機が好きなお子様連れの方々、航空無線関連の仕事をされていた方々など、様々な方に興味を持っていただけました。
展示をご覧いただいた皆様、ありがとうございました。
展望
今回のアンテナは一時的な設置であったため既に撤去してしまい、Grafanaもシャットダウンしてしまいましたが、将来的には常設できるようにしたいと考えています。
そのため、同軸ケーブルではなくWi-Fiを用いたデータ伝送(RF over IP)を検討しています。
常設に成功したら、今回のダッシュボードの常駐化やFlightradar24へのデータ提供も行いたいと考えています。
また、ADS-Bだけでなく、汎用的なソフトウェア無線受信システムとしても発展させていきたいと考えています。
おわりに
今回の工大祭では、私が好きな無線技術と航空機、Grafanaを用いて面白い展示ができました。
JA1YADではアマチュア無線の他にも、このような自由な創作を楽しめるので、興味がある方はぜひ入部して、一緒に活動しましょう。
Discussion