. March 2026 ~ SmartElectronicsDIY

Automatic Fire Detection Suppression System(Arduino Uno | Embedded + Safety System)

This system automatically detects fire using flame and smoke sensors and activates a water pump to suppress it. At the same time, it triggers an alarm and can send alerts (optional GSM/IoT).

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Smart Clothes Drying System using Arduino (Rain + Servo)

 This project automatically protects clothes from rain:

  • 🌧️ Rain detected → Clothes move inside (90°)
  • ☀️ Rain stops → Clothes move outside (0°)

🧰 Components Required

ComponentQuantity
Arduino UNO1
Rain Sensor Module (YL-83)1
Servo Motor (MG995 recommended)1
Breadboard1
Jumper WiresAs needed
5V External Power Supply1
Rod / Frame (for model)1

🔌 Circuit Connections

🌧️ Rain Sensor → Arduino

  • VCC → 5V
  • GND → GND
  • DO → Pin 2

🔄 Servo Motor → Arduino

  • Red → 5V (External supply recommended ⚠️)
  • Brown/Black → GND
  • Yellow/Orange → Pin 9

👉 Important:
Connect Arduino GND and external supply GND together


⚙️ Working Explanation

  1. Rain sensor detects water droplets
  2. Arduino reads signal
  3. If rain:
    • Servo rotates to 90°
    • Clothes move inside
  4. If no rain:
    • Servo rotates back to
    • Clothes go outside

💻 Full Arduino Code

#include <Servo.h>

Servo myServo;

int rainSensor = 2;
int rainStatus = 0;

void setup() {
pinMode(rainSensor, INPUT);
myServo.attach(9);

Serial.begin(9600);

myServo.write(0); // Start outside
}

void loop() {
rainStatus = digitalRead(rainSensor);

if (rainStatus == LOW) { // Rain detected
Serial.println("🌧️ Rain Detected → Moving Inside");
myServo.write(90); // Move inside
delay(2000);
}
else {
Serial.println("☀️ No Rain → Moving Outside");
myServo.write(0); // Move outside
delay(2000);
}

delay(500);
}

🧪 Output Result

ConditionAction
Rain detected 🌧️Servo → 90° (Clothes inside)
No rain ☀️Servo → 0° (Clothes outside)

🏗️ Model Design (How to Make)

👉 Simple DIY idea:

  • Use cardboard base
  • Attach a rod (hanger pipe)
  • Connect servo to rod joint
  • Make it rotate like a door (90° swing)

🖼️ What Your Project Should Look Like

Imagine:


🚀 Advanced Version (For High Marks 🔥)

Add these:

Broken Track Detection System for Train Accident Prevention

 

 Project Introduction

Railway accidents due to broken or cracked tracks are one of the major safety issues in rail transport. To solve this problem, we design a Smart Broken Track Detection System using Arduino, GSM, GPS, LCD and IoT technologies.

This system continuously checks the continuity of railway tracks. If any crack or break occurs, the system instantly detects it and sends alert messages to railway authorities with the exact GPS location.


📝 2. Detailed Article 

The Broken Track Detection System is an advanced railway safety project designed to prevent train accidents caused by damaged or cracked tracks. Railway tracks can develop faults due to environmental conditions, heavy load, or poor maintenance. These faults are difficult to detect manually, especially in remote areas. This project provides an automated and reliable solution.

The system is built using an Arduino microcontroller, which continuously monitors the electrical continuity of the railway track. Under normal conditions, current flows through the rails. When a crack or break occurs, the circuit gets interrupted, and the Arduino detects the change immediately.

Once a fault is detected, the system activates multiple safety actions. A buzzer alert and red LED are turned on to indicate danger. At the same time, a GSM module sends an SMS alert to railway authorities. The message includes the exact location using GPS module, which helps in quick maintenance response.

A 16x2 LCD display is used to show real-time track status, such as "Track Safe" or "Track Broken". Additionally, the system can send data to IoT cloud platforms like ThingSpeak or Blynk, enabling remote monitoring of railway track conditions.

This project is low-cost, efficient, and easy to implement on real railway lines. It significantly reduces human effort and improves safety by providing real-time fault detection and communication.

Overall, this system demonstrates how embedded systems and IoT technology can be used to enhance railway safety and prevent accidents.


🎯 3. Objectives of Project

  • Detect broken railway tracks automatically

  • Prevent train accidents

  • Send real-time alert to authorities

  • Provide exact GPS location

  • Enable remote monitoring using IoT


