Skip to content

杰生的Blog

[ALC08] RFID-RC522 Funduino 實驗

Posted on 2024 年 8 月 25 日2024 年 9 月 4 日 By chantais000 在〈[ALC08] RFID-RC522 Funduino 實驗〉中尚無留言

近年來 RFID 的應用無所不在,日常應用的電梯鎖就是利用RFID的機制來完成感應式開鎖的功能

Jason Chin 2019/9/25

RFID(Radio Frequency IDentification) 是一種以 RF 無線電波辨識物件的自動辨識技術,利用讀取機讀取貼附或植入在物件上的電子標籤(Tag 或又稱 Transponder)

市面上可以在電料行買到的是如下圖的 RFID 模組, RFID-RC522 讀取器上的 IC 是採用 NXP 的 RC522 , 那麼Jason 就以這個型號來進行實作測試

套件中總共有三個元件,一為讀取器電路板, 一個鑰匙扣,一張卡片

先到 Arduino 官網上去找有關 RFID 的 Library (rfid-master.zip)

將Library (rfid-master.zip)下載,並安裝到 Arduino 目錄中的 Libraries 子目錄中

硬體的接線方式,如下圖,由於 Jason 用的是 Arduion UNO,所以參考 UNO 那欄的接法即可

———————————————————————————————————-

 *           MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino

 *           Reader/PCD    Uno/101      Mega     Nano v3    Leonardo/Micro   Pro Micro

 * Signal      Pin           Pin           Pin       Pin        Pin              Pin

 * ——————————————————————————————————-

 * RST/Reset   RST           9             5         D9         RESET/ICSP-5     RST

 * SPI SS       SDA(SS)       10           53        D10        10                10

 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4            16

 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1            14

 * SPI SCK     SCK           13 / ICSP-3   52        D13        ICSP-3            15

如下是詳細的程式

/*

 * ———————————————————————————————————

 * Example sketch/program showing how to read data from a PICC to serial.

 * ———————————————————————————————————

 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid

 *

 * Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID

 * Reader on the Arduino SPI interface.

 *

 * When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE

 * then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When

 * you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output

 * will show the ID/UID, type and any data blocks it can read. Note: you may see “Timeout in communication” messages

 * when removing the PICC from reading distance too early.

 *

 * If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading).

 * So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all

 * details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so

 * keep the PICCs at reading distance until complete.

 *

 * @license Released into the public domain.

 *

 * Typical pin layout used:

 * —————————————————————————————–

 *             MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino

 *             Reader/PCD   Uno/101       Mega      Nano v3    Leonardo/Micro   Pro Micro

 * Signal      Pin          Pin           Pin       Pin        Pin              Pin

 * —————————————————————————————–

 * RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST

 * SPI SS      SDA(SS)      10            53        D10        10               10

 * SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16

 * SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14

 * SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15

 */

#include <SPI.h>

#include <MFRC522.h>

#define RST_PIN         9          // Configurable, see typical pin layout above

#define SS_PIN          10         // Configurable, see typical pin layout above

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

void setup() {

        Serial.begin(9600);         // Initialize serial communications with the PC

        while (!Serial);        // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)

        SPI.begin();                      // Init SPI bus

        mfrc522.PCD_Init();                // Init MFRC522

        mfrc522.PCD_DumpVersionToSerial();  // Show details of PCD – MFRC522 Card Reader details

        Serial.println(F(“Scan PICC to see UID, SAK, type, and data blocks…”));

}

void loop() {

        // Look for new cards

        if ( ! mfrc522.PICC_IsNewCardPresent()) {

                return;

        }

        // Select one of the cards

        if ( ! mfrc522.PICC_ReadCardSerial()) {

                return;

        }

        // Dump debug info about the card; PICC_HaltA() is automatically called

        mfrc522.PICC_DumpToSerial(&(mfrc522.uid));

}

如下是執行的結果,經過實測,鑰匙扣型的大約在接近讀取器3cm 距離內,卡片在5cm 距離內,才可被讀取良好,經由 monitor 畫面如下:

以下是實作的相片,供讀者參考,謝謝

文章pdf檔歡迎下載

Arduino

文章導覽

Previous Post: [ALC07] UltraSonic (HC-SR04) 超音波模組實作
Next Post: [ALC09]Arduino LCD Keypad Shield

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

近期文章

  • [RLC06]Raspberry-Pi WIFI network card settings
  • [RLC05]Raspberry Pi Samba Setting
  • [RLC04]Raspberry Pi Chinese Setting
  • [RLC03]Raspberry Pi Serial RS232 實作
  • [RLC02]Raspberry Pi Sound Setting

近期留言

尚無留言可供顯示。

Copyright © 2025 杰生的Blog.

Powered by PressBook WordPress theme