Advertisement
safwan092

Untitled

Jul 25th, 2022
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. /*
  2. Connections:
  3. ------------------------------
  4. Arduino Uno <---> RF-KLM900S
  5. ******************************
  6. 3.3V <---> EN
  7. 5V <---> 5V
  8. GND <---> GND
  9. 3 <---> TTL_R
  10. 2 <---> TTL_T
  11. ------------------------------
  12. */
  13. #include <SoftwareSerial.h>
  14. #include <Servo.h>
  15.  
  16. int trigPin = 8;
  17. int echoPin = 9;
  18. long distance;
  19. long duration;
  20. int flag = 0;
  21. Servo servo1;
  22. SoftwareSerial SSerial(2, 3); // RX, TX
  23.  
  24. int numOfTags = 3;
  25. //Single Read BB 00 22 00 00 22 7E
  26. byte A[] = {0xBB, 0x00, 0x22, 0x00, 0x00, 0x22, 0x7E};
  27.  
  28. String TagNo[] = {"30 08 33 B2 DD D9 01 40 00 00 00 00",
  29. "E2 80 68 94 00 00 50 20 91 08 58 7E",
  30. "E2 80 68 94 00 00 50 20 91 08 58 88"
  31. };
  32.  
  33. String TagID_RX = "";
  34. static unsigned long lastTime = 0;
  35. int count = 0;
  36.  
  37. void setup()
  38. {
  39. SSerial.begin(115200);
  40. Serial.begin(115200);
  41. servo1.attach(11);
  42. servo1.write(0);
  43. pinMode(trigPin, OUTPUT);
  44. pinMode(echoPin, INPUT);
  45. delay(2000);
  46. }
  47.  
  48. void loop() {
  49. ultra();
  50. static String inputString;
  51. static unsigned long lastCharArrivalTime = 0;
  52.  
  53. if (millis() - lastTime > 50 && inputString == "") {
  54. SSerial.write(A, sizeof(A));
  55. lastTime = millis();
  56. }
  57.  
  58. if (SSerial.available())
  59. {
  60. byte incomingByte = SSerial.read();
  61. inputString += "0123456789ABCDEF"[incomingByte / 16];
  62. inputString += "0123456789ABCDEF"[incomingByte % 16];
  63. inputString += ' ';
  64. lastCharArrivalTime = millis();
  65. }
  66.  
  67. if (lastCharArrivalTime != 0 && millis() - lastCharArrivalTime >= 10)
  68. {
  69. TagID_RX = inputString.substring(24, 59);
  70. for (int i = 0; i < numOfTags; i++) {
  71. if (!TagID_RX.compareTo(TagNo[i]) && distance <= 200) {
  72. Serial.print("Tag No [");
  73. Serial.print(i + 1);
  74. Serial.println("] Found.");
  75. Serial.println("------------------");
  76. servo1.write(90);
  77. delay(1000);
  78. flag = 1;
  79. count = 0;
  80. //delay(180000);// Gate Open Time in (ms), 1000 = 1 Second, 180,000 = 3 Minutes
  81. }
  82. else {
  83. if (count > 50 && flag == 1) {
  84. Serial.println("3 min Timer Started !!");
  85. delay(180000);// Gate Open Time in (ms), 1000 = 1 Second, 180,000 = 3 Minutes
  86. servo1.write(0);
  87. count = 0;
  88. flag = 0;
  89. }
  90. count++;
  91. Serial.println(count);
  92. }
  93. }
  94. inputString = "";
  95. lastCharArrivalTime = 0;
  96. }
  97. }
  98.  
  99. void ultra() {
  100. digitalWrite(trigPin, LOW);
  101. delayMicroseconds(2);
  102. digitalWrite(trigPin, HIGH);
  103. delayMicroseconds(10);
  104. digitalWrite(trigPin, LOW);
  105. duration = pulseIn(echoPin, HIGH);
  106. distance = duration * 0.034 / 2;
  107. //Serial.println(distance);
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement