#include #include // ====== WIFI INFO ====== const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASSWORD"; // ====== IR SENSOR PINS ====== const int irSensor1Pin = D2; // Digital pin D2 const int irSensor2Pin = D3; // Digital pin D3 const int irSensor3Pin = D4; // Digital pin D4 // ====== WEB SERVER ====== WebServer server(80); // ====== HTML PAGE ====== String htmlPage = R"rawliteral( IR Beam Sensors (3 Columns)

IR Beam Sensors

Sensor 1

Status 1: Reading...

Sensor 2

Status 2: Reading...

Sensor 3

Status 3: Reading...

)rawliteral"; // ====== SERVER HANDLERS ====== void handleRoot() { server.send(200, "text/html", htmlPage); } void handleStatus() { int val1 = digitalRead(irSensor1Pin); int val2 = digitalRead(irSensor2Pin); int val3 = digitalRead(irSensor3Pin); String state1 = (val1 == LOW) ? "BLOCKED" : "CLEAR"; String state2 = (val2 == LOW) ? "BLOCKED" : "CLEAR"; String state3 = (val3 == LOW) ? "BLOCKED" : "CLEAR"; String json = "{"; json += "\"sensor1\":\"" + state1 + "\","; json += "\"sensor2\":\"" + state2 + "\","; json += "\"sensor3\":\"" + state3 + "\""; json += "}"; server.send(200, "application/json", json); } // ====== SETUP ====== void setup() { Serial.begin(115200); delay(1000); Serial.println("\nStarting 3 IR Beam Sensors..."); pinMode(irSensor1Pin, INPUT); pinMode(irSensor2Pin, INPUT); pinMode(irSensor3Pin, INPUT); WiFi.begin(ssid, password); Serial.print("Connecting to WiFi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWiFi Connected!"); Serial.print("IP Address: "); Serial.println(WiFi.localIP()); server.on("/", handleRoot); server.on("/status", handleStatus); server.begin(); Serial.println("Web server started."); } // ====== LOOP ====== void loop() { server.handleClient(); }