#define BLYNK_TEMPLATE_ID "TMPL3YrO8hPSx"
#define BLYNK_TEMPLATE_NAME "Gas Detector"
#define BLYNK_AUTH_TOKEN "D3JMx-k-lBgpD2kdENfNnAzdJ_qQKl2_"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#define GAS_SENSOR 34 // potentiometer connected to GPIO34
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
bool warningActive = false; // tracks if warning notification already sent
void setup()
{
Serial.begin(115200);
pinMode(GAS_SENSOR, INPUT);
Serial.println("Connecting to Blynk...");
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
void loop()
{
Blynk.run();
int sensorValue = analogRead(GAS_SENSOR);
// ESP32 ADC range (0–4095) → convert to 0–1023
int gasValue = map(sensorValue, 0, 4095, 0, 1023);
Serial.print("Gas Value: ");
Serial.println(gasValue);
// send value to Blynk gauge
Blynk.virtualWrite(V0, gasValue);
// SAFE ZONE
if (gasValue < 170)
{
Blynk.virtualWrite(V1, "SAFE");
Blynk.virtualWrite(V2, 0);
warningActive = false; // reset alert
}
// WARNING ZONE
else if (gasValue >= 170 && gasValue <= 550)
{
Blynk.virtualWrite(V1, "WARNING");
Blynk.virtualWrite(V2, 1);
// send notification only once when entering warning zone
if (!warningActive)
{
Blynk.logEvent("gas_leakage_alert");
warningActive = true;
}
}
// DANGER ZONE
else if (gasValue > 550)
{
Blynk.virtualWrite(V1, "DANGER");
Blynk.virtualWrite(V2, 1);
}
delay(2000);
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4