- Cara Memasang Sensor Bmp180 Pada Arduino Dan Esp32 + Script Code

 merupakan sensor Barometric yang mempunyai ukuran cukup kecil  - Cara Memasang Sensor BMP180 Pada Arduino dan ESP32 + Script Code

Apa itu Sensor BMP180?


BMP180 merupakan sensor Barometric yang mempunyai ukuran cukup kecil, bisa dilihat pada 2 gambar dibawah ini, modul ini mempunyai ukuran 1mm x 1,1mm (0,039in x 0,043in).


Modul ini bisa melaksanakan pengukuran terhadap tekanan udara yang ada disekitar kita, jarak pengkuran yakni antara 300hpa hingga 1100hpa, ketelitian pengukuran memakai modul ini bisa hingga 0,02hpa. Selain untuk mengukur tegangan udara, modul ini juga mengukur ketinggian dan suhu lingkungan sekitar.

Modul sensor ini berkomunikasi dengan Arduino memakai komunikasi via I2C, yang berarti hanya mengguanakan 2 pin pada Arduino, sangat simpel.. Kakak bisa membelinya di Tokopedia atau Bukalapak dengan harga yang murah.

Schematic 

Hubungkan sensor yang kalian beli dengan Arduino menyerupai yang ada pada gambar dibawah ini
Untuk lebih jelasnya bisa kalian lihat tabel dibawah ini

Code

Untuk melaksanakan pengukuran terhadap sensor Barometric ini, abang harus memasang library pada Arduino IDE. Seperti biasa, download Library melalui Github atau dengan klik disini, kemudian :

1. Setelah akibat di download, buka / unzip library tersebut,
2. Copy folder dan letakkan pada My Documents > Arduino > Libraries
3. Buka Arduino IDE

Upload Program ke Board Arduino

Coba klik File>Examples>SparkfunBMP180>SFE_BMP180_example, dalam pola kegiatan tersebut akan dijelaskan secara gamblang bagaimana fungsi dari setiap script yang ada, bisa menjadi pembelajaran buat abang yang masih atau gres saja mengenal Ardino.

Langkah selanjutnya ialah :
1. Colokkan kabel USB dari Laptop/Komputer ke Arduno
2. Tunggu hingga Arduino terdeteksi
3. Jangan lupa pilih tipe board dan port yang abang gunakan pada Tools>Board dan Tools>Port Sesuaikan dengan Device yang abang pasang.


Sebelum abang klik tombol upload program, abang harus melaksanakan setting ketinggian daerah kalian (Altitude), lihat dan cari instruksi menyerupai gambar dibawah ini 
coba buka elevationmap.net, masukkan alamat abang kini dan cek ketinggiannya, ganti angka 1655.0 sesuai dengan ketinggian lokasi abang ketika ini.

Berikut ialah koding lengkapnya :

//Perhatikan untuk selalu menyiapkan Library secara lengkap
//Pada Project ini memakai Library SFE BMP180 dan Wire.h
#include <SFE_BMP180.h>
#include <Wire.h>
// Kakak harus menciptakan objek pengukuran SFE_BMP180 , pola saja tekanan "pressure":
SFE_BMP180 pressure;
//Setting ketinggian menyerupai yang sudah ditunjukkan pada langkah sebelumnya
#define ALTITUDE 1655.0
void setup()
{
  Serial.begin(9600);
  Serial.println("REBOOT");
  // Inisialiasi sensor BMP180
  if (pressure.begin())
    Serial.println("BMP180 init success");
  else
  {
  // Disini ialah sanksi dimana Arduino gagal mengidentifikasi sensor BMP180
    Serial.println("BMP180 init fail\n\n");
    while(1); // Pause forever.
  }
}
void loop()
{
  char status;
  double T,P,p0,a;
  // beri jeda 10 detik untuk membaca sensor
  Serial.println();
  Serial.print("provided altitude: ");
  Serial.print(ALTITUDE,0);
  Serial.print(" meters, ");
  Serial.print(ALTITUDE*3.28084,0);
  Serial.println(" feet");
  status = pressure.startTemperature();
  if (status != 0)
  {
    delay(status);
    status = pressure.getTemperature(T);
    if (status != 0)
    {
      // Print hasil pengukuran sensor:
      Serial.print("temperature: ");
      Serial.print(T,2);
      Serial.print(" deg C, ");
      Serial.print((9.0/5.0)*T+32.0,2);
      Serial.println(" deg F");
      status = pressure.startPressure(3);
      if (status != 0)
      {
        delay(status);
        status = pressure.getPressure(P,T);
        if (status != 0)
        {
          // Print out the measurement:
          Serial.print("absolute pressure: ");
          Serial.print(P,2);
          Serial.print(" mb, ");
          Serial.print(P*0.0295333727,2);
          Serial.println(" inHg");
          p0 = pressure.sealevel(P,ALTITUDE); // we're at 1655 meters (Boulder, CO)
          Serial.print("relative (sea-level) pressure: ");
          Serial.print(p0,2);
          Serial.print(" mb, ");
          Serial.print(p0*0.0295333727,2);
          Serial.println(" inHg");
          a = pressure.altitude(P,p0);
          Serial.print("computed altitude: ");
          Serial.print(a,0);
          Serial.print(" meters, ");
          Serial.print(a*3.28084,0);
          Serial.println(" feet");
        }
        else Serial.println("error retrieving pressure measurement\n");
      }
      else Serial.println("error starting pressure measurement\n");
    }
    else Serial.println("error retrieving temperature measurement\n");
  }
  else Serial.println("error starting temperature measurement\n");
  delay(5000);  // Pause for 5 seconds.
}

Demonstrasi dan Hasil Pengukuran

Setelah mengupload program, buka serial monitor dengan cara klik Tools > Serial Monitor , Jangan lupa setting Baud Rate menjadi 9600, seteah itu abang akan melihat hasil pengukuran yang dilakukan oleh BMP180. Coba abang lihat gambar dibawah ini.

Memasang BMP180 dengan ESP32


Untuk lebih jelasnya abang bisa memakai tabel dibawah ini :

Script Code

#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;

void setup() {
  Serial.begin(9600);
  if (!bmp.begin()) {
       Serial.println("Could not find a valid BMP085/BMP180 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");
  // Calculate altitude assuming 'standard' barometric
  // pressure of 1013.25 millibar = 101325 Pascal
  Serial.print("Altitude = ");
  Serial.print(bmp.readAltitude());
  Serial.println(" meters");
  Serial.print("Pressure at sealevel (calculated) = ");
  Serial.print(bmp.readSealevelPressure());
  Serial.println(" Pa");

  // you can get a more precise measurement of altitude
  // if you know the current sea level pressure which will
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
  Serial.print("Real altitude = ");
  Serial.print(bmp.readAltitude(102000));
  Serial.println(" meters");
  Serial.println();
  delay(500);

}

Saat mengupload program, pastikan semua settingan pada aplikasi Arduino IDE sesuai dengan modul yang abang gunakan, pastikan Board dan port sudah sesuai, khusus untuk ESP32 Devkit 1, Jangan lupa tekan tombol Boot ketika upload kegiatan semoga tidak megalami kegagalan

Demikian tutorial cara memasang sensor BMP180 pada Arduino dan ESP32 beserta Scriptnya, semoga bisa menambah pengetahuan abang selama ini.

Comments

Popular posts from this blog

- Cara Mengendalikan Relay Memakai Esp32 + Blynk Wifi Connectify

Solusi Terbaik Untuk Tombol Boot Yang Menyebalkan Pada Esp32 Dev Kit

Tutorial Sensor Pir Dan Esp8266 : Mengirim Notifikasi Ke Telegram Dikala Ada Gerakan