2016年8月24日水曜日

(夏休みの工作)FlightRadar24のデータフィーダーをRaspberry Pi 3で作ってみた (備忘録)



() 以下の設定備忘録の記述は必ずしも動作を補償するものではありません。お使いのネット環境等、使用する機器、環境によっては正常動作せず、予期しない通信課金等が発生する場合もあります。以下の設定備忘録をコピーして設定されても構いませんが、結果責任についてはご自身の責任で行ってください。当サイト管理人は結果生じた不具合等には一切責任を持ちませんのあらかじめご了承ください。ADS-Bデータフィードの設定、構築は御自身の責任のもと実施してください。
また設定を行うには基本的なTCP/IPの知識およびプロトコルの知識、最低限度のUNIX/LINUXDebianの知識及び理解が必要です。

=================================================

ときどきネットを見ていてこれは面白いなと思うサイトにFlightRadar24がある。(以下FR24
このサイト、特に特別なアカウントなくても主な民間航空機の飛行情報はみれるのだけど、有料会員になるとさらにさまざまなデータが見れて面白い。
お金払って会員になろうかと悩んでいろいろサイト内の情報を見ていたら、自分でADS-Bというデータを取得してFR24に送信すると、Premium Accountが付与されるとある。

さらにサイトを読んでみると、Raspberry Piで簡単に作成できるようなのでこれならやってみようかということで夏休みの工作として作成してみることに。

予算:1万円前後
必要なもの:常時接続のインターネット環境、仕込みのためのパソコン WindowsでもMACでも可能ですが、自分はWindows7で仕込みました、Raspberryで稼働するOSRaspbianというDebianベースのLinux OSになります。仕込みは慣れればそんなに難しくはありません)

以下用意するもの(以下は自分の作成の例です)

1)Raspberry PI 3 本体 x 1 (amazon 5000円前後、ケース込ならトータル6000円くらい。DataFeedする場合、Raspberry基盤をハダカで運用はいろいろリスクもあるのでケースに収容することをお勧めします)

2)Raspberry PI 3ACアダプタ
 自分は2.5A対応の電源をAmazonで購入しました。(2000円くらい)

3)Raspberry PI 3を稼働するためのmicroSDカード(8GB以上、アマゾンならClass10 32GB1500円程度)なお、USBで読み書きする場合、USB MicroSDカードアダプタが別途必要ですが、こちらも1000円前後で入手可

4)RTL-SDR USBドングル (RTL2832U, アマゾンで1000円前後、Model はこちらを参照

5)Wifiルータまたは有線のインターネットルータ(BFLETSとか)>これはコストに入れてません、すでにあるという前提で話を進めます。

6)FR24運用アカウントに必要なメールアドレス。(いつもお使いのもので基本OK)、このメールアドレスでプレミアムアカウントを申し込みますが、設定完了後、データフィード開始後は自動的に設定したメールアドレスにPremium権限がつきますので、事前に購入の必要はありません。

7)モニター、キーボード、マウス(ない場合でも設定可能ですが、その場合、初期設定するためにDHCPが稼働する有線LANのネットワークが必要です、普通のブロードバンドルータでOK)

8)ソフトウエア各種

()  Raspbian OS (無料 ここからダウンロード
     https://www.raspberrypi.org/downloads/ 

()  SD CARD フォーマッター ここからダウンロード

()  Win32DiskImager (Raspbian OSSDカードにWindowsPC上で投入するためのツール、無償、ここからダウンロード

()  Teraterm またはputtyクライアント(SSH対応しているコンソールツールであれば何でもOKですが)これはRaspbianOSPCから管理するため。無償でダウンロード可能

()  IPスキャナー(モニター画面がない場合SSHでアクセスするのにIPアドレスを最初探さないといけませんが、なくても可ですが多少、手順が面倒です。あったほうが楽かも。あればRaspberryIPアドレスが簡単にわかります。)例:http://www.advanced-ip-scanner.com/jp/ など、無償でダウンロード可。

基本上記のものがあれば準備はOKです。
あと、TCP/IPの多少の基礎知識は必要です。

<ものがそろったらやること>

1)WindowsPCで各種ツールをインストールしておきます(SDカードフォーマッター、Win32DiskImagerSSHターミナル(Teratermなど)をインストール)

2)ダウンロードしたRaspbian OSを解凍し、デスクトップとかにTempフォルダなどを作成し、OSイメージを解凍した状態で置いてきます。

3)PCSDカードリーダをWindows PCに接続し、MicroSDカードを挿入します。通常はFAT32でフォーマット済みで出荷されていると思いますので読み込みが終了すると、E:とかF:とかドライブレターが割り当てられて、マイコンピュータに表示されると思いますので、どのドライブレターか確認し、メモしておきます。

