KUNJUNGI KAMI

KUNJUNGI KITA DI BUKALAPAK, TOKOPEDIA DAN SHOPEE

Menyambungkan Sensor BME280 untuk Suhu, Kelembaban, dan Tekanan dengan Arduino

Sensor presisi BME280 dari Bosch digunakan dalam beragam aplikasi mulai dari pemantauan cuaca hingga pengendalian permainan dan pengukuran ketinggian di mana akurasi dalam hitungan kaki diperlukan."


Sensor ini mudah digunakan, sudah dikalibrasi sebelumnya, dan tidak memerlukan komponen tambahan, sehingga Anda dapat segera mulai mengukur kelembaban relatif, suhu, tekanan barometrik, dan ketinggian.


Jadi, mari kenali lebih dekat dengan BME280, yang sudah banyak kami dengar.


Kemampuan BME280


Pengukuran Suhu 

BME280 dapat mengukur suhu dalam rentang -40°C hingga 85°C. Dalam rentang suhu 0 hingga 65°C, akurasinya adalah ±1,0°C; di luar rentang tersebut, akurasi menurun menjadi ±1,5°C.


Perlu dicatat bahwa pengukuran suhu ini digunakan secara internal untuk mengkalibrasi sensor tekanan dan kelembaban. Karena sensor ini menghasilkan panas sendiri, suhu yang diukur biasanya sedikit lebih tinggi dari suhu sebenarnya. Jika hal ini kritikal untuk proyek Anda, bandingkan suhu yang diukur dengan suhu aktual dan terapkan pergeseran (offset) jika diperlukan.


Pengukuran Kelembaban 

BME280 dapat mengukur kelembaban relatif dalam rentang 0 hingga 100% dengan akurasi ±3%.


Menurut lembar data, sensor ini dapat mengukur hingga 100% kelembaban dalam rentang suhu 0 hingga 60°C. Namun, kemampuan pengukuran kelembaban maksimum menurun pada suhu yang sangat tinggi dan sangat rendah.


Pengukuran Tekanan 

BME280 dapat mengukur tekanan dalam rentang 300Pa hingga 1100 hPa dengan akurasi mutlak ±1 hPa.


Dalam rentang suhu 0 hingga 65°C, akurasi penuh dapat diperoleh, menghasilkan akurasi pengukuran ketinggian sekitar ±1 meter. Di luar rentang tersebut, akurasi menurun menjadi 1.7 hPa.


Menghitung Ketinggian

BME280 dapat mengukur tekanan dengan presisi yang tinggi (tingkat kebisingan ketinggian rendah sekitar 0,25 meter) sehingga juga dapat digunakan sebagai altimeter dengan akurasi ±1 meter.


Sebelum melanjutkan, penting untuk memahami perbedaan antara Ketinggian Mutlak dan Ketinggian Relatif. Istilah "ketinggian mutlak" mengacu pada ketinggian di atas permukaan laut (MSL), sedangkan "ketinggian relatif" mengacu pada ketinggian di atas permukaan tanah (AGL).


Perlu dicatat bahwa BME280 tidak dapat langsung mengukur ketinggian, tetapi dapat memperkirakannya menggunakan pembacaan tekanan. Karena BME280 sangat baik dalam mengukur tekanan, ia dapat menghitung ketinggian relatif dengan akurat. Sebagai contoh, jika Anda mengetahui ketinggian objek yang berada di atas meja dan Anda memindahkannya ke lantai, BME280 akan menunjukkan penurunan ketinggian sekitar 2 kaki.


Namun, jika Anda mencoba mengukur ketinggian mutlak, hal-hal menjadi sedikit lebih rumit karena BME280 perlu mengetahui tekanan permukaan laut saat ini.


Oleh karena itu, untuk mendapatkan pengukuran ketinggian mutlak yang akurat, konstanta SEA_LEVEL_PRESSURE disediakan dalam contoh kode di bawah ini, yang harus Anda perbarui dengan tekanan permukaan laut saat ini di lokasi Anda.


Gambaran Perangkat Keras

BME280 IC

Di inti modul ini terdapat sensor suhu, kelembaban, dan tekanan digital generasi berikutnya dari Bosch - BME280. Ini adalah penerus dari sensor-sensor seperti BMP180, BMP085, dan BMP183.



Daya

Modul ini dilengkapi dengan regulator LM6206 3,3V dan Penerjemah Tegangan I2C on-board, sehingga Anda dapat menggunakannya dengan mikrokontroler logika 3,3V atau 5V seperti Arduino tanpa khawatir.



BME280 mengonsumsi kurang dari 1mA selama pengukuran dan hanya 5μA saat dalam keadaan diam. Karena konsumsi daya yang rendah ini, sensor ini dapat digunakan dalam perangkat bertenaga baterai seperti handset, modul GPS, dan jam tangan.


Antarmuka I2C

Modul BME280 berkomunikasi melalui I2C dan mendukung dua alamat I2C, yaitu 0x76 dan 0x77, memungkinkan hingga dua sensor digunakan pada bus yang sama.


Alamat I2C default modul ini adalah 0x76HEX, yang dapat dengan mudah diubah menjadi 0x77HEX menggunakan jembatan solder yang disediakan.



Untuk mengubah alamat i2c menjadi 0x77, potong jalur antara pad tembaga tengah dan pad tembaga kiri dengan menggunakan pisau tajam. Kemudian, tambahkan tetesan solder antara pad tembaga tengah dan pad tembaga kanan untuk menghubungkannya secara singkat.




Spesifikasi Teknis

Berikut adalah spesifikasi:

Device Specifications

Input Voltage 3.3V – 5V -
Current Consumption 1mA (typ.) and 5μA (idle) -
Temperature -40°C to 85°C ±1.0°C
Humidity 0 to 100% RH ±3%
Pressure 300Pa to 1100 hPa ±1 hPa
Altitude 0 to 30,000 ft. ±1 m


Untuk informasi lebih lanjut, silakan lihat lembar data di bawah ini.

BME 280 Datasheet.


Susunan Pin BME280 Sensor

Modul BME280 memiliki hanya 4 pin yang menghubungkannya dengan dunia luar. Koneksi-koneksi tersebut adalah sebagai berikut:




VIN memberikan pasokan daya ke modul. Hubungkan tegangan antara 3,3V hingga 5V ke pin ini.

GND adalah pin tanah.

SCL adalah pin clock serial untuk antarmuka I2C.

SDA adalah pin data serial untuk antarmuka I2C.


Menghubungkan Modul BME280 ke Arduino

Mari kita sambungkan modul BME280 ke Arduino.

Hubungan cukup sederhana. Mulailah dengan menghubungkan pin VCC ke output 5V Arduino dan pin GND ke ground.

Sekarang kita memiliki pin-pin yang digunakan untuk komunikasi I2C. Perhatikan bahwa setiap board Arduino memiliki pin I2C yang berbeda-beda yang harus dihubungkan dengan benar. Pada  board Arduino dengan layout R3, pin SDA (garis data) dan SCL (garis clock) terletak di header pin dekat pin AREF. Mereka juga disebut A5 (SCL) dan A4 (SDA).

Lihat tabel di bawah ini untuk referensi cepat.

Arduino Pin Configuration

Board Pins
SCL SDA
Arduino Uno A5 A4
Arduino Nano A5 A4
Arduino Mega 21 20
Leonardo/Micro 3 2



Diagram di bawah ini menunjukkan cara menghubungkan semuanya.




Menginstal Library yang Diperlukan

Untuk mulai membaca data sensor, Anda harus terlebih dahulu menginstal Pustaka Adafruit BME280. Pustaka ini tersedia melalui pengelola pustaka Arduino.

Untuk menginstal pustaka, buka Sketch > Include Library > Manage Libraries... Tunggu hingga Pengelola Pustaka mengunduh indeks pustaka dan memperbarui daftar pustaka yang terinstal.




Saring pencarian Anda dengan memasukkan 'bme280'. Cari Pustaka Adafruit BME280 oleh Adafruit. Klik pada entri tersebut, lalu pilih Instal.




Pustaka sensor BME280 menggunakan backend dukungan Sensor Adafruit. Jadi, cari Adafruit Unified Sensor dan instal  (Anda mungkin perlu menggulir sedikit).


Kode Contoh Arduino


Berikut adalah program sederhana yang membaca suhu, kelembaban relatif, tekanan, dan ketinggian perkiraan dari modul BME280 dan mencetaknya di monitor serial.

#include 
#include 
#include 

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

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

	if (!bme.begin(0x76)) {
		Serial.println("Could not find a valid BME280 sensor, check wiring!");
		while (1);
	}
}

void loop() {
	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();
	delay(1000);
}


Anda seharusnya melihat keluaran yang serupa di monitor serial.



Pembahasan Kode:

Sketsa ini dimulai dengan menyertakan tiga pustaka, yaitu Wire.h, Adafruit Sensor.h, dan Adafruit BME280.h.


#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
"Kemudian, variabel SEALEVELPRESSURE_HPA didefinisikan. Variabel ini menyimpan tekanan permukaan laut dalam milibar dan digunakan untuk menghitung ketinggian absolut untuk tekanan tertentu dengan membandingkannya dengan tekanan permukaan laut. Nilai default (1013,25) digunakan dalam sketsa ini, tetapi untuk hasil yang akurat, gantikan dengan tekanan permukaan laut saat ini di lokasi Anda.

Objek dari pustaka Adafruit BME280 juga dibuat sehingga kita dapat mengakses fungsinya."

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;


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

Fungsi begin(I2C_ADDR) mengambil alamat I2C modul sebagai parameter. Jika Anda mengubah alamat I2C modul Anda, Anda harus menentukannya dengan benar. Fungsi ini menginisialisasi antarmuka I2C dengan alamat I2C yang diberikan dan memvalidasi ID chip. Kemudian, chip diatur ulang secara lembut dan menunggu sensor untuk dikalibrasi setelah bangun."

Serial.begin(9600);

if (!bme.begin(0x76)) {
	Serial.println("Could not find a valid BME280 sensor, check wiring!");
	while (1);
}


Pada bagian loop kode, kami menggunakan fungsi-fungsi berikut untuk membaca suhu, kelembaban relatif, dan tekanan atmosfer dari modul BME280.

Fungsi readTemperature() mengembalikan suhu.

Fungsi readPressure() mengembalikan tekanan atmosfer.

Fungsi readAltitude(SEALEVELPRESSURE_HPA) menghitung ketinggian (dalam meter) dengan membandingkan tekanan atmosfer yang ditentukan (dalam hPa) dengan tekanan permukaan laut (dalam hPa).

Fungsi readHumidity() mengembalikan kelembaban relatif."


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("%");

Mengenal Sensor BME280
Mengukur Suhu, Kelembaban dan Tekanan dengan Sensor BME280
Cara Kerja BME280
Cara Kerja Sensor BME280
Prinsip Kerja Sensor BME280

Tidak ada komentar:

Posting Komentar