#include <WiFi.h> // Library untuk koneksi Wi-Fi
#include <WebServer.h> // Library untuk membuat server web
const char* ssid = "Wokwi-GUEST";
const char* password = ""; // Password kosong karena Wi-Fi Wokwi-GUEST biasanya tidak memerlukan password
WebServer server(80); // Inisialisasi server di port 80
// Pin relay
const int relayPins[] = {19, 21, 22, 23};
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to Wi-Fi");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Set relay pins as output dan atur kondisi awal off
for (int i = 0; i < 4; i++) {
pinMode(relayPins[i], OUTPUT);
digitalWrite(relayPins[i], HIGH); // Relay off (logika terbalik)
}
// Setup routing untuk server web
server.on("/", handleRoot);
server.on("/relay", HTTP_GET, handleRelayControl);
server.begin();
Serial.println("HTTP server started");
}
void loop() {
server.handleClient();
}
void handleRoot() {
String html = "<h1>Control 4 Relay</h1>"
"<p><a href='/relay?pin=19&state=on'>Turn ON Relay 19</a></p>"
"<p><a href='/relay?pin=19&state=off'>Turn OFF Relay 19</a></p>"
"<p><a href='/relay?pin=21&state=on'>Turn ON Relay 21</a></p>"
"<p><a href='/relay?pin=21&state=off'>Turn OFF Relay 21</a></p>"
"<p><a href='/relay?pin=22&state=on'>Turn ON Relay 22</a></p>"
"<p><a href='/relay?pin=22&state=off'>Turn OFF Relay 22</a></p>"
"<p><a href='/relay?pin=23&state=on'>Turn ON Relay 23</a></p>"
"<p><a href='/relay?pin=23&state=off'>Turn OFF Relay 23</a></p>";
server.send(200, "text/html", html);
}
void handleRelayControl() {
String pinParam = server.arg("pin");
String stateParam = server.arg("state");
int pin = pinParam.toInt();
bool validPin = false;
for (int i = 0; i < 4; i++) {