2015年11月12日木曜日

ADS-B受信データをFlightradar24へ送ってみた

のぼせて購入したが、・・・・結局遊んでいる。。。。

"Raspberry Pi" と "DVBT-USB" を使い、ADS-B受信システムを構築し
併せて"Flightradar24"へ受信データの送信(feed)してみました。



feed方法が色々と有るようで、ネット検索しても色々な方法が見つかります。


今回は(最新と思われる)
"Flightradar24"から提供されている資料を元に構築してみました。
Raspberry Pi は、初期の物と最新のPi2 どちらでも使用可能

Pi2


Linux系・・・ほとんど理解していないので・・・・ 
忘れないように備忘録です。

追記:もっと簡単になった構築方法をコチラに書き込みました。 2015/12/07





[1] Raspberry Pi 用OS"Raspbian"をダウンロードして、SDカードに書き込み
    本家サイトのダウンロードが劇的に遅いので、コッチから入手
    現時点最新の"2015-09-24-raspbian-jessie.zip"をダウンロード
    解凍して"Win32DiskImager"でSDカードに書き込み (今回16GB使用)

[2] Raspberry Pi に、SDカードを差し込み
     DVBT-USB及びLANケーブルと電源を接続しON

[3] PCから"TeraTerm"などで(SSH接続で)Raspberry Pi にリモート・ログインする
  (記録保存の為、"TeraTerm"でログを取っておいた方が良い)
     pi/raspberry

[4] まず"Raspbian"の設定

pi@raspberrypi ~ $ sudo raspi-config

  1で、SDカードの容量をフルに広げる
  4で、ローカルタイムを設定する(Change Timezoneでasia/tokyoに設定)

 Raspberry Pi Software Configuration Tool (raspi-config) x                                                                                
x    1 Expand Filesystem                        Ensures that all of the SD card storage is         
x    2 Change User Password                     Change password for the default user (pi)          
x    3 Boot Options                             Choose whether to boot into a desktop envir        
x    4 Internationalisation Options             Set up language and regional settings to ma
x    5 Enable Camera                            Enable this Pi to work with the Raspberry P        
x    6 Add to Rastrack                          Add this Pi to the online Raspberry Pi Map         
x    7 Overclock                                Configure overclocking for your Pi                 
x    8 Advanced Options                         Configure advanced settings                        
x    9 About raspi-config                       Information about this configuration tool          
x                                                                                                  
x                                                                                                  
x                                                                                                  
x                            <Select>                            <Finish>                          

設定終了後、
Finish を選択するとrebootするか聞いてくるので、yesでリブートする。

x                                                          
x Would you like to reboot now?                         
x                                                          
x                                                          
x               <Yes>                  <No>                
x                                                          

一旦リブートして、再度ログイン

[5] 構築前に、システムを最新の状態にする

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get upgrade

[6] DVBT-USB用のrtl-sdrドライバ関連をインストールする

まずは、DVBT-USBに商品用ドライバがロードされない様にno-rtl.confを作成する

pi@raspberrypi ~ $ cat <<EOF >no-rtl.conf
> blacklist dvb_usb_rtl28xxu
> blacklist rtl2832
> blacklist rtl2830
> EOF

pi@raspberrypi ~ $

作ったファイルの内容を確認
pi@raspberrypi ~ $ cat no-rtl.conf
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

(普通に、nano などでファイルを作成しても可)

内容がOKなら、ドライバのインストールへ
pi@raspberrypi ~ $ sudo mv no-rtl.conf /etc/modprobe.d/
pi@raspberrypi ~ $ sudo apt-get install git-core
pi@raspberrypi ~ $ sudo apt-get install git
pi@raspberrypi ~ $ sudo apt-get install cmake
pi@raspberrypi ~ $ sudo apt-get install libusb-1.0-0-dev
pi@raspberrypi ~ $ sudo apt-get install build-essential
pi@raspberrypi ~ $ git clone git://git.osmocom.org/rtl-sdr.git
pi@raspberrypi ~ $ cd rtl-sdr
pi@raspberrypi ~/rtl-sdr $ mkdir build
pi@raspberrypi ~/rtl-sdr $ cd build
pi@raspberrypi ~/rtl-sdr/build $ cmake ../ -DINSTALL_UDEV_RULES=ON
pi@raspberrypi ~/rtl-sdr/build $ make
pi@raspberrypi ~/rtl-sdr/build $ sudo make install
pi@raspberrypi ~/rtl-sdr/build $ sudo ldconfig
pi@raspberrypi ~/rtl-sdr/build $ cd
pi@raspberrypi ~ $ sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
pi@raspberrypi ~ $ sudo reboot
ここで必ずリブートする事