4)SDカードのフォーマット(カード上にデータがある場合はPCにコピーしておいてね、データが全部消えます!!!)
  SDカードフォーマッターを起動し、3)で表示されたSDカードをFAT32であらためてフォーマットします。これはやらなくてもよいという説もありますが、このフォーマッターで再フォーマットすると最適化されるということなので、念のため実施しました。フォーマットはクイックフォーマットでOKです。

5)フォーマット終了したら、次にWin32DiskImagerを起動し、SDカードのドライブレター、およびファイルパス(2の手順で解凍したフォルダの場所及びファイル名)をいれいてWriteボタンを押し、RASPBAN OSSDカードに投入します。カードのClassによりますが、CLASS10のカードでも数分はOSイメージ投入に時間がかかります。

6)OSの導入が完了したら、Raspberry 本体にmicroSDカードを挿入し、キーボード、マウス、モニター、有線LAN(初回はこちらで。キーボードマウスある場合は無線でもOKで、RaspbianデスクトップでWIFI設定できますが、SSHだけで設定の場合、まず有線LANで接続し、その後WIFI設定を行います)を接続し、USB電源をコンセントにさして本体に接続し起動します。(電源オンボタンはないのでコンセント接続すれば起動します)なお、モニターがない場合でも設定は可能ですが、SSHTELNETできる環境が必要です。Teraterm でアクセスが必要ですが、その手順は7)以降で。

7)RASPBERRY本体の赤色LEDが点灯し、正常にディスクアクセスが始まると緑のLEDが点滅し始めてOSが起動します。もし画面がない場合、後ほどteraterm でアクセスしますが、もしIPアドレスがわからない場合は、IPスキャナーで探し、そのアドレスにSSHteratermなどでアクセスします。ブロードバンドルータをお持ちで、DHCPのスコープ、リース状況が見れればIPスキャナは必要ありませんが、リースしたアドレスがから判断し、IPアドレスを割り出します。

8)(以下画面がない前提です)IPアドレスがわかったら、Windows PC上でTeraterm, Putty等を立ち上げ、SSHアクセスでRaspberryIPアドレスを入力し、接続します。

9)うまく接続すると、初回アクセス時だけキーを受け付けた旨の表示がありますがOKして初期アカウントおよびパスワード入力画面に進みます。

10)     Raspbianの初期ID,パスワードでログインします。(Raspbianは初期パスワードが設定されています。詳細はこちら https://www.raspberrypi.org/documentation/linux/usage/users.md 

11)     ログインできたらとりあえずヤマは超えました。

<以下Raspberryの基本設定>

設定の前に以下の情報をまとめておきます。
l  使用するIPアドレス(DHCPのアドレスのままでもよいが端末ステータス確認の際にころころIPアドレスが変わると面倒ですから固定アドレスがお勧めです。合わせてDNS等も設定しますが、通常はBFLETS等のブロードバンドルータが代理になっているはずですのそのアドレスか、プロバイダが指定したDNSアドレスを等を準備します。
l  管理者パスワード(初期設定のままでは怖いので変えましょう)
l  NTPアドレス 変更(日本国内ならntp.nict.jpがお勧めです)

12)     SSHアクセスが成功したらまず、Raspbian初期設定を実施します。コマンドはsudo raspi-config

13)     メニュー画面が立ち上がりますので必要なところを順番にやっていきます。
()  1のExpand File System >終了後、再起動求められたら先起動します。
()  2Change user password >管理者のパスワード変えます。
()  5Internationalization OptionLanguage Options (英語だけでOKなら変更する必要はなし、SSHだけのアクセスならそのままでもOK)、およびTime Zoneを設定(Time ZoneAsia-Tokyo,日本以外の方はそれぞれの地域の該当タイムゾーンを選択)

14)     再起動後、SSHで再度アクセス、sudo rpi-update コマンドでファームウエアのアップデート
15)     アップデート後、sudo rebootで再起動実施、再起動後、再度SSHログインし、sudo apt-get update、その後、sudo apt-get dist-upgradeを実施し、再度再起動。
16)     IPアドレスの固定化、WIFIの設定、詳細は割愛、以下は設定の一例

以下はWIFIで固定IPで運用する場合の一例
 sudo nano /etc/network/interfaces (インターフェイス設定をnanoで開き、以下のように書き換えます。以下は設定の一例です)
allow-hotplug wlan0
#iface wlan0 inet dhcp
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.1.200
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.254
dns-nameservers 192.168.1.254
CTRL+X 保存するかでYesでその後エンターでコマンドラインに戻る。

今度はNANOでWIFIのアクセス設定を書き換えます。
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
network={
        ssid="お使いのSSIDの名前"
        psk="WIFIパスワード"
}

CTRL+Xで抜ける、保存するかというメッセージに対してYを押し、Enterで変更が反映

sudo nano /etc/hostname
              ホスト名を書き換え(御自分のお好きな端末名に)
sudo nano /etc/hosts
              こちらも同様にホスト名を書き換え(hostnameと同じ名前に設定)
sudo nano /etc/ntp.conf
              NTPアドレスの行が4行くらいある server 0.debian.pool.ntp.org iburstという各行の初めに#をつけてコメントアウト(例 #server 0.debian.pool.ntp.org iburst
代わりに pool ntp.nict.jp1行追加し、その後、CTRLXで抜けて、保存(Yキー、Enter)で設定保存します。
sudo service ntp restart を実施
ntpq p と打ってNTPステータス確認
 NICTNTPサーバー一覧が表示されれば正常。

17)     アップデート後、sudo poweroff で電源オフ、PINGできなくなったら電源ケーブル抜きます。

18)     有線LANケーブル抜きます。

19)     電源を入れて再起動実施

20)     起動後、今度はWIFIに設定したIPアドレスにPING打ってみます。うまく設定されていれば、起動御5-10秒程度でPING応答あると思います。

21)     PING応答あったら今度はWIFIIPアドレスでSSHアクセスしてみます。

以上がRaspbianの基本設定です。かなり詳細割愛しました。



以降、FR24Feed設定です。
Feed設定する前に、以下の情報を用意します。

l  メールアドレス

l  自分の端末設置場所の緯度、経度、標高

Ø  緯度、経度はGoogle Mapsで自分の家を表示し、家をワンクリックすると
Ø  

Ø  標高:以下のサイトで調べられます。
地図を拡大し、自分の家の場所をダブルクリックすると、標高が地図下部に表示されます。アンテナがマンションの10Fとかにある場合は、その分の高さの差分を足してください。




22)     情報の準備ができたら、DVB-TUSBドングルをRaspberryの空いているUSBポートにさし、アンテナ線を接続します。(アンテナは付属のものでも受信可能です)USBポートはどのポートでもかまいません。
23)     SSHRaspberryにアクセスし、以下のコマンドを実施します。 sudo bash -c "$(wget -O - http://repo.feed.flightradar24.com/install_fr24_rpi.sh)"
()  (詳細はこちら https://www.flightradar24.com/raspberry-pi) このコマンドを実施するとdump1090とか、USBドングルのドライバとか一式インストールされます。

24)     パッケージのインストールが始まります。

25)     しばらくすると、Q&Aの画面が始まります、それぞれのメニューで質問に答えます。
()  メールアドレス
     アドレス入力後、自分のメールアドレスに接続キーが送られてきますのでこれは今後のために自分でわかるところに記録しておきます。
()  MLATを使用するか> YES
()  アンテナの緯度(latitude
()  アンテナの経度(longtitude
()  標高(altitude)、数値はメータではなく、Feetで入力しますので間違えないように。換算は事前に行うか、前項で紹介した標高検索サイトでもfeet表示可能です。
()  日本国内の正しい緯度経度が認識されると自動的に国名、最寄空港、たとえば羽田(HND)などが確認のため表示されます。
()  使用するUSBドングル(通常は1番でOKです)
()  RAWデータを提供するか>YES,不要なトラフィック送りたくない場合はNoにします。
()  Dump1090 Argument > 空白でOKです。
()  ベーステーションデータを送るか> Yes (必要ない場合はNo
()  ログファイルの保存期間、048時間、72時間のいずれかを選びます。
()  ログファイルを保存するを選んだ場合、保存先ディレクトリを指定します。
     例: /var/log
()  最後に Congratulations!...とメッセージが出れば設定は完了です。

動作確認

26)     以下のコマンドを実施し、Feedのサービスを起動します。
sudo service fr24feed start


27)     動作確認はPCのブラウザーで実施できます。例: http://192.168.1.200:8754 (直接Raspberry端末のIPアドレス:ポート番号で管理PCのブラウザでアクセスします) うまくいくと現在の設定情報が表示されます。右下のcancel ボタンを押します。FR24のサーバに接続していれば以下のように表示されます。
   FR24 Link: Connected via UDP
   FR24 Radar Code: T-XXXX999 (接続コードは各自違います)


28)     データの受信ステータスを確認するには画面のリンク Show tracked aircraft list をクリックします。

29)     最寄りの航空機からデータ受信すると、画面に表示されます。


FR24 Feeder Tracked Aircraft List
Updated: 23:06:31 GMT+0900 (東京 (標準時))

    ModeS: 862CEA Callsign: JAL091
    Lat: 35.7706
    Long: 139.6781
    Alt: 16300ft
    SQW: 0000


30)     もし、まだFlightRadar24のサイトでメールアドレスを登録していなければ、以下のサイトで登録します。


32)     なお、RaspberryDataFeedを設定前にアカウントを作成できますが、購入の必要はありません。この手順でデータフィードの設定が完了し、ご自身で運用開始すれば自動的にPremium権限が付与されます。間違えて購入しないように。なお、権限が付与されるメールアドレスはDataFeedで設定したメールアドレスになりますのでご注意を。

3以上、雑記帳的走り書きの備忘録になりました。時間あれば整理してもう少しきれいにしたいと思います。

以上、管理人