Tutorial mengakses sensor BME280

Tutorial Mengakses Module Sensor BME280

Sensor BME280 (Humidity,Temperature, and Pressure)

Module Sensor BME280 merupakan modul sensor yang dapat mengukur data kelembaban, suhu, tekanan barometik yang diakses menggunakan interface i2c.

Module sensor BME280

Sensor ini cukup mudah digunakan dikarenakan tidak memerlukan komponen tambahan lainnya dan mempunyai fitur pre-calibrated.

Sensor BME280 ini merupakan penerus dari sensor BMP180, BMP183 ATAU BMP183 yang diproduksi oleh Bosch.

Tingkat kepresisian dari module sensor ini

  • Kelembaban dari range 0 – 100% dengan akurasi ± 3%
  • tekanan barometrik dari range 300Pa hingga 1100 hPa dengan akurasi absolut ± 1 hPa
  • suhu dari range -40 ° C hingga 85 ° C dengan akurasi ± 1,0 ° C

Kebutuhan Daya

Modul sensor ini sudah dilengkapi dengan regulator 3.3V tipe LM6206 on-board dan I2C Voltage Level Translator.

Sehingga Anda dapat menggunakannya mikrokontroler dengan output logika 3.3V atau 5V seperti Arduino tanpa khawatir.

kebutuhan daya BME280

BME280 mengkonsumsi kurang dari 1mA selama pengukuran dan hanya 5μA selama idle.

Konsumsi daya rendah ini memungkinkan dapat diterapkan pada perangkat dengan power supply baterai jam.

Antarmuka I2C

Modul ini memiliki antarmuka I2C dua jalur data yang dapat dengan mudah dihubungkan dengan mikrokontroler pilihan Anda.

Alamat I2C default modul BME280 adalah 0x76 HEX dan dapat diubah menjadi 0x77 HEX dengan mudah dengan jumper solder selain chip.

i2c address selector sensor BME280

Prosedur untuk Mengubah Alamat I2C

  • Temukan jumper solder dibawah chip. Secara default, kuningan tembaga tengah terhubung ke kuningan kiri.
  • Putuskan koneksi antara tengah dan kuningan tembaga kiri menggunakan pisau tajam.
  • Hubungkan menggunakan tenol dan solder antara tengah dan pad tembaga kiri. Ini memungkinkan Anda untuk mengatur alamat I2C 0x77 HEX .

settings i2c address sensor BME280

Pengaturan Jumper Pemilihan Alamat I2C BME280

Pinout Sensor BME280

Modul BME280 hanya memiliki 4 pin yang menghubungkannya dengan microcontroller seperti Arduino, maupun ESP8266 dan lainnya. pin out sensor BME280

BME280 Pinout – Sensor Tekanan Barometrik Kelembaban Suhu

  • VIN adalah catu daya untuk modul yang dapat berada di mana saja antara 3.3V hingga 5V.
  • GND harus terhubung ke tanah Arduino
  • SCL adalah pin jam seri untuk antarmuka I2C.
  • SDA adalah pin data serial untuk antarmuka I2C.

Tutorial pembacaan data Modul BME280 ke Arduino UNO

Untuk koneksi pengkabelannya cukup sederhana dan mudah. Dimulai dengan menghubungkan pin VIN ke output 5V di Arduino dan hubungkan GND ke ground, sedangkan datanya menggunakan koneksi i2c.

Perhatikan bahwa setiap Papan Arduino memiliki pin I2C yang berbeda yang harus dihubungkan sesuai.

Lihat tabel di bawah ini untuk pemahaman cepat :

Tipe Arduino Serial Clock (SCL) Serial Data (SDA)
Arduino Uno A5 A4
Arduino Mega 21 20
Arduino Nano A5 A4
Arduino Leonardo / Micro 3 2

Diagram berikut menunjukkan kepada Anda bagaimana cara mengirim semuanya.

Rangkaian sensor BME280 dan Arduino Nano.PNG

Instalasi library BME280

Berikut langkah – langkah instalasinya :

  1. Buka software Arduino IDE
  2. Pastikan komputer atau laptop terhubung dengan internet
  3. Kemudian klik Sketch > Include Library > Manage Libraries Instalasi libraries NTP Server di arduino IDE
  4. Ketikan bme280 dan temukan “Adafruit BME280 Library by Adafruit” dan klik install library bme280
  5. Dan install libraries support backend dari sensor BME280 yaitu “Adafruit Unified Sensor” library support backend bme280 - Adafruit Unified Sensor

Kode program sederhana

#include <Wire.h>  //libraries untuk pengaksesan i2c
#include <Adafruit_BME280.h> //libraries yang baru saja diinstall seperti cara diatas
#include <Adafruit_Sensor.h>

#define SEALEVELPRESSURE_HPA (1013.25) //nilai awal untuk pressure

Adafruit_BME280 bme; //penggunaan I2C

void setup() {
  Serial.begin(9600);

  if (!bme.begin(0x76)) {
    Serial.println("tidak ada sensor BME280, Coba cek rangkaianmu!");
    while (1);
  }
}

void loop() {
//pembacaan data temperature atau suhu
Serial.print("Suhu =");
Serial.print(bme.readTemperature());
Serial.println(" *C");

//pembacaan data Kelembaban
Serial.print("Kelembaban = ");
Serial.print(bme.readHumidity());
Serial.println(" %");

//pembacaan data tekanan atmosfer
Serial.print("Pressure = ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println(" hPa");

//pembacaan data ketinggian berdasarkan permukaan laut
Serial.print("Approx. Altitude = ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" m");

Serial.println(); delay(1000);
}

Hasil Program diatas

hasil serial monitor BME280

Penjelasan Kode

Definisi variabel SEALEVELPRESSURE_HPA diperlukan untuk menghitung ketinggian dan membuat objek libraries Adafruit_BME280 sehingga dapat mengakses fungsi yang terkait dengannya.

#define SEALEVELPRESSURE_HPA (1013.25) Adafruit_BME280 bme;

Di bagian pengaturan kode, kami menginisialisasi komunikasi serial dengan PC dan memanggil fungsi begin() .

Fungsi bme.begin(0x76) mengambil alamat I2C modul sebagai parameter. Fungsi ini menginisialisasi antarmuka I2C dengan diberikan Alamat I2C dan memeriksa apakah chip ID sudah benar. Kemudian reset chip menggunakan soft-reset & menunggu sensor untuk kalibrasi setelah bangun.

Fungsi yang terdapat di libraries yang digunakan untuk pembacaan data sensor :

  • readTemperature() : membaca data suhu dari sensor
  • readPressure() : membaca data tekanan barometrik dari sensor
  • readAltitude (SEALEVELPRESSURE_HPA) : menghitung ketinggian (dalam meter) dari tekanan atmosfer yang ditentukan (dalam hPa), dan tekanan permukaan laut (dalam hPa)
  • readHumidity() : membaca data kelembaban relatif dari sensor

Tutorial lanjutan menggunakan display LCD 16×2

Komponen yang diperlukan :

  • Arduino Nano
  • Modul BME280
  • LCD 16×2 dan driver LCD
  • Kabel Jumper

Rangkaian sederhananya seperti gambar dibawah

bme280, arduino nano, dan driver lcd pcf8574

Kode program rangkaian diatas
[sociallocker id=”1344″]

/* www.nyebarilmu.com */

#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
#include <Adafruit_BME280.h> //libraries yang baru saja diinstall seperti cara diatas
#include <Adafruit_Sensor.h>

LiquidCrystal_PCF8574 lcd(0x27); //dapat dicek menggunakan i2c finder

#define SEALEVELPRESSURE_HPA (1013.25) //nilai awal untuk pressure
Adafruit_BME280 bme; //penggunaan I2C

void setup(){
  Serial.begin(9600);
  lcd.begin(16,2);
  lcd.setBacklight(255);

  lcd.setCursor(00,00);
  lcd.print(" nyebarilmu.com ");
  lcd.setCursor(00,1);
  lcd.print(" Modul BME280");
  delay(2000);
  lcd.clear();

  if (!bme.begin(0x76)) {
    lcd.setCursor(00,00);
    lcd.print("no sensor BME280");
    lcd.setCursor(00,1);
    lcd.print("Cek rangkaian");
    while (1);
  }
  lcd.clear();
  delay(1000);
  lcd.clear();
}

void loop(){
lcd.setCursor(00,00);
lcd.print("T:");
lcd.print(bme.readTemperature());
lcd.print((char)223);
lcd.println("C");

//pembacaan data Kelembaban
lcd.setCursor(9,00);
lcd.print("H:");
lcd.print(bme.readHumidity());
lcd.print("%");

//pembacaan data tekanan atmosfer
lcd.setCursor(00,1);
lcd.print("P:");
lcd.print(bme.readPressure() / 100.0F);
lcd.println("hPa");

//pembacaan data ketinggian berdasarkan permukaan laut
lcd.setCursor(9,1);
lcd.print("A:");
lcd.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
lcd.println("m");

delay(1000);
}

[/sociallocker]
Selamat mencoba, dan salam nyebarilmu! ♥

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *