認識RFID

RFID 是英文「Radio Frequency IDentification」的縮寫,中文稱為「無線射頻識別系統」,它是一種可以讀取與寫入 RFID 標籤、卡片內資料的非接觸式自動識別系統。 

RFID是什麼?

在這段影片中簡要概述無線射頻辨識 (RFID) 技術,解釋了 RFID 的工作原理、你會知道這個技術中有三大區塊(標籤、閱讀器及程式),也會認識不同類型的 RFID 標籤和閱讀器,以及 RFID 在物流、洗衣和醫療保健等行業中的一些常見應用。

雖然講英文,但大家應該可以看得懂的~

RFID一開始是軍事技術,為了分辨空中軍機是我方或敵方的以避免誤擊。隨著技術的發展,RFID 的應用已廣泛出現在你我的日常生活中 ,其實說穿了它就是可以用比較便利的方式來傳送資料,和我們常見的條碼一樣也是一種標籤技術,大家比較常見並且理解的就是在圖書館使用的「條碼機」,當你借還書時,志工媽媽手上拿著一台發紅光的機器,對著你的書上的一個寬細黑線組成的圖(條碼)掃一下,就完成了借還書,感覺很神奇,那個條碼圖只是代表一串文字及數字,條碼機負責辨識它,然後傳給電腦…,有個差別是條碼掃描一次只能對準一個,RFID只要靠近就行,是比較便利的

用EXCEL來產生條碼

上頭提到了圖書的條碼,我們就來看一下它是如何產生的,從這段介紹影片中,你可以學會自己來玩玩,原來條碼(Barcode)是一種字型,它是用來表示一串簡單的文字或數字的。

我們可以很有技術性地說→把字變成圖案條碼的過程叫做編碼,而條碼機掃了條碼後→把圖又還原成原本的字串做解碼,一切操作都只是為了生活上的便利及快速,省去人工重覆輸入的時間

RFID在生活上的運用

其實大家生活中都在用了,只是讓各位知道原理,就不會以為是法術了!這段影片介紹中還提到一個名詞NFC(近場通訊),其實都是同樣的技術,科技不斷地進步,目的是帶給人們更多的便利,本來得接觸才能得到資料,有了RFID技術後,變成隔空也可以…

※當然大家要了解:水能載舟亦能覆舟,方便是方便,另一方面卻也代表著隔空就可以竊取資料,所以重要的還是「人」

這個專題裡的RFID運用

當我發想(腦袋中先想像)使用一張RFID標籤卡片,在感應器上方接近一下,然後播放器就開始播放某一首音樂這件事,分解出幾個必須完成的要素→RFID感測器和卡片(使用M5STACK的元件),接到M5STACK CORE(你可以想像它是一台很小型的電腦),感測器通電後,它就不停地偵測,卡片一接近,它的物理動作很簡單:讀取卡號然後傳給CORE,所以我要在CORE中寫入可以取得卡號的程式,至於播音樂的部份,是另一個話題

讀取RFID卡號

一開始必須確認的事便是可以讀到RFID的號碼,否則一切不就是白搭,從這段測試影片中,可以看到我的程式碼可以運作,當卡片靠近讀取器時,M5STACK CORE的螢幕上會顯示出卡號,是以四組十六進位的數字來呈現,我在程式中同步轉成十進位顯示在下一行

這部份在我的專題研究中只是前段的一小部份,接下來就可以研究如何在程式中「比對卡號」

/*

Arduino程式碼

Please connect to Port A(22、21),Use the RFID Unit to read the Fudan card ID

and display the ID on the screen. RFID偵測連接端口A(22、21),使用RFID Unit讀取卡片並在螢幕上顯示

*/

#include <M5Stack.h>

#include "MFRC522_I2C.h"

MFRC522 mfrc522(0x28);  // Create MFRC522 instance.  

void setup() {

    M5.begin();             // Init M5Stack.  

    M5.Power.begin();       // Init power  

    M5.lcd.setTextSize(2);  // Set the text size to 2.  

    M5.Lcd.println("MFRC522 Test");

    Wire.begin();  // Wire init, adding the I2C bus.  

    mfrc522.PCD_Init();  // Init MFRC522.  初始化 MFRC522

    M5.Lcd.println("Please put the card\n\nUID:");

}

void loop() {

    M5.Lcd.setCursor(40, 47);

    if (!mfrc522.PICC_IsNewCardPresent() ||

        !mfrc522.PICC_ReadCardSerial()) {  //如果没有讀到新的卡片

        delay(200);

        return;

    }

    M5.Lcd.fillRect(42, 47, 320, 20, BLACK);

    for (byte i = 0; i < mfrc522.uid.size;

         i++) {  // Output the stored UID data.  

        M5.Lcd.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");

        M5.Lcd.println(mfrc522.uid.uidByte[i], HEX);

        M5.Lcd.println(mfrc522.uid.uidByte[i], DEX);

    }

    M5.Lcd.println("");

}

參考資料

←回RFID音樂播放器               →下一章節:音響系統