#include <WiFi.h>
#include <WebServer.h>
// GAS AND FLAME DETECTOR
// GAS DETECTOR
int GasInput = 14; // Digital pin for gas detector
int GasBuzzer = 33; // Buzzer pin for gas detector
int GasMAX = 400;
// FLAME DETECTOR
int FlameSensor = 12; // Digital pin for flame detector
int FlameBuzzer = 26; // Buzzer pin for flame detector
int gasVal;
int flameVal;
const char* ssid = "Wokwi-GUEST";
const char* password = "";
WebServer server(80);
void setup() {
Serial.begin(9600);
pinMode(GasInput, INPUT);
pinMode(GasBuzzer, OUTPUT); // Set buzzer pin as output
pinMode(FlameSensor, INPUT);
pinMode(FlameBuzzer, OUTPUT);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Print ESP32 IP address
Serial.println(WiFi.localIP());
// Route for root / web page
server.on("/", HTTP_GET, handleRoot);
// Route to handle buzzer control
server.on("/buzzer", HTTP_POST, handleBuzzer);
// Start server
server.begin();
}
void loop() {
// Gas Detector
gasVal = digitalRead(GasInput);
if (gasVal == HIGH) {
digitalWrite(GasBuzzer, HIGH); // Turn on buzzer if gas detected
Serial.println("GAS LEAKING");
} else {
digitalWrite(GasBuzzer, LOW); // Turn off buzzer if no gas detected
Serial.println("NORMAL");
}
// Flame Detector
flameVal = digitalRead(FlameSensor);
digitalWrite(FlameBuzzer, flameVal); // Control flame buzzer based on flame sensor reading
// Handle HTTP requests
server.handleClient();
}
void handleRoot() {
String gasStatus = (gasVal == HIGH) ? "Gas Leaking" : "Normal";
String flameStatus = (flameVal == HIGH) ? "Flame Detected" : "No Flame";
String html = "<!DOCTYPE html>\
<html>\
<head>\
<title>Gas and Flame Detector</title>\
</head>\
<body>\
<h1>Gas and Flame Detector</h1>\
<h2>Gas Detector:</h2>\
<p>Status: " + gasStatus + "</p>\
<h2>Flame Detector:</h2>\
<p>Status: " + flameStatus + "</p>\
<h3>Control Flame Detector Buzzer:</h3>\
<form action=\"/buzzer\" method=\"post\">\
<button type=\"submit\" name=\"action\" value=\"on\">Turn On Buzzer</button>\
<button type=\"submit\" name=\"action\" value=\"off\">Turn Off Buzzer</button>\
</form>\
</body>\
</html>";
server.send(200, "text/html", html);
}
void handleBuzzer() {
if (server.hasArg("action")) {
String action = server.arg("action");
if (action == "on") {
digitalWrite(FlameBuzzer, HIGH); // Turn on flame buzzer
} else if (action == "off") {
digitalWrite(FlameBuzzer, LOW); // Turn off flame buzzer
}
}
server.send(200, "text/plain", "Buzzer control handled");
}