safwan092

Untitled

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