2013年9月14日土曜日

RaspberryPI + I2C 3軸デジタルコンパスHMC5883L(2) 5分間隔で計測してxively.comにデータ登録

前回はi2cget、i2csetコマンドでHMC5883Lのモード設定、コンパス値の取得が使用できることを確認した。

i2cget、i2csetコマンドをRubyやシェルスクリプトから叩くつもりだったが、1回の測定について1000回ぐらい繰り返し、平均値を使ったほうが良い気がしてきた。

1000回の測定となると毎回i2cgetコマンドを叩くのは非効率なので、C言語でプログラムを書くことにした。

hmc5883l.c
  • HMC5883Lの測定周期、磁界強度設定などの設定はデフォルト、測定モードは連続モード
  • 10ms間隔で1000回測定した平均値を出力
で、そのCのプログラムの実行結果をログファイルに書いてxively.comに転送するRubyスクリプト(hmc5883l.rb)も作成。

そしてそのhmc5883l.rbをcronで5分間隔で実行するようにしてみた。

で、その結果が以下である。


スクリーンショット

当たり前なのだが、センサーを固定しているのでほぼ変動がない。

このグラフに意味があるかないかはよくわからないけどしばらく続けてみる予定である。

最後に作成したプログラムを公開しておく。



0 件のコメント:

amazonアソシエイト