ADS-Bを受信してFlightradar24と連携!
Outline
ADS-Bを受信するわけ(ADS-Bの解説)
ADS-Bの受信、Flightradar24への提供と法律懸念(違法じゃないの?)
ADS-Bを受信するために必要なもの(物品紹介)
ADS-Bを受信する(コマンド紹介)
Author
学生団体Keisei 副代表 @negishi_tako
たこ系エンジニアやってます。
1. ADS-Bを受信するわけ
まず、ADS-Bについて知っている人は少ないと思います。私もこの開発を始めようと思うまで知りませんでした。(航空オタクの代表はもちろん知っていました 笑)
そんなADS-Bですが、それを利用したサイトがFlightradar24(Fr24)です!
Flightradar24はブラウザやネイティブアプリを利用して、世界中を飛行している航空機の位置情報や高度、速度を見ることができるアプリです。おもしろいですよ!
話がそれますが、フライトの記録にはmyflightradar24もおすすめですよ!
さて、そんなFr24はユーザが取得したADS-Bの情報を集めることで運営されています。(人工衛星も使っているという話もありますが…)
それに我々も情報を提供しよう!のが今回のテーマです。
ちなみに、情報提供をすることで年間$500のBusinessプランが無料になります!すごい!
2. ADS-Bの受信、Flightradar24への提供と法律の懸念
※この記事の法やルールの解釈は当団体のもので、これによって一切の責任を負うものではありません。また、この記事は法律の解釈の正当性を主張するものではなく、技術の紹介を行うものです。
やる気満々になっていると思いますが、一つ懸念点があります。それは電波法です。電波法第59条では以下のように記されています。
色々調べたところ、特定の相手方に対して行われる無線通信にBroadcast(だれでも聞ける)が当てはまるのか???というところが議論されているようです。とても懸念ですね…
3. ADS-Bを受信するために必要なもの
ADS-Bを受信するには少し道具が必要です。中華製も多いので今回使用したものをピックアップします。
(今後たくさん作る予定なのでその時は比較記事をつくります。)
Raspberry Pi Zero 2 W
ラズパイ用電源
SDカード
SMAドングル
アンテナ
microB to A 変換コネクタ
実際に購入したのは
購入時点(2024年11月19日)で12,686円でした。ラズパイのケースは3Dプリンターで印刷するか、買ってください。
届いたらよしなに組み立てます。特に難しいところはないと思いますが、アンテナが3本ついていたので黒い金属のものを使ってみました。
4. ADS-Bを受信する
やる工程はあまり難しくありません。
ただし、インストールの順番を間違えると競合したりしてめんどくさくなるので、順番は守った方が良いです。(経験者)
工程
i. ラズパイにOSの書き込み
ii. FAとFr24へのサインアップ
iii. ラズパイの初期設定
iv. FAのインストール
v. dump1090のインストール
vi. Fr24のインストール
各モジュールの役割
FlightAware: ローカル環境でマップに飛行機の位置情報表示、FAへのfeed
dump1090: 受信したADS-Bのデコード
Flightradar24: Fr24へのfeed
i.ラズパイにOSの書き込み
Raspberry Pi imagerをインストールして書き込みます。
デバイス: Raspberry Pi Zero 2 W
OS: Raspberry Pi OS Lite(32bit)
書き込む際に起動後の設定を編集のボタンが出てくるので編集します。
ホスト名: 設定
SSH: 認証を設定(鍵認証を推奨)
ユーザ名・パスワード: 設定
Wi-Fi: SSID/パスワードを設定(有線接続の場合は不要)
ここでSSHとWi-Fiの設定をすることで、ディスプレイがなくても設定できます。
ii. FlightAware Flightradar24へのサインアップ
書いてる間に終わらせちゃってください。登録済みなら不要です。https://login.flightaware.com/signup
https://www.flightradar24.com/premium/signup
iii. ラズパイの初期設定
SDカードをラズパイに差し込み、電源を入れます。ログイン画面が表示されるのでよしなにログイン。SSHを利用する場合には、同一ローカルネットワーク内からラズパイのIPアドレスに対してSSHコマンドを実行します。IPアドレスがわからないときには、SSHするPCで
PS > arp -a
などを実行し、IPアドレスを取得してください。
ログインしたら、更新作業を行います。
$ sudo apt update
$ sudo apt upgrade
iv. FlightAwareのインストール
FlightAwareはFlightradarに似たサービスです。じゃあ要らないと思うかもしれませんが、このツールも同居させることで、ローカルネットワークからアクセスした際に、web画面にマップが表示されて楽しいです。
$ wget https://ja.flightaware.com/adsb/piaware/files/packages/pool/piaware/f/flightaware-apt-repository/flightaware-apt-repository_1.2_all.deb
$ sudo dpkg -i flightaware-apt-repository_1.2_all.deb
$ sudo apt update
$ sudo apt install piaware
$ sudo piaware-config allow-auto-updates yes
$ sudo piaware-config allow-manual-updates yes
公式docがあります!
ちなみにステータスは以下で確認可能です。
$ sudo systemctl status piaware
$ sudo systemctl enable piaware #自動起動設定
インストールが完了したら https://ja.flightaware.com/adsb/piaware/claim にアクセスし、受信機(クライアント)を登録します。
v. dump1090のインストール
$ sudo apt install dump1090-fa
$ sudo reboot #再起動
アメリカだと以下も実行します。
$ sudo apt install dump978-fa
ちなみにステータスは以下で確認可能です。
$ sudo systemctl status dump1090-fa
$ sudo systemctl enabole dump1090-fa #自動起動設定
vi. Flightradar24のインストール
Flightradar24より必要なソフトウェアをダウンロード、インストールします。
$ sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"
色々入力を求められるので入れます。
Step 1.1: Flightradar24に登録したメールアドレス
Step 1.2: 引継ぎなければそのままEnter
Step 1.3: yes(MLATという機能がある)
Step 3.A: アンテナを設置している場所の緯度
Step 3.B: アンテナを設置している場所の経度
Step 3.C: アンテナを設置している場所の高さ(feet)
これらを入力すると、先ほど入れたdump1090があるから、よしなにセッティングするか~的なことを聞かれます。お願いします。(yes)
これでインストールが完了です。
ちなみにステータスは以下で確認可能。
$ fr24feed-status
$ sudo systemctl status fr24feed
デバッグ録 fr24feedコマンドをつかう
入れる順番をごちゃごちゃにしてた際、再起動として
$ fr24feed
を実行しましたが書き込み不可能のエラーが出ました。こちらは
$ sudo systemctl stop fr24feed
でアプリを停止し、アプリケーションを停止させてから再度実行するときにのみ使えます。
デバッグ録 rtl_testコマンドをつかう
アンテナの接続が確認できない場合に、rtl_testコマンドを使用しました。
$ rtl_test
#デバイスが発見されると、ここに表示されます。
インストールも簡単です。
$ sudo apt install rtl-sdr
EX. 飛行機を楽しもう!
Flightradar24の受信情報 http://{Local_IP}:8754
FlightAwareの受信情報(マップ付き) http://{Local_IP}:8080
感想
今回は、ADS-Bを受信し視覚化を行いました。どちらもドキュメントが整備されていて、以外とセットアップが簡単だった印象です。現在は、安定稼働のために、自宅サーバの監視技術を活かし、CloudFlared,Prometheus,Grafanaでの遠隔監視などに挑戦中です!
Flightradar24やFlightAwareへのデータ提供については各自の判断で実施してください!