🔧 4. Components Required

ComponentQuantity
Arduino Uno1
SIM800L GSM Module1
NEO-6M GPS Module1
16x2 LCD Display1
Buzzer1
Red LED1
Green LED1
Resistors5
Jumper wiresAs required
Breadboard1
Power Supply5V
Track Model (metal strip)1

Arduino Pin Connections

🟢 Basic Components

ComponentArduino Pin
Track Detection WireD4
Green LED (+)D7
Red LED (+)D6
Buzzer (+)D8

👉 All LED (-) and Buzzer (-) → GND


📟 LCD 16x2 Connection (4-bit mode)

LCD PinArduino
RSD9
END10
D4D11
D5D12
D6D13
D7A0
VSSGND
VDD5V
RWGND
VOPotentiometer

📲 GSM SIM800L

GSM PinArduino
TXD2
RXD3
GNDGND
VCC4V External Supply ⚠️

📍 GPS NEO-6M

GPS PinArduino
TXD5
RXD6 ⚠️ (use voltage divider)
VCC5V
GNDGND

🌐 ESP8266 (IoT)

ESP8266Arduino
TXA1
RXA2
VCC3.3V
GNDGND

💻 2. Full Arduino Code (All Features)

/*
🚆 SMART BROKEN TRACK DETECTION SYSTEM
Features:
✔ Track Detection
✔ LCD Display
✔ GSM SMS Alert
✔ GPS Location
✔ IoT Cloud Output
*/

#include <SoftwareSerial.h>
#include <LiquidCrystal.h>

// Pin Setup
#define trackPin 4
#define greenLED 7
#define redLED 6
#define buzzer 8

LiquidCrystal lcd(9,10,11,12,13,A0);

// GSM
SoftwareSerial gsm(2,3);

// GPS
SoftwareSerial gps(5,6);

// ESP8266
SoftwareSerial wifi(A1,A2);

String latitude = "";
String longitude = "";

