0% found this document useful (0 votes)
6 views3 pages

RFID Door Lock with Environmental Sensors

Uploaded by

marufulislam110
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views3 pages

RFID Door Lock with Environmental Sensors

Uploaded by

marufulislam110
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Code:

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// -------- RFID & Servo --------


#define SS_PIN 10
#define RST_PIN 9
#define SERVO_PIN 6
#define BUZZER 7

MFRC522 rfid(SS_PIN, RST_PIN);


Servo doorServo;

// ✅Authorized RFID Card UID (HEX)


byte authorizedUID[4] = {0xD6, 0x04, 0x35, 0x03};

// -------- LCD --------


LiquidCrystal_I2C lcd(0x27, 16, 2);

// -------- Environmental Monitoring --------


#define smokeAOPin A0
#define smokeDOPin 2
#define flameSensor 3
#define ldrSensor A1
#define ledLight 8

#define SMOKE_THRESHOLD 300


#define LDR_DARK_THRESHOLD 500

void setup() {
[Link](9600);
[Link]();
rfid.PCD_Init();

[Link]();
[Link]();

[Link](SERVO_PIN);
[Link](0); // Door locked

pinMode(BUZZER, OUTPUT);
pinMode(smokeDOPin, INPUT);
pinMode(flameSensor, INPUT);
pinMode(ledLight, OUTPUT);

[Link](0, 0);
[Link]("System Init...");
delay(2000);
[Link]();
[Link]("Scan Your Card");
}

void loop() {
// -------- RFID Section --------
if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
bool accessGranted = true;

for (byte i = 0; i < 4; i++) {


if ([Link][i] != authorizedUID[i]) {
accessGranted = false;
break;
}
}

[Link]();
if (accessGranted) {
[Link]("Access Granted");
[Link](90); // Unlock door

digitalWrite(BUZZER, HIGH);
delay(150);
digitalWrite(BUZZER, LOW);

delay(5000); // Door open time


[Link](0); // Lock again

[Link]();
[Link]("Door Locked");
}
else {
[Link]("Access Denied");
digitalWrite(BUZZER, HIGH);
delay(1000);
digitalWrite(BUZZER, LOW);
}

delay(2000);
[Link]();
[Link]("Scan Your Card");
}

// -------- Environmental Monitoring Section --------


int smokeValue = analogRead(smokeAOPin);
bool gasDetected = digitalRead(smokeDOPin) == LOW;
int ldrValue = analogRead(ldrSensor);
bool flameDetected = digitalRead(flameSensor) == LOW;

// ---- Buzzer Alert ----


if(flameDetected || gasDetected || smokeValue > SMOKE_THRESHOLD) {
digitalWrite(BUZZER, HIGH);
} else {
digitalWrite(BUZZER, LOW);
}

// ---- LED Light Control ----


if(ldrValue >= LDR_DARK_THRESHOLD) {
digitalWrite(ledLight, HIGH); // Bright → LED ON
} else {
digitalWrite(ledLight, LOW); // Dark → LED OFF
}

// ---- LCD Display ----


[Link](0,0);
[Link]("Smoke:");
[Link](smokeValue);

[Link](9,0);
[Link](ldrValue >= LDR_DARK_THRESHOLD ? "Dark" : "Light");

[Link](0,1);
if(flameDetected) {
[Link]("FLAME ALERT!");
} else if(gasDetected || smokeValue > SMOKE_THRESHOLD) {
[Link]("Gas/Smoke Alert");
} else {
[Link]("Env OK");
}

delay(1000);
}

You might also like