Hallo zusammen,
ich würde gerne Namen, welche ich auf diverse RFID Karten geschrieben habe über den folgenden Code auslesen. Das auslesen funktioniert, jedoch möchte ich diesen Namen als char an einen MQTT Broker senden, was leider nicht funktioniert.
Kann mir hierzu jemand helfen?
//Warte, bis RFID-Tag erkannt wird & gelesen wurde.
while (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()); {
Serial.println("Tag erkannt!");
Serial.print(F("Name: "));
byte buffer1[18];
block = 4;
len = 18;
//------------------------------------------- GET FIRST NAME
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 4, &key, &(mfrc522.uid)); //line 834 of MFRC522.cpp file
if (status != MFRC522::STATUS_OK) {
Serial.print(F("Authentication failed: "));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
status = mfrc522.MIFARE_Read(block, buffer1, &len);
if (status != MFRC522::STATUS_OK) {
Serial.print(F("Reading failed: "));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
//PRINT FIRST NAME
for (uint8_t i = 0; i < 16; i++)
{
if (buffer1[i] != 32)
{
Serial.write(buffer1[i]);
**// client.publish("Anwesenheit", buffer1[i]);**
}
}
Serial.print(" "); //Abstand zwischen Vor und Nachname.
//---------------------------------------- GET LAST NAME
byte buffer2[18];
block = 1;
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 1, &key, &(mfrc522.uid)); //line 834
if (status != MFRC522::STATUS_OK) {
Serial.print(F("Authentication failed: "));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
status = mfrc522.MIFARE_Read(block, buffer2, &len);
if (status != MFRC522::STATUS_OK) {
Serial.print(F("Reading failed: "));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
//PRINT LAST NAME
for (uint8_t i = 0; i < 16; i++) {
Serial.write(buffer2[i] );
**// client.publish("Anwesenheit", buffer2[i]);**
}
//----------------------------------------
Serial.println(F("\nKarte wurde gelesen!\n"));
delay(1000); //change value if you want to read cards faster