我們中的許多人都知道計(jì)算機(jī)是在 1871 年左右發(fā)明的,但直到 1961 年我們才對(duì)它們進(jìn)行密碼保護(hù)。在 19 年代早期,我們使用大頭針和字母數(shù)字字符作為計(jì)算機(jī)的密碼,今天我們有許多類型的驗(yàn)證方法,如密碼、大頭針、圖案、手勢(shì)、指紋識(shí)別、面部識(shí)別等等。但是,每次我在短暫休息后回到辦公室電腦時(shí),登錄到我的辦公室電腦仍然是一件痛苦的事。
因此,在這個(gè)項(xiàng)目中,我們將學(xué)習(xí)如何使用 RFID 標(biāo)簽解鎖 Windows 筆記本電腦。Arduino 板和 RFID 閱讀器將始終連接到計(jì)算機(jī)并解鎖系統(tǒng),我只需將 RFID 標(biāo)簽交換到 RFID 閱讀器上。有了這個(gè)Arduino RFID windows 登錄項(xiàng)目,我可以非??焖俚亟怄i系統(tǒng),而無需輸入任何密碼,后來我計(jì)劃使用我的辦公室身份證作為 RFID 標(biāo)簽,因?yàn)槲业纳矸葑C已經(jīng)有一個(gè) RFID 標(biāo)簽,我可以編程Arduino 來驗(yàn)證它。聽起來很有趣,所以讓我們開始吧……
所需材料:
Arduino UNO(可以使用任何 Arduino)
RC522 RFID閱讀器
射頻識(shí)別標(biāo)簽
連接線
USB電纜
RC522 RFID 模塊:
市場(chǎng)上有許多類型的 RFID 閱讀器,但在這個(gè)項(xiàng)目中,我們使用了基于 RC522 SPI 的 RFID 模塊。這在在線購(gòu)物網(wǎng)站上很便宜且很容易獲得。這是 RFID 具有 SPI、UART 和 I2C 接口,但默認(rèn)情況下,它帶有 SPI 接口。MFRC522 RFID 閱讀器模塊如下所示。
在這個(gè)項(xiàng)目中,上面顯示的RC522 RFID 模塊連接到 Arduino,而 Arduino 本身連接到計(jì)算機(jī)。當(dāng) RFID 標(biāo)簽放置在此閱讀器附近時(shí),Arduino 會(huì)讀取 rfid 標(biāo)簽 ID 號(hào)并將其發(fā)送到計(jì)算機(jī)。
電路原理圖:
下面給出了將RFID RC522 與 Arduino 接口的完整電路圖。
如您所見,連接非常簡(jiǎn)單。由于 RFID 模塊使用 SPI 通信,我們已將 MISO、MOSI、SCK 和 NSS 引腳連接到 Arduino Uno 板的 SPI 引腳。RFID 模塊由 Arduino 的 5V 引腳供電。Arduino UNO 本身將始終連接到筆記本電腦,因此我們可以通過筆記本電腦的 USB 端口為其供電。連接詳細(xì)信息如下表所示。
設(shè)置 RFID 解鎖系統(tǒng):
電路搭建完成后,如上圖所示,將 Arduino 和系統(tǒng)(筆記本電腦或 PC)之間的 USB 線連接起來?,F(xiàn)在用戶需要找到 Arduino 的 com 端口。要查找 com 端口,您可以使用設(shè)備管理器,也可以在 Arduino IDE 中找到它,如下所示。我這里的 COM 端口號(hào)是 1;您的可能會(huì)有所不同,請(qǐng)記下此 COM 端口號(hào),以便稍后使用。
現(xiàn)在用戶需要將RC522 Arduino 代碼上傳到您的 Arduino 模塊。本頁(yè)底部給出了完整的代碼;代碼的解釋也將在本文后面討論。代碼上傳后打開串口監(jiān)視器。然后將 RFID 標(biāo)簽放在 RFID 閱讀器上,您將在串行監(jiān)視器上看到 5 個(gè)值。用戶需要復(fù)制它并關(guān)閉串行監(jiān)視器。我的值顯示在下面的串行監(jiān)視器快照中。
解壓縮 ZIP 文件后,進(jìn)入名為 32 位或 64 位文件夾的文件夾(根據(jù)您的操作系統(tǒng))并打開名為 RFIDcredentials.txt 的記事本。粘貼 RFID 值并更新系統(tǒng)用戶名和密碼。如果要添加兩張卡,請(qǐng)?jiān)诘诙刑砑酉嗤膽{據(jù),如下所示。
然后保存并關(guān)閉此文件。現(xiàn)在回來打開 RFIDCredSettings 記事本并更新其中的 Arduino 端口,然后保存并關(guān)閉。我的 COM 端口號(hào)再次為 1,用您的 COM 端口號(hào)更新它。將其余部分保留為默認(rèn)值,如下所示。
現(xiàn)在復(fù)制所有四個(gè)項(xiàng)目并將它們粘貼到 C:\Windows\System32。如果它要求任何許可,只需給予或單擊是?,F(xiàn)在運(yùn)行注冊(cè)文件來注冊(cè)更改。
當(dāng)您運(yùn)行注冊(cè)文件時(shí),您可能會(huì)看到以下對(duì)話框。
按是然后確定?,F(xiàn)在鎖定系統(tǒng),用戶將看到當(dāng)前用戶可用的另一個(gè)用戶選項(xiàng)。
現(xiàn)在用戶可以使用 RFID 卡解鎖系統(tǒng)。這意味著,現(xiàn)在我們不需要輸入密碼,只需將 RFID 標(biāo)簽放在 RFID 閱讀器上,窗戶就會(huì)立即解鎖。
RFID Arduino 代碼:
該項(xiàng)目的編碼部分簡(jiǎn)單易行;給出了相同的解釋。首先,我們需要包含頭文件并為 RFID RST_PIN 和 SS_PIN 定義引腳。如果您尚未安裝mfrc522 庫(kù),您可以從以下鏈接下載并添加它。
#include
#include#define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN,RST_PIN); MFRC522::MIFARE_KEY;
然后在 void setup 中,我們已經(jīng)初始化了串口和SPI 通信以及 RFID 閱讀器
無效設(shè)置() { 序列號(hào).開始(9600); 而(!串行); SPI.開始(); mfrc522.PCD_Init(); for(字節(jié) i = 0; i < 6; i++) Key.KeyByte[i] = 0xFF; serial.print('>'); }
現(xiàn)在在循環(huán)功能中,我們正在等待卡片。
無效循環(huán)() { 如果(!mfrc522.PICC_IsNewCardPresent()) 返回; 如果(!mfrc522.PICC_ReadCardSerial()) 返回; send_tag_val (mfrc522.uid.uidByte, mfrc522.uid.size); 延遲(1000); }
如果卡片發(fā)現(xiàn) send_tag_val 調(diào)用一個(gè) RFID 標(biāo)簽數(shù)據(jù),將使用串行打印將數(shù)據(jù)傳輸?shù)较到y(tǒng)。這個(gè)序列打印值將與我們之前放置的文件進(jìn)行比較,如果匹配,windows 將自行解鎖。
void send_tag_val (byte *buffer, byte buffersize) { 序列號(hào).print("ID"); 對(duì)于(字節(jié) i = 0;i < 緩沖區(qū)大小;i++) { serial.print(緩沖區(qū) [i],DEC); 序列號(hào).print(""); } serial.printIn(0, DEC); serial.print('>'); }
#include
#include
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN,RST_PIN);
MFRC522::MIFARE_Key 密鑰;
無效設(shè)置()
{
序列號(hào).開始(9600);
而(!串行);
SPI.開始();
mfrc522.PCD_Init();
對(duì)于(字節(jié) i = 0;i < 6;i++)
key.keyByte[i] = 0xFF;
Serial.print('>');
}
無效循環(huán)()
{
如果(!mfrc522.PICC_IsNewCardPresent())
返回;
如果(!mfrc522.PICC_ReadCardSerial())
返回;
send_tag_val(mfrc522.uid.uidByte, mfrc522.uid.size);
延遲(1000);
}
void send_tag_val(byte *buffer, byte bufferSize)
{
Serial.print("ID:");
對(duì)于(字節(jié) i = 0;i < 緩沖區(qū)大??;i++)
{
Serial.print(buffer[i], DEC);
序列號(hào).print("");
}
Serial.println(0, DEC);
Serial.print('>');
}
-
RFID
+關(guān)注
關(guān)注
388文章
6143瀏覽量
237760 -
WINDOWS
+關(guān)注
關(guān)注
3文章
3541瀏覽量
88628 -
Arduino
+關(guān)注
關(guān)注
188文章
6469瀏覽量
186958
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論