認識RFID
RFID 是英文「Radio Frequency IDentification」的縮寫,中文稱為「無線射頻識別系統」,它是一種可以讀取與寫入 RFID 標籤、卡片內資料的非接觸式自動識別系統。
RFID 是英文「Radio Frequency IDentification」的縮寫,中文稱為「無線射頻識別系統」,它是一種可以讀取與寫入 RFID 標籤、卡片內資料的非接觸式自動識別系統。
RFID是什麼?
RFID是什麼?
在這段影片中簡要概述無線射頻辨識 (RFID) 技術,解釋了 RFID 的工作原理、你會知道這個技術中有三大區塊(標籤、閱讀器及程式),也會認識不同類型的 RFID 標籤和閱讀器,以及 RFID 在物流、洗衣和醫療保健等行業中的一些常見應用。
在這段影片中簡要概述無線射頻辨識 (RFID) 技術,解釋了 RFID 的工作原理、你會知道這個技術中有三大區塊(標籤、閱讀器及程式),也會認識不同類型的 RFID 標籤和閱讀器,以及 RFID 在物流、洗衣和醫療保健等行業中的一些常見應用。
雖然講英文,但大家應該可以看得懂的~
雖然講英文,但大家應該可以看得懂的~
RFID一開始是軍事技術,為了分辨空中軍機是我方或敵方的以避免誤擊。隨著技術的發展,RFID 的應用已廣泛出現在你我的日常生活中 ,其實說穿了它就是可以用比較便利的方式來傳送資料,和我們常見的條碼一樣也是一種標籤技術,大家比較常見並且理解的就是在圖書館使用的「條碼機」,當你借還書時,志工媽媽手上拿著一台發紅光的機器,對著你的書上的一個寬細黑線組成的圖(條碼)掃一下,就完成了借還書,感覺很神奇,那個條碼圖只是代表一串文字及數字,條碼機負責辨識它,然後傳給電腦…,有個差別是條碼掃描一次只能對準一個,RFID只要靠近就行,是比較便利的
RFID一開始是軍事技術,為了分辨空中軍機是我方或敵方的以避免誤擊。隨著技術的發展,RFID 的應用已廣泛出現在你我的日常生活中 ,其實說穿了它就是可以用比較便利的方式來傳送資料,和我們常見的條碼一樣也是一種標籤技術,大家比較常見並且理解的就是在圖書館使用的「條碼機」,當你借還書時,志工媽媽手上拿著一台發紅光的機器,對著你的書上的一個寬細黑線組成的圖(條碼)掃一下,就完成了借還書,感覺很神奇,那個條碼圖只是代表一串文字及數字,條碼機負責辨識它,然後傳給電腦…,有個差別是條碼掃描一次只能對準一個,RFID只要靠近就行,是比較便利的
用EXCEL來產生條碼
用EXCEL來產生條碼
上頭提到了圖書的條碼,我們就來看一下它是如何產生的,從這段介紹影片中,你可以學會自己來玩玩,原來條碼(Barcode)是一種字型,它是用來表示一串簡單的文字或數字的。
上頭提到了圖書的條碼,我們就來看一下它是如何產生的,從這段介紹影片中,你可以學會自己來玩玩,原來條碼(Barcode)是一種字型,它是用來表示一串簡單的文字或數字的。
我們可以很有技術性地說→把字變成圖案條碼的過程叫做編碼,而條碼機掃了條碼後→把圖又還原成原本的字串做解碼,一切操作都只是為了生活上的便利及快速,省去人工重覆輸入的時間
我們可以很有技術性地說→把字變成圖案條碼的過程叫做編碼,而條碼機掃了條碼後→把圖又還原成原本的字串做解碼,一切操作都只是為了生活上的便利及快速,省去人工重覆輸入的時間
RFID在生活上的運用
RFID在生活上的運用
其實大家生活中都在用了,只是讓各位知道原理,就不會以為是法術了!這段影片介紹中還提到一個名詞NFC(近場通訊),其實都是同樣的技術,科技不斷地進步,目的是帶給人們更多的便利,本來得接觸才能得到資料,有了RFID技術後,變成隔空也可以…
其實大家生活中都在用了,只是讓各位知道原理,就不會以為是法術了!這段影片介紹中還提到一個名詞NFC(近場通訊),其實都是同樣的技術,科技不斷地進步,目的是帶給人們更多的便利,本來得接觸才能得到資料,有了RFID技術後,變成隔空也可以…
※當然大家要了解:水能載舟亦能覆舟,方便是方便,另一方面卻也代表著隔空就可以竊取資料,所以重要的還是「人」
※當然大家要了解:水能載舟亦能覆舟,方便是方便,另一方面卻也代表著隔空就可以竊取資料,所以重要的還是「人」
這個專題裡的RFID運用
這個專題裡的RFID運用
當我發想(腦袋中先想像)使用一張RFID標籤卡片,在感應器上方接近一下,然後播放器就開始播放某一首音樂這件事,分解出幾個必須完成的要素→RFID感測器和卡片(使用M5STACK的元件),接到M5STACK CORE(你可以想像它是一台很小型的電腦),感測器通電後,它就不停地偵測,卡片一接近,它的物理動作很簡單:讀取卡號然後傳給CORE,所以我要在CORE中寫入可以取得卡號的程式,至於播音樂的部份,是另一個話題
當我發想(腦袋中先想像)使用一張RFID標籤卡片,在感應器上方接近一下,然後播放器就開始播放某一首音樂這件事,分解出幾個必須完成的要素→RFID感測器和卡片(使用M5STACK的元件),接到M5STACK CORE(你可以想像它是一台很小型的電腦),感測器通電後,它就不停地偵測,卡片一接近,它的物理動作很簡單:讀取卡號然後傳給CORE,所以我要在CORE中寫入可以取得卡號的程式,至於播音樂的部份,是另一個話題
讀取RFID卡號
讀取RFID卡號
一開始必須確認的事便是可以讀到RFID的號碼,否則一切不就是白搭,從這段測試影片中,可以看到我的程式碼可以運作,當卡片靠近讀取器時,M5STACK CORE的螢幕上會顯示出卡號,是以四組十六進位的數字來呈現,我在程式中同步轉成十進位顯示在下一行
一開始必須確認的事便是可以讀到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 <M5Stack.h>
#include "MFRC522_I2C.h"
#include "MFRC522_I2C.h"
MFRC522 mfrc522(0x28); // Create MFRC522 instance.
MFRC522 mfrc522(0x28); // Create MFRC522 instance.
void setup() {
void setup() {
M5.begin(); // Init M5Stack.
M5.begin(); // Init M5Stack.
M5.Power.begin(); // Init power
M5.Power.begin(); // Init power
M5.lcd.setTextSize(2); // Set the text size to 2.
M5.lcd.setTextSize(2); // Set the text size to 2.
M5.Lcd.println("MFRC522 Test");
M5.Lcd.println("MFRC522 Test");
Wire.begin(); // Wire init, adding the I2C bus.
Wire.begin(); // Wire init, adding the I2C bus.
mfrc522.PCD_Init(); // Init MFRC522. 初始化 MFRC522
mfrc522.PCD_Init(); // Init MFRC522. 初始化 MFRC522
M5.Lcd.println("Please put the card\n\nUID:");
M5.Lcd.println("Please put the card\n\nUID:");
}
}
void loop() {
void loop() {
M5.Lcd.setCursor(40, 47);
M5.Lcd.setCursor(40, 47);
if (!mfrc522.PICC_IsNewCardPresent() ||
if (!mfrc522.PICC_IsNewCardPresent() ||
!mfrc522.PICC_ReadCardSerial()) { //如果没有讀到新的卡片
!mfrc522.PICC_ReadCardSerial()) { //如果没有讀到新的卡片
delay(200);
delay(200);
return;
return;
}
}
M5.Lcd.fillRect(42, 47, 320, 20, BLACK);
M5.Lcd.fillRect(42, 47, 320, 20, BLACK);
for (byte i = 0; i < mfrc522.uid.size;
for (byte i = 0; i < mfrc522.uid.size;
i++) { // Output the stored UID data.
i++) { // Output the stored UID data.
M5.Lcd.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
M5.Lcd.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
M5.Lcd.println(mfrc522.uid.uidByte[i], HEX);
M5.Lcd.println(mfrc522.uid.uidByte[i], HEX);
M5.Lcd.println(mfrc522.uid.uidByte[i], DEX);
}
}
M5.Lcd.println("");
M5.Lcd.println("");
}
}
參考資料
參考資料