Menampilkan Data dari Sensor BME280 pada Layar OLED dengan ESP32

3 min read 22-08-2024
Menampilkan Data dari Sensor BME280 pada Layar OLED dengan ESP32

Menggunakan ESP32 untuk menampilkan data dari sensor BME280 pada layar OLED adalah proyek yang menyenangkan dan bermanfaat. Dalam artikel ini, kita akan membahas langkah-langkah untuk menghubungkan sensor BME280 dan layar OLED dengan ESP32, serta cara memprogramnya untuk menampilkan data suhu, kelembaban, dan tekanan udara.

Apa Itu ESP32?

ESP32 adalah modul mikrokontroler berbasis Wi-Fi dan Bluetooth yang sangat populer. Dengan kemampuan koneksi tanpa kabel serta variasi pin I/O yang banyak, ESP32 sering digunakan dalam berbagai proyek IoT (Internet of Things).

Apa Itu BME280?

BME280 adalah sensor lingkungan yang mampu mengukur suhu, kelembaban, dan tekanan udara. Sensor ini sangat akurat dan dapat digunakan dalam berbagai aplikasi, mulai dari stasiun cuaca hingga pengukuran kualitas udara.

Apa Itu Layar OLED?

Layar OLED (Organic Light Emitting Diode) adalah jenis layar yang menghasilkan gambar dengan kualitas tinggi, baik dari segi warna maupun kontras. Layar ini sangat cocok untuk proyek mikrokontroler karena konsumsi daya yang rendah dan ukuran yang kompak.

Komponen yang Diperlukan

Sebelum kita mulai, pastikan Anda memiliki komponen berikut:

  • ESP32
  • Sensor BME280
  • Layar OLED (misalnya, 0.96 inci I2C)
  • Breadboard dan jumper wires
  • Software Arduino IDE

Langkah-langkah Koneksi

1. Menghubungkan Komponen

Berikut adalah cara menghubungkan komponen:

  • Koneksi BME280 ke ESP32

    • VCC -> 3.3V
    • GND -> GND
    • SCL -> GPIO 22 (Clock)
    • SDA -> GPIO 21 (Data)
  • Koneksi Layar OLED ke ESP32

    • VCC -> 3.3V
    • GND -> GND
    • SCL -> GPIO 22 (Clock)
    • SDA -> GPIO 21 (Data)

Catatan:

Pastikan VCC dari kedua komponen terhubung ke sumber daya 3.3V ESP32.

Instalasi Library

Sebelum kita dapat memprogram ESP32, kita perlu menginstal beberapa library yang diperlukan. Buka Arduino IDE, dan ikuti langkah-langkah berikut:

  1. Pergi ke Sketch > Include Library > Manage Libraries.
  2. Cari dan instal library berikut:
    • Adafruit BME280 Library
    • Adafruit Sensor
    • Adafruit GFX Library
    • Adafruit SSD1306 Library

Program ESP32

Setelah semua komponen terhubung dan library terinstal, sekarang saatnya untuk memprogram ESP32. Berikut adalah contoh kode untuk menampilkan data dari BME280 pada layar OLED:

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

#define SCREEN_WIDTH 128 // Width of the screen
#define SCREEN_HEIGHT 64  // Height of the screen


// Create objects for BME280 and OLED
Adafruit_BME280 bme; 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

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

  // Initialize OLED
  display.begin(SSD1306_I2C_ADDRESS, 0x3C);
  display.clearDisplay();
  display.display();
}

void loop() {
  display.clearDisplay();

  // Read data from BME280
  float temperature = bme.readTemperature();
  float humidity = bme.readHumidity();
  float pressure = bme.readPressure() / 100.0F;

  // Print data to Serial Monitor
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println(" *C");
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");
  Serial.print("Pressure: ");
  Serial.print(pressure);
  Serial.println(" hPa");
  
  // Display data on OLED
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  
  display.print("Temperature: ");
  display.print(temperature);
  display.println(" *C");
  
  display.print("Humidity: ");
  display.print(humidity);
  display.println(" %");
  
  display.print("Pressure: ");
  display.print(pressure);
  display.println(" hPa");
  
  display.display();
  delay(2000); // Wait for 2 seconds before the next reading
}

Penjelasan Kode

  1. Import Library: Bagian ini mengimpor semua library yang kita butuhkan untuk memprogram BME280 dan OLED.
  2. Inisialisasi: Pada setup(), kita inisialisasi sensor BME280 dan layar OLED. Jika BME280 tidak terdeteksi, maka program akan berhenti.
  3. Loop: Di dalam fungsi loop(), kita membaca data suhu, kelembaban, dan tekanan dari BME280, lalu menampilkan data tersebut pada layar OLED. Kita juga mencetak nilai tersebut ke Serial Monitor untuk memantau data.

Kesimpulan

Dengan mengikuti langkah-langkah di atas, Anda sekarang dapat menampilkan data dari sensor BME280 pada layar OLED menggunakan ESP32. Proyek ini tidak hanya memberi Anda pemahaman yang lebih dalam tentang cara kerja sensor dan layar tetapi juga memberikan dasar yang kuat untuk mengembangkan proyek IoT yang lebih kompleks di masa depan.

Jangan ragu untuk bereksperimen lebih lanjut dengan proyek ini, seperti menambahkan fitur penyimpanan data atau konektivitas Wi-Fi untuk memantau data dari jarak jauh. Semoga sukses!