// === WOKWI DEMO KODU ===
// Bu kod sadece video çekimi içindir.
// Gerçek web server kodu BlueGrays uygulamasında /
// This is a demo code for video shooting only.
// Real web server code is in the BlueGrays app.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
const char* WIFI_SSID = "Wokwi-GUEST";
const char* WIFI_PASS = "";
#define LED_PIN 5
bool ledState = false;
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Demo zamanlamasi / Demo timing
unsigned long lastToggle = 0;
unsigned long nextDelay = 2500;
void updateLcd() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("IP:");
lcd.print(WiFi.localIP());
lcd.setCursor(0, 1);
lcd.print(ledState ? "LED: ACIK " : "LED: KAPALI ");
}
void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Wire.begin(21, 22);
lcd.init();
lcd.backlight();
// Splash 3sn
lcd.setCursor(3, 0);
lcd.print("BlueGrays");
lcd.setCursor(2, 1);
lcd.print("WebServer v1");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WiFi baglaniyor");
lcd.setCursor(0, 1);
lcd.print("Connecting...");
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) delay(500);
updateLcd();
lastToggle = millis();
}
void loop() {
// Kullanici buton bastiymis gibi LED'i otomatik toggle et
// Auto toggle LED as if user pressed buttons
if (millis() - lastToggle >= nextDelay) {
lastToggle = millis();
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
updateLcd();
// Rastgele 2-4 sn bekle (daha gercekci hissetsin)
// Random 2-4s wait (more realistic feel)
nextDelay = 2000 + random(2000);
}
}