2012/09/28

Arduino:気圧センサ

なんとなく、まともなデータが取れ始めましたので、本当の目的である急速に発達する
低気圧発見かも?機、通称名「爆弾低気圧発見器」に仕上げるため、プログラムを
ちょこちょこと変更してみました。
まずは、ArduinoからPCへシリアル経由でデータのみ出力するようにしました。

#include <Wire.h>
#include <MPL115A2.h>
void setup()
{
  MPL115A2.begin();
  MPL115A2.shutdown();
  Serial.begin(9600);
}
void loop()
{
  MPL115A2.ReadSensor();
  MPL115A2.shutdown();
  float total = 0;
 
  for (int i=0; i < 30; i++){
   total = total + MPL115A2.GetPressure();
   delay(1000);
  }
  float avepress = (total / 30) * 10; // average + kPa->hPa trans.
  Serial.print(" ");
  Serial.println(avepress);
 
  delay(30000);
}
30秒データを取った後、平均化してkPaからhPaへ変換します。
ArduinoからシリアルUSB変換してPCと送られ、PCではRubyでデータ整形&ファイル出力
するようにしました。
require 'rubygems'
require 'serialport'
require 'date'
port = "/dev/ttyUSB0"    #arduinoのポート番号
sp = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE)
while (press = sp.gets) do
  fp = open("press.log","a")
  day = Time.now
  output = day.strftime("%Y%m%d-%X")+press
  fp.write(output)
  print output
  fp.close
end
sp.close
 で、昨日の0時から動作させて、とりあえず21時までのログを表計算ソフトでグラフ化
してみました。
日中は太陽の影響で気圧が乱されるらしいのですが、傾向としてゆっくりと気圧が低く
なってますね。
現在、気圧と天気について調べているので、それをプログラムに反映できればいいですねぇ。(^^)

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。