【问题标题】:Card Details on OLED Display using RFID - Arduino Uno使用 RFID 的 OLED 显示屏上的卡片详细信息 - Arduino Uno
【发布时间】:2019-04-21 10:49:47
【问题描述】:

我还在学习中,如果这个问题的答案很明显,请原谅我。我正在使用 Arduino Uno 和 RC522 RFID 读卡器。我的目标是在读卡器上扫描一张卡片,并让 I2C OLED 显示屏向我显示扫描卡片的人的姓名。这是我正在使用的程序的代码 -

#include <U8glib.h>
#include <LiquidCrystal.h>
#include <RFID.h>
#include <SPI.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN); 
int serNum[5];
String cardno;
int interval = 15000; // millisec 
long now = 0;
long lasttime = millis();

// change Reader ID to your name 
String readerID = "CCE3050";

void setup() { 
  Serial.begin(9600); 
  SPI.begin(); 
  rfid.init();
}

void loop() {
  now = millis();
  if (now > lasttime + interval) {
    lasttime = now; 
    Serial.print(readerID); 
    Serial.print(":"); 
    Serial.println("I am alive");
  }

  if (rfid.isCard()) {
    if (rfid.readCardSerial()) { 
      lasttime = now;

      cardno = String(rfid.serNum[0]) +
               String(rfid.serNum[1]) +
               String(rfid.serNum[2]) + 
               String(rfid.serNum[3]) + 
               String(rfid.serNum[4]);
      
      Serial.print(readerID); 
      Serial.print(":"); 
      Serial.println(cardno);
    } 
  }

  delay(5000); 
}

到目前为止,每次标记卡时,卡号都会显示在串行监视器上。但是,我想为卡分配一个名称,并在将卡标记到读卡器上时在 OLED 上显示该名称。有没有办法做到这一点?

【问题讨论】:

    标签: arduino arduino-uno rfid


    【解决方案1】:

    我建议创建一个struct 来保存一个 id 及其关联的名称。

    typedef struct { 
      String id; 
      String name; 
    } User;
    

    创建一个数组来保存结构的多个实例。

    User users[MAX_USER_NUM];    // define the size
    
    User user1 = {"123", "A"};   // {"id", "name"}
    users[0] = user1;
    
    User user2 = {"234", "B"};
    users[1] = user2;
    
    User user3 = {"345", "C"};
    users[2] = user3;
    

    然后您可以通过将 id 传递给这样的函数来检索用户名。

    String lookup(String id) {
      for (int i = 0; i < MAX_USER_NUM; i++) {
        if (users[i].id == id) {
          return users[i].name;
        }
      }
      return "";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 2019-01-06
      • 2018-11-23
      相关资源
      最近更新 更多