#include #include #include #include #define BUF_LEN 128 #define SS_PIN 34 // ESP32 pin GIOP5 #define RST_PIN 40 // ESP32 pin GIOP27 MFRC522 rfid(SS_PIN, RST_PIN); const char* wifi_ssid = "WiFi-2.4-F8D8"; const char* wifi_password = "Y11PuvsFc72U"; const char* mqtt_server = "192.168.1.20"; WiFiClient espClient; PubSubClient client(espClient); int count_sleep = 0; char mqtt_buffer[BUF_LEN]; void setup() { Serial.begin(115200); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 WiFi.mode(WIFI_STA); WiFi.begin(wifi_ssid, wifi_password); Serial.print("Connecting to WiFi.."); while (WiFi.status() != WL_CONNECTED) { Serial.print('.'); delay(1000); } Serial.println(""); Serial.println(WiFi.localIP()); client.setServer(mqtt_server, 1883); client.connect("esp32"); Serial.println("Tap an RFID/NFC tag on the RFID-RC522 reader"); } void loop() { char* ptr_buffer; if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed ptr_buffer = mqtt_buffer; for (int i = 0; i < rfid.uid.size; i++) { sprintf(ptr_buffer, "%02X", rfid.uid.uidByte[i]); ptr_buffer += 2; } *ptr_buffer = '\0'; // null terminator Serial.print("RFID: "); Serial.println(mqtt_buffer); client.publish("RFID", mqtt_buffer); rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } delay(1); count_sleep++; if (count_sleep == 50) { client.publish("esp32", "still connected"); count_sleep = 0; } }