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.
#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();
}
Komentar
Posting Komentar