技術」カテゴリーアーカイブ

RasPi(Stretch)でADS-B受信

この記事はRaspberry Pi Advent Calendar 2017の11日目の記事です。

今年も色々やったようなやってないような感じですが、個人的にずっと塩漬けしてたADS-B受信のお話。

ADS-Bって?

ざっくりと言うと飛んでる飛行機が今どこにいて、どこに向かってるかを流してる電波です。
これを受信して集めることでFlightradar24のようなサービスを作ることができます。

今回はRasPiでADS-Bを受信して、Flightradar24に情報を送り、Bussinessプラン会員(お高いBussinessプラン会員がデータを送ることで無料になります)になるためにやったことをまとめてあります。

環境

OSはraspbian(Stretch)

ADS-B受信機器


電波なので受信するための機械が必要です。
私はDX.comの怪しいUSB受信機を買いましたが、
amazonで安く販売されているこういったものでもOKです。
ただ、後述しますが、どういった機械にしても熱対策が必要です。

事前設定

OSインストール諸々は適当にして、

USBへの供給電力変更

RasPi3では不要

必要PKGインストール

インストール後に再起動

fr24

flightradar24 へADS-B情報を送るためのソフトをインストール
スクリプトを実行するだけでインストール可能

事前に準備するもの

  • メールアドレス
  • Sharingkey(もし持っていれば。無くてもOK)
  • RasPi設置場所の緯度・経度・高度(mではなくfeet)


インストール

以下に公式手順はあります。
https://www.flightradar24.com/raspberry-pi

サービス再起動

動作確認

以下のURLにアクセス
http://RasPiのIPアドレス:8754/
受信したデータが表示されれば稼働しています。

Flightradar24への登録

Fr24インストール時に設定したメールアドレス宛に「Your Flightradar24 sharing key」というタイトルでsharing keyが届いた後にアカウントを登録します。
アカウントのメールアドレスをFr24インストール時に設定したメールアドレスと同じアドレスにすればBussinessプランで登録され、Bussinessプランで利用が可能となります。

熱対策

ADS-Bの受信機器がかなり熱を持ち、動作が不安定になります。
手っ取り早い対策として家に転がってた古いグラフィックボードのヒートシンクをつけてみました。
これをつけただけで、1ヶ月は安定稼働しています。

Pocket

RaspberryPi Zero のお話

この記事はRaspberry Pi Advent Calendar 2015の24日目です。
クリスマスイブらしいですね…
そしてこのRasPiアドベントカレンダー3回目、今年のアドベントカレンダーで7個目の記事。
今年はこの記事で最後です。俺、頑張った。

RaspberryPi Zero

先日、発売されたRaspberryPi Zero。尽く入手失敗してたのですがをひょんなことで入手しました。
小さいのですよこれが。
IMG_20151205_145336154

とりあえずやるべきはケースネタだろう。ということでケースネタです。

PiZeroケース

フリスクケースは先駆者がいるので、普段食べてるミンティアケース。
PiZeroでサイズも小さくなりましたが薄さも注目してもらえるといいかなと。

加工

PiZeroを固定できるように穴を開けます。
ついでにUSBやらのインターフェースのアクセス用に横を切り取っておきます。
表側
IMG_20151223_171702420
裏側
IMG_20151223_171652993

PiZeroを固定するとこんな感じ
IMG_20151223_172429282

ミンティアの取り出し口を利用できるよよかったのですが、内部構造で引っかかるので反対側に穴を開けました。
マイクロSDの部分もちょびっと切り取っておくと、固定したままマイクロSDの差し替えができるので便利です。

見た目

まぁ、ミンティアです。
IMG_20151223_172541303

ケーブルをつなぐとこんな感じ
IMG_20151223_173049606

課題

ミニHDMIの部分が若干分厚く、ケースを切り取ったこともあり隙間ができてしまいました。
IMG_20151223_173941361
デカイミンティアケースなら余裕そうだけど、あれはでかいからなぁ…

まとめ

  • ミンティアもケースになる。
  • RaspberryPiZeroは小さいし薄い。
  • おもちゃをケースに流用できそう。
  • ガンプラケースとか、戦車ケースとか、戦艦ケースとか…

明日はクリスマス! 最後に @Akkiesoft さんが締めてくれます!

Pocket

Zabbixでこのはちゃんを監視するお話

この記事はConoHa Advent Calendar 2015Zabbix Advent Calendar 2015の23日目です。
ConoHa Advent Calendarは3日連続でAPIネタとなってしまいましたね…

このはちゃんとの今年1年の振り返り

煽られて


記事を書いても煽られて

アドベントカレンダー前の煽りは無しの放置プレイときました。
やっぱあんずちゃんの方が愛に溢れてる気がする…

Zabbixでこのはちゃんを監視

何をしたかったか

ぶっちゃけ、サーバの監視ならZabbixagent放り込んで監視すれば万事OKなのですが、だいぶ前のZabbix勉強会で @fripper1214 さんが発表してたLLDとsenderの組み合わせで遊んでないことに気づいたので
このはちゃんの監視ついでにやってみました。

仕組みはスライドとおほぼ同じですが、Python使ってるのと監視対象がこのはちゃんという点がちょっと違います。

できたこと

余り実用性は考えていなかったので適当実装です。

  • 先月の利用金額を取得
  • ホストが増えたら自動で監視対象に追加(senderとLLDの活用)
  • ConoHaダッシュボードと同じくらいの情報を取得
  • cronで動かす

くらいです。

中身はgithubに置いてあります。
zbx_ConoHa

なお、対応は日本リージョンのみです。

動き

こんな感じで見えます
1

cronで1分に1回実行しているのでホストを追加すると自動的にZabbixのホストにも追加されます。
2
3

ConoHaで仮想マシンを削除すればLLDで検知できなくなるのでホストからも消えます。
4

はまったとこ

ディスクIO

ConoHa APIのディスクIO取得で値が返ってきたりNoneが返ってきたりでお手上げでした。
リアルタイムでは難しいのですかねこれ…

サーバステータス

ConoHa APIのVM詳細取得でVMのステータスが取れるのですが、どの値が何なのかさっぱりでした…
ConoHaAPIのベースになってるなんとかスタックのドキュメント見ても記載されてないし、フォーラム漁ったらソース嫁と素敵な回答があったのでわかる範囲だけいれてあります。
今回の監視で作った値のマッピングはこんな感じです。
ConoHa VPS Status
0 ⇒ Build
1 ⇒ Active
4 ⇒ SHUTOFF

まとめ

LLDとsenderの組合せは便利

3系で監視時間の指定ができるようになれば外部スクリプトとLLD、senderの組合せで更に進化させれそう。マクロも使えばユーザー情報もZabbixで管理できるし。

ConoHA APIも想像は膨らむ

APIガシガシ叩けばなんでもできそうなので想像は膨らむ
このはちゃんの胸は(ry

明日のアドベントカレンダー

明日のConoHa Advent Calendar 2015は @unsuitan さんです。
明日のZabbix Advent Calendar 2015は @_BSmile_ さんです。

Pocket

(☝ ՞ਊ ՞)☝ウイーンなお話

Eject Advent Calendar 2015の16日目です。
まだ後1時間くらいあるからセーフ。たぶん。
個人的に今年書いてるアドベントカレンダーで一番ネタがないです。
とりあえず振り返りネタでお茶を濁すスタイルでいきます。

振り返り

今年のEject活動は、あひる焼きの布教活動に集中しすぎてほとんど何もしてない…
ブース出展お手伝いはOSC東京春とOSC名古屋、OSC京都、KOF…くらいですかね。

Ejectネタの新規開発はOSC京都で作ったEjectドミノくらいですか。
IMAG0216
Ejectドミノは子供に受けるのですが、再設置に手間取るのと、実用性皆無なのが問題ですね。

それ以外何もやってないので、何か考えないと…というのが今年のEject活動の振り返りでした。

(☝ ՞ਊ ՞)☝ウイーン

これだけだと寂しいので、SenseHATのLEDを使ってwiiinと行きましょう。
APIのLED操作通りのコードでwiiinです。

コード

動作

8ドット*8ドットの日本語画像があればもうちょっとなんとかできたのかもですが、タイムリミットが迫ってきたので諦めました。

来年に向けて

Eject猫おもちゃを来年こそは作…りたい!

…お手軽動画としてvine試してみたけど難しい…

Pocket

SenseHATとZabbixで温度、湿度、気圧を監視が…なお話

この記事はZabbix Advent Calendar 2015Raspberry Pi Advent Calendar 2015をまとめて書いた横着な11日目です。

が、Zabbix分は薄めかもです。

先にオチを書いておくと温度監視が出来上がってなかったり…orz

Sense HATてなんぞ?

RaspberryPiとGPIOで簡単に繋げれるHardware Attached on Top(HAT)です。
先日打ち上げられたAstroPiにも使われてるHATで、
Pimoroniで20ポンドくらいで売られてます。
お手軽に使えるのですが、機能が豊富です。
イカ、SenseHAT搭載機能

  • ジャイロセンサ
  • 加速度計
  • 磁力計
  • 湿度計
  • 気圧計
  • 8×8のRGB LEDディスプレイ
  • 4軸ミニジョイスティック

IMAG0358
IMAG0363

11/21 のRaspbian JessieであればOS標準でモジュールが組み込まれているのでジョイスティック以外は何も追加インストールせずに使えます。
ジョイスティックはpygameが必要なようです。
温度計が搭載機能にないように見えますが、気圧計か湿度計から取得できます。

Sense HATで監視

SenseHATの使い方はAPIリファレンス(英語)にだいたいまとまってます。
Raspbian Jessieであれば /usr/src/sense-hat/examples にサンプルもあるのでそれを見てもいい思います。

今回は温度と湿度、気圧の取得なのでこんな感じに書けば取得できます。

簡単です。

で、こんだけできたならあとはZabbixSenderで一家に一台はあるZabbixへ投げます。
ここまで作ったのはGitHubにあります。
Python実装のZabbixSenderなので、RasPiにZabbixSenderをインストールする必要がありません。
超お手軽。

問題

さて、実際に監視を始めたここ数日の私の部屋の気温なのですが…
chart.php
岐阜の田舎にあるのに気温は30℃前後の南国…
どういうこっちゃ。

対策

やっぱ温度がおかしいようわーん٩(๑´0`๑)۶なことがあるようでRasPiのフォーラムに色々対策がでてました。
フォーラムの内容を意訳すると、
「温度がおかしい原因はCPUと近いから」
「(CPU温度 – SenseHAT取得温度) / 2 )すれば正常な値になる」
「SenseHATを離してとりつければいい」
等々、喧々囂々な感じでした。

とりあえず、CPU温度との関連性を取得するため、「vcgencmd measure_temp」コマンドの結果もZabbixへ投げ込んでグラフを作成。
手間がかからないZabbixまじで最高です。
その結果がこちら。
chart.php
比例していることを確認できます。

さてここから計算式を直して監視する!ってとこなのですが、ここまでしかできてません…orz
記録可能で正常な温度を監視できる機材を揃えるところからという本末転倒感がある状態です…

ちなみにフォーラムにでていた(CPU温度 – SenseHAT取得温度) / 2 等の式も試してみたのですが、全く当てはまりませんでした。
(SenseHAT取得温度 – (CPU温度 – SenseHAT取得温度)) * 0.75 くらいがいい感じな気はしてますが絶賛検証中です。

まとめ

  • RasPiではPython実装のZabbixSenderとの相性が最高によい
  • Zabbixは温度キャリブレーションにも使える
  • SenseHATの全機能を使いこなすのはかなり難しい
  • 温度センサが正しいか見極めるには正しい値を出力するセンサが必要

ZabbixとSenseHATで超簡単に温度とか監視できるぜぇ!って話にしようと思ったのに…orz

明日のAdvent Calendar

Raspberry Pi Advent Calendar 2015は@junk_coken さんです。
Zabbix Advent Calendar 2015は@atanaka7 さんです。

Pocket