#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // Lebar layar OLED, dalam pixel
#define SCREEN_HEIGHT 64 // Tinggi layar OLED, dalam pixel
// Deklarasi untuk OLED display (I2C address 0x3C)
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
// Inisialisasi serial monitor (opsional, untuk debugging)
Serial.begin(9600);
// Inisialisasi OLED Display
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Jika inisialisasi gagal, berhenti di sini
}
// Bersihkan tampilan
display.clearDisplay();
// Menampilkan pesan awal "ECO BOTTLE"
display.setTextSize(2); // Set ukuran teks 2 (lebih besar)
display.setTextColor(SSD1306_WHITE); // Set warna teks ke putih
display.setCursor(0, 0); // Atur posisi kursor di atas layar
display.println("ECO BOTTLE"); // Tampilkan teks "ECO BOTTLE"
display.display(); // Tampilkan ke OLED
delay(2000); // Tunda 2 detik untuk tampilan awal "ECO BOTTLE"
// Bersihkan layar setelah menampilkan teks awal
display.clearDisplay();
// Menampilkan Volume In dan Volume Out setelah "ECO BOTTLE"
display.setTextSize(1); // Kembali ke ukuran teks kecil
display.setCursor(0, 25); // Atur posisi kursor sedikit lebih rendah (di bawah "ECO BOTTLE")
display.print("Volume In: "); // Tampilkan teks Volume In
display.print("0 L"); // Tampilkan nilai awal volume in
display.setCursor(0, 40); // Pindahkan kursor untuk Volume Out
display.print("Volume Out: "); // Tampilkan teks Volume Out
display.print("0 L"); // Tampilkan nilai awal volume out
display.display(); // Tampilkan ke OLED
delay(2000); // Tunda 2 detik untuk tampilan awal
}
void loop() {
// Bersihkan tampilan setiap loop
display.clearDisplay();
// Simulasi nilai volume
float volumeIn = 1.25; // Volume In (dalam liter, bisa dari sensor)
float volumeOut = 0.75; // Volume Out (dalam liter, bisa dari sensor)
// Tampilkan "ECO BOTTLE"
display.setTextSize(2); // Set ukuran teks besar
display.setCursor(0, 0); // Atur kursor di bagian atas layar
display.println("ECO BOTTLE"); // Tampilkan teks "ECO BOTTLE"
// Tampilkan Volume In
display.setTextSize(1); // Set ukuran teks lebih kecil
display.setCursor(0, 25); // Pindahkan kursor sedikit di bawah "ECO BOTTLE"
display.print("Volume In: ");
display.print(volumeIn);
display.println(" L");
// Tampilkan Volume Out
display.setCursor(0, 40); // Pindahkan kursor untuk baris baru
display.print("Volume Out: ");
display.print(volumeOut);
display.println(" L");
// Update tampilan OLED
display.display();
// Delay untuk memperbarui tampilan
delay(2000); // Tunda 2 detik
}
Loading
ssd1306
ssd1306