一旦リブートして、再度ログイン

DVBT-USBが正しく動作しているか確認

pi@raspberrypi ~ $ rtl_test
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.

Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.

Reading samples in async mode...
lost at least 32 bytes
上記メッセージで正常、ctrl+c で終了
^CSignal caught, exiting!

User cancel, exiting...
Samples per million lost (minimum): 0

pi@raspberrypi ~ $

[7] Flightradar24のfeedプログラムをインストール
  (古いほうのRaspberry Pi の例、Pi2の時はarmv7lにする)
  以前は別にインストールしていた"DUMP1090"は、この中に含まれている

pi@raspberrypi ~ $ wget http://feed.flightradar24.com/raspberry-pi/fr24feed_1.0.13-2_armv6l.deb
pi@raspberrypi ~ $ sudo dpkg -i fr24feed_1.0.13-2_armv6l.deb

[8] feedプログラムの設定

pi@raspberrypi ~ $ sudo fr24feed --signup
[main][i]FR24 Feeder/Decoder [0x02117000]
[main][i]Version: 1.0.13-2/generic
[main][i]Built on 20150519-1456 (r:master-5ad42ab.git/Linux/armv6l)
[main][i]Copyright 2008-2015 (c) Piotr Pawluczuk
[main][i]Flightradar24 AB(http://flightradar24.com)
[main][i]DNS mode: LIBC

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 coordinates up to 1 decimal point
 3 - You have a working email address that will be used to contact you

To terminate - press Ctrl+C at any point


Step 1.1 - Enter your email address (username@domain.tld)
$:xxx一例xx@gmail.com    <--- Flightradar24 Premiumメンバー登録に使う


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, pelase use the retrival form:
http://feed.flightradar24.com/forgotten_key.php

Otherwise leave this field empty and continue.
$:abcdefghijklmnop  <--- 設定変更の場合は、ここで以前のsharing keyを入力する

Verifying sharing key...OK <--- Step 4.1 へ飛ぶ

初めての場合は、空エンターで次のステップへ

Step 2 - Enter nearest airport code (IATA or ICAO)

We need to know your antenna's approximate position to filter bogus traffic as well as to enable ground position decoding. You can either enter nearest airport code or leave the field empty to provide exact antenna location. If your antenna is farther than 20 miles from the nearest airport we strongly recommend providing its true position instead as it may affect decoder's performance.

Enter airport code or leave empty$:  <---空エンター

事前に、Googleマップなどで位置情報を調べておいて次のステップで入力
(マップ上で右クリック、”この場所のついて”をクリック)

Step 3.A - Enter antenna's latitude (DD.DDDD)
$:34.wxyz

Step 3.B - Enter antenna's longitude (DD.DDDD)
$:135.wxyz

Validating email/location information...OK

The closest airport found is ICAO:RJOO IATA:ITM near Osaka.

Latitude: 34.785519
Longitude: 135.438202
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


Step 4.1 - Receiver selection:

 1 - DVBT Stick (USB)
 -----------------------------------------------------
 2 - SBS1, SBS1er or SBS3 (USB/Network)
 3 - ModeS Beast (USB/Network)
 4 - AVR Compatible (DVBT over network, etc)
 5 - microADSB (USB/Network)


Enter your receiver type (1-5)$:1

Step 4.2 - Please select dump1090 variant:

 1 - Original Salvatore Sanfilippo's variant
 2 - Malcolm Robb's fork

Enter your connection type (1-2)$:2
Checking for dump1090...FOUND

Step 4.3 - Enter your additional dump1090 arguments or leave empty
$:--net --net-http-port 8888    
    (DUMP1090をブラウザから見たい時は、ここで指定しておく)
    ブラウザからhttp://192.168.xx.xx:8888 で表示される
 こんな画面


Step 5.1 - Would you like to enable RAW data feed on port 30002 (yes/no)$:no

Step 5.2 - Would you like to enable Basestation data feed on port 30003 (yes/no)$:no

Step 6A - Please select desired logfile mode:
 1 -  Disabled
 2 -  48 hour, 24h rotation
 3 -  72 hour, 24h rotation
Select logfile mode (1-3)$:2
    (SDカードの容量から適当なものを選択)
Step 6B - Please enter desired logfile path (/var/log):
$:                       <--- enterのみ

設定変更した時、(初期設定した時は下記例へ)
Saving settings to /etc/fr24feed.ini...OK
Settings saved, please run "sudo service fr24feed restart" to use new configuration.

pi@raspberrypi ~ $ sudo service fr24feed restart

初期設定した時の例:(sharing key と Radar IDが割り当てられる)
Submitting form data...OK

Congratulations! You are now registered and ready to share ADS-D data with Flightradar24.
+ Your sharing key (a1b2c3d4e5f6g7h8) has been configured and emailed to you for backup purposes.
+ Your radar id is T-RJOOxx, please include it in all email communication with us.
+ Please make sure to start sharing data within the next 3 days 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 service fr24feed start

Saving settings to /etc/fr24feed.ini...OK
(登録したメールアドレスにも登録内容が届きます。)

pi@raspberrypi ~ $ sudo service fr24feed start

これで構築完了
次回からは電源ONするだけでOK。。。と思う!


[9] 状況確認

pi@raspberrypi ~ $ sudo service fr24feed status
● fr24feed.service - LSB: Flightradar24 Decoder & Feeder
   Loaded: loaded (/etc/init.d/fr24feed)
   Active: active (running) since Thu 2015-10-22 22:47:39 JST; 5min ago
  Process: 892 ExecStart=/etc/init.d/fr24feed start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/fr24feed.service
           tq907 /usr/bin/fr24feed -- --monitor-file=/dev/shm/fr24feed.txt --write-pid=/var/run/fr...
           mq926 /usr/lib/fr24/mr-dump1090 --net --net-http-port 8888 --raw

Oct 22 22:47:39 raspberrypi fr24feed[892]: Starting FR24 feeder: fr24feed.
Oct 22 22:47:39 raspberrypi systemd[1]: Started LSB: Flightradar24 Decoder & Feeder.

資料と表示例が異なるのが気になるけど、・・・・feedしているようなのでOKか?

プロセスの確認
pi@raspberrypi ~ $ pgrep -l fr24feed
907 fr24feed

pi@raspberrypi ~ $ pgrep -l dump1090
926 mr-dump1090

[10] 設定情報の確認

pi@raspberrypi ~ $ cat /etc/fr24feed.ini
receiver="dvbt-mr"
fr24key="a1b2c3d4e5f6g7h8"  <--- sharing key が記録されている
path="/usr/lib/fr24/mr-dump1090"
bs="no"
raw="no"
logmode="2"
procargs="--net --net-http-port 8888"

コッチでも見れます
pi@raspberrypi ~ $ cat /dev/shm/fr24feed.txt

ログ確認は、
pi@raspberrypi ~ $ tail /var/log/fr24feed.log
2015-10-22 22:54:25 | [feed][i]sent 3 AC in 1 packet
2015-10-22 22:54:31 | [feed][i]sent 2 AC in 1 packet
2015-10-22 22:54:36 | [feed][i]sent 3 AC in 1 packet
2015-10-22 22:54:42 | [feed][i]sent 4 AC in 1 packet
2015-10-22 22:54:48 | [feed][i]sent 4 AC in 1 packet
2015-10-22 22:54:53 | [feed][i]sent 3 AC in 1 packet
2015-10-22 22:55:03 | [feed][i]sent 3 AC in 1 packet
2015-10-22 22:55:03 | [feed][n]syncing stream
2015-10-22 22:55:07 | [feed][i]removed 1 of 5 AC
2015-10-22 22:55:09 | [feed][i]sent 2 AC in 1 packet


[11] 関連情報
フィードの再構成をする場合には、
フィードの停止をしてから
pi@raspberrypi ~ $ sudo service fr24feed stop
pi@raspberrypi ~ $ sudo fr24feed -­reconfigure -­fr24key=a1b2c3d4e5f6g7h8

ここ数週間・・・順調にfeed出来ているみたいです!

feedデータが使われると画面左下の"RADAR"に自身のRADAR IDが表示され分かります。
但し、使われる事は滅多にありません・・・・・!!!

 

よく見られる常連?IDは5局以上ないような気がするので、
ADS-B受信専用アンテナ+処理能力の高い(速い)設備を使っていると想像します。

0 件のコメント:

コメントを投稿