You are on page 1of 5

FLOWCHART

MULAI

Sumber
Tegangan Selesai

Inisialisasi

Solenoid = Input Sidik Verifikasi


Terkunci Jari Sidik Jari

LCD = “Pintu
Terkunci”,”Silahkan
Solenoid terkunci
tempelkan Jari”
LCD = “Terkunci”
Speaker = “Tidak
terdaftar”

Input Sidik Jari

Verifikasi
Sidik Jari

Solenoid Terbuka

LCD = “Pintu Terbuka”


Speaker = “Succes Silahkan Buka
Pintu”
1. #include <Adafruit_Fingerprint.h>  
2. #include <SPI.h>  
3. #include <Wire.h>  
4. #include <LiquidCrystal_I2C.h>  
5. #include <SoftwareSerial.h>  
6.   
7. SoftwareSerial mySerial(2, 3); //Inisialisasi serial RX TX modul fingerprint  
8. LiquidCrystal_I2C lcd(0x3f, 16, 4); //Inisialisasi I2C LCD  
9. int doorLock = 8; //pin untuk sinyal doorlock  
10.   
11. Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);  
12.   
13. void setup()  
14. {  
15. Serial.begin(9600);  
16. while (!Serial);  
17. delay(100);  
18. Serial.println("nnAdafruit finger detect test");  
19.   
20. // set the data rate for the sensor serial port  
21. finger.begin(57600);  
22.   
23. if (finger.verifyPassword()) {  
24. Serial.println("Found fingerprint sensor!");  
25. } else {  
26. Serial.println("Did not find fingerprint sensor :(");  
27. while (1) { delay(1); }  
28. }  
29.   
30. finger.getTemplateCount();  
31. Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.printl
n(" templates");  
32. Serial.println("Waiting for valid finger...");  
33.   
34. lcd.begin();  
35. lcd.clear();  
36.   
37. pinMode(doorLock, OUTPUT);  
38. digitalWrite(doorLock, HIGH);  
39. lcd.setCursor(0,0); //set koordinat LCD  
40. lcd.print("HALLO GAES");  
41. delay(100);  
42. lcd.setCursor(0,1);  
43. lcd.print("WELCOME");  
44. delay(100);  
45.   
46. SPI.begin(); // Initiate SPI bus  
47. Serial.write(0x7E);  
48. Serial.write(0x03);  
49. Serial.write(0xA7);  
50. Serial.write(0x1F); // volume max  
51. Serial.write(0x7E);  
52. }  
53.   
54. void loop()  
55. {  
56. getFingerprintID();  
57. delay(50);  
58. }  
59.   
60.   
61. //------------------------------------------------------------  
62. uint8_t getFingerprintID() {  
63. uint8_t p = finger.getImage();  
64. switch (p) {  
65. case FINGERPRINT_OK:  
66. Serial.println("Image taken");  
67. break;  
68. case FINGERPRINT_NOFINGER:  
69. Serial.println("No finger detected");  
70. return p;  
71. case FINGERPRINT_PACKETRECIEVEERR:  
72. Serial.println("Communication error");  
73. return p;  
74. case FINGERPRINT_IMAGEFAIL:  
75. Serial.println("Imaging error");  
76. return p;  
77. default:  
78. Serial.println("Unknown error");  
79. return p;  
80. }  
81.   
82. // OK success!  
83.   
84. p = finger.image2Tz();  
85. switch (p) {  
86. case FINGERPRINT_OK:  
87. Serial.println("Image converted");  
88. break;  
89. case FINGERPRINT_IMAGEMESS:  
90. Serial.println("Image too messy");  
91. return p;  
92. case FINGERPRINT_PACKETRECIEVEERR:  
93. Serial.println("Communication error");  
94. return p;  
95. case FINGERPRINT_FEATUREFAIL:  
96. Serial.println("Could not find fingerprint features");  
97. return p;  
98. case FINGERPRINT_INVALIDIMAGE:  
99. Serial.println("Could not find fingerprint features");  
100. return p;  
101. default:  
102. Serial.println("Unknown error");  
103. return p;  
104. }  
105.   
106. // OK converted!---------------------------------------------  
107. p = finger.fingerFastSearch();  
108. if (p == FINGERPRINT_OK) { //jika fingerprint terdeteksi  
109. Serial.println("Found a print match!");  
110. lcd.clear();  
111. lcd.setCursor(0,0);  
112. lcd.print("MASUK PAK EKO");  
113. delay (100);  
114. suara1();  
115. digitalWrite(doorLock, LOW);  
116. lcd.setCursor(0,1);  
117. lcd.print("AutoLock ");  
118. for(int i=5; i>0; i--)  
119. {  
120. lcd.setCursor (10,1); lcd.print(i);  
121. delay (1000);  
122. }  
123. lcd.clear();  
124. lcd.setCursor(0,0);  
125. lcd.print("HALLO GAES");  
126. delay(100);  
127. lcd.setCursor(0,1);  
128. lcd.print("WELCOME");  
129. delay(100);  
130. digitalWrite(doorLock, HIGH);  
131. }  
132. else if (p == FINGERPRINT_PACKETRECIEVEERR) {  
133. Serial.println("Communication error");  
134. return p;  
135. }  
136. else if (p == FINGERPRINT_NOTFOUND) { //jika fingerprint salah  
137. Serial.println("Did not find a match");  
138. suara2();  
139. lcd.clear();  
140. lcd.setCursor(0,0);  
141. lcd.print("BELUM BERUNTUNG");  
142. delay (100);  
143. lcd.setCursor(0,1);  
144. lcd.print("COBA LAGI");  
145. delay (2000);  
146.   
147. lcd.clear();  
148. lcd.setCursor(0,0);  
149. lcd.print("HALLO GAES");  
150. delay(100);  
151. lcd.setCursor(0,1);  
152. lcd.print("WELCOME");  
153. delay(100);  
154. return p;  
155. }  
156. else {  
157. Serial.println("Unknown error");  
158. lcd.clear();  
159. lcd.setCursor(0,0);  
160. lcd.print("??");  
161. delay (100);  
162. return p;  
163. }  
164.   
165. // found a match!  
166. Serial.print("Found ID #"); Serial.print(finger.fingerID);  
167. Serial.print(" with confidence of "); Serial.println(finger.confidence);  
168.   
169. return finger.fingerID;  
170. }  
171. //--------------------------------------------------------------------------
---  
172.   
173. void suara1()  
174. {  
175. Serial.write(0x7E);  
176. Serial.write(0x04);  
177. serial.write(0xA0); // A0 for SD card  
178. Serial.write((byte)0x00);  
179. Serial.write(0x01); // track number 001.mp3  
180. Serial.write(0x7E);  
181. delay(100);  
182. }  
183.   
184. void suara2()  
185. {  
186. Serial.write(0x7E);  
187. Serial.write(0x04);  
188. Serial.write(0xA0); // A0 for SD card  
189. Serial.write((byte)0x00);  
190. Serial.write(0x02); // track number 002.mp3  
191. Serial.write(0x7E);  
192. delay(100);  
193. }  
Open Limit LCD Display
Switch

Solenoid
Lock 12v
Fingerprint Arduino Uno

Relay

Modul
Program Speaker

You might also like