void setup()
{
pinMode(trackPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(buzzer, OUTPUT);

Serial.begin(9600);
gsm.begin(9600);
gps.begin(9600);
wifi.begin(9600);

lcd.begin(16,2);
lcd.print("Railway Safety");
delay(2000);
lcd.clear();
}

void loop()
{
int track = digitalRead(trackPin);

if(track == HIGH)
{
// SAFE CONDITION
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
digitalWrite(buzzer, LOW);

lcd.setCursor(0,0);
lcd.print("Track Status:");
lcd.setCursor(0,1);
lcd.print("SAFE ");

sendToCloud("SAFE");

delay(1000);
}
else
{
// BROKEN TRACK
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
digitalWrite(buzzer, HIGH);

lcd.setCursor(0,0);
lcd.print("TRACK BROKEN!");
lcd.setCursor(0,1);
lcd.print("Sending Alert");

getGPS();
sendSMS();
sendToCloud("BROKEN");

delay(5000);
}
}

// 📍 GPS Function
void getGPS()
{
while(gps.available())
{
String data = gps.readStringUntil('\n');

if(data.indexOf("$GPGGA") >= 0)
{
int latIndex = data.indexOf(",")+1;
int lonIndex = data.indexOf(",", latIndex+1);

latitude = data.substring(latIndex, latIndex+9);
longitude = data.substring(lonIndex, lonIndex+9);
}
}
}

// 📲 GSM SMS Function
void sendSMS()
{
gsm.println("AT+CMGF=1");
delay(1000);

gsm.println("AT+CMGS=\"+91XXXXXXXXXX\"");
delay(1000);

gsm.print("ALERT! TRACK BROKEN ");
gsm.print("Lat:");
gsm.print(latitude);
gsm.print(" Lon:");
gsm.print(longitude);

gsm.write(26);
delay(5000);
}

// 🌐 IoT Cloud Function
void sendToCloud(String status)
{
Serial.println("Uploading to IoT");

// Example ThingSpeak API
/*
wifi.println("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",80");
delay(2000);

String url = "GET /update?api_key=YOUR_API_KEY&field1=" + status;
wifi.print("AT+CIPSEND=");
wifi.println(url.length()+2);
delay(2000);

wifi.println(url);
*/
}

✅ Final Output Working

When track is safe
🟢 Green LED ON
📟 LCD = SAFE

When track breaks
🔴 Red LED ON
🔔 Buzzer ON
📲 SMS sent
📍 GPS location sent
🌐 IoT updated
📟 LCD shows alert


🎯 Your Project is Now 10Arduino Pin Connections

🟢 Basic Components

ComponentArduino Pin
Track Detection WireD4
Green LED (+)D7
Red LED (+)D6
Buzzer (+)D8

👉 All LED (-) and Buzzer (-) → GND


📟 LCD 16x2 Connection (4-bit mode)

LCD PinArduino
RSD9
END10
D4D11
D5D12
D6D13
D7A0
VSSGND
VDD5V
RWGND
VOPotentiometer

📲 GSM SIM800L

GSM PinArduino
TXD2
RXD3
GNDGND
VCC4V External Supply ⚠️

📍 GPS NEO-6M

GPS PinArduino
TXD5
RXD6 ⚠️ (use voltage divider)
VCC5V
GNDGND

🌐 ESP8266 (IoT)

ESP8266Arduino
TXA1
RXA2
VCC3.3V
GNDGND

💻 2. Full Arduino Code (All Features)

/*
🚆 SMART BROKEN TRACK DETECTION SYSTEM
Features:
✔ Track Detection
✔ LCD Display
✔ GSM SMS Alert
✔ GPS Location
✔ IoT Cloud Output
*/

#include <SoftwareSerial.h>
#include <LiquidCrystal.h>

// Pin Setup
#define trackPin 4
#define greenLED 7
#define redLED 6
#define buzzer 8

LiquidCrystal lcd(9,10,11,12,13,A0);

// GSM
SoftwareSerial gsm(2,3);

// GPS
SoftwareSerial gps(5,6);

// ESP8266
SoftwareSerial wifi(A1,A2);

String latitude = "";
String longitude = "";

void setup()
{
pinMode(trackPin, INPUT);
pinMode(greenLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(buzzer, OUTPUT);

Serial.begin(9600);
gsm.begin(9600);
gps.begin(9600);
wifi.begin(9600);

lcd.begin(16,2);
lcd.print("Railway Safety");
delay(2000);
lcd.clear();
}

void loop()
{
int track = digitalRead(trackPin);

if(track == HIGH)
{
// SAFE CONDITION
digitalWrite(greenLED, HIGH);
digitalWrite(redLED, LOW);
digitalWrite(buzzer, LOW);

lcd.setCursor(0,0);
lcd.print("Track Status:");
lcd.setCursor(0,1);
lcd.print("SAFE ");

sendToCloud("SAFE");

delay(1000);
}
else
{
// BROKEN TRACK
digitalWrite(greenLED, LOW);
digitalWrite(redLED, HIGH);
digitalWrite(buzzer, HIGH);

lcd.setCursor(0,0);
lcd.print("TRACK BROKEN!");
lcd.setCursor(0,1);
lcd.print("Sending Alert");

getGPS();
sendSMS();
sendToCloud("BROKEN");

delay(5000);
}
}

// 📍 GPS Function
void getGPS()
{
while(gps.available())
{
String data = gps.readStringUntil('\n');

if(data.indexOf("$GPGGA") >= 0)
{
int latIndex = data.indexOf(",")+1;
int lonIndex = data.indexOf(",", latIndex+1);

latitude = data.substring(latIndex, latIndex+9);
longitude = data.substring(lonIndex, lonIndex+9);
}
}
}

// 📲 GSM SMS Function
void sendSMS()
{
gsm.println("AT+CMGF=1");
delay(1000);

gsm.println("AT+CMGS=\"+91XXXXXXXXXX\"");
delay(1000);

gsm.print("ALERT! TRACK BROKEN ");
gsm.print("Lat:");
gsm.print(latitude);
gsm.print(" Lon:");
gsm.print(longitude);

gsm.write(26);
delay(5000);
}

// 🌐 IoT Cloud Function
void sendToCloud(String status)
{
Serial.println("Uploading to IoT");

// Example ThingSpeak API
/*
wifi.println("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",80");
delay(2000);

String url = "GET /update?api_key=YOUR_API_KEY&field1=" + status;
wifi.print("AT+CIPSEND=");
wifi.println(url.length()+2);
delay(2000);

wifi.println(url);
*/
}

✅ Final Output Working

When track is safe
🟢 Green LED ON
📟 LCD = SAFE

When track breaks
🔴 Red LED ON
🔔 Buzzer ON
📲 SMS sent
📍 GPS location sent
🌐 IoT updated
📟 LCD shows alert