Last active
September 7, 2020 04:44
-
-
Save mdradityatama/e719b479be7e33e27cda6867aca3cb3b to your computer and use it in GitHub Desktop.
Code untuk fingerprint di nodemcu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <ESP8266WiFi.h> | |
#include <Adafruit_Fingerprint.h> | |
#include <SoftwareSerial.h> | |
#include <FirebaseArduino.h> | |
int p1 = 13; | |
int p2 = 15; | |
SoftwareSerial mySerial(p1, p2); | |
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial); | |
// untuk wifi | |
#define WIFI_SSID "SIL"// input your home or public wifi name | |
#define WIFI_PASSWORD "111111111"//password of wifi ssid | |
// untuk Firebase | |
#define FIREBASE_HOST "pejuang-mahasiswa.firebaseio.com"// the project name address from firebase id | |
#define FIREBASE_AUTH "BOkphRcJsx8DbUyLwYkwUS1dNKv4Q6fja0dUvpcr"// the secret key generated from firebase | |
int getIDFp; | |
int statusDosenDekan = 0; | |
int statusDosenWaDekan = 0; | |
int statusDosenKaProdiTI = 0; | |
int statusDosenWaKaProdiTI = 0; | |
int statusDosenKaProdiSI = 0; | |
int statusDosenWaKaProdiSI = 0; | |
int Led = D0; | |
void setup(){ | |
Serial.begin(9600); | |
finger.begin(57600); | |
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);//try to connect with wifi | |
while (WiFi.status() != WL_CONNECTED) { | |
Serial.print("."); | |
delay(500); | |
} | |
Serial.println(); | |
Serial.print("Terhubung ke WiFi dengan ip "); | |
Serial.println(WiFi.localIP()); | |
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);// connect to firebase | |
pinMode(Led, OUTPUT); | |
//Reset Semua Nilai untuk Default kembali | |
Firebase.setFloat("Dosen/0/status", 0); | |
Firebase.setFloat("Dosen/1/status", 0); | |
Firebase.setFloat("Dosen/2/status", 0); | |
Firebase.setFloat("Dosen/3/status", 0); | |
Firebase.setFloat("Dosen/4/status", 0); | |
Firebase.setFloat("Dosen/5/status", 0); | |
if (finger.verifyPassword()) { | |
Serial.println("FingerPrint Sensor Ditemukan!"); | |
} else { | |
Serial.println("FingerPrint Sensor Tidak Ditemukan! :("); | |
while (1) { delay(1); } | |
} | |
} | |
void loop(){ | |
FINGERPRINT(); | |
delay(100); | |
} | |
//----------------------------------------------------FINGERPRINt----------------------------------------------// | |
void FINGERPRINT(){ | |
getIDFp = getFingerprintIDez(); | |
if (getIDFp == 0 ) { | |
Serial.println("Dosen A"); | |
if (statusDosenDekan == 1) { | |
Serial.println("Selamat Keluar Bapak/Ibu Dosen A"); | |
statusDosenDekan = 0; | |
Firebase.setFloat("Dosen/0/status", 0); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(700); | |
digitalWrite(Led, LOW); | |
return; | |
} | |
} else { | |
Serial.println("Selamat Datang Bapak/Ibu Dosen A"); | |
statusDosenDekan = 1; | |
Firebase.setFloat("Dosen/0/status", 1); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
return; | |
} | |
} | |
delay(250); | |
} else if (getIDFp == 1 || getIDFp == 100 || getIDFp == 101 ) { | |
Serial.println("Dosen B"); | |
if (statusDosenWaDekan == 1) { | |
Serial.println("Selamat Keluar Bapak/Ibu Wakil Dosen B"); | |
statusDosenWaDekan = 0; | |
Firebase.setFloat("Dosen/1/status", 0); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(700); | |
digitalWrite(Led, LOW); | |
return; | |
} | |
} else { | |
Serial.println("Selamat Datang Bapak/Ibu Wakil Dosen B"); | |
statusDosenWaDekan = 1; | |
Firebase.setFloat("Dosen/1/status", 1); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
return; | |
} | |
} | |
delay(250); | |
} else if (getIDFp == 2 ) { | |
Serial.println("Dosen C"); | |
if (statusDosenKaProdiTI == 1) { | |
Serial.println("Selamat Keluar Bapak/Ibu Dosen C"); | |
statusDosenKaProdiTI = 0; | |
Firebase.setFloat("Dosen/2/status", 0); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(700); | |
digitalWrite(Led, LOW); | |
return; | |
} | |
} else { | |
Serial.println("Selamat Datang Bapak/Ibu Dosen C"); | |
statusDosenKaProdiTI = 1; | |
Firebase.setFloat("Dosen/2/status", 1); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
return; | |
} | |
} | |
delay(250); | |
} else if (getIDFp == 3 ) { | |
Serial.println("Dosen D"); | |
if (statusDosenWaKaProdiTI == 1) { | |
Serial.println("Selamat Keluar Bapak/Ibu Dosen D"); | |
statusDosenWaKaProdiTI = 0; | |
Firebase.setFloat("Dosen/3/status", 0); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(700); | |
digitalWrite(Led, LOW); | |
return; | |
} | |
} else { | |
Serial.println("Selamat Datang Bapak/Ibu Dosen D"); | |
statusDosenWaKaProdiTI = 1; | |
Firebase.setFloat("Dosen/3/status", 1); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
return; | |
} | |
} | |
delay(250); | |
} else if (getIDFp == 4 ) { | |
Serial.println("Dosen E"); | |
if (statusDosenKaProdiSI == 1) { | |
Serial.println("Selamat Keluar Bapak/Ibu Dosen E"); | |
statusDosenKaProdiSI = 0; | |
Firebase.setFloat("Dosen/4/status", 0); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(700); | |
digitalWrite(Led, LOW); | |
return; | |
} | |
} else { | |
Serial.println("Selamat Datang Bapak/Ibu Dosen E"); | |
statusDosenKaProdiSI = 1; | |
Firebase.setFloat("Dosen/4/status", 1); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
return; | |
} | |
} | |
delay(250); | |
} else if (getIDFp == 5 ) { | |
Serial.println("Dosen F"); | |
if (statusDosenWaKaProdiSI == 1) { | |
Serial.println("Selamat Keluar Bapak/Ibu Dosen F"); | |
statusDosenWaKaProdiSI = 0; | |
Firebase.setFloat("Dosen/5/status", 0); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(700); | |
digitalWrite(Led, LOW); | |
return; | |
} | |
} else { | |
Serial.println("Selamat Datang Bapak/Ibu Dosen F"); | |
statusDosenWaKaProdiSI = 1; | |
Firebase.setFloat("Dosen/5/status", 1); | |
if (!Firebase.failed()) { | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
digitalWrite(Led, HIGH); | |
delay(250); | |
digitalWrite(Led, LOW); | |
delay(250); | |
return; | |
} | |
} | |
delay(250); | |
} | |
} | |
//----------------------------------------------------PROSES FINGERPRINT--------------------------------------// | |
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.fingerFastSearch(); | |
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) return -1; | |
// found a match! | |
Serial.print("Found ID #"); Serial.print(finger.fingerID); | |
Serial.print(" with confidence of "); Serial.println(finger.confidence); | |
return finger.fingerID; | |
} | |
//--------------------------------END FINGERPRINT----------------------------------------------// |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment