#define BLYNK_TEMPLATE_ID "TMPL5sqdHaV62"
#define BLYNK_TEMPLATE_NAME "IOT Assignment"
#define BLYNK_AUTH_TOKEN "lcT69KMpwiXSms5yAZIHTEcCGT--g2gK"
// Include libraries
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Define pins
#define POT_PIN 32 // Potentiometer (simulating MQ-2 sensor)
#define LED_PIN 22 // LED
#define BUZZER_PIN 23 // Buzzer
// Blynk authentication token
char auth[] = BLYNK_AUTH_TOKEN;
// WiFi credentials
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Variables
int sensorValue = 0;
int threshold = 500; // Set a threshold value for smoke detection
BlynkTimer timer;
void setup() {
// Initialize serial communication
Serial.begin(115200);
Serial.println("Starting...");
// Initialize Blynk
Blynk.begin(auth, ssid, pass);
// Initialize pins
pinMode(POT_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
Serial.println("Setup complete");
// Timer to check sensor value
timer.setInterval(1000L, checkSensor);
}
void checkSensor() {
// Read the potentiometer value (simulate smoke sensor)
sensorValue = analogRead(POT_PIN);
Serial.println(sensorValue);
// Update Blynk gauge
Blynk.virtualWrite(V1, sensorValue);
// Check if sensor value exceeds threshold
if (sensorValue > threshold) {
digitalWrite(LED_PIN, HIGH);
digitalWrite(BUZZER_PIN, HIGH);
Blynk.virtualWrite(V0, 1); // Turn on virtual LED
// Blynk.notify("Smoke detected!");
Blynk.virtualWrite(V2, 255);
} else {
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER_PIN, LOW);
Blynk.virtualWrite(V0, 0); // Turn off virtual LED
Blynk.virtualWrite(V2, 0);
}
}
void loop() {
Blynk.run();
timer.run();
}