この記事はZabbix Advent Calendar 2015とRaspberry 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軸ミニジョイスティック
11/21 のRaspbian JessieであればOS標準でモジュールが組み込まれているのでジョイスティック以外は何も追加インストールせずに使えます。
ジョイスティックはpygameが必要なようです。
温度計が搭載機能にないように見えますが、気圧計か湿度計から取得できます。
Sense HATで監視
SenseHATの使い方はAPIリファレンス(英語)にだいたいまとまってます。
Raspbian Jessieであれば /usr/src/sense-hat/examples にサンプルもあるのでそれを見てもいい思います。
今回は温度と湿度、気圧の取得なのでこんな感じに書けば取得できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from sense_hat import SenseHat if __name__ == "__main__": sense = SenseHat() # 温度取得 temp = sense.get_temperature() temp = round(temp, 1) # 湿度取得 humidity = sense.get_humidity() humidity = round(humidity, 1) # 気圧取得 pressure = sense.get_pressure() pressure = round(pressure, 1) print "Temp:" + str(temp) print "Humidity:" + str(humidity) print "Pressure:" + str(pressure) |
簡単です。
で、こんだけできたならあとはZabbixSenderで一家に一台はあるZabbixへ投げます。
ここまで作ったのはGitHubにあります。
Python実装のZabbixSenderなので、RasPiにZabbixSenderをインストールする必要がありません。
超お手軽。
問題
さて、実際に監視を始めたここ数日の私の部屋の気温なのですが…
岐阜の田舎にあるのに気温は30℃前後の南国…
どういうこっちゃ。
対策
やっぱ温度がおかしいようわーん٩(๑´0`๑)۶なことがあるようでRasPiのフォーラムに色々対策がでてました。
フォーラムの内容を意訳すると、
「温度がおかしい原因はCPUと近いから」
「(CPU温度 – SenseHAT取得温度) / 2 )すれば正常な値になる」
「SenseHATを離してとりつければいい」
等々、喧々囂々な感じでした。
とりあえず、CPU温度との関連性を取得するため、「vcgencmd measure_temp」コマンドの結果もZabbixへ投げ込んでグラフを作成。
手間がかからないZabbixまじで最高です。
その結果がこちら。
比例していることを確認できます。
さてここから計算式を直して監視する!ってとこなのですが、ここまでしかできてません…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 さんです。
ピンバック: ラズパイにZabbixをインストールし設定してみた。
面白いですー。もしかして温度が差分だけでなく華氏で測定してたとか?
途中で送ってしまいましたすみません、華氏で測定したたとか?と思ってフォーラムのほうも見て回って、温度センサー部分を離すしかないかな…と半分あきらめ、半分納得でした。