23 Juli 2012

BMP085 (Sensor Ketinggian) + Arduino

            BMP085 adalah sensor untuk mengukur tekanan udara (Barometer) dengan nilai output berupa satuan Pa (pascal). Dengan memanfaatkan tekanan udara berdasar ketinggian terhadap permukaan laut, maka sensor ini juga dapat mengukur ketinggian (Altimeter). Berdasarkan rumus dibawah ini :



Dimana :
Parameter     Description                                                      Value
p0                sea level standard atmospheric pressure            101325 Pa
L                  temperature lapse rate                                      0.0065 K/m
T0                sea level standard temperature                          288.15 K
g                  Earth-surface gravitational acceleration              9.80665 m/s2
M                molar mass of dry air                                         0.0289644 kg/mol
R                 universal gas constant                                        8.31447 J/(mol•K)

(sumber : Disini)



maka, untuk mendapatkan hasil ketinggian kita harus memasukkan nilai tekanan udara yang didapat dari sensor bmp085 ini. Namun tak perlu khawatir karna arduino telah membuat library untuk sensor ini sehingga untuk mendapatkan nilai ketinggian lebih mudah (silahkan donwload Disini).

berikut rangkaian yang dibutuhkan untuk mengambil data sensor bmp085:



setelah membuat rangkaian seperti diatas langkah selanjutnya ialah menambahkan library yang sudah didownload ke arduino. Buka folder Arduino>>Libraries, pastekan library tadi disitu. Selanjutnya buka Arduino dan masukkan programnya seperti dibawah ini :
#include "Wire.h"
#include "Adafruit_BMP085.h"
 
Adafruit_BMP085 bmp;

void setup() {
  Serial.begin(9600);
  bmp.begin();  
}
 
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
 
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
 
    // Calculate altitude assuming 'standard' barometric
    // pressure of 1013.25 millibar = 101325 Pascal
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");
 
    Serial.println();
    delay(500);
}
Download program diatas dan lihat hasilnya di serial terminal arduino.

ketinggian yang terbaca akan salah, karena referensi tekanan udara diatas permukaan laut masing2 tempat berbeda. untuk mendapatkan hasil ketinggian yang benar maka  pada code :
    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude(*));
    Serial.println(" meters");

gantilah tanda * dengan angka pembacaan tekanan udara (Pressure) misalnya berdasarkan pada gambar diatas adalah 101592. upload lah program yang sudah kita edit, maka pembacaan sensor altimeter (ketinggian) akan benar, coba untuk mengangkat sensor lebih tinggi maka data yang ditampilkan akan sesuai dengan aslinya.

Semoga berhasil.... :)

untuk melihat tutorial lengkapnya ada disini



























2 Tanggapan: