乐鑫技术交流
直播中

刘伟

7年用户 1663经验值
私信 关注
[问答]

有没有人让ESPduino与RC522 RFID读写器一起工作?

有没有人让 ESPduino 与 RC522 RFID 读写器一起工作?我不知道是我的引脚连接不正确还是我的代码有问题,真的需要一些帮助。如果你之前已经让它工作了,如果你可以发布你的引脚连接和一些可能非常有用的基本代码。
谢谢

回帖(1)

洒下墨色

2023-10-11 09:53:03
可以提供一些基本的代码示例来启示您的操作。

在使用ESPduino与RC522 RFID读写器时,您需要使用MFRC522库进行通信。此外,您需要确定使用哪些引脚来连接RC522读写器。如果您使用的是ESP8266板,则该板具有一个SPI接口,其中包含MISO、MOSI和SCK引脚,如果您使用的是ESP32,则具有两个SPI接口可供使用。根据您的使用情况,您可以在代码中定义SPI引脚:

```
#include

#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance
```

在设置SPI引脚后,您可以通过以下方式初始化读写器:

```
void setup()
{
  Serial.begin(9600);   // Initialize serial communications with PC
  SPI.begin();          // Initialize SPI bus
  mfrc522.PCD_Init();    // Initialize MFRC522 card reader
}
```

在初始化之后,您可以扫描卡片并读取其UID:

```
void loop()
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }
  // Show UID on serial monitor
  Serial.print("UID tag :");
  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();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "AD 04 12 97") {
    Serial.println("Access granted");
    delay(3000);
  }
else {
    Serial.println("Access denied");
    delay(3000);
}
}
```

这是一个简单的例子,可以读取卡片的UID,并在串行监视器中打印UID。您可以通过添加适当的条件语句来控制RFID读写器的行为。如果您遇到任何问题,请确保连接正确并查看MFRC522库的文档。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分