hwthinker icon

relay10A-8ch-esp12f-01-test-serverweb

hwthinker | PRO | 09/19/23 07:47:36 AM UTC (Edited) | 0 ⭐ | 2075 👁️ | Never ⏰ | []
Arduino |

2.15 KB

|

None

|

0 👍

/

0 👎

#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