Raspberry Piで航空機のADS-Bを受信してみました “FR24 Feeder/Decoder フィード自動起動” (4)
“Raspberry Piで航空機のADS-Bを受信してみました “NooElec R820T SDR & DVB-T MESDR Mini dump1090” (1)”
“Raspberry Piで航空機のADS-Bを受信してみました “IPアドレス固定化 ラズパイ環境整備 NTP RealVNC” (2)”
“Raspberry Piで航空機のADS-Bを受信してみました “macOS環境でADS-B信号のフィードにトライ” (3)“の続きです。
いよいよ、Raspberry Piから”Flightradar 24″に向けて、航空機のADS-B信号をフィードするよう準備を進めていくことにします。
(1) FR24 Feeder/Decoderをインストールする
なにはともあれ、FR24 Feeder/DecoderをRaspberry Piにインストールしないと事が始まりません。
と、その前に、データをフィードするRaspberry Pi(正確にはアンテナ。)を設置してあるロケーション情報を事前準備として調べておきます。
位置情報の基本、緯度と経度は、”Geocoding – 住所から緯度経度を検索“で検索しました。
それと、海抜は、”マピオン“でおおまかなところを確認。
それと、POOHの場合は、予めFR24 Sharing data用のsharing keyを取得済なので、コードを書いたメモを画面に出しておきました。
では、早速、インストール作業を始めます。とは言っても、”ターミナル”に投入するのは
“sudo bash -c “$(wget -O – http://repo.feed.flightradar24.com/install_fr24_rpi.sh)””という一行だけです。ここから先に掲載しているキャプチャ画面は、macOS環境からRaspberry PiにSSHした後、macOS環境上でターミナルを操作している様子になります。
最初のうちは、画面に流れる内容を眺めるだけで、何もする必要はありません。
“fr24feed”のインストールが開始されました。
事前に準備しておいた緯度軽度、海抜などの情報が揃っていることを確認してね、というメッセージが表示されます。
Step 1.1でメールアドレス、Step 1.2で、POOHの場合は、事前に取得しておいたFR24 Sharing data用のsharing keyを入力します。未取得の場合は何も入力せずにリターンキー、FR24 Sharing data用のsharing keyを忘れちゃった場合は記載のURLにアクセスします。今回は、FR24 Sharing data用のsharing keyをこの段階で入力するケースになりますが、始めての方はブランクでリターンキーした後の指示に従って下さい。
下図では、FR24 Sharing data用のsharing keyの入力を一度ミスったキャプチャ画面、
で、続いて正しいFR24 Sharing data用のsharing keyを入力してリカバリー。Step 3.AではRaspberry Pi(正確にはアンテナ。)がある場所の経度、
Step 3.BではRaspberry Pi(正確にはアンテナ。)がある場所の緯度、Step 3.Cでは海抜を入力していきます。
Step 4.1では、ADS-B信号を受信するデバイスを選択します。POOHの場合は、”NooElec R820T SDR & DVB-T MESDR Mini“なので、”1″を選択。
Step 4.3では、”dump1090″に付すオプションの指定、POOHはいつものように、下図のように入力したんですが、これがトラブルの原因になってしまいました。正解は何も入力せずにブランクでリターンキーです。
Step 5.1とStep5.2の設問に関しては実を言うと意味が分からなかったんですが、とりあえず”yes”にしておきました。
Step 6Aでは、ログファイルのローテッド(再利用)周期を選択するんですが、POOHの場合は無難に”1″を選択。
Step 6Bでは、ログファイルを保存する場所の指定ですが、POOHとしては拘りがなかったのでデフォルトのままということで、ブランクでリターンキー。
ログファイルを保存する場所を指定しないと、”/var/log/fr24feed.log”が作成されます。
以上でインストール手続きが完了です。
メッセージには、
・ADS-B信号のフィードを3日間以内に開始しないと、FR24 Sharing dataとradar idは無効になってしまう。
・ADS-B信号のフィードが開始されたら、その御礼として、Premium servicesを楽しむことができる。
・ADS-B信号のフィードを開始するために、”sudo service fr24feed start”というコマンドを投入する。
といった内容が記載されていますね。
(2) FR24 Feeder/DecoderでADS-B信号のフィードを開始!
念のために、Raspberry Piをリブートした後、
“sudo service fr24feed start”で、FR24 Feeder/Decoderのプロセスをスタートします。
ちなみに、
プロセスの停止は、”sudo service fr24feed stop”
プロセスの再起動は、”sudo service fr24feed restart”です。
続いて、”sudo service fr24feed status”で、FR24 Feeder/Decoderの動作状況をチェックします。Activate項目が、”activate (running)”になっているので問題なさそうです。
(3) Flightradar24にサインアップしてビジュアルにフィード状況をチェックする
“Flightradar24 Subscription plans“にアクセスして、サインアップ手続きを行います。
画面上の”Add coverage”メニューから”Activate Raspberry Pi”項目を選択すると、こういった画面が表示されます。POOHの場合は、未だアカウントがないので、”register one here”をクリックすると、元の画面に戻ってしまいます。
元の画面の一番下までスクロールしていくと、”Common questions”欄のなかに、”I share ADS-B data, how do I activate my free Business Plan subcription ?”というズバリの項目が見つかります。で、フィードの手続きを行った時に登録したメールアドレスでサインアップするよう指示があるので、その通りにサインアップします。
サインアップを終えると、メールアドレスに認証用のリンクを送るのでクリックするよう指示されますので、その通り行うと、サインアップが完了します。
画面右上のアイコン(下図では”Bussiness”となっていますが、この段階では”Basic”でした。)をクリックして、”My data sharing”項目を選択します。
すると、”SUBSCRIPTION PLAN”は”Basic”のまま、”STATUS”は何と”Offline”ではないですか!あれ?念のために、”Show statistics”をクリックして詳細をチェックしてみます。
んんん、やっぱりフィードできていないみたいだぞ!
(4) 正常にADS-B信号をフィードできるようにトラブルシューティングする
こういう時は冷静になって、これまでやってきたことを振り返ってみます。
“sudo service fr24feed status”で、FR24 Feeder/Decoderの動作状況をチェックして時は、Activate項目が、”activate (running)”になっているので問題ないことが分かっています。つまり、FR24 Feeder/Decoderのプロセスは正常に動いていることは確かです。
こういう時は、FR24 Feeder/DecoderをRaspberry Piにインストールした時の設定内容を見直してみるのが一番の近道です。
Raspberry Piのターミナルで、”sudo nano /etc/fr24feed.ini”と打って、FR24 Feeder/Decoderの設定ファイルの中身を確認してみることにします。
—
receiver=”dvbt”
fr24key=”???????????” <- FR24 Sharing data用のsharing keyなので伏せ字。
path=”/usr/lib/fr24/dump1090″
bs=”yes”
raw=”yes”
logmode=”1″
procargs=”–net –interactive”
mlat=”yes”
mlat-without-gps=”yes”
—
どうも、FR24 Feeder/DecoderをRaspberry Piにインストールした再、Step 4.3の”dump1090″に付すオプションの指定に誤りがあるのでは?と思い、”procargs=”–net –interactive””をまるまる削除したうえで上書き保存。で、”sudo service fr24feed restart”を打って、プロセスを再起動します。
(5) 再度、Flightradar24にサインインしてビジュアルにフィード状況をチェックする
“SUBSCRIPTION PLAN”は”Basic”のままだけど、”STATUS”は”Online”になったぞ!!
少し様子を見ていると、ADS-B信号のフィードもちゃんと出来ているみたい。ヤッた!
フィードが正常に行われるようになると、”SUBSCRIPTION PLAN”が”Business”に切り替わりました。ちなみに、”Business”プランの料金は年間 499.99ドルです。このプランを無料で利用できるので、頑張った甲斐があり、達成感もマックスです。
ほぼ1日、稼働しっ放しにして動作確認してみると、”AIRCRAFT SEEN”は400機強、”POSITIONS REPORTED”が3千件弱といったレベルで、ADS-B信号をフィードできたようです。アンテナの設置状況がテンポラリにしては、まずまずといったところかもね。それと、下図のPolar Plot (極座標グラフ)でお分かりの通り、アンテナの方角が悪いためか信号を受信する方角が偏っているので、出来るだけ全方位で受信できるように、アンテナの設置を工夫する必要がありそうです。なお、ADS-B信号の最大距離は、およそ200km強といった感じ。
ちなみに、羽田空港と言えども、深夜は離発着回数が激減するので、必然的にADS-B信号のフィード件数も少なくなるわけですが、そういった時間帯になると、”STATUS”は”Online”から”Offline”に切り変わってしまいます。で、早朝から、再び、”Online”に戻ります。ご参考までに。
p.s>
どういう仕掛けなのか分かりませんが、iOSアプリ版も、オプション機能を追加購入することなく、フルスペックで利用できるようになっています。
(6) Raspberry Pi起動時に自動的にフィードを開始するようにする
FR24 Feeder/Decoderは、常時稼働を前提にしているので、Raspberry Piが起動したタイミングで、自動的にフィードを開始するようにしておきます。
調べてみると、自動起動の方法は何種類かあるみたいですが、今回は単純にフィードを開始できれば良いので、
“/etc/rc.local”ファイルを編集する方法をチョイスしてみました。
“exit 0″の手前に、”sudo service fr24feed start”を追記して、上書き保存するだけです。
リブート後に、”sudo service fr24feed status”でチェックしてみたら、ちゃんと”activate (running)”になっていたので、自動起動はOKみたい。
ただ、毎回、手動で確認っていうのも何なので、もうちょっとスマートな方式を考えなくっちゃね。
(7) 今後の計画
(a) Raspberry Piの多目的利用を検討しないと勿体無い
FR24 Feeder/Decoderを動かしているRaspberry Piで、試しに、”dump1090 –net”を実行してみると、RTLSDRデバイスは利用中でビジー、というメッセージが返ってきます。ということは、このRaspberry Piで、”dump1090″を利用した他のサービスを共存させることが出来ない、っていうことになるようです。
となると、例えば、”FlightAware PiAware“との共存はできないのかなあ?
ま、ネットでいろいろ調べてみても、古い情報もそれなりに多いので、現時点では確証はない感じ。ということで、折角、FR24 Feeder/Decoderが安定稼働しているので、ここはリスクは侵さないようにして、FR24 Feeder/Decoderが動いているRaspberry Piには、別の機能を追加していって、多目的に活用できるように付加価値の追求を今後検討しようと思っています。
それから、”Raspberry Pi 3 Model B“ですと、FR24 Feeder/Decoderが動いていても、CPU使用率は5%ぐらいなので、リソース的にも勿体無いですしね。
(b) FR24 Feeder/Decoderが動いているRaspberry Piの設置場所を変更
以前にも触れましたが、FR24 Feeder/Decoderが動いているRaspberry Piは羽田空港の逆方向にある自宅の書斎に置いてあります。ま、この状態でも、ソコソコはADS-B信号を受信できているんですが、出来るだけ精度を上げるべく、羽田空港の管制塔を一望できるリビングルームに移設しようと思っています。
そうなると、以下の点を対策しておかないとなあ、と思っています。
・距離的に無線LANでゲートウェイに繋げるのはちょっとしんどい感じなので、安定したフィードを考えると、有線LANに変更した方がいいかなあ。
・常時稼働を想定すると、Raspberry PiあるいはFR24 Feeder/Decoderのプロセス等に不具合があった際、再起動をしてくれたり、不具合があった旨を何らかの方法で知らせてくれる機能を実装したいなあ。
・”NooElec R820T SDR & DVB-T MESDR Mini“に付属のアンテナは、なかなかコンパクトなんですが、受信性能は恐らく、イマイチかなあと感じています。(比較するものがないので、そう思っているだけですけどね。)
なので、環境的に大したことはできないですが、もう一歩だけアップグレードできないのかなあ、と思っています。
・折角、リビングルームに設置するので、前項で触れたように、生活に役立ちそうな付加価値機能を追加したいなあ。
Raspberry Piなので、この点については、やっぱり電子工作系のアプローチかなあ、と思い、アイディアをまとめているところです。
こんな風にいろいろ考えていると、やっぱりRaspberry Piって面白い素材なんだなあ、と改めて思った次第です。
では、この続きは近いうちに。
DVB-T+DAB+FM USB チューナー RTL2832U+R820T |
Raspberry Pi Raspberry PI3 B ELEMENT14パッケージ【RASPBERRYPI3MODELB】 |
スイッチサイエンス Raspberry Pi Zero v1.3 ケースキット |
ホームページ”THE POOH FILES”にも是非お立ち寄り下さい。