notebook 001

notebook 001

INPUTとOUTPUTの個人的な備忘録です。

Flightradar24にデータをフィードしてみる(Raspberry Pi にセットアップ)

Flightradar24 という、世界中の飛行機が今どこ飛んでる情報が見られる有名なサイト(スマホアプリも)があり、私も飛行機が多い場所に行くとつい起動して見てしまうのですが(楽しい)、その情報は全世界のユーザから集められたデータから成り立っています。私も、我が家のアンテナで受信したADS-BのデータをFlightrader24に提供する、 feeder (feed) をやってみました。フィードすると、有償のBusinessアカウントにアップグレードされる特典も付いてきます。備忘録です。

Flightradar24: Live Flight Tracker - Real-Time Flight Tracker Map

f:id:mkmkipy:20200607000153j:plain


用意したもの

Raspberry Pi 関連

ADS-Bを受信するための、USBドングル型のチューナー(R820T2)

航空機が発信している ADS-B 位置情報 (高度、GPS 座標、機首方位など) を拾って受信するための機器として。「R820T2」や「ADS-B」をキーワードに探すと、こういう青いものがよく出てきます。
ただ、R820T2表記でもダメだった情報をいくつか見かけたので、レビューをよく読んで、こちらを購入。アンテナも付属。

  • Nooelec NESDR Mini 2+ 0.5PPM TCXO

f:id:mkmkipy:20200607000228j:plain

セットアップ

Raspberry Pi に OSインストール(Raspbian)

本来は、キーボードもディスプレイも不要(headless)で、Wifi経由のsshでインストール出来るはず。
はず、、というのは、どうやっても家のWifiルーター経由でラズパイにsshできない問題(connection refused)が有り、仕方なくディスプレイとキーボード繋いでやることに。ただこの問題は、後日、家のWifiルーターファームウェアをバージョンアップしたら解決しました。

※OSインストールは2019年4月に実施、そこから特にUpdateしておらず以下。最近は、Raspberry Pi Imagerという、公式のOS書き込みツールが新しく出てきているようです。

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux

USBドングル型のチューナーを設置

付属のアンテナをチューナーに繋ぎ、チューナーをラズパイのUSBに挿しただけですが、どうやらこれだけで認識した様子😊

Flightrader24にFeedするためのソフトウェアをインストール(fr24feed)

インストール時に聞かれること
  • Flightradar24に登録用のメールアドレス
  • アンテナ設置場所の緯度(latitude)・経度(longitude)
  • アンテナ設置場所の標高(単位はフィートで)

緯度・経度はgoogle mapのURLから、標高は住所から標高を調べるサイトでみて、住んでいる階の高さを適当に足しました。

インストール

ここに書いてあるとおりに、
Share your ADS-B data - Real-time flight tracker | Flightradar24

実行したのは以下の1行。
sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"

$ sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"
(略)
fr24feed (1.0.25-3) を設定しています ...
You don't seem to have any dump1090 installed. On the fr24feed start it will automatically install dump1090-mutability.
Created symlink /etc/systemd/system/multi-user.target.wants/fr24feed.service → /etc/systemd/system/fr24feed.service.
(略)
______  _  _         _      _                    _              _____    ___
|  ___|| |(_)       | |    | |                  | |            / __  \  /   |
| |_   | | _   __ _ | |__  | |_  _ __  __ _   __| |  __ _  _ __`' / /' / /| |
|  _|  | || | / _` || '_ \ | __|| '__|/ _` | / _` | / _` || '__| / /  / /_| |
| |    | || || (_| || | | || |_ | |  | (_| || (_| || (_| || |  ./ /___\___  |
\_|    |_||_| \__, ||_| |_| \__||_|   \__,_| \__,_| \__,_||_|  \_____/    |_/
               __/ |                                                        
              |___/                                                         
[main][i]FR24 Feeder/Decoder
[main][i]Version: 1.0.25-3/generic
[main][i]Built on Apr  8 2020 07:06:55 (HEAD-5e8ef0c.git/Linux/static_armel)
[main][i]Running on: raspbian9
[main][i]Local IP(s): 192.168.11.10
[main][i]Copyright 2012-2020 Flightradar24 AB
[main][i]https://www.flightradar24.com
[main][i]DNS mode: PING
Welcome to the FR24 Decoder/Feeder sign up wizard!
Before you continue please make sure that:
 1 - Your ADS-B receiver is connected to this computer or is accessible over network
 2 - You know your antenna's latitude/longitude up to 4 decimal points and the altitude in feet
 3 - You have a working email address that will be used to contact you
 4 - fr24feed service is stopped. If not, please run: sudo systemctl stop fr24feed
To terminate - press Ctrl+C at any point
Step 1.1 - Enter your email address (username@domain.tld)
$: abcabc@xyz.net <=== ★メールアドレスを入力
Step 1.2 - If you used to feed FR24 with ADS-B data before, enter your sharing key.
If you don't remember your sharing key, you can find it in your account on the website under "My data sharing".
https://www.flightradar24.com/account/data-sharing
Otherwise leave this field empty and continue.
$: <=== ★何も入力せずに、Enter(既存ユーザはShareing Key(パスワードのようなもの)を入力)
Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$: yes  <=== ★よくわからないまま yes にしてみた。緯度経度硬度を正確に入れなさいと言われる。
IMPORTANT: For MLAT calculations the antenna's location should be entered very precise!
Step 3.A - Enter antenna's latitude (DD.DDDD)
$:35.6585   <===★緯度を入力(この入力例は、東京タワーの緯度)
Step 3.B - Enter antenna's longitude (DDD.DDDD)
$:139.7454  <===★経度を入力(この入力例は、東京タワーの経度)
Step 3.C - Enter antenna's altitude above the sea level (in feet)
$:333 <===★標高をフィートで入力(この入力例は、ダミー値)
Using latitude: 35.6585, longitude: 139.7454, altitude: 333ft above sea level
Validating email/location information...OK
The closest airport found is ICAO:RJTT IATA:HND near Tokyo. <== ★最も近い空港を勝手に割り出してくれる(今回はRJTT/HND、つまり羽田空港)
Latitude: 35.552250
Longitude: 139.779602
Country: Japan
Flightradar24 may, if needed, use your email address to contact you regarding your data feed.
Would you like to continue using these settings?
Enter your choice (yes/no)$:yes <===★上記設定で続けますか?yes!!
Step 4.1 - Receiver selection (in order to run MLAT please use DVB-T stick with dump1090 utility bundled with fr24feed):
 1 - DVBT Stick (USB)
 -----------------------------------------------------
 2 - SBS1/SBS1er (USB/Network)
 3 - SBS3 (USB/Network)
 4 - ModeS Beast (USB/Network)
 5 - AVR Compatible (DVBT over network, etc)
 6 - microADSB (USB/Network)
 7 - SBSx via Basestation (localhost:30006)
Enter your receiver type (1-7)$:1 <===★1を入力
Checking for dump1090...NOT FOUND
Step 4.3 - Enter your additional dump1090 arguments or leave empty
 <===★何も入力せずに、Enter (「追加のdump1090はある?」)
Step 5.1 - Would you like to enable RAW data feed on port 30002 (yes/no)$:yes
Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:yes
Step 6 - Please select desired logfile mode:
 0 -  Disabled
 1 -  48 hour, 24h rotation
 2 -  72 hour, 24h rotation
Select logfile mode (0-2)$:1 <===★任意だが、今回は1を入力
Submitting form data...OK
Congratulations! You are now registered and ready to share ADS-B data with Flightradar24.
+ Your sharing key (1cXXXXXXXXXXXXXX) ★sharing key が表示される★ has been configured and emailed to you for backup purposes.
+ Your radar id is T-RJTTXXX ★RADAR IDが表示される★, please include it in all email communication with us.
+ Please make sure to start sharing data within one month from now as otherwise your ID/KEY will be deleted.
Thank you for supporting Flightradar24! We hope that you will enjoy our Premium services that will be available to you when you become an active feeder.
To start sending data now please execute:
sudo systemctl start fr24feed
Saving settings to /etc/fr24feed.ini...OK
Installation and configuration completed!
$

sharing key と、RADAR ID(レーダーID) は、後でメールでも届きました。
レーダーIDは、T-RJTT-XXX のような、最寄りの空港のレターコードがついた、それっぽい感じの名前が付与されます😊

fr24feedを起動

インストールログの最後にかかれているように、以下で起動します。

$ sudo systemctl start fr24feed

fr24feed 起動状況の確認

fr24feed-status

$ fr24feed-status
[ ok ] FR24 Feeder/Decoder Process: running.
[ ok ] FR24 Stats Timestamp: 2020-06-03 16:29:57.
[ ok ] FR24 Link: connected [TCP].
[ ok ] FR24 Radar: T-RJTTXXX.
[ ok ] FR24 Tracked AC: 0.
[ ok ] Receiver: connected (0 MSGS/0 SYNC).
[ ok ] FR24 MLAT: ok [UDP].
[ ok ] FR24 MLAT AC seen: 0.

systemctl status fr24feed

$ sudo systemctl status fr24feed
● fr24feed.service - Flightradar24 Decoder & Feeder
   Loaded: loaded (/etc/systemd/system/fr24feed.service; enabled; vendor preset:
   Active: active (running) since Sun 2020-05-31 11:09:12 JST; 3 days ago
 Main PID: 440 (fr24feed)
   CGroup: /system.slice/fr24feed.service
           ├─  440 /usr/bin/fr24feed
           └─17416 /usr/bin/dump1090-mutability --raw --mlat --write-json /run/d

※ラズパイ再起動後も自動起動するよう設定されている。

 $ systemctl is-enabled fr24feed
enabled

ブラウザから

http://<ラズパイのIPアドレス>:8754/

f:id:mkmkipy:20200604103814j:plain

関連ログ

  • /var/log/fr24feed/fr24feed.log : fr24feedのログ
  • /run/dump1090-mutability/*.json:dump1090-mutability のログ

リソース使用状況など

CPUもメモリも全然余裕そうです。

f:id:mkmkipy:20200606225248p:plain

Flightradar24サイトで自分がFeedした情報を確認

feedが始まると、Businessアカウントに格上げされます✈️
(feedが止まると格下げされるっぽい)

f:id:mkmkipy:20200606141312p:plain

My Data Sharing から、自分がfeedしたデータの状況が確認できます。送信したフライトの数や、方位別集計、どのくらい遠くまで拾えたかの距離(単位は nm = 海里)などが、グラフィカルに表示されます。(グラフ表示は数時間待ちました。最初出なくて焦ってた💦)

自分のスタッツのグラフ見てるだけでも楽しいですが、ランキング表示があり、これはやる気をかきたてられるやん...。と、思いました。

ADS-B data statistics - Real-time flight tracker | Flightradar24

スコアは、過去30日間の起動時間・距離(最大や平均)から集計されるようです。起動しっぱなしにするだけで 8,640 points はもらえるなので、あとはいかに距離を広げてスコアを稼ぐかのようです。

おまけ:インストール後に学んだこと

飛行機も無線も全く詳しくないけどよくわからないままにチューナー挿してコマンド1つ実行したら動きはじめたようですが、後追いで調べてみました。引用だらけで失礼します🙏

ADS-B

ADS-B = Automatic Dependent Surveillance-Broadcast

ADS-B は、航空機を追跡するため協調監視技術です。この技術により、航空機は、モード S 信号方式を使用して、位置情報 (高度、GPS 座標、機首方位など) を定期的にブロードキャストします。
送信周波数: 1090 MHz

https://jp.mathworks.com/help/comm/examples/airplane-tracking-using-ads-b-signals.html

dump1090

RTL-SDRレシーバで受信したADS-Bの信号を文字にして出力するデコーダソフトウエア。

https://gato.intaa.net/archives/21762

ADS-Bの送信周波数が 1090 MHzにちなんだ名前になっているそう。dump1090にはいくつかのバージョン(のようなもの)がある。
flightradar24のインストールで、一緒にインストールされる dump1090は、dump1090-mutabilityというもの。

データを、Flightradar24に送らなくても、単体でも簡単な可視化ができるWebアプリも付いているので、単体で起動してみる。

### fr24feedで自動起動しているものを停止
$ sudo systemctl stop fr24feed
### dump1090を起動
$ dump1090-mutability --net --aggressive --interactive

インタラクティブに更新されます。
あと、ブラウザからも見れます。 http://<ラズパイのIPアドレス>:8080

dump1090により保存される、JSONファイルのフォーマット内容例(※これはdump1090-fa のもの)

dump1090/README-json.md at master · SDRplay/dump1090 · GitHub


ただこちら、もう新規インストールには使わないで、これからは dump1090-fa を使ってよ~とある。
GitHub - mutability/dump1090: Dump1090 is a simple Mode S decoder for RTLSDR devices



今後余力があれば、dump1090-fa に置き換えを検討したいと思います。
dump1090-fa - がとらぼ