Skip to content

Instantly share code, notes, and snippets.

@mdradityatama
Last active September 7, 2020 04:44
Show Gist options
  • Save mdradityatama/e719b479be7e33e27cda6867aca3cb3b to your computer and use it in GitHub Desktop.
Save mdradityatama/e719b479be7e33e27cda6867aca3cb3b to your computer and use it in GitHub Desktop.
Code untuk fingerprint di nodemcu
#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