Sensor BME280 Bosch adalah sensor presisi yang digunakan dalam berbagai aplikasi mulai dari pemantauan cuaca hingga kontrol game hingga pengukuran ketinggian di mana diperlukan akurasi hanya beberapa kaki.
Sensor ini mudah digunakan, sudah dikalibrasi sebelumnya, dan tidak memerlukan komponen tambahan, sehingga Anda dapat mulai mengukur kelembaban relatif, suhu, tekanan barometrik, dan ketinggian dalam waktu singkat.
Jadi, mari kita mengenal BME280, yang sudah banyak kita dengar.
Mengukur Suhu
BME280 dapat mengukur suhu mulai dari -40°C hingga 85°C. Pada rentang suhu 0 hingga 65°C, akurasinya adalah ±1,0°C; di luar rentang tersebut, akurasinya turun menjadi ±1,5°C.Perlu dicatat bahwa pengukuran suhu ini digunakan secara internal untuk mengkalibrasi sensor tekanan dan kelembaban. Karena sensor menghasilkan panas sendiri, suhu yang diukur biasanya sedikit lebih tinggi dari suhu sebenarnya. Jika hal ini penting untuk proyek Anda, bandingkan suhu yang diukur dengan suhu sebenarnya dan terapkan offset jika perlu.
Mengukur Kelembaban
BME280 dapat mengukur kelembaban relatif dari 0 hingga 100% dengan akurasi ±3%.Menurut datasheet, sensor dapat mengukur hingga 100% kelembaban pada rentang suhu 0 hingga 60°C. Namun, kelembaban maksimum yang dapat diukur menurun pada suhu yang sangat tinggi dan rendah.
Mengukur Tekanan
BME280 dapat mengukur tekanan antara 300Pa hingga 1100 hPa dengan akurasi absolut ±1 hPa.Pada rentang suhu 0 hingga 65°C, akurasi penuh diperoleh, menghasilkan akurasi pengukuran ketinggian sekitar ±1 meter. Di luar rentang itu, akurasi turun menjadi 1,7 hPa.
Menghitung Ketinggian / Elevansi
BME280 dapat mengukur tekanan dengan presisi tinggi (kebisingan ketinggian rendah 0,25m) sehingga dapat juga digunakan sebagai altimeter dengan akurasi ±1 meter.Sebelum melanjutkan, penting untuk memahami perbedaan antara Ketinggian Absolut dan Ketinggian Relatif. Istilah "ketinggian absolut" 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 secara akurat. Misalnya, jika Anda mengetahui ketinggian benda yang diletakkan di atas meja dan Anda memindahkannya ke lantai, BME280 akan menunjukkan penurunan ketinggian 2 kaki.Namun, jika Anda mencoba mengukur ketinggian absolut, hal-hal menjadi sedikit lebih rumit karena BME280 perlu mengetahui tekanan permukaan laut saat ini.Jadi, untuk mendapatkan pengukuran ketinggian absolut 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.
Riview Perangkat Keras
IC BME280
Daya
Antarmuka I2C
Spesifikasi Teknis
Bersukut Spesifikasinya :
Input voltage | 3.3V – 5V |
---|---|
Current consumption | 1mA (typ.) and 5μA (idle) |
Temperature | -40°C to 85°C (±1.0°C accuracy) |
Humidity | 0 to 100% RH (±3% accuracy) |
Pressure | 300Pa to 1100 hPa (±1 hPa accuracy) |
Altitude | 0 to 30,000 ft. (±1 m accuracy) |
Instalasi Library yang Diperlukan
Kode Contoh Arduino
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#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
Penjelasan Kode:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define SEALEVELPRESSURE_HPA (1013.25)
Adafruit_BME280 bme;
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 barometrik dari modul BME280. 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("%");
Referensi "Interface BME280 Temperature, Humidity & Pressure Sensor with Arduino", Last Minute Engineer , https://lastminuteengineers.com/bme280-arduino-tutorial/