[Android] Barometer

Sathittham (Phoo) Sangthong
SS Blog
Published in
2 min readFeb 27, 2014

Barometer คืออะไร

Barometer หรือ บารอมิเตอร์ เป็นอุปกรณ์สำหรับวัดความกดอากาศ (หรือความดันบรรยากาศ,ความดันอากาศ) การวัดค่าความกดอากาศ เป็นการวัดแรงที่เกิดจากความกดดันของอากาศ โดยใช้ของเหลวหรือของแข็ง ที่สัมผัสโดยตรงกับอากาศ ซึ่งแนวโน้นมการเปลี่ยนแปลงของความกดอากาศ จะสามารถนำไปทำนายการเปลี่ยนแปลงสภาพของอากาศในเวลาๆสั้นๆได้นั้นเอง

  • หลักการ
    อากาศมีความดันในทุกทิศทาง ความดันอากาศจะทำให้เกิดแรงดัน ที่ผลักวัสดุ เช่นน้ำ ปรอท หรือ สปริง ทำให้ระดับของเหลวหรือเข็มชี้เคลื่อนที่ ทำให้สามารถอ่านค่าได้
  • โดยการวัดความดันอากาศ ในแต่ละช่วงวัน จะพบว่า แต่ละช่วงวัน ความดันอากาศไม่เท่ากัน
  • โดยการวัดความดันอากาศ ในแต่ละระดับความสูงต่างๆกัน จะพบว่า ยิ่งสูงจากพื้นโลก ความดันอากาศยิ่งน้อยลง (ระดับของเหลวในท่อต่ำลง)
  • ประเภทของ Barometer
    มีอยู่ด้วยกัน 2 ประเภทใหญ่ๆ
barometer
  • บารอมิเตอร์แบบปรอท (Mercury Barometer) เป็นบารอมิเตอร์แบบง่ายๆ ที่มีหลอดแก้วสูญญากาศ ปลายด้านหนึ่งเปิดจุ่มอยู่ในอ่างปรอท โดยที่ปรอทจะสูงขึ้นหรือต่ำลง ขึ้นอยู่กับความเปลี่ยนแปลงของความดันอากาศภายนอก ซึ่งความดันอากาศปกติที่ระดับน้ำทะเลวัดได้ 760 มิลลิเมตรปรอท (mmHg) หรือ 1,013 มิลลิบาร์ (mbar)
barometer2
  • แอนนิรอยด์บารอมิเตอร์ (Aneriod Barometer) ชนิดไม่ใช้ปรอทหรือของเหลวแบบอื่นๆ เป็นบารอมิเตอร์ที่จะทำเป็นตลับโลหะแล้วนำเอาอากาศออกจนเหลือน้อย (คล้ายจะทำให้เป็นสุญญากาศ) เมื่อมีแรงจากอากาศมากดตลับโลหะ จะทำให้ตลับโลหะมีการเคลื่อนไหว ทำให้เข็มที่ติดไว้กับตัวตลับชี้บอกความกดดันของอากาศโดยทำสเกลบอกระดับความ ดันของอากาศไว้ แอนนิรอยด์บารอมิเตอร์ประดิษฐ์โดยวีดี (Vidi) ในปี พ.ศ. 2388 มีขนาดเล็กพกพาไปได้สะดวก
  • ความดันคืออะไร

ถ้าพูดในเรื่องฟิสิกส์ก็คือ ความดัน(P) คือ แรง (F) ที่กระทำต่อพื้นที่ (A)

[math] P = F/A [/math]

  • หน่วยวัดบรรยากาศ
  • 1 บรรยากาศ (atm) ≡ 1.013 25 บาร์
  • 1 บรรยากาศ (atm) ≡ 101325 ปาสกาล (Pa)
  • 1 บรรยากาศ (atm) ≡ 1013.25 มิลลิบาร์ (mbar)
  • 1 บรรยากาศ (atm) ≡ 760 ทอร์
  • 1 บรรยากาศ (atm) ≈ 760 มิลลิเมตรปรอท (mmHg) ที่ 0 °C
  • 1 บรรยากาศ(atm) ≈ 76 เซนติเมตรปรอท (cmHg) ที่ 0 °C

การใช้งาน Barometer ใน Android

2014-02-26 15.08.04
  • MainActivity.java
package com.scuta.mybarometer;import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity implements SensorEventListener {private TextView myPressureValue;
private SensorManager mySensorManager;
private Sensor myPressureSensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myPressureValue = (TextView) findViewById(R.id.pressure_textview);
mySensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
myPressureSensor = mySensorManager
.getDefaultSensor(Sensor.TYPE_PRESSURE);
}
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
myPressureValue.setText("Pressure = "+x);
}
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}@Override
protected void onResume() {
super.onResume();
mySensorManager.registerListener(this, myPressureSensor,
SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause() {
super.onPause();
mySensorManager.unregisterListener(this);
}
}
  • activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Barometer" />
<TextView
android:id="@+id/pressure_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pressure = " />
</LinearLayout>อ้างอิงhttp://www.digikey.com/product-highlights/us/en/bosch-sensortec-digital-barometric-pressure-sensor/501
http://th.wikipedia.org/wiki/บารอมิเตอร์
http://th.wikipedia.org/wiki/ความดันบรรยากาศ
http://en.wikipedia.org/wiki/Pressure_sensor
http://www.myfirstbrain.com/student_view.aspx?ID=27505
http://www.il.mahidol.ac.th/e-media/ap-chemistry2/gases/web/link/pressure.htm

--

--

Sathittham (Phoo) Sangthong
SS Blog

Hi! It's me Phoo! I’m a Software Developer 👨‍💻 , a Startup Entrepreneur 📱 and a Runner 🏃 . Currently, I’m a Co-Founder and CTO of a Startup name “Urbanice”.