Laser Security System Using Arduino
This project creates a laser-based security system that triggers an audible and visual alarm when the laser beam is interrupted. The system uses a laser module and LDR sensor to detect intrusions, with a buzzer and LED providing immediate feedback. The alarm features a distinctive "tuuuuu tuuuuu" pattern that lasts for 5 seconds when triggered.
How the System Works
- Laser Module emits a continuous beam of light directed at the LDR sensor
- LDR (Light Dependent Resistor) detects the laser beam and maintains system in standby mode
- When the beam is interrupted: System triggers a 5-second alarm cycle
- Buzzer sounds with a distinctive "tuuuuu tuuuuu" pattern (700ms on, 300ms off)
- LED flashes in sync with the buzzer for visual indication
- After 5 seconds: System checks if laser beam is restored
- If beam remains interrupted: Another 5-second alarm cycle begins
- If beam is restored: System returns to standby monitoring mode
- 7.4V battery powers the entire system for portable operation
Materials Required
- Laser Module - Buy Here
- LDR Module - Buy Here
- Jumper Wires - Buy Here
- 5V Buzzer - Buy Here
- Red LED - Buy Here
- 220 Ohm Resistor - Buy Here
- Arduino Uno - Buy Here
- 7.4V Battery - Buy Here
- Square Mirrors - Buy Here
3D Model Files & Housing Design
Download the 3D printable files for the laser security system housing and components:
Download 3D Models House Design DiagramPrint these files using JLCPCB's 3D printing service:
Order 3D Parts Here🎥 Watch the video above for complete demonstration of the laser security system in action.
Arduino Code
Upload this code to your Arduino after completing all hardware connections:
// Laser Security System with 5-Second Synced "Tuuuuu" Pattern
// Define pin connections
const int LDR_VCC = 8; // LDR VCC connected to pin 8
const int LDR_GND = 9; // LDR GND connected to pin 9
const int LDR_DO = 10; // LDR Digital Output connected to pin 10
const int LASER_GND = 11; // Laser GND connected to pin 11
const int LASER_VCC = 12; // Laser VCC connected to pin 12
const int LASER_SIGNAL = 13; // Laser signal connected to pin 13
const int BUZZER_GND = A0; // Buzzer GND connected to pin A0
const int BUZZER_VCC = A3; // Buzzer VCC connected to pin A3
const int LED_GND = A5; // LED GND connected to pin A5
const int LED_VCC = A4; // LED VCC connected to pin A4
// Variables
enum SystemState { NORMAL, ALARM_ACTIVE, ALARM_COMPLETED };
SystemState currentState = NORMAL;
unsigned long alarmStartTime = 0;
const unsigned long ALARM_DURATION = 5000; // 5 seconds in milliseconds
// Siren pattern variables - optimized for 5-second cycles
unsigned long lastSirenTime = 0;
bool sirenOn = false;
const unsigned long SIREN_ON_TIME = 700; // "Tuuuuu" duration (700ms)
const unsigned long SIREN_OFF_TIME = 300; // Pause between "Tuuuuu" (300ms)
void setup() {
// Initialize pins
pinMode(LDR_VCC, OUTPUT);
pinMode(LDR_GND, OUTPUT);
pinMode(LDR_DO, INPUT);
pinMode(LASER_GND, OUTPUT);
pinMode(LASER_VCC, OUTPUT);
pinMode(LASER_SIGNAL, OUTPUT);
pinMode(BUZZER_GND, OUTPUT);
pinMode(BUZZER_VCC, OUTPUT);
pinMode(LED_GND, OUTPUT);
pinMode(LED_VCC, OUTPUT);
// Set power pins correctly
digitalWrite(LDR_VCC, HIGH); // Provide 5V to LDR
digitalWrite(LDR_GND, LOW); // Provide GND to LDR
digitalWrite(LASER_GND, LOW); // Provide GND to laser
digitalWrite(LASER_VCC, HIGH); // Provide 5V to laser
digitalWrite(LASER_SIGNAL, HIGH); // Turn on laser
digitalWrite(BUZZER_GND, LOW); // Provide GND to buzzer
digitalWrite(BUZZER_VCC, LOW); // Start with buzzer off
digitalWrite(LED_GND, LOW); // Provide GND to LED
digitalWrite(LED_VCC, LOW); // Start with LED off
Serial.begin(9600); // For debugging
Serial.println("Laser Security System Started");
Serial.println("System is ACTIVE");
}
void updateSirenPattern() {
unsigned long currentTime = millis();
unsigned long timeInAlarm = currentTime - alarmStartTime;
unsigned long timeLeft = ALARM_DURATION - timeInAlarm;
// Ensure we end with the buzzer OFF for a clean transition
if (timeLeft < 100) { // Last 100ms of alarm period
digitalWrite(LED_VCC, LOW);
digitalWrite(BUZZER_VCC, LOW);
return;
}
if (sirenOn) {
// Currently in "Tuuuuu" ON phase
if (currentTime - lastSirenTime >= SIREN_ON_TIME) {
// "Tuuuuu" completed, switch to OFF phase
sirenOn = false;
lastSirenTime = currentTime;
digitalWrite(LED_VCC, LOW);
digitalWrite(BUZZER_VCC, LOW);
}
} else {
// Currently in pause between "Tuuuuu" phases
if (currentTime - lastSirenTime >= SIREN_OFF_TIME) {
// Don't start a new "Tuuuuu" if there's not enough time to complete it
if (timeLeft > SIREN_ON_TIME + 100) {
sirenOn = true;
lastSirenTime = currentTime;
digitalWrite(LED_VCC, HIGH);
digitalWrite(BUZZER_VCC, HIGH);
}
}
}
}
void loop() {
// Read LDR sensor
int ldrValue = digitalRead(LDR_DO);
// State machine
switch (currentState) {
case NORMAL:
// Check if laser beam is broken (LDR not receiving light)
if (ldrValue == HIGH) {
// Trigger the alarm
currentState = ALARM_ACTIVE;
alarmStartTime = millis();
lastSirenTime = millis();
sirenOn = true; // Start with "Tuuuuu" ON
digitalWrite(LED_VCC, HIGH);
digitalWrite(BUZZER_VCC, HIGH);
Serial.println("ALARM! Laser beam broken! Starting 5-second alarm.");
}
break;
case ALARM_ACTIVE:
// Update "tuuuuu tuuuuu" siren pattern (synchronized with 5-second cycle)
updateSirenPattern();
// Check if 5 seconds have passed
if (millis() - alarmStartTime >= ALARM_DURATION) {
// 5 seconds completed, move to next state
currentState = ALARM_COMPLETED;
digitalWrite(LED_VCC, LOW);
digitalWrite(BUZZER_VCC, LOW);
Serial.println("5-second alarm completed. Checking laser status.");
}
break;
case ALARM_COMPLETED:
// Check if laser is back on LDR
if (ldrValue == LOW) { // Laser is detected
// Laser is restored, return to normal state
currentState = NORMAL;
Serial.println("Laser restored. System NORMAL");
} else {
// Laser is still broken, trigger another alarm cycle
currentState = ALARM_ACTIVE;
alarmStartTime = millis();
lastSirenTime = millis();
sirenOn = true; // Start with "Tuuuuu" ON
digitalWrite(LED_VCC, HIGH);
digitalWrite(BUZZER_VCC, HIGH);
Serial.println("Laser still broken! Starting another 5-second alarm.");
}
break;
}
// Small delay for stability
delay(10);
}
Code Explanation:
Setup:
Initializes all pin connections, sets up the laser module, LDR sensor, buzzer, and LED. Configures the system to start in monitoring mode.
Main Loop:
Continuously monitors the LDR sensor. When the laser beam is interrupted, triggers a 5-second alarm with the distinctive "tuuuuu tuuuuu" pattern. After 5 seconds, checks if the beam is restored and either returns to normal monitoring or starts another alarm cycle.
Step-by-Step Assembly
1. Circuit Connections:
- Connect LDR module: VCC→pin 8, GND→pin 9, DO→pin 10
- Connect laser module: GND→pin 11, VCC→pin 12, Signal→pin 13
- Connect buzzer: GND→pin A0, VCC→pin A3
- Connect LED: GND→pin A5, VCC→pin A4 (with 220Ω resistor)
- Connect 7.4V battery to power the system
2. Component Placement:
- Position the laser module and LDR sensor opposite each other
- Use mirrors to create a laser beam path for larger coverage areas
- Mount the buzzer and LED in visible locations for alarm indication
- Ensure all components are securely connected and insulated
3. System Testing:
- Upload the Arduino code to your board
- Power on the system and verify the laser activates
- Check that the LDR detects the laser beam (system in normal mode)
- Interrupt the beam to test the alarm activation
- Verify the 5-second alarm pattern with buzzer and LED
Why Choose This Design?
- ✅ Effective Intrusion Detection: Laser-based system provides reliable security monitoring
- ⚡ Distinctive Alarm Pattern: "Tuuuuu tuuuuu" sound pattern is attention-grabbing
- 🔄 Self-Resetting: Automatically returns to monitoring after alarm cycle
- 💡 Visual Indicator: LED provides visual confirmation of alarm state
- 🛠️ Expandable: Can be extended with multiple lasers for larger areas
- 🔋 Portable: Battery-powered for flexible placement
Advanced Applications
- Add multiple laser/LDR pairs for zone-based security coverage
- Integrate with home automation systems for remote notifications
- Add a keypad for arming/disarming the system
- Incorporate wireless communication for remote monitoring
- Use mirrors to create complex laser maze security systems
sir why is the buzzer wont stop buzzing?
ReplyDeleteok
Deletejust put my dickon your mouth
DeleteHow was it?
Delete
Deletemuy rico
Hi
ReplyDeleteYa jab ap ny online oder kiya tu kitni cost ayi
Deleteyapamadık help me
ReplyDelete