#include <WiFi.h>
#include <WebServer.h>
#define RELAY_PIN 2 // GPIO pin connected to the relay
// Replace with your network credentials
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
// Create a web server on port 80
WebServer server(80);
void setup() {
// Initialize serial communication for debugging
Serial.begin(115200);
// Initialize the relay pin as an output
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW); // Start with relay OFF
// Connect to Wi-Fi
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// Define routes for controlling the relay
server.on("/", handleRoot); // Root page
server.on("/on", turnRelayOn); // Turn relay on
server.on("/off", turnRelayOff); // Turn relay off
// Start the server
server.begin();
Serial.println("HTTP server started");
}
void loop() {
// Handle incoming client requests
server.handleClient();
}
// Handles the root page
void handleRoot() {
String html = "<html>\
<head>\
<title>Smart Switch</title>\
<style>\
body { font-family: Arial; text-align: center; padding-top: 50px; }\
button { padding: 10px 20px; margin: 10px; font-size: 16px; }\
</style>\
</head>\
<body>\
<h1>Smart Switch Control</h1>\
<p><button onclick=\"location.href='/on'\">Turn ON</button></p>\
<p><button onclick=\"location.href='/off'\">Turn OFF</button></p>\
</body>\
</html>";
server.send(200, "text/html", html);
}
// Turn the relay on
void turnRelayOn() {
digitalWrite(RELAY_PIN, HIGH);
server.send(200, "text/plain", "Relay is ON");
}
// Turn the relay off
void turnRelayOff() {
digitalWrite(RELAY_PIN, LOW);
server.send(200, "text/plain", "Relay is OFF");
}