6
6
// RFID
7
7
#define SS_PIN 10
8
8
#define RST_PIN 9
9
+ #define solenoidPin 11
9
10
MFRC522 rfid (SS_PIN, RST_PIN);
10
11
11
12
// Keypad
12
13
const byte ROWS = 4 ; // Four rows
13
14
const byte COLS = 3 ; // Three columns
14
15
char keys[ROWS][COLS] = {
15
- {' 1' , ' 2' , ' 3' },
16
- {' 4' , ' 5' , ' 6' },
17
- {' 7' , ' 8' , ' 9' },
18
- {' *' , ' 0' , ' #' }
16
+ {' 1' , ' 2' , ' 3' },
17
+ {' 4' , ' 5' , ' 6' },
18
+ {' 7' , ' 8' , ' 9' },
19
+ {' *' , ' 0' , ' #' }
19
20
};
20
21
byte rowPins[ROWS] = {9 , 8 , 7 , 6 }; // Connect to the row pinouts of the keypad
21
22
byte colPins[COLS] = {5 , 4 , 3 }; // Connect to the column pinouts of the keypad
@@ -29,96 +30,98 @@ String userNames[] = {"X", "Y"};
29
30
String enteredPassword = " " ;
30
31
31
32
void setup () {
32
- Serial.begin (115200 );
33
- SPI.begin ();
34
- rfid.PCD_Init ();
33
+ Serial.begin (115200 );
34
+ SPI.begin ();
35
+ rfid.PCD_Init ();
35
36
}
36
37
37
38
void loop () {
38
- // process incoming commands from serial port
39
- if (Serial.available () > 0 ) {
40
- String command = Serial.readStringUntil (' \n ' );
41
- if (command == " OPEN_DOOR" ) {
42
- openDoor ();
39
+ // process incoming commands from serial port
40
+ if (Serial.available () > 0 ) {
41
+ String command = Serial.readStringUntil (' \n ' );
42
+ if (command == " OPEN_DOOR" ) {
43
+ openDoor ();
44
+ }
43
45
}
44
- }
45
46
46
- // RFID Read
47
- if (rfid.PICC_IsNewCardPresent () && rfid.PICC_ReadCardSerial ()) {
48
- String cardUID = " " ;
49
- for (byte i = 0 ; i < rfid.uid .size ; i++) {
50
- cardUID += String (rfid.uid .uidByte [i], HEX);
47
+ // RFID Read
48
+ if (rfid.PICC_IsNewCardPresent () && rfid.PICC_ReadCardSerial ()) {
49
+ String cardUID = " " ;
50
+ for (byte i = 0 ; i < rfid.uid .size ; i++) {
51
+ cardUID += String (rfid.uid .uidByte [i], HEX);
52
+ }
53
+ if (isValidCard (cardUID)) {
54
+ String user = getUserByCard (cardUID);
55
+ openDoor ();
56
+ Serial.print (" Hello " );
57
+ Serial.println (user);
58
+ sendResultToJetson (" Hello " + user);
59
+ }
60
+ rfid.PICC_HaltA ();
51
61
}
52
- if (isValidCard (cardUID)) {
53
- String user = getUserByCard (cardUID);
54
- openDoor ();
55
- Serial.print (" Hello " );
56
- Serial.println (user);
57
- sendResultToJetson (" Hello " + user);
58
- }
59
- rfid.PICC_HaltA ();
60
- }
61
62
62
- // Keypad Read
63
- char key = keypad.getKey ();
64
- if (key) {
65
- if (key == ' #' ) {
66
- if (isValidPassword (enteredPassword)) {
67
- String user = getUserByPassword (enteredPassword);
68
- openDoor ();
69
- Serial.print (" Hello " );
70
- Serial.println (user);
71
- sendResultToJetson (" Hello " + user);
72
- }
73
- enteredPassword = " " ;
74
- } else {
75
- enteredPassword += key;
63
+ // Keypad Read
64
+ char key = keypad.getKey ();
65
+ if (key) {
66
+ if (key == ' #' ) {
67
+ if (isValidPassword (enteredPassword)) {
68
+ String user = getUserByPassword (enteredPassword);
69
+ openDoor ();
70
+ Serial.print (" Hello " );
71
+ Serial.println (user);
72
+ sendResultToJetson (" Hello " + user);
73
+ }
74
+ enteredPassword = " " ;
75
+ } else {
76
+ enteredPassword += key;
77
+ }
76
78
}
77
- }
78
79
}
79
80
80
81
bool isValidCard (String uid) {
81
- for (String validCard : validCards) {
82
- if (validCard == uid) {
83
- return true ;
82
+ for (String validCard : validCards) {
83
+ if (validCard == uid) {
84
+ return true ;
85
+ }
84
86
}
85
- }
86
- return false ;
87
+ return false ;
87
88
}
88
89
89
90
bool isValidPassword (String password) {
90
- for (String userPassword : userPasswords) {
91
- if (userPassword == password) {
92
- return true ;
91
+ for (String userPassword : userPasswords) {
92
+ if (userPassword == password) {
93
+ return true ;
94
+ }
93
95
}
94
- }
95
- return false ;
96
+ return false ;
96
97
}
97
98
98
99
String getUserByCard (String uid) {
99
- for (int i = 0 ; i < sizeof (validCards) / sizeof (validCards[0 ]); i++) {
100
- if (validCards[i] == uid) {
101
- return userNames[i];
100
+ for (int i = 0 ; i < sizeof (validCards) / sizeof (validCards[0 ]); i++) {
101
+ if (validCards[i] == uid) {
102
+ return userNames[i];
103
+ }
102
104
}
103
- }
104
- return " Unknown" ;
105
+ return " Unknown" ;
105
106
}
106
107
107
108
String getUserByPassword (String password) {
108
- for (int i = 0 ; i < sizeof (userPasswords) / sizeof (userPasswords[0 ]); i++) {
109
- if (userPasswords[i] == password) {
110
- return userNames[i];
109
+ for (int i = 0 ; i < sizeof (userPasswords) / sizeof (userPasswords[0 ]); i++) {
110
+ if (userPasswords[i] == password) {
111
+ return userNames[i];
112
+ }
111
113
}
112
- }
113
- return " Unknown" ;
114
+ return " Unknown" ;
114
115
}
115
116
116
117
void openDoor () {
117
- // Solenoidi açma kodu burada olacak
118
- // Örneğin: digitalWrite(solenoidPin, HIGH);
118
+
119
+ digitalWrite (solenoidPin, HIGH);
120
+ sleep (1 );
119
121
}
120
122
121
123
void sendResultToJetson (String message) {
122
- Serial.print (" RESULT:" );
123
- Serial.println (message);
124
+ Serial.print (" RESULT:" );
125
+ Serial.println (message);
124
126
}
127
+
0 commit comments