Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_NeoPixel.h>
- #include <Adafruit_Fingerprint.h>
- /***************************************************
- This is an example sketch for our optical Fingerprint sensor
- Designed specifically to work with the Adafruit BMP085 Breakout
- ----> http://www.adafruit.com/products/751
- These displays use TTL Serial to communicate, 2 pins are required to
- interface
- Adafruit invests time and resources providing this open source code,
- please support Adafruit and open-source hardware by purchasing
- products from Adafruit!
- Written by Limor Fried/Ladyada for Adafruit Industries.
- BSD license, all text above must be included in any redistribution
- ****************************************************/
- #define NUMPIXELS 8
- #define PIN 6
- Adafruit_NeoPixel Neo = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(2, 3);
- Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
- uint8_t id;
- void setup() //********************************************************************************************************************************************SETUP
- {
- Serial.begin(9600);
- while (!Serial); // For Yun/Leo/Micro/Zero/...
- delay(100);
- Serial.println("\n\nAdafruit Fingerprint sensor enrollment");
- // set the data rate for the sensor serial port
- finger.begin(57600);
- if (finger.verifyPassword()) {
- Serial.println("Found fingerprint sensor!");
- } else {
- Serial.println("Did not find fingerprint sensor :(");
- while (1) {
- delay(1);
- }
- }
- Neo.begin();
- pinMode(10, OUTPUT);
- pinMode(7, INPUT);
- }
- uint8_t readnumber(void) {
- uint8_t num = 0;
- while (num == 0) {
- while (! Serial.available());
- num = Serial.parseInt();
- }
- return num;
- }
- boolean alarmArmed = true;
- void loop() // *****************************************************************************************************************************************MAIN LOOP
- {
- Serial.println("Ready to enroll a fingerprint!");
- Serial.println("Please type in the ID # (from 1 to 127) you want to save this finger as...");
- id = readnumber();
- if (id == 0) {// ID #0 not allowed, try again!
- return;
- }
- Serial.print("Enrolling ID #");
- Serial.println(id);
- while (! getFingerprintEnroll() );
- //*************************Alarm Codes Follows**********************
- //Begin Alarm OFF
- while (alarmArmed == true) {
- Neo.show();
- if (digitalRead(7) > 0) {
- alarmArmed = false;
- }
- }//End Alarm OFF
- //Begin Alarm ON
- while (alarmArmed == false) {
- digitalWrite(10, HIGH);
- Neo.setPixelColor(0, 0, 255, 0);
- Neo.show();
- Neo.setPixelColor(2, 0, 255, 0);
- Neo.show();
- Neo.setPixelColor(4, 0, 255, 0);
- Neo.show();
- Neo.setPixelColor(6, 0, 255, 0);
- Neo.show();
- Neo.setPixelColor(1, 0, 0, 255);
- Neo.show();
- Neo.setPixelColor(3, 0, 0, 255);
- Neo.show();
- Neo.setPixelColor(5, 0, 0, 255);
- Neo.show();
- Neo.setPixelColor(7, 0, 0, 255);
- Neo.show();
- delay(100);
- digitalWrite(10, LOW);
- Neo.setPixelColor(0, 0, 0, 255);
- Neo.show();
- Neo.setPixelColor(2, 0, 0, 255);
- Neo.show();
- Neo.setPixelColor(4, 0, 0, 255);
- Neo.show();
- Neo.setPixelColor(6, 0, 0, 255);
- Neo.show();
- Neo.setPixelColor(1, 0, 255, 0);
- Neo.show();
- Neo.setPixelColor(3, 0, 255, 0);
- Neo.show();
- Neo.setPixelColor(5, 0, 255, 0);
- Neo.show();
- Neo.setPixelColor(7, 0, 255, 0);
- Neo.show();
- delay(100);
- }
- }
- //*******************************************************************************Enroll Methods**************************************************
- uint8_t getFingerprintEnroll() {
- int p = -1;
- Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);
- while (p != FINGERPRINT_OK) {
- p = finger.getImage();
- switch (p) {
- case FINGERPRINT_OK:
- Serial.println("Image taken");
- break;
- case FINGERPRINT_NOFINGER:
- Serial.println(".");
- break;
- case FINGERPRINT_PACKETRECIEVEERR:
- Serial.println("Communication error");
- break;
- case FINGERPRINT_IMAGEFAIL:
- Serial.println("Imaging error");
- break;
- default:
- Serial.println("Unknown error");
- break;
- }
- }
- // OK success!
- p = finger.image2Tz(1);
- 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;
- }
- Serial.println("Remove finger");
- delay(2000);
- p = 0;
- while (p != FINGERPRINT_NOFINGER) {
- p = finger.getImage();
- }
- Serial.print("ID "); Serial.println(id);
- p = -1;
- Serial.println("Place same finger again");
- while (p != FINGERPRINT_OK) {
- p = finger.getImage();
- switch (p) {
- case FINGERPRINT_OK:
- Serial.println("Image taken");
- break;
- case FINGERPRINT_NOFINGER:
- Serial.print(".");
- break;
- case FINGERPRINT_PACKETRECIEVEERR:
- Serial.println("Communication error");
- break;
- case FINGERPRINT_IMAGEFAIL:
- Serial.println("Imaging error");
- break;
- default:
- Serial.println("Unknown error");
- break;
- }
- }
- // OK success!
- p = finger.image2Tz(2);
- 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!
- Serial.print("Creating model for #"); Serial.println(id);
- p = finger.createModel();
- if (p == FINGERPRINT_OK) {
- Serial.println("Prints matched!");
- } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
- Serial.println("Communication error");
- return p;
- } else if (p == FINGERPRINT_ENROLLMISMATCH) {
- Serial.println("Fingerprints did not match");
- return p;
- } else {
- Serial.println("Unknown error");
- return p;
- }
- Serial.print("ID "); Serial.println(id);
- p = finger.storeModel(id);
- if (p == FINGERPRINT_OK) {
- Serial.println("Stored!");
- } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
- Serial.println("Communication error");
- return p;
- } else if (p == FINGERPRINT_BADLOCATION) {
- Serial.println("Could not store in that location");
- return p;
- } else if (p == FINGERPRINT_FLASHERR) {
- Serial.println("Error writing to flash");
- return p;
- } else {
- Serial.println("Unknown error");
- return p;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement