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

Arduino and ESP-8266 Based Flame Detection and Climate Monitoring System

View and Edit Project In Cirkit DesignerImage of Arduino and ESP-8266 Based Flame Detection and Climate Monitoring System

Circuit Documentation

Summary

This circuit integrates various components controlled by an Arduino Leonardo (Rev3b) microcontroller. The system includes communication with an ESP-8266 Controller, a 4-channel relay module to control power to devices such as a bulb, an LED bulb, a water pump, and an exhaust fan. It also features a 16X2 LCD for display, a flame sensor for fire detection, a DHT11 sensor for temperature and humidity readings, a buzzer for audible alerts, and a 9V battery as the power source. The circuit is designed to monitor environmental conditions and control connected devices accordingly.

Component List

Wiring Details

Arduino Leonardo (Rev3b)

ESP-8266 Controller

Relay 4 Channel 5v

16X2 LCD

Flame Sensor

DHT11 Humidity and Temperature Sensor

Resistor (200 Ohms)

Buzzer

Battery 9V

5v mini water pump

Exhaust Fan 12"

Documented Code

// Pin definitions
const int relay1Pin = 2; // Relay IN1
const int relay2Pin = 3; // Relay IN2
const int flameSensorAnalogPin = A0; // Flame Sensor A0
const int flameSensorDigitalPin = 4; // Flame Sensor D0
const int dht11Pin = 5; // DHT11 DATA
const int lcdRSPin = 7; // LCD RS
const int lcdEPin = 8; // LCD E
const int lcdD4Pin = 9; // LCD D4
const int lcdD5Pin = 10; // LCD D5
const int lcdD6Pin = 11; // LCD D6
const int lcdD7Pin = 12; // LCD D7
const int buzzerPin = 6; // Buzzer

void setup() {
  // Initialize serial communication
  Serial.begin(9600);

  // Initialize relay pins as outputs
  pinMode(relay1Pin, OUTPUT);
  pinMode(relay2Pin, OUTPUT);

  // Initialize flame sensor pins
  pinMode(flameSensorAnalogPin, INPUT);
  pinMode(flameSensorDigitalPin, INPUT);

  // Initialize DHT11 pin
  pinMode(dht11Pin, INPUT);

  // Initialize LCD pins
  pinMode(lcdRSPin, OUTPUT);
  pinMode(lcdEPin, OUTPUT);
  pinMode(lcdD4Pin, OUTPUT);
  pinMode(lcdD5Pin, OUTPUT);
  pinMode(lcdD6Pin, OUTPUT);
  pinMode(lcdD7Pin, OUTPUT);

  // Initialize buzzer pin
  pinMode(buzzerPin, OUTPUT);

  // Additional setup code can be added here
}

void loop() {
  // Main code to run repeatedly

  // Example: Read flame sensor analog value
  int flameSensorValue = analogRead(flameSensorAnalogPin);
  Serial.print("Flame Sensor Value: ");
  Serial.println(flameSensorValue);

  // Example: Control relay
  digitalWrite(relay1Pin, HIGH); // Turn on relay 1
  delay(1000); // Wait for 1 second
  digitalWrite(relay1Pin, LOW); // Turn off relay 1
  delay(1000); // Wait for 1 second

  // Additional loop code can be added here
}

This code is designed to run on the Arduino Leonardo (Rev3b) microcontroller. It initializes the pins connected to the various components, sets up serial communication, and contains example code to read from the flame sensor and control a relay. Additional functionality can be added to the setup() and loop() functions as needed for the specific application.