This circuit is designed to read values from a DHT11 sensor, Flame sensor, and MQ-6 gas sensor. It displays temperature and humidity on an LCD screen, detects fire and gas presence, and takes appropriate actions such as turning on LEDs, activating a buzzer, rotating a servo motor, turning on a fan, and sending messages via a GSM module.
LED: Two Pin (red)
LED: Two Pin (green)
Buzzer
Servo
MQ-6 SENSOR LPG GAS
Fan
SIM900A
16x2 I2C LCD
Sensor SHT113 Flame
KY-015 DHT11
Arduino UNO
/*
* This Arduino sketch reads values from a DHT11 sensor, Flame sensor, and
* MQ-6 gas sensor. It displays temperature and humidity on an LCD screen,
* detects fire and gas presence, and takes appropriate actions such as
* turning on LEDs, activating a buzzer, rotating a servo motor, turning on a
* fan, and sending messages via a GSM module.
*/
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <SoftwareSerial.h>
#include <DHT.h>
#define DHTPIN 13
#define DHTTYPE DHT11
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo s1;
SoftwareSerial gsm(2, 10); // RX, TX
DHT dht(DHTPIN, DHTTYPE);
int buzzerPin = 3;
int gasSensorPin = A0;
int flameSensorPin = A2;
int greenLEDPin = 11;
int redLEDPin = 12;
int fanPin = A4;
void setup() {
pinMode(gasSensorPin, INPUT);
pinMode(flameSensorPin, INPUT);
pinMode(greenLEDPin, OUTPUT);
pinMode(redLEDPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(fanPin, OUTPUT);
s1.attach(A1);
lcd.begin();
lcd.backlight();
dht.begin();
Serial.begin(9600);
gsm.begin(9600);
lcd.setCursor(0, 0);
lcd.print(" SENSOR SYSTEM ");
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
int gasVal = analogRead(gasSensorPin);
int flameVal = analogRead(flameSensorPin);
lcd.setCursor(0, 0);
lcd.print("T:");
lcd.print(t);
lcd.print(" H:");
lcd.print(h);
if (flameVal > 300) {
lcd.setCursor(0, 1);
lcd.print(" Fire Detected ");
digitalWrite(greenLEDPin, LOW);
digitalWrite(redLEDPin, HIGH);
digitalWrite(buzzerPin, HIGH);
sendSMS("Fire detected");
} else if (gasVal > 500) {
lcd.setCursor(0, 1);
lcd.print("LPG Gas Detected");
digitalWrite(greenLEDPin, LOW);
digitalWrite(redLEDPin, HIGH);
s1.write(180);
digitalWrite(buzzerPin, HIGH);
digitalWrite(fanPin, HIGH);
sendSMS("Detecting LPG Gas Leakage");
delay(5000); // Buzzer on for 5 seconds
digitalWrite(buzzerPin, LOW);
delay(5000); // Fan on for 10 seconds
digitalWrite(fanPin, LOW);
} else {
lcd.setCursor(0, 1);
lcd.print("LPG Not Detected");
digitalWrite(greenLEDPin, HIGH);
digitalWrite(redLEDPin, LOW);
digitalWrite(buzzerPin, LOW);
digitalWrite(fanPin, LOW);
s1.write(0);
}
delay(2000);
}
void sendSMS(String message) {
gsm.print("AT+CMGF=1\r");
delay(100);
gsm.print("AT+CMGS=\"+1234567890\"\r"); // Replace with your mobile number
delay(100);
gsm.print(message);
delay(100);
gsm.write(26);
delay(100);
}
This code initializes the sensors, LCD, servo, and GSM module. It reads sensor values in the loop and takes appropriate actions based on the readings, such as displaying information on the LCD, turning on LEDs, activating the buzzer, rotating the servo, turning on the fan, and sending SMS alerts.