Advertisement
safwan092

Untitled

Mar 20th, 2022
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.18 KB | None | 0 0
  1. /*
  2. ESP32 RC522[RFID Reader]
  3. 18 SCK
  4. 19 MISO
  5. 21 SS/SDA
  6. 22 RST
  7. 23 MOSI
  8.  
  9. ESP32 Relay
  10. 32 S
  11.  
  12. ESP32 doorSensor
  13. 33 S
  14.  
  15. RED
  16. GREEN
  17. BLUE
  18. */
  19.  
  20. #include <SPI.h>
  21. #include <WiFi.h>
  22. #include <MFRC522.h>
  23. #include <WiFiClient.h>
  24. #include <WebServer.h> //https://github.com/bbx10/WebServer_tng
  25.  
  26. WebServer server ( 80 );
  27.  
  28. const char* ssid = "AMF";
  29. const char* password = "123456789";
  30.  
  31. #define SS_PIN 21
  32. #define RST_PIN 22
  33. #define relay_PIN 32
  34. #define doorSensor_PIN 33
  35. #define buzzer_PIN 5
  36. /*
  37. #define RED_PIN
  38. #define GREEN_PIN
  39. #define BLUE_PIN
  40. */
  41.  
  42. int doorSensor_Value = 0;
  43. String relay_State = "CLOSED";
  44. String doorSensor_String = "CLOSED";
  45.  
  46. MFRC522 mfrc522(SS_PIN, RST_PIN);
  47.  
  48. void setup()
  49. {
  50. Serial.begin(9600);
  51. SPI.begin();
  52. mfrc522.PCD_Init();
  53. pinMode(relay_PIN, OUTPUT);
  54. pinMode(buzzer_PIN, OUTPUT);
  55. pinMode(doorSensor_PIN, INPUT);
  56. digitalWrite(relay_PIN, LOW);
  57. digitalWrite(buzzer_PIN, LOW);
  58. connectToWifi();
  59. beginServer();
  60. }
  61.  
  62. void loop() {
  63.  
  64. server.handleClient();
  65. getSensorValue();
  66.  
  67. if ( ! mfrc522.PICC_IsNewCardPresent()) {
  68. return;
  69. }
  70.  
  71. if ( ! mfrc522.PICC_ReadCardSerial() ) {
  72. return;
  73. }
  74.  
  75. String content = "";
  76. byte letter;
  77. for (byte i = 0; i < mfrc522.uid.size; i++) {
  78. Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
  79. Serial.print(mfrc522.uid.uidByte[i], HEX);
  80. content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
  81. content.concat(String(mfrc522.uid.uidByte[i], HEX));
  82. }
  83. Serial.println();
  84. content.toUpperCase();
  85. digitalWrite(buzzer_PIN, HIGH);
  86. delay(200);
  87. digitalWrite(buzzer_PIN, LOW);
  88. if (content.substring(1) == "24 88 78 89"){ // F4 F9 4F 83
  89. // Open Door: Solienoid
  90. digitalWrite(relay_PIN, HIGH);
  91. delay(2000);
  92. digitalWrite(relay_PIN, LOW);
  93. }
  94. else
  95. {
  96. // Close Door: Solienoid
  97. digitalWrite(relay_PIN, LOW);
  98. }
  99.  
  100. delay(100);
  101.  
  102. }// end of LOOP
  103.  
  104. void connectToWifi()
  105. {
  106. WiFi.enableSTA(true);
  107. delay(2000);
  108. WiFi.begin(ssid, password);
  109. while (WiFi.status() != WL_CONNECTED) {
  110. delay(500);
  111. Serial.print(".");
  112. }
  113. Serial.println("");
  114. Serial.println("WiFi connected");
  115. Serial.println("IP address: ");
  116. Serial.println(WiFi.localIP());
  117. }
  118.  
  119. void beginServer()
  120. {
  121. server.on ( "/", handleRoot );
  122. server.begin();
  123. Serial.println ( "HTTP server started" );
  124. }
  125.  
  126. void handleRoot() {
  127. if ( server.hasArg("DOOR") ) {
  128. handleSubmit();
  129. } else {
  130. server.send ( 200, "text/html", getPage() );
  131. }
  132. }
  133.  
  134.  
  135.  
  136. void getSensorValue()
  137. {
  138. doorSensor_Value = digitalRead(doorSensor_PIN);
  139. if (doorSensor_Value == 1) {// 1 = 3.3V
  140. doorSensor_String = "CLOSED";
  141. }
  142. else {
  143. doorSensor_String = "OPEN";
  144. }
  145. }
  146.  
  147.  
  148. void handleSubmit() {
  149.  
  150. String DOORValue;
  151. DOORValue = server.arg("DOOR");
  152. Serial.println("Set GPIO ");
  153. Serial.print(DOORValue);
  154.  
  155. if ( DOORValue == "1" ) {
  156. digitalWrite(relay_PIN, HIGH);
  157. relay_State = "OPEN";
  158. server.send ( 200, "text/html", getPage() );
  159. delay(2000);
  160. digitalWrite(relay_PIN, LOW);
  161. }
  162. else if ( DOORValue == "0" )
  163. {
  164. digitalWrite(relay_PIN, LOW);
  165. relay_State = "CLOSED";
  166. server.send ( 200, "text/html", getPage() );
  167. } else
  168. {
  169. Serial.println("Error DOOR Value");
  170. }
  171. }
  172.  
  173. String getPage() {
  174. String page = "<html lang=en-EN><head><meta http-equiv='refresh' content='3'/>";
  175. page += "<title>Door Control WebServer</title>";
  176. page += "<style> body { background-color: #fffff; font-family: Arial, Helvetica, Sans-Serif; Color: #000000; }div.a {font-size: 220%;}</style>";
  177. page += "</head><body><div class='a'><h1>Door Control WebServer</h1>";
  178. page += "<h3>Door Sensor Status:</h3>";
  179. page += "<ul><li>";
  180. page += doorSensor_String;
  181. page += "</li></ul>";
  182. page += "<h3>Control Door:</h3>";
  183. page += "<form action='/' method='POST'>";
  184. page += "<p>";
  185. page += "<INPUT type='radio' name='DOOR' value='1'>Open";
  186. page += "<INPUT type='radio' name='DOOR' value='0'>Close</p>";
  187. page += "<INPUT type='submit' value='Send'>";
  188. page += "</div></body></html>";
  189. return page;
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement