#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
// Inisialisasi LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Data WiFi
const char* ssid = "Redmi 13";
const char* password = "12345678";
void setup() {
Serial.begin(115200);
// Inisialisasi I2C ESP32
Wire.begin(21, 22); // SDA = GPIO21, SCL = GPIO22
// Inisialisasi LCD
lcd.init();
lcd.backlight();
// Tampilan awal
lcd.setCursor(0, 0);
lcd.print("Redmi 13");
lcd.setCursor(0, 1);
lcd.print("Connecting...");
Serial.println("Menghubungkan WiFi...");
// Mulai koneksi WiFi
WiFi.begin(ssid, password);
// Tunggu hingga terhubung
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi Connected!");
Serial.print("IP Address : ");
Serial.println(WiFi.localIP());
// Tampilkan status di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WiFi Connected");
lcd.setCursor(0, 1);
lcd.print(WiFi.localIP());
}
void loop() {
// Jika WiFi terputus, coba sambungkan kembali
if (WiFi.status() != WL_CONNECTED) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WiFi Lost");
lcd.setCursor(0, 1);
lcd.print("Reconnecting");
WiFi.reconnect();
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Connecting");
lcd.setCursor(0, 1);
lcd.print(WiFi.localIP());
}
delay(1000);
}