Advertisement
safwan092

Untitled

Mar 27th, 2022
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.13 KB | None | 0 0
  1. //Studant Tag ---> 29 EC 2A B9
  2. //Dr Card #1 ---> 22 AC 75 34
  3. //Dr Card #2 ---> B6 BC 72 2B
  4. //Dr Card #3 ---> C0 6B BB 32
  5. //Dr Card #4 ---> C0 BD B6 32
  6. /*
  7. RTC [8AM-->4PM DR only Allowed] ✔
  8. IR Sensor [Parking_1] ✔
  9. IR Sensor [Parking_2] ✔
  10. IR Sensor [Parking_3] ✔
  11. LED [Parking_1] ✔
  12. LED [Parking_2] ✔
  13. LED [Parking_3] ✔
  14. RFID Cards x5 [All Open] ✔
  15. Button [To Enter with No CARD] ✔
  16. LCD 20*4 [Show (IN#)+(OUT#)+(Current#)] ✔
  17. IR Sensor [Exit] ✔
  18. Servo_IN ✔
  19. Servo_OUT ✔
  20. */
  21. #include <SPI.h>
  22. #include <Wire.h>
  23. #include <Servo.h>
  24. #include "RTClib.h"
  25. #include <MFRC522.h>
  26. #include <LiquidCrystal_I2C.h>
  27.  
  28. #define SS_PIN 10
  29. #define RST_PIN 9
  30. #define button_PIN 8
  31. #define exit_PIN 7
  32. #define LED_parking_1 2
  33. #define LED_parking_2 3
  34. #define LED_parking_3 4
  35. #define sensor_parking_1 A1
  36. #define sensor_parking_2 A2
  37. #define sensor_parking_3 A3
  38.  
  39.  
  40. Servo servoIN; //5
  41. Servo servoOUT; //6
  42.  
  43.  
  44. RTC_DS3231 rtc;
  45. MFRC522 mfrc522(SS_PIN, RST_PIN);
  46. LiquidCrystal_I2C lcd(0x27, 16, 2);
  47.  
  48. int emptySpaces = 3;
  49. bool parking_1 = 0;
  50. bool parking_2 = 0;
  51. bool parking_3 = 0;
  52. int CurrentCount = 0;
  53. int exit_status = 0;
  54. int button_status = 0;
  55.  
  56. char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
  57.  
  58. void setup() {
  59. Serial.begin(9600);
  60. pinMode(LED_parking_1, OUTPUT);
  61. pinMode(LED_parking_2, OUTPUT);
  62. pinMode(LED_parking_3, OUTPUT);
  63. pinMode(sensor_parking_1, INPUT);
  64. pinMode(sensor_parking_2, INPUT);
  65. pinMode(sensor_parking_3, INPUT);
  66. pinMode(button_PIN, INPUT);
  67. pinMode(exit_PIN, INPUT);
  68. digitalWrite(LED_parking_1, 0);// Green ON --- Parking 1
  69. digitalWrite(LED_parking_2, 0);// Green ON --- Parking 2
  70. digitalWrite(LED_parking_3, 0);// Green ON --- Parking 3
  71. SPI.begin();
  72. mfrc522.PCD_Init();
  73. servoIN.attach(5);
  74. servoOUT.attach(6);
  75. servoIN.write(0);
  76. servoOUT.write(0);
  77. lcd.init();
  78. lcd.init();
  79. lcd.backlight();
  80. lcd.setCursor(0, 0);
  81. lcd.print("Starting...");
  82. delay(1000);
  83. if (! rtc.begin()) {
  84. Serial.println("Couldn't find RTC");
  85. Serial.flush();
  86. while (1) delay(10);
  87. }
  88.  
  89. if (rtc.lostPower()) {
  90. Serial.println("RTC lost power, let's set the time!");
  91. rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  92. }
  93. }
  94.  
  95. void loop() {
  96. DateTime now = rtc.now();
  97. button_status = digitalRead(button_PIN);
  98. exit_status = digitalRead(exit_PIN);
  99. chkSensors();
  100. lcd.setCursor(0, 0);
  101. // "****************"
  102. lcd.print("Parking Empty:");
  103. lcd.setCursor(0, 1);
  104. // "****************"
  105. lcd.print(emptySpaces);
  106. lcd.print(" ");
  107.  
  108. if ( button_status > 0 && emptySpaces > 0) {
  109. // Open IN Gate
  110. servoIN.write(90);
  111. delay(3000);
  112. servoIN.write(0);
  113. }
  114. if (exit_status == 0) {
  115. // Open OUT Gate
  116. servoOUT.write(90);
  117. delay(3000);
  118. servoOUT.write(0);
  119. }
  120. if ( ! mfrc522.PICC_IsNewCardPresent()) {
  121. return;
  122. }
  123.  
  124. if ( ! mfrc522.PICC_ReadCardSerial() ) {
  125. return;
  126. }
  127. String content = "";
  128. byte letter;
  129. for (byte i = 0; i < mfrc522.uid.size; i++) {
  130. Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
  131. Serial.print(mfrc522.uid.uidByte[i], HEX);
  132. content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
  133. content.concat(String(mfrc522.uid.uidByte[i], HEX));
  134. }
  135. Serial.println();
  136. content.toUpperCase();
  137.  
  138.  
  139.  
  140.  
  141. //------------ Code
  142. // 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16
  143. if (now.hour() >= 8 && now.hour() <= 16) {
  144. // Allow Access RFID Scanner for Dr Only
  145. //Dr Card #1 ---> 22 AC 75 34
  146. //Dr Card #2 ---> B6 BC 72 2B
  147. //Dr Card #3 ---> C0 6B BB 32
  148. //Dr Card #4 ---> C0 BD B6 32
  149. // 1 2 3 4 5
  150. if (content.substring(1) == "22 AC 75 34" || content.substring(1) == "B6 BC 72 2B" || content.substring(1) == "C0 BD B6 32" || content.substring(1) == "C0 6B BB 32")
  151. {
  152. if (emptySpaces > 0) {
  153. // Open IN Gate
  154. servoIN.write(90);
  155. delay(3000);
  156. servoIN.write(0);
  157. }
  158. }
  159. else
  160. {
  161. // Don't Open IN Gate
  162. servoIN.write(0);
  163. }
  164. }
  165. // 17 - 18 - 19 - 20 - 21 - 22 - 23 - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7
  166. else {
  167. // Allow Access RFID Scanner for All
  168. //Studant Tag ---> 29 EC 2A B9
  169. //Dr Card #1 ---> 22 AC 75 34
  170. //Dr Card #2 ---> B6 BC 72 2B
  171. //Dr Card #3 ---> C0 6B BB 32
  172. //Dr Card #4 ---> C0 BD B6 32
  173. // 1 2 3 4 5
  174. if (content.substring(1) == "29 EC 2A B9" || content.substring(1) == "22 AC 75 34" || content.substring(1) == "B6 BC 72 2B" || content.substring(1) == "C0 BD B6 32" || content.substring(1) == "C0 6B BB 32")
  175. {
  176. if (emptySpaces > 0) {
  177. // Open IN Gate
  178. servoIN.write(90);
  179. delay(3000);
  180. servoIN.write(0);
  181. }
  182. }
  183. else
  184. {
  185. // Don't Open IN Gate
  186. servoIN.write(0);
  187. }
  188. }
  189.  
  190. }//end of LOOP
  191.  
  192.  
  193.  
  194. void chkSensors() {
  195.  
  196. parking_1 = digitalRead(sensor_parking_1);
  197. parking_2 = digitalRead(sensor_parking_2);
  198. parking_3 = digitalRead(sensor_parking_3);
  199.  
  200. emptySpaces = parking_1 + parking_2 + parking_3;
  201.  
  202. if (parking_1 == 0) {
  203. digitalWrite(LED_parking_1, 1);// Red ON --- Parking 1
  204. }
  205. else if (parking_1 == 1) {
  206. digitalWrite(LED_parking_1, 0);// Green ON --- Parking 1
  207. }
  208. if (parking_2 == 0) {
  209. digitalWrite(LED_parking_2, 1);// Red ON --- Parking 2
  210. }
  211. else if (parking_2 == 1) {
  212. digitalWrite(LED_parking_2, 0);// Green ON --- Parking 2
  213. }
  214. if (parking_3 == 0) {
  215. digitalWrite(LED_parking_3, 1);// Red ON --- Parking 3
  216. }
  217. else if (parking_3 == 1) {
  218. digitalWrite(LED_parking_3, 0);// Green ON --- Parking 3
  219. }
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement