眠っていたRaspberry Piが“航空情報局”に!Flightradar24有料プランを無料で楽しむ裏ワザ

 日本の空には数多くの飛行機が飛んでいるが、その飛行機が一体どこからどこへ行くのか、どういった機種なのか……と、ふと気になったことはないだろうか。

 そんなときは航空機の動きをリアルタイムで追跡できるFlightradar24FlightAwareといったサービスが役に立つ。これらは、世界中の航空機の位置を地図上に表示し、フライト情報や機体データを詳細に提供してくれる便利なものだ。

 しかし、フル機能を使うには年額数万円の有料サブスクリプションが必要である。具体的にはFlightradar24のBusiness Accountは月額49ドル(約7千円)、FlightAwareのEnterprise Accountは月額99.95ドル(約1万5千円)という高額な料金設定となっている(中間のプランもあるのだが、話がややこしくなるため今回は割愛させていただく)。

 有料サブスクリプションを契約すると具体的にどんなことができるようになるのかというと、筆者がメインで使用しているFlightradar24の場合、Freeプランでは機体情報で所属国やシリアルナンバー、機齢がロック(閲覧不可)されていたりするが、Businessプランではすべて閲覧可能になるといった具合だ。

 特に機齢については、「おいおい次のフライトは機齢20年の古い機材かよ~」といったちょっと通ぶった会話が可能になる。まあ筆者はいつも一人なので語る相手もいないのだが。

Freeプランの場合
Businessプランの場合

 また、空港を離陸、着陸するフライトについてもFlightradar24の場合Freeプランではそもそもロックされており確認ができない。一方Businessプランではすべて確認ができる。

 空港の案内情報にはない、どこの滑走路からどの向きでということまで把握できるため、特に空港のデッキで黒白さまざまな望遠レンズを振り回している皆様には有料サブスクリプションは必須と言っても良いだろう。

Freeプランの場合
Businessプランの場合

 また、まるでフライトシムのように3Dで再現された3D View機能もBusinessプランであれば無制限に利用可能だ。あの滑走路までの移動や離陸のワクワクをそれなりに感じることができるため、筆者はこの原稿の執筆を何度投げ出して航空券を検索してしまったことか……割と罪深い機能である。

Freeプランでは3セッションまでに限定されるが、Businessプランでは無制限に利用できる

 実は、これらの高額な有料サブスクリプションを「完全無料」で利用する方法があることを知っているだろうか。その秘密は、ADS-B(Automatic Dependent Surveillance-Broadcast)データの「フィード」にある。航空機が発信するADS-B信号を受信して、これらのサービスにデータを提供することで、お返しとして高額なサブスクリプションを無償で利用できるのだ。

 今回は、家に眠っている「Raspberry Pi 3 Model B+」や比較的安価に入手が可能な「Raspberry Pi Zero 2 W」を使い、ADS-B Feederを導入して、簡単にADS-Bフィーダを構築する方法を紹介する。

