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

IR Beam Sensors

Sensor 1:

Sensor 2:

Status 1: Reading...

Status 2: Reading...

)rawliteral"; // ====== SERVER HANDLERS ====== void handleRoot() { server.send(200, "text/html", htmlPage); } void handleStatus() { int val1 = digitalRead(irSensor1Pin); int val2 = digitalRead(irSensor2Pin); // Adjust logic depending on your sensor: LOW = blocked String state1 = (val1 == LOW) ? "BLOCKED" : "CLEAR"; String state2 = (val2 == LOW) ? "BLOCKED" : "CLEAR"; // Send as JSON String json = "{"; json += "\"sensor1\":\"" + state1 + "\","; json += "\"sensor2\":\"" + state2 + "\""; json += "}"; server.send(200, "application/json", json); } // ====== SETUP ====== void setup() { Serial.begin(115200); delay(1000); Serial.println(); Serial.println("Starting 2 IR Beam Sensors (Digital)..."); pinMode(irSensor1Pin, INPUT); pinMode(irSensor2Pin, 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()); // Start web server server.on("/", handleRoot); server.on("/status", handleStatus); server.begin(); Serial.println("Web server started."); } // ====== LOOP ====== void loop() { server.handleClient(); }