#include <WiFi.h>
#include <ThingSpeak.h>
const char* ssid = "Wokwi-GUEST"; // Replace with your Wi-Fi SSID
const char* password = ""; // Replace with your Wi-Fi password
const unsigned long myChannelNumber = 2723102; // Replace with your ThingSpeak Channel ID
const char* myWriteAPIKey = "IYD7X33S61Q35DOL"; // Replace with your ThingSpeak Write API Key
// Pin Definitions
const int methanepin = 34; // MQ2 sensor connected to pin 34 (ADC pin)
const int smokepin = 35;
const int redLED = 14; // Red LED connected to pin 14
const int greenLED = 13; // Green LED connected to pin 13
const int buzzerPin = 22; // Buzzer connected to pin 22
WiFiClient client;
void setup() {
Serial.begin(115200);
// Initialize LED and Buzzer pins
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(methanepin, INPUT);
pinMode(smokepin,INPUT);
// 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");
// Initialize ThingSpeak
ThingSpeak.begin(client);
}
void loop() {
// Read the MQ2 gas sensor value from pin 34
int methane = analogRead(methanepin); // Declare and assign the correct sensor reading
Serial.print("MQ2 Sensor Value: ");
Serial.println(methane);
int smoke = analogRead(smokepin); // Declare and assign the correct sensor reading
Serial.print("MQ2 Sensor Value: ");
Serial.println(smoke);
// Control LEDs and Buzzer based on gas sensor value
if (methane > 50) { // Smoke detected
digitalWrite(redLED, HIGH); // Turn on red LED
digitalWrite(greenLED, LOW); // Turn off green LED
digitalWrite(buzzerPin, HIGH); // Turn on buzzer (alert)
Serial.println("methane detected! Buzzer ON");
tone(buzzerPin, 1000);
}
else {digitalWrite(redLED, HIGH); // Turn on red LED
digitalWrite(greenLED, LOW); // Turn off green LED
digitalWrite(buzzerPin, HIGH); // Turn on buzzer (alert)
Serial.println("methane detected! Buzzer ON");
tone(buzzerPin, 1000);
}
if (smoke < 70) { // Smoke detected
digitalWrite(redLED, LOW); // Turn on red LED
digitalWrite(greenLED, HIGH); // Turn off green LED
digitalWrite(buzzerPin, HIGH); // Turn on buzzer (alert)
Serial.println("Smoke detected! Buzzer ON");
tone(buzzerPin, 1000);
}
else { // No significant gas detected
digitalWrite(redLED, LOW); // Turn off red LED
digitalWrite(greenLED, LOW); // Turn on green LED
digitalWrite(buzzerPin, LOW); // Turn off buzzer
Serial.println("Normal conditions, no gas detected.");
}
// Send sensor data to ThingSpeak
ThingSpeak.setField(1, methane); // Set the field value for gas sensor
ThingSpeak.setField(2, smoke);
ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
delay(1000); // Wait for 2 seconds before sending the next data
}