筆者の家で3年ほど動作させているRaspberry Pi 3 Model B+のADS-Bフィーダ。まだOSがDebian 10 busterベースということに気がつき、今回ADS-B Feederへ入れ替えを決意した

 ADS-Bは、航空機が自らの位置や高度、速度、機体識別情報を1,090MHz帯で定期的にトランスポンダー(送信機)を使い放送する監視技術で、簡単に言えば空飛ぶ放送局だ。この放送を地上局やほかの航空機、衛星などがこの信号を受信することでリアルタイムに航空機の位置を把握できる仕組みとなっている。

 通常は、航空管制内で使用されるものだが、放送なのだから信号をデコードすることさえできれば個人レベルでもコミュニティを形成し航空機を追跡することが可能だ(ADS-Bの信号自体は暗号化されていないため、偽情報を紛れ込ませるADS-Bスプーフィング対策が求められている)。

 今回利用(フィード)するFlightradar24やFlightAwareなどは、そのコミュニティに該当する。

 とはいえピンポイントでADS-Bを受信するための専用ハードウェアを準備するのは大変だ。そこで出番となるものがソフトウェア無線(SDR)だ。フィルタや変調、復調などをソフトウェアで行なうことにより専用ハードウェアが不要になり、ニッチな用途でも安く対応できるところが強みだ。今回は汎用SDRデバイスとして海外のデジタルTV放送を受信するためのUSB接続タイプのDVB-Tスティックを使用することにする。

 なお、ADS-Bは国内を飛行するすべての航空機に搭載されているわけではない。たとえばANAの「デ・ハビランド・カナダ DHC-8」やFDAの「エンブラエルE175の8号機」までは同じく1,090MHz帯を使用するが、地上からのレーダー信号に応答するのみのMode-Sトランスポンダーしか搭載していない。

 ADS-Bフィーダを作る上で必要となるハードウェアを紹介していく。

 基本的にAliExpressやAmazonで入手が可能だ。

 Raspberry Piについては、64bitに対応したRaspberry Pi Zero 2 W、Raspberry Pi Model 3 A+/B(+)以上が必要となる。今回は、市場売価3,000円程度と価格もこなれていて入手しやすいRaspberry Pi Zero 2 Wと、個人的に最も盛り上がっていた時代のRaspberry Pi 3 Model B+で検証を行なう。

 GPIOピンヘッダについては、ピンから電源を取るタイプの空冷ファンを使う予定がなければ不要だ。今回の手順はRaspberry Pi Zero 2 Wを例に取り上げるが、Raspberry Pi 3 Model B+でも同様の検証は行なっているため安心して欲しい。

筆者の家に未開封で放置されていたRaspberry Pi Zero 2 W

 システムを導入するためにmicroSDが必要になるが、8GB以上の容量があれば問題ない。

 連続稼働になるため寿命が気になるところだが、監視カメラのように激しく書き込みが続くわけでもないため、好きな物を使えば良いだろう。万が一microSDカードが故障しても復旧は簡単だ。

 また、本体の動作とは関係ないが、イメージを書き込むためにカードリーダが必要になることも忘れないでおこう。

筆者の家の床に落ちていたKIOXIA EXCERIA 32GB

 連続稼働になるため、ケースとヒートシンクも準備しておく。

 今回はRaspberry Pi Zero 2 W用のアルミケースをAliExpressにて500円程度で購入した。

今回は使用しないが、GPIOヘッダーも付属する

 一般的にUSBタイプのDVB-Tチューナはソフトウェア無線(SDR)で構成されていることがほとんど。ただ、DVB-Tチューナであれば何でも良いわけではない。

 ADS-Bフィーダとして実績があるものは、Realtek製の「RTL2832U」(DVB-T用の復調IC)とRafael Micro製の「R820T」「R820T2」「R828D」(チューナIC)を組み合わせたものだ。RTL2832UとFitipower製の「FC0012」が搭載されたものもあるが、これはADS-Bで使用する1,090MHzに非対応となるため適していない。また、1,090MHzに対応したFC0013もあるのだが、こちらでADS-Bを受信できたという報告は今のところ筆者は確認できていない。

 よって、RTL2832U+R820T/R820T2/R828Dの組み合わせのDVB-T用チューナを購入することが確実だ。厄介なことに、どれも筐体は似たようなものなので、商品ページの単語やレビューやコメントでADS-Bのフィードができているか……といった情報をよく確かめてから購入してほしい。

 今回筆者がAliExpressで購入したものはこちらで、RTL2832U+R820Tの組み合わせで2,000円程度だった。

パンダ印のソフトウェアCDとリモコンは今回使用しない

 Raspberry Pi Zero 2 Wの場合、基板にフルサイズのUSB Type-Aポートは搭載されていない。そこで、USB microBポートからUSB OTGケーブルを使うことでDVB-Tチューナを接続するためのUSB Type-Aポートを確保する。

 今回、USB OTGケーブルのみ購入すれば良かったのだが、Raspberry Pi Zero向けの3点セット(USB OTGケーブル+Mini HDMI変換+GPIOヘッダー)が安かったためこちらを選択。 AliExpressで400円程度だった。

