Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ESP32 RC522[RFID Reader]
- 18 SCK
- 19 MISO
- 21 SS/SDA
- 22 RST
- 23 MOSI
- ESP32 Relay
- 32 S
- ESP32 doorSensor
- 33 S
- RED
- GREEN
- BLUE
- */
- #include <SPI.h>
- #include <WiFi.h>
- #include <MFRC522.h>
- #include <WiFiClient.h>
- #include <WebServer.h> //https://github.com/bbx10/WebServer_tng
- WebServer server ( 80 );
- const char* ssid = "AMF";
- const char* password = "123456789";
- #define SS_PIN 21
- #define RST_PIN 22
- #define relay_PIN 32
- #define doorSensor_PIN 33
- #define buzzer_PIN 5
- /*
- #define RED_PIN
- #define GREEN_PIN
- #define BLUE_PIN
- */
- int doorSensor_Value = 0;
- String relay_State = "CLOSED";
- String doorSensor_String = "CLOSED";
- MFRC522 mfrc522(SS_PIN, RST_PIN);
- void setup()
- {
- Serial.begin(9600);
- SPI.begin();
- mfrc522.PCD_Init();
- pinMode(relay_PIN, OUTPUT);
- pinMode(buzzer_PIN, OUTPUT);
- pinMode(doorSensor_PIN, INPUT);
- digitalWrite(relay_PIN, LOW);
- digitalWrite(buzzer_PIN, LOW);
- connectToWifi();
- beginServer();
- }
- void loop() {
- server.handleClient();
- getSensorValue();
- if ( ! mfrc522.PICC_IsNewCardPresent()) {
- return;
- }
- if ( ! mfrc522.PICC_ReadCardSerial() ) {
- return;
- }
- String content = "";
- byte letter;
- for (byte i = 0; i < mfrc522.uid.size; i++) {
- Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
- Serial.print(mfrc522.uid.uidByte[i], HEX);
- content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
- content.concat(String(mfrc522.uid.uidByte[i], HEX));
- }
- Serial.println();
- content.toUpperCase();
- digitalWrite(buzzer_PIN, HIGH);
- delay(200);
- digitalWrite(buzzer_PIN, LOW);
- if (content.substring(1) == "24 88 78 89"){ // F4 F9 4F 83
- // Open Door: Solienoid
- digitalWrite(relay_PIN, HIGH);
- delay(2000);
- digitalWrite(relay_PIN, LOW);
- }
- else
- {
- // Close Door: Solienoid
- digitalWrite(relay_PIN, LOW);
- }
- delay(100);
- }// end of LOOP
- void connectToWifi()
- {
- WiFi.enableSTA(true);
- delay(2000);
- WiFi.begin(ssid, password);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println("");
- Serial.println("WiFi connected");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP());
- }
- void beginServer()
- {
- server.on ( "/", handleRoot );
- server.begin();
- Serial.println ( "HTTP server started" );
- }
- void handleRoot() {
- if ( server.hasArg("DOOR") ) {
- handleSubmit();
- } else {
- server.send ( 200, "text/html", getPage() );
- }
- }
- void getSensorValue()
- {
- doorSensor_Value = digitalRead(doorSensor_PIN);
- if (doorSensor_Value == 1) {// 1 = 3.3V
- doorSensor_String = "CLOSED";
- }
- else {
- doorSensor_String = "OPEN";
- }
- }
- void handleSubmit() {
- String DOORValue;
- DOORValue = server.arg("DOOR");
- Serial.println("Set GPIO ");
- Serial.print(DOORValue);
- if ( DOORValue == "1" ) {
- digitalWrite(relay_PIN, HIGH);
- relay_State = "OPEN";
- server.send ( 200, "text/html", getPage() );
- delay(2000);
- digitalWrite(relay_PIN, LOW);
- }
- else if ( DOORValue == "0" )
- {
- digitalWrite(relay_PIN, LOW);
- relay_State = "CLOSED";
- server.send ( 200, "text/html", getPage() );
- } else
- {
- Serial.println("Error DOOR Value");
- }
- }
- String getPage() {
- String page = "<html lang=en-EN><head><meta http-equiv='refresh' content='3'/>";
- page += "<title>Door Control WebServer</title>";
- page += "<style> body { background-color: #fffff; font-family: Arial, Helvetica, Sans-Serif; Color: #000000; }div.a {font-size: 220%;}</style>";
- page += "</head><body><div class='a'><h1>Door Control WebServer</h1>";
- page += "<h3>Door Sensor Status:</h3>";
- page += "<ul><li>";
- page += doorSensor_String;
- page += "</li></ul>";
- page += "<h3>Control Door:</h3>";
- page += "<form action='/' method='POST'>";
- page += "<p>";
- page += "<INPUT type='radio' name='DOOR' value='1'>Open";
- page += "<INPUT type='radio' name='DOOR' value='0'>Close</p>";
- page += "<INPUT type='submit' value='Send'>";
- page += "</div></body></html>";
- return page;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement