Advertisement
safwan092

Untitled

Aug 17th, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. // Libraries
  2. #include <WiFi.h>
  3. #include <AsyncTCP.h>
  4. #include <ESPAsyncWebServer.h>
  5. #include <AsyncElegantOTA.h>
  6.  
  7. // Pin Definitions
  8. #define relayPin 13 // ✔
  9. #define RXp2 16
  10. #define TXp2 17
  11.  
  12. // Objects and Communication Chanel
  13. AsyncWebServer server(80);
  14.  
  15.  
  16. // Command to Read RFID Tags Using RF-KLM900S TTL Connector
  17. // Single Read BB 00 22 00 00 22 7E
  18. byte A[] = {0xBB, 0x00, 0x22, 0x00, 0x00, 0x22, 0x7E};
  19.  
  20. // Saved RFID Tags in one String Array
  21. // [1] Card Tag UID : 30 08 33 B2 DD D9 01 40 00 00 00 00
  22. // [2] Smart Tag 1 UID : E2 80 68 94 00 00 50 20 91 08 58 7E
  23. // [3] Smart Tag 2 UID : E2 80 68 94 00 00 50 20 91 08 58 88
  24. String TagNo[] = {"30 08 33 B2 DD D9 01 40 00 00 00 00",
  25. "E2 80 68 94 00 00 50 20 91 08 58 7E",
  26. "E2 80 68 94 00 00 50 20 91 08 58 88"
  27. };
  28.  
  29. // Variables and Flags
  30. const char* ssid = "network";
  31. const char* password = "123456789";
  32. String TagID_RX = "";
  33. static String inputString;
  34. long distance;
  35. long duration;
  36. int numOfTags = 3;
  37. int flag = 0;
  38. int flag3min = 0;
  39. static unsigned long currentTime = 0;
  40. static unsigned long lastTime2 = 0;
  41. int count = 0;
  42.  
  43. void setup() {
  44. // Communication Chanel Between ESP32 and PC/Laptop/Android Phone
  45. Serial.begin(9600);
  46.  
  47. // Communication Chanel Between Arduino Uno and ESP32
  48. Serial2.begin(9600, SERIAL_8N1, RXp2, TXp2);
  49.  
  50. WiFi.mode(WIFI_STA);
  51. WiFi.begin(ssid, password);
  52. // Wait for connection
  53. //while (WiFi.status() != WL_CONNECTED) {
  54. // delay(500);
  55. // Serial.print(".");
  56. //}
  57. delay(2000);
  58. Serial.println("");
  59. Serial.print("Connected to ");
  60. Serial.println(ssid);
  61. Serial.print("IP address: ");
  62. Serial.println(WiFi.localIP());
  63.  
  64. server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {
  65. request->send(200, "text/plain", "Hi! This is ESP32 OTA");
  66. });
  67.  
  68. AsyncElegantOTA.begin(&server); // Start AsyncElegantOTA
  69. server.begin();
  70. Serial.println("HTTP server started");
  71.  
  72.  
  73. // Assign Inputs and Outputs
  74. pinMode(relayPin, OUTPUT);
  75.  
  76.  
  77. // Close Servo Gate
  78. digitalWrite(relayPin, LOW);
  79.  
  80. }
  81.  
  82. void loop() {
  83. AsyncElegantOTA.loop();
  84.  
  85. static String inputString;
  86. inputString = Serial2.readString();
  87. if (1) { //inputString != "") {
  88. TagID_RX = inputString.substring(0, 35);;
  89. if (TagID_RX == "") {}
  90. else {
  91. server.on("/ID", HTTP_GET, [](AsyncWebServerRequest * request) {
  92. request->send(200, "text/plain", TagID_RX);
  93. });
  94. Serial.print("<Start>");
  95. Serial.print(TagID_RX);
  96. Serial.println("<End>");
  97. }
  98. for (int i = 0; i < numOfTags; i++) {
  99. if (!TagID_RX.compareTo(TagNo[i]) && distance <= 200) {
  100. Serial.print("Tag No [");
  101. Serial.print(i + 1);
  102. Serial.println("] Found.");
  103. Serial.println("------------------");
  104.  
  105. if (flag == 0) {
  106. // Push Garage Button for 200mS then release
  107. digitalWrite(relayPin, HIGH);
  108. delay(200);
  109. digitalWrite(relayPin, LOW);
  110. }
  111. // Set Falgs
  112. flag = 1;
  113. flag3min = 0;
  114. count = 0;
  115. lastTime2 = millis();
  116. }
  117. else {
  118. if (count > 10 && flag == 1) {
  119. if (flag3min == 0) {
  120. //Serial.println("10 seconds Timer Started !!");
  121. flag3min = 1;
  122. }
  123. currentTime = millis();
  124. if (currentTime - lastTime2 > 10000) {
  125. lastTime2 = millis();
  126.  
  127. // Push Garage Button for 200mS then release
  128. digitalWrite(relayPin, HIGH);
  129. delay(200);
  130. digitalWrite(relayPin, LOW);
  131.  
  132. // Reset Flags
  133. count = 0;
  134. flag = 0;
  135. flag3min = 0;
  136. }
  137. }
  138. count++;
  139. }
  140. }
  141. inputString = "";
  142. }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement