前回、Raspberry Piなど必要な機器を購入しました。

AliExpressの配送がエポス便でしたので心配していたのですが、注文から5日間で玄関先に置き配されていました。
Raspberry Pi OSのインストールと設定
インストールについては、たくさんのページで紹介されておりますので省略します。
基本的には、インストール用のソフトウェアがかなり丁寧に作られているため、問題なくインストールできると思います。
こちらのサイトから、専用のOSインストールアプリ(Raspberry Pi Imager)をダウンロードしてインストールします。
画面上の指示に従って進めることでSDカードへのインストールが完了します。
OSは推奨の64bitをインストールしました。
WiFi設定、SSHの設定をインストール時に設定できるので設定してしまいます。
そうすることで、SSHのみであればキーボード等を繋がなく進めることができます。
SSHの設定
Macの場合となりますが、インストール時にSSHの設定(公開鍵認証のみ)をすると、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が「~/.ssh」に格納されます。
SSHを利用する場合は、「~./.ssh/config」に設定を入れてしまうとSSHの接続が簡単です。
「~./.ssh/config」の修正は、ターミナルにてファイルを修正します。
ディレクトリを移動
cd ~/.ssh
configファイルを開く
nano config
SSH接続情報を追加する
Host pi
HostName 192.168.1.xx
User xxxx
Port 22
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 1
TCPKeepAlive yes
このようにconfigを設定することで、Raspberry Piへの接続は以下のコマンドで接続できるようになります。
ssh pi
Raspberry Piへ接続後に、念のためRaspberry Pi側のsshの設定ファイルを確認します。
SSHの設定ファイルを開きます。
nano /etc/ssh/sshd_config
SSHの設定確認をします。
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
設定を変更した場合は、設定を反映させます。
sudo systemctl restart sshd

HHKBだと、viのカーソル移動がうまくできませんでした。
同様の方は、最初にvimをインストールしましょう。
vimなら問題なかったです。
時刻同期の設定(timesyncdの設定)
時刻同期が動いているかわかりませんので、最初に時刻同期の設定を入れておきます
同期設定用のファイルを開きます。
sudo nano /etc/systemd/timesyncd.conf
NTPの設定を追加
[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp
FallbackNTP=time.google.com
#RootDistanceMaxSec=5
同期設定を反映させます。
sudo timedatectl set-ntp true
sudo systemctl daemon-reload
sudo systemctl restart systemd-timesyncd
念のため、動作しているか確認します。
sudo systemctl status systemd-timesyncd



タイムアウトなどのエラーが表示されてなければ大丈夫です!
OSのアップデート
OSの設定は済みましたので、OSをアップデートします。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update
すべて終わるのには時間がかかりますので、気長に待ちましょう。
終わったら再起動します。
sudo reboot
スワップ容量を増やす
Raspberry Pi Zero 2 Wはメモリが512Mと少ないので、スワップファイルを大きくしておきます。
スワップの設定ファイルを開く
sudo nano /etc/dphys-swapfile
スワップの容量を100Mから2Gに変更するため、「CONF_SWAPSIZE」を変更する
CONF_SWAPSIZE=2048
増えたか確認する
free -m
リモート操作(VNC)の設定
HDMIでモニターを接続して設定を変えても良いですし、SSH接続で有効にすることもできます。
HDMIで接続してGUIで設定する
HDMIで接続して設定する場合は、次のように設定します。
設定画面を開きます。


「Interface」タブの中の「VNC」のスイッチをオンにします。


ターミナルからCUI(コマンド)で設定する
ターミナルから設定画面を読み出します。
sudo raspi-config
画面が変わるので、3 Interface Optionsを選択します。


13 VNCを選択します。


Yesを選択します。


これで有効になります。
接続用のソフト(Real VNC)にて接続
Real VNCをダウンロードしてインストールします。


起動して接続します。
枠の部分にホスト名かIPアドレスを入れて接続します。


あとは画面に従って、OSをインストールした時のユーザー名とパスワードで接続するだけです。
一度設定を済ませれば、Address bookのところに入るので、ダブルクリックのみで接続できるようになります。



これでRaspberry PiのOS設定は終了です。
ADS-Bでの受信設定
ADS-Bの接続とアンテナの置き場所
ハードウェアの接続は問題ないと思いますが、
今回購入したADS-B受信用のUSBドングルとアンテナを接続します。
USBドングルとRaspberry Pi Zero 2 Wとの接続には、OTGケーブルを挟んで接続します。
ケースセットを購入していれば、中に含まれていますので別途購入する必要はありません。
アンテナの設置位置は、室内であれば、より窓辺、より見通しが良い、より高い位置ほど良く受信します。



室内でも、西側に置いたら7機くらいしか受信できなかったのに、東側に置いたら、多い時で60機くらいを受信するようになりました!
場所を変えるだけでだいぶ変わります!
ログを見ると400km超を受信した形跡がありました
ソフトウェアの設定
フライトレーダーを提供している有名なサイトとしては次の3つがあります。
- FlightAware
- FlightRadar24
- RadarBox
この3つのサイトにフィードを送ることで、それぞれのサイトの有料会員特典を受けることができるようになります。そこで、今回はFlightAwareとFlightRadar24のサイトにフィード(受信データ)を送るような設定にしてみたいと思います。
会員登録
FlightAwareとFlightRadar24の会員登録を済ませておきましょう。
無料会員の状態で、フィードを送ることで勝手にアップグレードされます。
FlightAwareの設定
FlightAwareのソフトウェアにてADS-B受信周波数である1090MHzと978MHzを受信します。
そのため、まずはFlightAwareのインストールを実施していきます。
インストール方法は公式サイトのやり方のままで概ね大丈夫です。


必要なパッケージの取得
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
ソフトウェア(piaware)のインストール
sudo apt update
sudo apt install piaware
自動アップデートと手動アップデートの設定
sudo piaware-config allow-auto-updates yes
sudo piaware-config allow-manual-updates yes
1090MHz受信用ソフトウェアのインストール
sudo apt install dump1090-fa
978MHz受信用ソフトウェアのインストール
sudo apt install dump978-fa
受信用ソフトウェアの自動起動設定
sudo systemctl enable dump1090-fa
sudo systemctl enable dump978-fa
再起動
sudo reboot
ADS-B受信状況の確認
受信用ソフトウェアが正しく動いているかを確認します。
Raspberry Piの内部のブラウザか、同一LAN上の別のパソコンからRaspberry Piへアクセスします。
- http://localhost:8080(Raspberry Piの内部ブラウザを使用)
- http://pi.local:8080(同一LAN上の別端末のブラウザを使用)
※ホスト名がpi.localの場合です。Raspberry PiのIPでも大丈夫です
うまく受信できていると、このような感じの画面が表示されます。


FlightAwareへフィーダーIDをリンクする
FlightAwareのソフトウェアをインストールした段階で、すでにフィードは送られていると思います。
送っているフィーダーIDをFlightAwareの会員情報とリンクすることで、有料会員(Enterprise)になります。
リンクする方法は2つあります。
FlightAwareにログインした状態にします
こちらで問題なくリンクできれば完了です。
うまくできなかった場合は次のようなメッセージが表示されます。
うまくリンクできない場合は、次の方法を試します。
自分のFeeder IDを取得
piaware-status
一番下の行にあるYour feeder IDのxxxxの部分を取得
Your feeder ID is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (from /var/cache/piaware/feeder_id)
次のURLへアクセス
https://www.flightaware.com/adsb/piaware/claim/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx にアクセスする
※xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx には自分のFeeder IDを入れる
これで成功すれば、リンクが完了します。



私の場合は、1の方法ではうまくいかず、2の方法でリンクしました。
リンクが完了すると、FlightAwareのサイトの一番上に「マイ ADS-B」というリンクが追加されます。
マイADS-Bでは、送ったフィードの情報を閲覧することができます。


FlightAwareサイトでの設定変更
マイADS-Bのページに設定を変更する部分があります。
SITE番号の右横にある歯車マークです。


緯度・経度・高度の設定が入っていない場合は「Edit Location」「Edit Height」から変更します。
私の場合は、自動で入っていましたが場所が違っていたので、手動設定で再設定しました。
このあとのFlightRadar24のところでも使いますので、緯度・経度・高度はメモをしておきましょう。
赤枠部分を変更して、最後に「Send」をクリックします。


FlightRadar24へフィード送信の設定
FlightRadar24へフィードを送る設定をしていきます。
まずは送信用のソフトウェアをインストールします。
sudo bash -c "$(wget -O - https://repo-feed.flightradar24.com/install_fr24_rpi.sh)"
インストールが始まると、さまざまな質問に答えながら設定をしていきます。
メールアドレスの登録
Step 1.1 - Enter your email address ([email protected])
$: FlightRadar24へ登録したメールアドレスを入力
シェアリングキーの入力(初回は不要)
Step 1.2 - Enter your sharing key or press ENTER/RETURN to continue.
$: 前にインストールしたことがある場合はキーを入力(最初のインストールならそのままEnter)
MLAT(ADS-Bとは違う技術)を使うか
Step 1.3 - Would you like to participate in MLAT calculations? (yes/no)$:
$: yes
設置場所の緯度・経度・高度
国土地理院のサイトで調べることができます。(URLに緯度・経度、左下に標高が表示されます)
こちらのサイトだと緯度・経度・標高が簡単に分かるので便利だと思います。
Step 3.A - Enter antenna's latitude (DD.DDDD)
$: 設置場所の緯度(例:35.6585)
Step 3.B - Enter antenna's longitude (DDD.DDDD)
$: 設置場所の経度(例:139.7428)
Step 3.C - Enter antenna's altitude above the sea level (in feet)
$: 標高+アンテナを設置した高さ(メートル)× 3.28084 (例:108)
内容の確認
Enter your choice (yes/no)
$: yes
自動設定を利用するかどうか
Would you like to use autoconfig (yes/no)
$: yes
設定完了です。
FlightRadar24へのフィード送信機能の自動起動設定
最初から入っていたような気もしますが、念のため自動起動の設定を入れておきます。
sudo systemctl enable fr24feed
FlightRadar24へのデータ提供状況の確認
fr24feed-status
エラーになっていないことを確認します。
公式のマニュアルを見ると、他のネットワークに共有する場合はオフにするように書いてありますので、FlightRadar24のMLATはオフにするのが正当なのかもしれません。
MLATをオフにする方法は、設定ファイルを直接変更します。
MLATの設定のみなら後述の設定画面から「NO」へ変更することで変更できますが、GPSの方は設定ファイルを直接変更する必要があります。
設定ファイルを開く
sudo nano /etc/fr24feed.ini
mlatの値を変更
mlat="no"
mlat-without-gps="no"



FlightAwareの方でMLATを受信できていることを確認できたので、FlightRadar24の方はオフにしました。
FlightRadar24への動作確認状況および設定の確認
FlightRadar24の動作確認状況と設定を確認します。
Raspberry Piの内部のブラウザか、同一LAN上の別のパソコンからRaspberry Piへアクセスします。
- http://localhost:8754(Raspberry Piの内部ブラウザを使用)
- http://pi.local:8754(同一LAN上の別端末のブラウザを使用)
※ホスト名がpi.localの場合です。Raspberry PiのIPでも大丈夫です
アクセスすると次のような画面が出ます。


もし、「Aircraft Tracked」や「Aircraft Uploaded」が0のまま動かない場合は設定を見直します。
右側にある「Settings」を選択します。
赤枠の2項目を以下のように設定してみてください。


Receiver:「ModeS Beast(TCP)」
Host/IP:「127.0.0.1:30005」



インストール時のautoconfigにより、次のように設定されていました。
Receiver;「AVR(TCP)」
Host/IP:「127.0.0.1:30002」
ポートを30003にしても動きましたが、不安定だったためModeS Beastでポート30005の設定にして安定しました。
FlightRadar24のサイトでフィード状況の確認
FlightRadar24のサイトでフィード状況を確認します。
右上の人のマークをクリックして「My data sharing」を選択します。
STATUSがOnlineになっていれば大丈夫です。
Show statisticsで詳細な情報を見ることができます。
フィードの送信がうまくいった場合、Businessプランになったことをお知らせするメールを受信します。
サイト上でも有料会員(Business)になっていることも確認しておきましょう。


FlightRadar24へのフィード送信が不安定な場合
FlightRadar24へのフィードが止まってしまう場合、送信状況を確認します。
fr24feed-status
この時に、Receiverの項目が動いていなかった場合は、fr24feedの再起動で恐らく直ります。
sudo systemctl restart fr24feed
頻繁にReceiverがfailedになる場合は、一度dump1090-faを削除して、再度入れ直すと直る場合があります。
sudo apt remove dump1090-fa
sudo apt install dump1090-fa



最初は不安定だったのですが、dump1090-faを入れ直したら安定しました。不安定n場合は試してみてください。
まとめ
ソフトウェアの設定が結構大変ですが、順を追って実施すれば大丈夫です。
AliExpressから購入したADS-Bドングルとアンテナは2,000円でしたが、とても遠くまで受信できました。
室内でも、設置場所を変えるだけでたくさんの信号を受信できることがわかりました。
もし、受信数が少ない場合は場所を変えてみるのも良いと思います。
たくさんの飛行機が動いているのを見るだけで楽しくなります。
次回は、pythonを使って遊んでみたいと思います。



10,000円未満で、FlightRadar24のビジネスプランをもらえるのはうれしいですね。