36. Sensor Tekanan Udara BMP180
36. Sensor Tekanan Udara BMP180

BMP180 merupakan sensor Barometric yang memiliki ukuran cukup kecil 10,4mm x 13mm. Modul ini mampu melakukan pengukuran terhadap tekanan udara yang ada disekitar kita, rentang pengukurannya antara 300hpa sampai 1100hpa, ketelitian pengukurannya bisa sampai 0,01hpa. Selain untuk mengukur tegangan udara, modul ini juga mengukur ketinggian dan suhu lingkungan sekitar. Semakin tinggi suatu permukaan terhadap permukaan laut maka tekanan udaranya semakin kecil.

Spesifikasi BMP180

  • Rentang tekanan: 300 s.d. 1100 hPa
  • Antarmuka kendali: I2C (kecepatan transfer hingga 3,4 MHz) 
  • Resolusi: Tekanan = 0,01 hPa, Temperatur = 0,1 °C 
  • Rata-rata konsumsi arus (1 sampling / detik): 3μA pada mode hemat energi, 32μA pada moda resolusi tinggi 
  • Arus puncak normal: 650μA (0,65 mA) 
  • Konsumsi arus pada mode siaga: 0,1μA (normal) 
  • Catu daya: 1,8 - 3,6 Volt DC (VDD) 
  • Rentang suhu kerja: -40°C s.d. +85°C 
  • Waktu pendeteksian tekanan: 5 ms (pada mode standar)

Cara Kerja Sensor Tekanan Udara BMP180:

BMP180 ini terdiri dari sensor piezo-resistif, ADC, unit kontrol, EEPROM dan antarmuka I2C (0xEE menurut datasheet). Mikrokontroler memberikan sinyal start untuk memulai pengukuran tekanan udara dan suhu yang belum terkalibrasi. Setelah melakukan konversi, hasil pengukurannya dapat dibaca oleh mikrokontroler melalui antarmuka I2C.

Untuk menghitung suhu dalam °C dan tekanan udara dalam hPa (hecto Pascal) maka kita membutuhkan data koefisien kalibrasi saat inisialisasi yang terletak pada EEPROM yang bisa diakses menggunakan I2C.

BMP180 ini terdiri dari sensor piezo-resistif, ADC, unit kontrol, EEPROM dan antarmuka I2C (0xEE menurut datasheet). Mikrokontroler memberikan sinyal start untuk memulai pengukuran tekanan udara dan suhu yang belum terkalibrasi. Setelah melakukan konversi, hasil pengukurannya dapat dibaca oleh mikrokontroler melalui antarmuka I2C.

Untuk menghitung suhu dalam °C dan tekanan udara dalam hPa (hecto Pascal) maka kita membutuhkan data koefisien kalibrasi saat inisialisasi yang terletak pada EEPROM yang bisa diakses menggunakan I2C.

Flowchart:

Untuk pengkabelannya cukup sederhana dan mudah. Dimulai dengan menghubungkan pin VIN ke output 5V di Arduino dan hubungkan GND ke ground, sedangkan datanya menggunakan komunikasi I2C. Perhatikan bahwa setiap board Arduino memiliki pin I2C yang berbeda.

Contoh Rangkaian:

Instalasi Library Sensor Tekanan Udara BMP180 Arduino

Buka software Arduino IDE Pastikan komputer atau laptop terhubung dengan internet. Kemudian klik Sketch > Include Library > Manage Libraries

Ketikan BMP180 dan cari “Adafruit BMP085 Library by Adafruit” dan klik install

Percobaan 52: Akses Sensor Tekanan Udara BMP180

  1. Hubungkan SDA dengan pin D20 ATMEGA 328/ARDUINO NANO
  2. Hubungkan SCL dengan pin D21 ATMEGA 328/ARDUINO NANO
  3. Hubungkan board ATMEGA 328/ARDUINO NANO dengan Komputer menggunakan kabel USB.
  4. Bukalah IDE Arduino, kemudian ketikkan kode program/sketch atau buka file SENSOR_TEKANAN_BMP180
  5. Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
  6. Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau tekan tombol tanda panah pada jendela IDE arduino.

Code:

#include <Wire.h>
#include <Adafruit_BMP085.h>
#define seaLevelPressure_hPa 1013.25

Adafruit_BMP085 bmp;
  
void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
  Serial.println("Could not find a valid BMP085 sensor, check wiring!");
  while (1) {}
  }
}
  
void loop() {
    Serial.print("Temperature = ");
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");
    
    Serial.print("Pressure = ");
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");

    Serial.print("Altitude = ");
    Serial.print(bmp.readAltitude());
    Serial.println(" meters");

    Serial.print("Pressure at sealevel (calculated) = ");
    Serial.print(bmp.readSealevelPressure());
    Serial.println(" Pa");

    Serial.print("Real altitude = ");
    Serial.print(bmp.readAltitude(seaLevelPressure_hPa * 100));
    Serial.println(" meters");
    
    Serial.println();
    delay(500);
}

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *