This is an old revision of the document!


ESP32 smoke detector

  • Author: Paraschiv Theodor-Vlad
  • Email: theodor.paraschiv@stud.acs.pub.ro
  • Master: SRIC

Introduction

This project implements a simple, low-cost smoke and gas detection system using an ESP32 microcontroller, an MQ-2 gas sensor, and an active buzzer. The system reads analog gas/smoke concentration values via the MQ-2 sensor and sends this data periodically to a Firebase Realtime Database.

When dangerous gas levels are detected (above a configurable threshold — 300 in this project), the system triggers an audible alarm using a connected buzzer and sends an immediate alert email via IFTTT Webhooks integration.

A web-based frontend fetches data from Firebase and visualizes it using a graph, with gas/smoke values on the Y-axis and timestamps (converted from UNIX time) on the X-axis, displayed at regular 3-minute intervals.

Hardware Implementation

🧩 Components

  • ESP32 development board
  • MQ-2 Smoke/Combustible Gas sensor
  • Active buzzer
  • Jumpers / wires

Software Implementation

🖥️ Frontend

  • TypeScript – The frontend is a TypeScript-based single-page web application designed to visualize real-time gas and smoke concentration data retrieved from a Firebase Realtime Database

☁️ Backend

  • Firebase – serving as a cloud-hosted NoSQL data store for logging gas/smoke sensor values from the ESP32 microcontroller, data being structured by timestamp-based paths — e.g. /logs/1716760000/value — ensuring clean chronological ordering and ease of querying for frontend consumption
  • IFTTT - acting as an automation service, receiving webhook triggers from the ESP32 whenever gas/smoke levels exceed a defined threshold, instantly dispatching email alerts to notify the user in real time

📟 Embedded Software (ESP32)

Developed using the Arduino Framework, with the following libraries:

  • mobizt/Firebase Arduino Client Library for ESP8266 and ESP32@^4.4.17 – Interface for Firebase Realtime Database
iothings/proiecte/2025sric/smokedetector.1748519607.txt.gz · Last modified: 2025/05/29 14:53 by theodor.paraschiv
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0