Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO-Based Fire and Smoke Detection System with LCD Display and Motor Control

View and Edit Project In Cirkit DesignerImage of Arduino UNO-Based Fire and Smoke Detection System with LCD Display and Motor Control

Circuit Documentation

Summary

This circuit is designed to detect smoke and fire using an MQ-2 gas sensor and a KY-026 flame sensor. It uses an Arduino UNO to process the sensor data and control various outputs, including an LCD display, LEDs, a buzzer, and a DC motor. The LCD displays messages based on the sensor readings, while the LEDs and buzzer provide visual and auditory alerts. The DC motor is used to simulate an action, such as activating a fan or other device, in response to the detected conditions.

Component List

Arduino UNO

LCD 16x2 (Wokwi Compatible)

DC Motor

MQ-2

KY-026 Flame Sensor

Resistor (1000 Ohms)

Resistor (220 Ohms)

LED: Two Pin (green)

LED: Two Pin (red)

Buzzer

Wiring Details

Arduino UNO

LCD 16x2 (Wokwi Compatible)

DC Motor

MQ-2

KY-026 Flame Sensor

Resistor (1000 Ohms)

Resistor (220 Ohms)

LED: Two Pin (green)

LED: Two Pin (red)

Buzzer

Code Documentation

#include <LiquidCrystal.h>
LiquidCrystal lcd(5,6,8,9,10,11);

int redled = 2;
int greenled = 3;
int buzzer = 4;
int sensor = A0;
int sensorThresh = 400;
int terminaliMotorrit1=12;
int terminaliMotorrit2=13;
int flameSensor=7;

void setup()
{
  pinMode(redled, OUTPUT);
  pinMode(flameSensor, INPUT);
  pinMode(greenled, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(sensor, INPUT);
  pinMode(terminaliMotorrit1, OUTPUT);
  pinMode(terminaliMotorrit2, OUTPUT);
  Serial.begin(9600);
  lcd.begin(16,2);
}

void loop()
{
  int fire = digitalRead(flameSensor);
  int analogValue = analogRead(sensor);
  Serial.print(analogValue);
  
  if(analogValue > sensorThresh || fire == HIGH)
  {
    digitalWrite(redled, HIGH);
    digitalWrite(greenled, LOW);
    tone(buzzer, 1000, 10000);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print("TURRU SHUM ZJARR");
    delay(1000);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print("LLUUUK LLUUUK");
    digitalWrite(terminaliMotorrit1, HIGH);
    digitalWrite(terminaliMotorrit2, LOW);
    delay(1000);
  }
  else
  {
    digitalWrite(greenled, HIGH);
    digitalWrite(redled, LOW);
    noTone(buzzer);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("NO SMOKE &");
    delay(1000);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print("NO FIRE DETECTED");
    delay(1000);
    digitalWrite(terminaliMotorrit1, LOW);
    digitalWrite(terminaliMotorrit2, LOW);
  }
}

This code initializes the LCD, LEDs, buzzer,