code with buzzer
code with buzzer
code with buzzer
#include <Adafruit_Fingerprint.h>
#include "U8glib.h"
#include <SoftwareSerial.h>
// Pin definitions
#define TRIG_PIN 12
#define ECHO_PIN 13
#define LED_Fingerprint_Accepted_PIN 4
#define LED_Fingerprint_Denied_PIN 5
#define Relay_Doorlock_PIN 6
#define BUZZER_PIN 7 // Pin connected to the buzzer
// Variables
int finger_status = -1;
long duration;
int distance;
String lastMessage1 = "";
String lastMessage2 = "";
// Setup function
void setup() {
Serial.begin(9600);
mySerial.begin(57600); // Fingerprint sensor baud rate
pinMode(LED_Fingerprint_Accepted_PIN, OUTPUT);
pinMode(LED_Fingerprint_Denied_PIN, OUTPUT);
pinMode(Relay_Doorlock_PIN, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT); // Set buzzer pin as output
if (finger.verifyPassword()) {
Serial.println("Fingerprint sensor detected!");
} else {
Serial.println("Fingerprint sensor not found. Check connections.");
while (1);
}
return distance;
}
if (finger_status == FINGERPRINT_NOFINGER) {
displayMessage("Waiting for", "fingerprint...");
return;
}
if (finger_status == FINGERPRINT_OK) {
finger_status = finger.image2Tz();
if (finger_status == FINGERPRINT_OK) {
finger_status = finger.fingerFastSearch();
if (finger_status == FINGERPRINT_OK) {
Serial.println("Fingerprint matched!");
digitalWrite(LED_Fingerprint_Accepted_PIN, HIGH);
digitalWrite(Relay_Doorlock_PIN, HIGH); // Unlock door
displayMessage("Access Granted", "Door Unlocked");
delay(3000); // Door remains unlocked for 3 seconds
digitalWrite(Relay_Doorlock_PIN, LOW); // Lock the door
displayMessage("Door Locked", "Ready for next access");
digitalWrite(LED_Fingerprint_Accepted_PIN, LOW);
} else {
Serial.println("Fingerprint not matched.");
digitalWrite(LED_Fingerprint_Denied_PIN, HIGH);
soundBuzzer(10); // Sound the buzzer for error alert
displayMessage("Access Denied", "Invalid Fingerprint");
delay(1000); // Reduced delay
digitalWrite(LED_Fingerprint_Denied_PIN, LOW);
}
} else {
Serial.println("Failed to process image.");
soundBuzzer(10); // Sound the buzzer for error alert
displayMessage("Error", "Try again.");
}
} else {
Serial.println("No valid fingerprint detected.");
soundBuzzer(10); // Sound the buzzer for error alert
displayMessage("No Finger", "Try again.");
}
}
// Main loop
void loop() {
distance = getDistance();
checkFingerprint();
}