#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
// Definisikan SSID dan Password WiFi Anda
const char* ssid = "poco"; //seuaikan dengan ssid access point anda
const char* password = "12345678"; //seusiakan dengan password access point anda
// Inisialisasi ESP8266WebServer
ESP8266WebServer server(80);
// Daftar status relay (0 = OFF, 1 = ON)
int relayStatus[8] = {0, 0, 0, 0, 0, 0, 0, 0};
// Daftar pin GPIO yang terhubung ke relay
int rly1 = 16;
int rly2 = 14;
int rly3 = 12;
int rly4 = 13;
int rly5 = 15;
int rly6 = 0;
int rly7 = 4;
int rly8 = 5;
int relayPins[8] = {rly1, rly2, rly3, rly4, rly5, rly6, rly7, rly8};
void setup() {
// Inisialisasi pin relay sebagai OUTPUT
for (int i = 0; i < 8; i++) {
pinMode(relayPins[i], OUTPUT);
digitalWrite(relayPins[i], LOW);
}
// Mulai serial
Serial.begin(115200);
// Sambungkan ke WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Menghubungkan ke WiFi...");
}
Serial.println("Terhubung ke WiFi");
Serial.println("IP Address: " + WiFi.localIP().toString());
// Mengatur rute web
server.on("/", HTTP_GET, handleRoot);
server.on("/relay", HTTP_GET, handleRelay);
server.begin();
Serial.println("Server berjalan");
}
void loop() {
server.handleClient();
}
void handleRoot() {
String html = "<html><body>";
html += "<h1>Control Relay via Web</h1>";
for (int i = 0; i < 8; i++) {
html += "<p>Relay " + String(i+1) + ": ";
html += (relayStatus[i] == 1) ? "ON" : "OFF";
html += " <a href='/relay?state=";
html += (relayStatus[i] == 1) ? "0" : "1";
html += "&relay=";
html += String(i);
html += "'>Toggle</a></p>";
}
html += "</body></html>";
server.send(200, "text/html", html);
}
void handleRelay() {
if (server.hasArg("state") && server.hasArg("relay")) {
int relay = server.arg("relay").toInt();
int state = server.arg("state").toInt();
if (relay >= 0 && relay < 8 && (state == 0 || state == 1)) {
relayStatus[relay] = state;
digitalWrite(relayPins[relay], state);
}
}
handleRoot();
}
Comments