無駄に増えていくGPIOヘッダー

 USB充電器については安定した供給ができるものが推奨される。

 スペックとしては少なくとも5V/1.5A以上に対応しているものが望ましい。もちろん充電器だけでなくUSBケーブルもしっかりと電源が供給できるものを選択したい。

 特にRaspberry Pi 3 Model B+の場合は、低電圧アラーム(いわゆる雷マーク)が出やすいので注意が必要だ。より性能の高いRaspberry Pi 4やRaspberry Pi 5はより高出力なACアダプタを準備したい。

 逆にRaspberry Pi Zero 2 Wについてはそこまで気にする必要はないようで、筆者は床に転がっていたAmazonデバイスに付属していた5V/1Aの充電器を使用している。

何に付属していたのか思い出せない……

 Raspberry Pi Zero 2 Wにケースとヒートシンク、USB OTGケーブル経由でDVB-Tチューナの組み合わせたイメージは以下の通りだ。実際はこれにイメージを書き込んだmicroSDカードを挿入し、USB充電器とUSBケーブルで電源供給すれば起動する。

 Raspberry PiやDVB-Tスティックは、日光に当たらないけど、外への見通しの良いところへ設置することがおすすめだ。

 Raspberry Pi 3 Model B+の環境については基本的に筆者がこれまで3年運用してきてものを引き続き流用する。電源用のUSBケーブルのみ加水分解でボロボロになっていたため新品に交換した。

3年経過しても必要なものは変わらない

 Raspberry PiでADS-Bを受信するためには、OSに加えて、デコーダやフィーダといったアプリケーションを自力で導入する必要があったため、Linuxのシェルが扱えなければ難しいというイメージがあった。

 そこでFlightradar24では専用の「Pi24」というイメージが配布されているが、基本的にFlightradar24しかフィードできないものだ。執筆時点でRaspberry Pi OS Lite(bookworm)ベースのイメージが公開されている。

 FlightAwareも専用のPiAware Imageを配布しているが、執筆時点でRaspbian 10、つまりDebian 10 (buster)ベースとなっているため2024年6月でOSのサポートが終了している

 そして今回使用する「ADS-B Feeder」は、1つのイメージで複数のフィーダへのアップロードが可能だ。シェルでの操作も不要なため初心者はもちろん、複数のサービスへフィードしたい上級者も満足できる内容となっている。執筆時点でRaspberry Pi OS Lite(bookworm)ベースのイメージが公開されている。

 ADS-B Feederは、Raspberry Pi以外にも「Orange Pi」や「NanoPi」、もしくは「x86-64」といったほかの環境向けのイメージも公開しているため興味がある読者は確認してみよう。

 2025年10月2日に、新しくDebian 13(trixie)ベースのRaspberry Pi OSが公開されたため、今回紹介しているADS-B Feederで採用されているDebian 12(bookworm)ベースのイメージはレガシー扱いになった。しかし、しばらくは継続してサポートされる見込みだ。

 ADS-B Feederをもっとも簡単に書き込む方法はRaspberry Pi Imagerを使用する方法だ。

Raspberry Pi公式サイトからダウンロードできるものだ

 [デバイスの選択]から使用するRaspberry Piのモデルを選択する。

今回はRaspberry Pi Zero 2 Wを選択した

 次に[OSを選択]→[Other specific-purpose OS]を選択する。

 [ADS-B Feeder Image]を選択する。

 [ADS-B Feeder Image v3.0.4]を選択する。

執筆時点の最新バージョンはv3.0.4だが、今後はより新しいバージョンになるはずだ

 最後に[ストレージを選択]から、カードリーダに挿入したmicroSDカードのドライブを選択する。

表示内容は環境による。心配であればUSBストレージはすべて取り外しておこう

 内容に問題がなければ[次へ]を選択する。

Raspberry Piデバイスとストレージの項目は環境によって変わる

 OSのカスタムをするか聞かれるので[いいえ]を選択する。

 [はい]を選択する。

ここで[はい]を選択するとmicroSDカードに入っていたデータはすべて消えるため注意が必要だ

 書き込み中。終わるまでしばらく待つ。

書き込み後は確認(ベリファイ)が実施される

 書き込みが正常に完了したらmicroSDカードをカードリーダから抜いて[続ける]を選択する。

あとはRaspberry Piで起動するだけ

 microSDカードにADS-B Feeder Imageを書き込んだら、次はRaspberry Piがアクセスする無線LANの設定だ。

 microSDカードをRaspberry Piに取り付け、起動すると無線LANのSSID一覧に[adsb.im-feeder]という名前の暗号化されていないアクセスポイント表示される。

 接続すると、キャプティブポータルが表示され、Raspberry Piが接続するSSIDの選択とパスワードの入力を行なう。気をつけたいところは、WPA3に対応しない点だ。よって、WPA2のSSIDを選択する必要がある。

 入力が終わったら[CONFIGURE]を選択する。

今回はiPhoneで設定を行なったが、もちろんPCでも設定はできる
設定中。Wi-Fi接続は切れるが、しばらくして再び[adsb.im-feeder]のSSIDが表示されてしまった場合はアクセスポイントへうまく接続されていないことになる。一覧に[adsb.im-feeder]が表示されない場合は次へ進もう。

 ブラウザのアドレスに「http://adsb-feeder.local/」と入力すると、ローカル環境からのみアクセスが可能な初回のセットアップ画面が表示される。もし表示されない場合は使用しているルーターがRaspberry Piに割り当てたIPアドレスを入力しよう。

 Basic Setupの画面が表示されたら、まずは任意のステーション名(マップ公開時の名前)を入力し、設置場所の緯度と経度と海抜を入力する……といっても把握している読者はいないと考えられるので、右上にある[location and elevation finder tool]のリンクを選択する。

 すると、地図が表示されるため設置場所にピンを立てる。

 ピンを立てた場所の経度、緯度、海抜が表示されるため、元のBasic Setupへコピペする。

 これで家バレしてしまうのでは?と心配になるかもしれないが、ADS-Bだけフィードするのであれば公開されることはなく、単に地図の中心として機能するだけだ。それでも心配であればピンを立てる場所を少しずらしても問題ない。

 今回は使用しないが、ADS-Bに加えてMode-Sしか応答できない航空機の位置を割り出すMLAT(マルチラテレーション)を使用する場合は位置情報が重要になってくるが、これも後ほど設定でプライバシーフラッグを有効にすれば公開されない。

今回はインプレスの座標を設定している。実際の設置場所はもっと東の方だ

 Basic Setupにすべて入力したら、What data do you want to track?で[ADS-B]にチェックを入れ、[Default(integrated)]を選択。最後に[SUBMIT]でセットアップが開始される。

セットアップ中。必要なソフトウェアはここでダウンロードされる

 ソフトウェアのダウンロードが終了するとADS-B Feeder Homepage for ステーション名が表示され、いよいよフィーダが使用できるようになる。

 アドレスは引き続き「http://adsb-feeder.local/」を使用する。

 まずは単独でADS-Bを受信できているか確認をしていこう。

 この画面上でも確認はできるのだが、せっかくなので地図上で確認してみたいところだ。

 画面左上の[MAP]を選択する。

 すると、tar1090による地図が表示され、付近に飛行機が飛んでいればアイコンが表示される。アイコンをクリックするとADS-Bの情報を元にしたフライトの詳細情報が表示される。

 これだけでも十分満足できるレベルだが、表示されているすべての情報がADS-Bから受信した物ではないことは覚えておこう。

深夜~早朝のフライトが少ない時間帯で筆者の頭を悩ませていたが、ピーチの早朝羽田発台北行きが出てくれた。

 さて、いよいよFlightradar24へデータをフィードする作業に移る。

 まだFlightradar24のアカウントを作成していない場合はここで作成しておこう。

 プロフィールからサブスクリプションプラン(SUBSCRIPTION PLAN)がFreeになっていればOKだ。

 ADS-B FeederのData Sharingより、Flightradar24にチェックを入れ、フォームにFlightradar24で登録したメールアドレスを入力し[REQUEST KEY]を選択する。

