Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_Fingerprint.h>
- #include <Servo.h>
- #define redLED 5
- #define greenLED 6
- #define servoPin 4
- #define buzzerPin 11
- // For UNO and others without hardware serial, we must use software serial...
- // pin #2 is IN from sensor (GREEN wire)
- // pin #3 is OUT from arduino (WHITE wire)
- // Set up the serial port to use softwareserial..
- SoftwareSerial mySerial(2, 3);
- Servo myservo;
- int count = 0;
- int flag = 0;
- int gateOpen = 0;
- Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
- void setup()
- {
- Serial.begin(9600);
- myservo.attach(servoPin);
- pinMode(buzzerPin, OUTPUT);
- pinMode(redLED, OUTPUT);
- pinMode(greenLED, OUTPUT);
- digitalWrite(redLED, HIGH);
- digitalWrite(greenLED, LOW);
- digitalWrite(buzzerPin, 0);
- myservo.write(180);
- while (!Serial); // For Yun/Leo/Micro/Zero/...
- delay(100);
- Serial.println("\n\nAdafruit finger detect test");
- // set the data rate for the sensor serial port
- finger.begin(57600);
- delay(5);
- if (finger.verifyPassword()) {
- Serial.println("Found fingerprint sensor!");
- } else {
- Serial.println("Did not find fingerprint sensor :(");
- while (1) {
- delay(1);
- }
- }
- Serial.println(F("Reading sensor parameters"));
- finger.getParameters();
- Serial.print(F("Status: 0x")); Serial.println(finger.status_reg, HEX);
- Serial.print(F("Sys ID: 0x")); Serial.println(finger.system_id, HEX);
- Serial.print(F("Capacity: ")); Serial.println(finger.capacity);
- Serial.print(F("Security level: ")); Serial.println(finger.security_level);
- Serial.print(F("Device address: ")); Serial.println(finger.device_addr, HEX);
- Serial.print(F("Packet len: ")); Serial.println(finger.packet_len);
- Serial.print(F("Baud rate: ")); Serial.println(finger.baud_rate);
- finger.getTemplateCount();
- if (finger.templateCount == 0) {
- Serial.print("Sensor doesn't contain any fingerprint data. Please run the 'enroll' example.");
- }
- else {
- Serial.println("Waiting for valid finger...");
- Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
- }
- }
- void loop() {
- getFingerprintIDez();
- delay(50);
- }
- uint8_t getFingerprintID() {
- uint8_t p = finger.getImage();
- switch (p) {
- case FINGERPRINT_OK:
- Serial.println("Image taken");
- break;
- case FINGERPRINT_NOFINGER:
- Serial.println("No finger detected");
- return p;
- case FINGERPRINT_PACKETRECIEVEERR:
- Serial.println("Communication error");
- return p;
- case FINGERPRINT_IMAGEFAIL:
- Serial.println("Imaging error");
- return p;
- default:
- Serial.println("Unknown error");
- return p;
- }
- // OK success!
- p = finger.image2Tz();
- switch (p) {
- case FINGERPRINT_OK:
- Serial.println("Image converted");
- break;
- case FINGERPRINT_IMAGEMESS:
- Serial.println("Image too messy");
- return p;
- case FINGERPRINT_PACKETRECIEVEERR:
- Serial.println("Communication error");
- return p;
- case FINGERPRINT_FEATUREFAIL:
- Serial.println("Could not find fingerprint features");
- return p;
- case FINGERPRINT_INVALIDIMAGE:
- Serial.println("Could not find fingerprint features");
- return p;
- default:
- Serial.println("Unknown error");
- return p;
- }
- // OK converted!
- p = finger.fingerSearch();
- if (p == FINGERPRINT_OK) {
- Serial.println("Found a print match!");
- } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
- Serial.println("Communication error");
- return p;
- } else if (p == FINGERPRINT_NOTFOUND) {
- Serial.println("Did not find a match");
- return p;
- } else {
- Serial.println("Unknown error");
- return p;
- }
- // found a match!
- Serial.print("Found ID #"); Serial.print(finger.fingerID);
- Serial.print(" with confidence of "); Serial.println(finger.confidence);
- return finger.fingerID;
- }
- // returns -1 if failed, otherwise returns ID #
- int getFingerprintIDez() {
- uint8_t p = finger.getImage();
- if (p != FINGERPRINT_OK) return -1;
- p = finger.image2Tz();
- if (p != FINGERPRINT_OK) return -1;
- p = finger.fingerFastSearch();
- if (p != FINGERPRINT_OK) {
- Error();
- return -1;
- }
- else {
- // found a match!
- if (flag == 0) {
- OpenGate();
- flag = 1;
- }
- else {
- CloseGate();
- flag = 0;
- }
- Serial.print("Found ID #"); Serial.print(finger.fingerID);
- Serial.print(" with confidence of "); Serial.println(finger.confidence);
- return finger.fingerID;
- }
- }
- void OpenGate() {
- digitalWrite(redLED, LOW);
- digitalWrite(greenLED, HIGH);
- myservo.write(0);
- delay(5000);
- count = 0;
- gateOpen = 1;
- }
- void CloseGate() {
- myservo.write(180);
- digitalWrite(redLED, HIGH);
- digitalWrite(greenLED, LOW);
- count = 0;
- gateOpen = 0;
- delay(2000);
- }
- void Error() {
- count = count + 1;
- if (count == 2) {
- count = 0;
- digitalWrite(greenLED, LOW);
- digitalWrite(buzzerPin, HIGH);
- digitalWrite(redLED, HIGH);
- delay(500);
- digitalWrite(redLED, LOW);
- delay(500);
- digitalWrite(redLED, HIGH);
- delay(500);
- digitalWrite(redLED, LOW);
- delay(500);
- digitalWrite(redLED, HIGH);
- delay(500);
- digitalWrite(redLED, LOW);
- delay(500);
- digitalWrite(redLED, HIGH);
- digitalWrite(buzzerPin, LOW);
- if (gateOpen == 1) {
- digitalWrite(redLED, LOW);
- digitalWrite(greenLED, HIGH);
- }
- }
- else {
- digitalWrite(greenLED, LOW);
- //digitalWrite(buzzerPin, HIGH);
- digitalWrite(redLED, HIGH);
- delay(500);
- digitalWrite(redLED, LOW);
- delay(500);
- digitalWrite(redLED, HIGH);
- delay(500);
- digitalWrite(redLED, LOW);
- delay(500);
- digitalWrite(redLED, HIGH);
- delay(500);
- digitalWrite(redLED, LOW);
- delay(500);
- digitalWrite(redLED, HIGH);
- //digitalWrite(buzzerPin, LOW);
- if (gateOpen == 1) {
- digitalWrite(redLED, LOW);
- digitalWrite(greenLED, HIGH);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment