#include #include const char* ssid = "your_ssid"; // Use const char* for string literals const char* password = "your_password"; const int LED_PIN = 2; const int BUTTON_PIN = 5; ESP8266WebServer server(80); void setup() { pinMode(LED_PIN, OUTPUT); pinMode(BUTTON_PIN, INPUT); Serial.begin(115200); // Initialize serial communication for debugging WiFi.begin(ssid, password); Serial.print("Connecting to WiFi..."); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.on("/gpio/1", HTTP_GET, handleLEDOn); // Use function pointers for handlers server.on("/gpio/0", HTTP_GET, handleLEDOff); server.on("/gpio/toggle", HTTP_GET, handleToggleLED); server.on("/gpio/status", HTTP_GET, handleLEDStatus); server.begin(); Serial.println("Server started"); } void loop() { server.handleClient(); } void handleLEDOn() { digitalWrite(LED_PIN, HIGH); server.send(200, "text/plain", "1"); } void handleLEDOff() { digitalWrite(LED_PIN, LOW); server.send(200, "text/plain", "0"); } void handleToggleLED() { int newLEDState = !digitalRead(LED_PIN); digitalWrite(LED_PIN, newLEDState); server.send(200, "text/plain", String(newLEDState).c_str()); } void handleLEDStatus() { int ledState = digitalRead(LED_PIN); server.send(200, "text/plain", String(ledState).c_str()); }