とりあえず今回はFlightradar24以外のチェックは外しておく

 しばらくすると、先ほどメールアドレスを入力したところに共有キー(sharing key)が入力されているはずだ。最後に画面の上下にある[APPLY SETTINGS -TAKE ME TO THE WEBSITE]のボタンを選択すればFlightradar24へフィードが開始される。

再インストール時はこの共有キー(sharing key)を直接入力すればOKだ

 また、このタイミングでFlightradar24から共有キーのメールが送信されているはずなのでチェックしておこう。このメールにてレーダーコードも発行されるので覚えておきたい。今回は羽田空港に近い座標となるため、T-RJTTxxxxという名前となっている。RJTTはICAOで定められた羽田空港の4レターコードとなり、たとえばこれが中部国際空港に近い場合はRJGG、伊丹空港に近い場合はRJOOといった具合に登録される。

 ADS-B Feederのホームページに戻ると、You are feedingという項目が追加されており、Flightradar24へADS-Bの情報をフィードしていることが分かる。

 あとはFreeからBusinessに変わるのを待つだけだ。

 My account>data sharingに自分が追加したADS-B Feederに割り当てられたレーダーコードが表示されると、晴れてビジネスプランに変更される。

なお、フィードが停止するとフリープランに変更されてしまうため安定運用を心がけたい

 次は、FlightAwareにもデータをフィードしていく。

 まだFlightAwareのアカウントを作成していない場合はここで作成しておこう。

 マイアカウントでメンバーランクが「ベーシックユーザー」であればOKだ。

 ADS-B FeederのData Sharingより、FlightAwareにチェックを入れ、[REQUEST KEY]を選択する。

フォームは空欄でOKだ

 すると、自動的にフォームへフィーダIDが入力される。

 最後に画面の上下にある[APPLY SETTINGS -TAKE ME TO THE WEBSITE]のボタンを選択すればFlightAwareへフィードが開始される。

再インストール時はフィーダID(FlightAwareの統計ページではUnique Identifier)を入力すればOKだ

 ただ、現状ADS-B FeederとFlightAwareのアカウントの紐付けが行なわれていない。

 続いてADS-B FeederのホームページからFlightAwareのStatusのアイコンを選択する。

 FlightAware専用となるPiAwareの画面が表示される。

 ここでページ下部の[Claim this feeder to associate it with your FlightAware account.]を選択する。

本来はこの画面でマップが表示されるのだが、ADS-B Feederが表示しないよう制御している。また、デコーダとなるDump1090-faがN/Aとなっているが、ADS-B Feederでは代わりにReadsbを採用している

 これでADS-B FeederとFlightAwareのアカウントの紐付けが完了した。

 再びマイアカウントへアクセスして、メンバーランクが「法人の購読者」に変わっていたら完了だ。

筆者の場合すぐに反映されなかったため、少し時間はかかるようだ

 常時インターネットに接続している関係上、OSやアプリケーションのアップデートはしっかりと行ないたいものだが、ADS-B Feederは毎晩アップデートを確認してくれる機能もある。

 System→ManagementよりSystem Update Settingsでアップデート対象としてOSとフィーダソフトウェアの2つにチェックを入れ、[UPDATE SETTINGS]を選択すると設定が反映される。

自動的にアップデートされるため安心だ

 ここまで、Raspberry Piを使い、月額2万円以上のサブスクを無料で使おうという内容で書いてきたが、その価値があるかどうかは正直「人による」と言わざるを得ない。

 ただ、ADS-B Feederでフィードするということは、自分以外の個人はもちろん、データを活用している民間企業にも有益だ。特に地方のユーザーほどフィーダが少ないこともあり、参加すればデータの信頼性が高くなる。「ラズパイは家にあるけれどLチカして満足したんだよね……」というちょっともったいないRaspberry Piがもしあればこれを機にトライしてみてはどうだろうか。

関連記事: