Raspberry Piで航空機のADS-Bを受信してみました “SDR ADS-B 1090MHz 受信用アンテナ ssmtp mailutils mpack twython” (5)
“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で航空機のADS-Bを受信してみました “FR24 Feeder/Decoder フィード自動起動” (4)“の続きです。
(1) ADS-B専用アンテナを羽田空港の方角に向けて新設してみた
先日、”SDR ADS-B 1090MHz 受信用 アンテナ MCX-P端子1.5m導線 磁石台付”がヤフオクに出品されていたので格安(1,280円)で落札し、懸案だったアンテナが向く方角を羽田空港側に設置してみました。
これまで、書斎でデバッグ用に仮設していたアンテナは、こんな感じで、羽田空港とは真逆の方角に向いていました。
これを、ベランダの給湯器の上に設置。実は、今回落札した磁石台付のアンテナは、このように鉄板の上に設置することで、アンテナの受信性能をアップさせるという仕様になっています。
ベランダに設置したアンテナは、羽田空港の管制塔、ターミナル方面に向いています。
まずは、”NooElec R820T SDR & DVB-T MESDR Mini“の付属アンテナを書斎でテンポラリに設置したのフィード状態ですが、
”AIRCRAFT SEEN”は400機強、”POSITIONS REPORTED”が3千件弱、
下図のPolar Plot (極座標グラフ)でお分かりの通り、主に西側の限られた方位からADS-B信号を受信していて、ADS-B信号の最大距離は、およそ200km強といった感じでした。
次に、アンテナをベランダに新設した後のフィード状態です。
”AIRCRAFT SEEN”は800機強、”POSITIONS REPORTED”が6万件弱、
下図のPolar Plot (極座標グラフ)でお分かりの通り、東側の方位を中心に、東西に方位が広がった状態でADS-B信号を受信していて、ADS-B信号の最大距離は、およそ300km強といった具合に大幅な改善を示しています。こういった数値を見ると、やっぱりアンテナに拘ってみて良かった!と思えます。
今回新設したアンテナも簡易版なので、決して本格的なモノではないですが、それでもアンテナの仕様と設置場所は、ADS-B信号のフィードには大きく貢献してくれています。ま、個人レベルなので、こんなレベル感で十二分ですよね。
(2) RealVNCの表示を見やすく改善する
Raspberry Piを羽田空港方面に近いリビングルームに設置するタイミングで、ディスプレイ、キーボード、マウスは全て外しました。
macOSからは、”SSH“あるいは”RealVNC“を使ってRaspberry Piにアクセスすることになるんですが、リビングルームに設置後、RealVNCでRaspberry Piに接続してみたところ、画面サイズも小さいし、画面の解像度も変な感じになってしまいました。
どうも、デフォルトのまま、ディスプレイを外してしまうと、画面サイズが656×416になってしまうようなので、以下の手順で改善してみました。
"sudo nano /boot/config.txt"
“#fdmi_mode=1″の後ろに、下図のように設定値を追記した後、Raspberry Piをリブート。HDMI周りの設定値の詳しい説明は、”Raspberry Pi”公式ページ内の”こちら“で。時間が出来たら、もう少しちゃんと読み直してみるつもりです。
サイズ、解像度ともに正常な状態に戻りました。
(3) Raspberry Piの状態をリモートで把握する
リビングルームに設置したRaspberry Piには、常時、リモートでアクセスで接続しているわけではないので、Raspberry Piの状態を把握しずらくなってしまいました。となると、何か不具合が発生した時は、メールあるいはツィートで、その状況を即座に把握できるようにしておきたいと思った次第です。
Raspberry Piの状態をお手軽にチェックするコマンドの実行結果を確認しておきます。
上から順に、
CPU温度 : “vcgencmd measure_temp”
CPU(arm)メモリ使用量 : “vcgencmd get_mem arm”
FR24 Feeder/Decoderの稼働確認 : “pgrep -f -U 0 fr24feed”
各プロセスのCPU使用率 : “top”
アンテナの改善をした以降、ADS-B信号のフィード件数が大幅増になったことで、”dump1090″のCPU使用率が2倍以上に上がっていますね。
(4) Raspberry Piからメールを送信できるようにする (準備編)
まずは、gmailを使って、メールを送信できるような環境作りをしておきました。
まずは、macOS等のWenブラウザでGoogleにログイン後、Googleへのログインに関するセキュリティを強化しておくことにします。
(a) Googleのアカウント設定で、”2段階認証プロセス“を有効にします。
“2段階認証プロセス”項目をクリックします。
“開始”ボタンをクリック。
“オンにする”をクリック。
以上の手順で、”2段階認証プロセス”が有効になったので、続いて、端末(デバイス)毎に、”2段階認証プロセス”を適用していきます。
適用していく手順は、基本、画面の指示通りに進めていけば良いのですが、macOS(iMacやMacBook Pro等)とiOS(iPhoneやiPad)に”2段階認証プロセス”を適用する場合は、Web画面に表示されるパスワードを入力するのではなくて、再設定用の電話番号に届くメッセージに書かれている確認コードを、macOSの場合は”Google Chrome”、iOSの場合は”Google”アプリに入力する方式になります。詳しいことは説明しずらいので、ここは、是非、ご自身でやってみて下さい。(説明しずらい手順だということがお分かりいただけるかと。)
で、同じような手順でRaspberry Pi用のパスワードを作成するのですが、Raspberry Piの場合は、macOSやiOSとは異なり、手続きの過程でWeb画面に表示されたパスワードを後ほど利用しますので、メモっておいて下さい。
(b) Raspberry Piにメール関連アプリをインストールします
"sudo apt-get install ssmtp"
"sudo apt-get install mailutils" "sudo apt-get install mpack"
を順に実行していきます。
上記のインストールが終わったら、”sudo nano /etc/ssmtp/ssmtp.conf”。
下図のように、設定内容を追記します。
“AuthUser=”欄には、ご自身のメールアドレス
“AuthPass=”欄には、上記(1)の手順でメモったパスワードを入力します。
以上で、準備は完了です。
早速、メールが送れることを確認してみます。
ターミナルで、”echo “It’s me !” | mail -s “Subject” to xxxxxx@gmail.com“と打ってみます。
問題なくメールが届きました!
あれ?こんなメールも同時に届きました。
おっと、先程、ターミナルに打ったコマンドに誤りがあったみたい。正しくは、
ターミナルで、”echo “It’s me !” | mail -s “Subject” xxxxxx@gmail.com“です。”to”が余計でした。
(5) Raspberry Piからツィートを送信できるようにする (準備編)
(a) 自分のTwitterアカウントで新しいアプリの設定を行う
自分のTwitterアカウントで、Twitterの”Application ManagementのTwitter App“ページにを開いた後、画面右上の”Create New App”ボタンをクリック。
画面の空白欄に、ご自身のアプリに関する設定内容を入力後、”Create your Twitter Appication”ボタンをクリックすれば、新しいアプリ用の設定作業が完了します。
設定した内容を確認してみます。
“Keys and Access Tokens”パネルを表示して、
“Consumer Key (API Key)”と”Consumer Secret (API Secret)”をメモ。
同じパネルの下にある”Create my access token”ボタンをクリックして生成された
“Access Token”と”Access Token Secret”をメモ。
最後に、”Permissions”パネルで、アクセス権限が”Read and Write”になっていることを確認して終了です。
(b) Raspberry PiにTwitter関連アプリをインストールします
Raspberry Piのターミナルを開いて、
“sudo apt-get update”
“sudo apt-get install python-setuptools”
“sudo easy_install pip”
“sudo pip install twython”
の順に実行していきます。
次に、現在のCPU温度をツィートするpythonスクリプトを作成し、
“nano raspberry_report.py”。
作成したに権限を付与したうえで、
“chmod +xpython raspberry_report.py”
pythonスクリプトを実行してみました。
“python raspberry_report.py”
すると、”ImportError: No module named resuests_oathlib”というエラーが発生!以前、ツィートするiOSアプリを何本か開発した経験があるので、この辺りの認証プロセスについては、ある程度の知識があったので、発生したエラーも、”iOSアプリで、”OAuth“認証手続きをサポートするライブラリが見つからないのかあ、といったところはすぐに理解できたので、ここは焦らずに問題解決を進めていきます。
先人の教えを請うために検索した結果、
“sudo apt-get install -y python3-oauth python3-oauth2client python3-oauthlib python3-requests-oauthlib”で、”resuests_oathlib”というライブラリをインストールできる、ということでトライしてみましたが、エラーは解消せず。
それじゃあ、直球で解決すべく、GitHubで公開されている”Requests-OAuthlib“のページを参照してみたところ、
“sudo pip install requests requests_oauthlib”で簡単にインストールできるよ、ということだったので、その通りに実行してみました。
すると、あっさり問題解決。こんな感じでツィートすることができました。
Raspberry Piでメールとツィートを送信する準備が整ったので、次回のTALKで、こういった仕掛けを活用したRaspberry Piの状態監視の実践編を紹介しておこうと思っています。お楽しみに!
DVB-T+DAB+FM USB チューナー RTL2832U+R820T |
ラズベリー・パイで遊ぼう!改訂第2版 [ 林和孝 ] |
Raspberry Piではじめるどきどきプログラミング 増補改訂第2版 自分専用のコンピューターでものづくりを楽しもう! [ 阿部和広 ] |
ホームページ”THE POOH FILES”にも是非お立ち寄り下さい。