#include <WiFi.h>
// Masukkan SSID dan password WiFi Anda di sini
const char* ssid = "";
const char* password = "";
// Deklarasi pin LED yang akan dikendalikan
const int ledPin = 2; // Misalnya, GPIO2 pada ESP32
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
// Menghubungkan ESP32 ke jaringan WiFi
Serial.println();
Serial.print("Menghubungkan ke ");
Serial.println(ssid);
WiFi.begin(ssid, password);
int attemptCounter = 0;
while (WiFi.status() != WL_CONNECTED && attemptCounter < 20) {
delay(500);
Serial.print(".");
attemptCounter++;
}
if (WiFi.status() != WL_CONNECTED) {
Serial.println("");
Serial.println("Gagal terhubung ke WiFi. Periksa kembali kredensial Anda.");
while (1) {
// Menghentikan program jika gagal terhubung ke WiFi
delay(1000);
}
}
Serial.println("");
Serial.println("Koneksi WiFi berhasil");
Serial.println("Alamat IP: ");
Serial.println(WiFi.localIP());
// Memulai server web
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
Serial.println("Klien baru terhubung");
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n') {
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
// Konten halaman web yang akan ditampilkan
client.println("<!DOCTYPE html><html>");
client.println("<head><title>ESP32 LED Control</title></head>");
client.println("<body>");
client.println("<h1>ESP32 LED Control</h1>");
client.println("<p><a href=\"LED_ON\"><button>LED ON</button></a></p>");
client.println("<p><a href=\"LED_OFF\"><button>LED OFF</button></a></p>");
client.println("</body></html>");
break;
} else {
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
// Kontrol LED berdasarkan permintaan dari halaman web
if (currentLine.endsWith("LED_ON")) {
digitalWrite(ledPin, HIGH);
} else if (currentLine.endsWith("LED_OFF")) {
digitalWrite(ledPin, LOW);
}
}
}
// Menunggu koneksi ditutup sebelum melepaskan sumber daya
delay(10);
client.stop();
Serial.println("Klien terputus");
}
}