3.3V = 3V GND = G RST = D1 SDA = D2 MOSI = D7 MISO = D6 SCK = D5 GND = G VCC = 3V IN = D0 =========================================================== #include #include #define SS_PIN 4 // ESP32 pin #define RST_PIN 5 // ESP32 pin #define RELAY_PIN 16 // ESP32 pin connects to relay MFRC522 rfid(SS_PIN, RST_PIN); byte authorizedUID1[4] = {0x73, 0x1B, 0xE6, 0x11}; byte authorizedUID2[4] = {0x83, 0xF6, 0x11, 0x0C}; int kondisi; void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, HIGH); // deactivate the relay Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader"); int kondisi = 0; } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); if (rfid.uid.uidByte[0] == authorizedUID1[0] && rfid.uid.uidByte[1] == authorizedUID1[1] && rfid.uid.uidByte[2] == authorizedUID1[2] && rfid.uid.uidByte[3] == authorizedUID1[3] && kondisi == 0 ) { Serial.println("ON ID 1"); digitalWrite(RELAY_PIN, LOW); // activate the relay for 2 seconds kondisi = 1; } else if (rfid.uid.uidByte[0] == authorizedUID2[0] && rfid.uid.uidByte[1] == authorizedUID2[1] && rfid.uid.uidByte[2] == authorizedUID2[2] && rfid.uid.uidByte[3] == authorizedUID2[3] && kondisi == 0 ) { Serial.println("ON ID 2"); digitalWrite(RELAY_PIN, LOW); // activate the relay for 2 seconds kondisi = 1; } else if (rfid.uid.uidByte[0] == authorizedUID1[0] && rfid.uid.uidByte[1] == authorizedUID1[1] && rfid.uid.uidByte[2] == authorizedUID1[2] && rfid.uid.uidByte[3] == authorizedUID1[3] && kondisi == 1 ) { Serial.println("OF ID 1"); digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 seconds kondisi = 0; } else if (rfid.uid.uidByte[0] == authorizedUID2[0] && rfid.uid.uidByte[1] == authorizedUID2[1] && rfid.uid.uidByte[2] == authorizedUID2[2] && rfid.uid.uidByte[3] == authorizedUID2[3] && kondisi == 1 ) { Serial.println("OF ID 2"); digitalWrite(RELAY_PIN, HIGH); // activate the relay for 2 seconds kondisi = 0; } else { Serial.print("Unauthorized Tag with UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); } rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }