#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
for(;;);
}
display.clearDisplay();
display.setTextColor(WHITE);
// --- KURUMSAL AÇILIŞ ---
display.setTextSize(1);
display.setCursor(15, 20);
display.print("SISTEM BASLATILIYOR");
display.display();
delay(1500);
display.clearDisplay();
display.setTextSize(2);
display.setCursor(22, 12);
display.print("RENAULT");
display.setTextSize(1);
display.setCursor(35, 35);
display.print("MEGANE II");
display.display();
delay(3000);
}
void loop() {
display.clearDisplay();
// Test verileri
int hiz = random(80, 100);
int devir = random(1000, 3500);
int isi = 90;
float volt = 14.1;
// KURUMSAL ASİSTAN MANTIĞI
String mesaj;
if (devir > 2700) {
mesaj = "VERIMLILIK: VITES YUKSELT";
} else if (devir < 1300) {
mesaj = "VERIMLILIK: VITES DUSUR";
} else {
mesaj = "DURUM: OPTIMAL";
}
// --- PANEL TASARIMI ---
display.drawRect(0, 0, 128, 52, WHITE); // Veri kutusu
display.drawLine(64, 0, 64, 52, WHITE); // Dikey bölme
display.drawLine(0, 26, 128, 26, WHITE); // Yatay bölme
display.setTextSize(1);
// HIZ
display.setCursor(5, 4); display.print("HIZ");
display.setCursor(15, 14); display.print(hiz); display.print(" KM/H");
// RPM
display.setCursor(70, 4); display.print("RPM");
display.setCursor(75, 14); display.print(devir);
// ISI
display.setCursor(5, 30); display.print("ISI");
display.setCursor(15, 40); display.print(isi); display.print(" C");
// AKÜ
display.setCursor(70, 30); display.print("AKU");
display.setCursor(75, 40); display.print(volt, 1); display.print("V");
// --- KURUMSAL UYARI SATIRI ---
display.setCursor(0, 56);
display.print(mesaj);
display.display();
delay(500);
}