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:
- Pergi ke Sketch > Include Library > Manage Libraries.
- 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
- Import Library: Bagian ini mengimpor semua library yang kita butuhkan untuk memprogram BME280 dan OLED.
- Inisialisasi: Pada
setup()
, kita inisialisasi sensor BME280 dan layar OLED. Jika BME280 tidak terdeteksi, maka program akan berhenti. - 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!