//#if defined(ESP8266)
//#include <ESP8266WiFi.h>
//#elif defined(ESP32)
#include <WiFi.h>
//#endif
// Karena kita pakai ESP32, Agar lebih ringkas programnya kita pakai library Wifi.h
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define SERIAL_DEBUG_BAUD 115200
#define LED 2 // pin 2 utk indikator di LED yg di ESP32
// the Wifi radio's status
int status = WL_IDLE_STATUS;
int x;
void InitWiFi()
{
Serial.println("Connecting to AP ...");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Connecting to AP ...");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println("Connected to AP");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Connected to AP");
}
void reconnect() {
status = WiFi.status();
if ( status != WL_CONNECTED) {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Connecting to AP ...");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println("Connected to AP");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Connected to AP");
}
}
void setup() {
// initialize the lcd
lcd.init();
lcd.backlight();
// initialize serial for debugging
Serial.begin(SERIAL_DEBUG_BAUD);
Serial.println();
InitWiFi();
pinMode(LED, OUTPUT);
}
void loop() {
delay(1000);
if (WiFi.status() != WL_CONNECTED) {
reconnect();
}
else {
Serial.print("WiFi sudah terkoneksi dengan ");
Serial.println(WIFI_SSID);
Serial.print("IP: ");
Serial.println(WiFi.localIP());
x++;
Serial.print("Info koneksi ke ");
Serial.println(x);
lcd.setCursor(0,0);
lcd.print("WiFi: ");
lcd.print(WIFI_SSID);
lcd.setCursor(0,2);
lcd.println("IP:");
lcd.print(WiFi.localIP());
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
}
}