センサをRaspberry Pi(Rev2)に接続してグラフ化する

2015年6月21日

前の記事から1年以上経過しましたがmuninは順調に動作しています。
追加したCPUの温度もこの通り。
昨年は真夏に70度を超えたこともありましたが動作してくれています。
sensors_temp-year
前の記事
Raspbianにnginxとmuninをインストールして負荷をグラフ化する(2013年09月29日)

CPUの温度は室温にオフセットした温度であることは想定できますが、せっかく常時起動しているなら他のデータも記録したいということで、調べてみると気温や気圧は安いセンサでも実用十分な動作が期待できるようです。
(今回の記事は一部に電線と半田付けが必要になります。)

Raspberry Piで接続報告が多いのはサインスマートのBMP085で、気温と気圧を計測できます。
購入時期が2013年9月だったので円安になる前のAmazonで990円(税、送料込)にて購入しました。

Raspberry Piの基板上のピンからBMP085へ4本電線を張る必要があります。
今回はマザーボード用の古いケーブルをぶった切って使います。
先に何も考えないでBMP085にピンを半田付けしてしまったので少し苦労することになりました。
配線は次の図の通り。うっかりGNDを黒色にし忘れましたけどね。
基盤を金属の上に置いてショートさせないように気を付けてください。
BMP085_02

センサを使えるようにする手順は他のサイトが良くまとまっているのでそちらを参照してください。
途中でAdafruitのサンプルを解凍する手順があるので、それは/var/ディレクトリに解凍してください。
おらほのミロ
RaspberryPi に温度センサーを接続してみた

Adafruitのサンプルを解凍したディレクトリにあるBMP085のディレクトリに気温(temperature)、気圧(pressure)、標高(altitude)を取得するプログラムを作ります。
サンプルからすぐ作れますが、自分用にファイルを置いておくのでよかったらどうぞ。
#cd /var/Adafruit-Raspberry-Pi-Python-Code-master/Adafruit_BMP085/
#wget https://dorara.net/wp-content/uploads/2015/06/BMP085_PH.zip
#unzip BMP085_PH.zip
#rm BMP085_PH.zip

プラグインを作成します。
#cd /etc/munin/plugins/
#wget https://dorara.net/wp-content/uploads/2015/06/BMP085_PLUGIN.zip
#unzip BMP085_PLUGIN.zip
#rm BMP085_PLUGIN.zip

プラグインへのリンクを作成します。
#ln -s /usr/share/munin/plugins/temperature /etc/munin/plugins/temperature
#ln -s /usr/share/munin/plugins/pressure /etc/munin/plugins/pressure
#ln -s /usr/share/munin/plugins/altitude /etc/munin/plugins/altitude

実行するユーザを設定します。
#vi /etc/munin/plugin-conf.d/munin-node
このファイルの末尾に次の行を追加します。
[pressure]
user root

[temperature]
user root

[altitude]
user root

muninを再設定します。
#/etc/init.d/munin-node restart

ブラウザでmuninのwebページを開くとCategoriesにweatherのリンクが作成され、altitude、pressure、temperatureのグラフが生成されます。
BMP085_03
気温は温度計とほぼ変わらない数値が出ています。
気圧は確認方法が手元に無いので数値が正確か不明です。
標高は変わらないはずですが振れています。データシートに10mは振れることが記載されているし、気温が外気温ではなくて室温なのが原因かと。