センサーを調べてみるの記事で気圧センサーがありました。しかし、
温度センサーや湿度センサーは実装されていません。仕方がないので気圧センサーが使えるかやってみました。 結果はこちれです。
 台風が接近してくるときの気圧みだいですが、雲ひとつない快晴です。精度が悪すぎる?いいえ違います。観測地点の標高は175m。知気象の観測データと同じです。知気象には海面気圧に変換する機能があります。海面気圧では1016HPa。最も近い場所のアメダスでーたでは1015hPaです。正確ですね。気圧センサーをPICなどでI2C経由で使えます。しかし、大変です。
アンドロイドではhPaのデータで取得できます。とても簡単です。 MainActivity.java
public class MainActivity extends AppCompatActivity {
private SensorManager manager;
private SensorEventListener listener;
private List list;
private Sensor pressure;
private double hectoPascal;
DataView m_dataView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
m_dataView = new DataView(this);
setContentView(m_dataView);
//Timer
final Handler handler = new Handler();
final Runnable run = new Runnable() {
@Override
public void run() {
// UIスレッド
handler.postDelayed(this, 200);
m_dataView.invalidate();
}
};
handler.post(run);
manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
list = manager.getSensorList(Sensor.TYPE_PRESSURE);
listener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
hectoPascal = (double)event.values[0];
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};
タイマーを使って連続に表示できるようにしてあります。 センサーのデータ取得は重力センサーを使ったアプリの基本
とほぼ同じです。このデータで何ができるか? ①観測地点と気象台の気圧データから観測地点の標高を算出できます。
②観測地点の気圧と標高から海面気圧を算出できます。 今回は実装していません。。知気象では実装しています。
ソース:Pressure.zip
|