Sensor BME



 Halooo sobat semua! Kali ini aku akan mencoba kerja sensor eksternal yaitu BME280. BME280 akan membaca tekanan, suhu, kelembaban, dan estimasi altitude menggunakan Arduino IDE. Sensor BME280 menggunakan protokol komunikasi I2C atau SPI untuk bertukar data dengan mikrokontroler. Pada percobaan kali ini aku menggunakan I2C sebagai protokol komunikasi.

Alat yang diperlukan dalam percobaan ini:

1. PC/Laptop

2. Kabel USB

3. Kabel jumper

4. ESP32

5. Breadboard

6. Sensor BME280



A. Install Library

Untuk membaca hasil sensor BME280 diperlukan Adafruit_BME280 library yang perlu di-install. Caranya sangat mudah, yaitu klik Skecth > Include Library > Manage Libraries. Kemudian ketik "adafruit bme280" pada search box lalu install library-nya.


Lalu, untuk menggunakan library BME280 diperlukan juga Adafruit_Sensor library. Caranya yaitu klik Sketch > Include Library > Manage Libraries. Kemudia ketik "Adafruit Unified Sensor" dalam search box lalu install library. Library yang dibutuhkan biasanya terletak di posisi terbawah.




B. Rangkaian

Hubungkan BME280 ke ESP32 seperti skema di bawah ini.

(sumber: https://randomnerdtutorials.com/esp32-bme280-arduino-ide-pressure-temperature-humidity/)




C. Program

Karena menggunakan I2C maka program yang perlu ditulis adalah seperti di bawah ini

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>


#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C


unsigned long delayTime;

void setup() {
  Serial.begin(9600);
  Serial.println(F("BME280 test"));

  bool status;

  // default settings
  // (you can also pass in a Wire library object like &Wire2)
  status = bme.begin(0x76);  
  if (!status) {
    Serial.println("Could not find a valid BME280 sensor, check wiring!");
    while (1);
  }

  Serial.println("-- Default Test --");
  delayTime = 1000;

  Serial.println();
}


void loop() { 
  printValues();
  delay(delayTime);
}

void printValues() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");
    
  Serial.print("Pressure = ");
  Serial.print(bme.readPressure() / 100.0F);
  Serial.println(" hPa");

  Serial.print("Approx. Altitude = ");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println(" m");

  Serial.print("Humidity = ");
  Serial.print(bme.readHumidity());
  Serial.println(" %");

  Serial.println();
}

D. Jalankan
Klik verify lalu upload. Kemudian buka serial monitor untuk melihat hasil pembacaan sensor. Terakhir tekan tombol RST pada papan ESP32, yaitu tombol yang ada tulisan EN di dekatnya. Hasil pembacaan sensor akan terlihat seperti video di bawah ini.


Selamat mencoba! 😄




Referensi: https://randomnerdtutorials.com/esp32-bme280-arduino-ide-pressure-temperature-humidity/


































Komentar