一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

別再用鑰匙啦!樹莓派Pico教你用RFID“刷”門禁~

上海晶珩電子科技有限公司 ? 2025-04-23 16:03 ? 次閱讀

619ac6bc-2019-11f0-9434-92fbcf53809c.jpg

RFID卡和標(biāo)簽無處不在!我們在建筑物中使用它們進(jìn)行門禁控制。打印機和復(fù)印機可以使用它們來識別員工。牲畜標(biāo)記和寵物識別標(biāo)簽也都使用某種形式的RFID技術(shù)。RFID讀取設(shè)備的成本非常低,大約5美元即可獲得讀卡器,再搭配4美元的樹莓派Pico,即可讀取卡片/標(biāo)簽的ID信息。

在本教程中,我們將學(xué)習(xí)如何使用MFRC522讀卡器和樹莓派Pico讀取RFID標(biāo)簽和卡片。目標(biāo)是創(chuàng)建一個虛構(gòu)的RFID門禁控制系統(tǒng),該系統(tǒng)允許用戶進(jìn)入建筑物,或提醒安保人員將其移除。在開始之前,我們需要識別卡片/標(biāo)簽的ID。本教程的第一部分將介紹如何完成這一操作,然后我們將插入一些代碼來控制兩個LED燈以模擬鎖定機制。

所需材料

運行MicroPython的樹莓派Pico

MFRC522 RFID讀卡器

大型面包板

11根公對公跳線

綠色LED燈

紅色LED燈

2個100歐姆電阻(棕-黑-棕-金)

硬件搭建

61c14328-2019-11f0-9434-92fbcf53809c.jpg

硬件搭建分為兩個部分。首先是MFRC522 RFID讀卡器的接線。讀卡器使用SPI與樹莓派Pico通信,需要七個引腳。其中兩個用于供電(3.3V和GND),其余用于SPI。

61e45a0c-2019-11f0-9434-92fbcf53809c.png61fa41c8-2019-11f0-9434-92fbcf53809c.jpg第二部分是我們的輸出設(shè)備。為了確認(rèn)是否出示了正確的卡片,我們需要添加兩個LED燈。紅色表示錯誤的RFID卡,綠色表示正確的卡。LED燈連接到一個GPIO引腳,我們通過控制該引腳來打開或關(guān)閉LED燈,并通過一個100歐姆電阻連接到任意可用的GND引腳。您可以使用220或330歐姆的電阻,我桌上剛好有一些100歐姆的電阻。需要計算正確的電阻值嗎?我們?yōu)槟鷾?zhǔn)備了指南!

6210f5da-2019-11f0-9434-92fbcf53809c.png6227006e-2019-11f0-9434-92fbcf53809c.jpg

在繼續(xù)之前,請檢查您的接線是否正確。

安裝RFID讀卡器軟件

MFRC522是一個簡單的RFID讀卡器,為了使其更易于使用,我們使用了一個MicroPython模塊來簡化操作。該模塊pico-rfid由Tom's Hardware的朋友Kevin McAleer開發(fā),基于Danjperron工作。

1.將樹莓派Pico連接到電腦,并打開Thonny。我們假設(shè)您已經(jīng)知道如何設(shè)置樹莓派Pico。如果沒有,我們有一份便捷的指南。

2.創(chuàng)建一個新的空白文件,并將此鏈接的內(nèi)容復(fù)制到空白文件中。然后將其保存到樹莓派Pico,文件名為mfrc522.py。這是使我們的代碼能夠與RFID讀卡器通信的Python模塊/庫。

編寫項目代碼

完成所有設(shè)置后,我們現(xiàn)在開始編寫項目代碼。為此,我們將再次使用Thonny,并編寫代碼來檢查提交給讀卡器的任何RFID卡的ID。對于第一部分,我們需要記錄ID,因為我們稍后將使用它進(jìn)行條件測試來檢查ID是否與硬編碼值匹配,然后允許進(jìn)入。否則,我們將收到“ACCESS DENIED”(訪問被拒絕)消息。

1.在Thonny中創(chuàng)建一個新的空白文件。

2.導(dǎo)入三個模塊(庫)以使用MFRC522 RFID讀卡器、控制代碼節(jié)奏以及使用GPIO。

frommfrc522importMFRC522importutimefrommachineimportPin

3.創(chuàng)建一個對象reader,以告訴代碼RFID讀卡器連接到哪里。

reader= MFRC522(spi_id=0,sck=2,miso=4,mosi=3,cs=1,rst=0)

4.為紅色和綠色LED燈創(chuàng)建兩個對象,告訴代碼LED燈連接到哪里,并且它們是我們要向其發(fā)送電流的輸出設(shè)備

red= Pin(14, Pin.OUT)green= Pin(15, Pin.OUT)

5. 向用戶顯示一條簡短消息,指示他們將卡片出示給讀卡器?!癨n”是Python在print()函數(shù)末尾引入新行的語法。

print("Present the card to the reader\n")

6. 創(chuàng)建一個名為“PreviousCard”的列表,并在其中存儲零值。我們稍后將使用此列表來存儲當(dāng)前卡片的ID。

PreviousCard= [0]

7. 創(chuàng)建一個while True循環(huán),以持續(xù)運行其中的代碼。

whileTrue:

8. 初始化讀卡器,使其準(zhǔn)備好使用。

reader.init()

9.創(chuàng)建一個元組來存儲讀卡器狀態(tài)和RFID標(biāo)簽類型。

(stat, tag_type) = reader.request(reader.REQIDL)

10. 如果讀卡器已準(zhǔn)備好,則if條件語句將讀取卡片內(nèi)容。然后,它將使用卡片的詳細(xì)信息更新stat和uid對象。

ifstat== reader.OK: (stat, uid) = reader.SelectTagSN()

11. 如果卡片的uid與PreviousCard對象中存儲的值相同,則代碼將繼續(xù)執(zhí)行。當(dāng)同一張卡片反復(fù)出示給讀卡器時,就會發(fā)生這種情況。

ifuid == PreviousCard: continue

12. 創(chuàng)建一個if條件語句來檢查卡片讀取是否成功。

ifstat== reader.OK:

13.向用戶顯示一條消息,然后將卡片的UID存儲到一個名為“card”的對象中。然后將卡片詳細(xì)信息打印到Python shell中。

print("The card details are as follows") card = reader.tohexstring(uid) print(card)

14.使用出示卡片的uid更新PreviousCard對象。

PreviousCard= uid

15.創(chuàng)建一個else條件,當(dāng)沒有出示卡片時運行。更新PreviousCard對象。然后在主循環(huán)重復(fù)之前添加50毫秒的暫停。

else: PreviousCard=[0] utime.sleep_ms(50)

16.將代碼保存到樹莓派Pico,文件名為reader.py,然后點擊“運行”>>“運行當(dāng)前腳本”(或按下綠色播放按鈕)。按照指示將RFID卡片/標(biāo)簽出示給讀卡器。

17.復(fù)制整個卡片詳細(xì)信息,這是RFID卡片的uid,我們將在本教程的下一部分中使用它。uid看起來像這樣,但您的會有所不同。

[0x04, 0xBC, 0xA0, 0x9A, 0xB3, 0x43, 0x80]

完整代碼列表

frommfrc522importMFRC522importutimefrommachineimportPinreader = MFRC522(spi_id=0,sck=2,miso=4,mosi=3,cs=1,rst=0)red = Pin(14, Pin.OUT)green = Pin(15, Pin.OUT)print("Present the card to the reader\n")PreviousCard = [0]whileTrue: reader.init() (stat, tag_type) = reader.request(reader.REQIDL) ifstat == reader.OK: (stat, uid) = reader.SelectTagSN() ifuid == PreviousCard: continue ifstat == reader.OK: print("The card details are as follows") card = reader.tohexstring(uid) print(card) PreviousCard = uid else: PreviousCard=[0] utime.sleep_ms(50)

18.我們已經(jīng)獲得了代碼,我們希望使用該代碼來授予訪問權(quán)限,并點亮綠色LED燈。如果將另一張卡片/標(biāo)簽出示給讀卡器,則紅色LED燈將點亮。

1.在這兩行之間,添加新的代碼行。

print(card)NEWCODE GOES HERE PreviousCard = uid

2.創(chuàng)建一個if條件,檢查您的卡片的uid。請注意,它看起來像一個Python列表,但實際上它存儲為字符串,因此我們需要將值用“”括起來。不要忘記[]括號。

ifcard =="[0x04, 0xBC, 0xA0, 0x9A, 0xB3, 0x43, 0x80]":

3.如果card對象中存儲的值與硬編碼值匹配,則在Python shell中打印“ACCESS GRANTED”(訪問已授予)。

print("ACCESS GRANTED")

4.創(chuàng)建一個for循環(huán),將綠色LED燈打開/關(guān)閉十次,每次狀態(tài)變化之間間隔0.1秒。在for循環(huán)結(jié)束時關(guān)閉綠色LED燈。

fori in range(10): green.toggle() utime.sleep(0.1) green.off()

5. 當(dāng)將未識別的卡片/標(biāo)簽出示給讀卡器時運行使用else條件語句。這將使紅色LED燈打開和關(guān)閉就像綠色LED燈一樣。

else: print("ACCESS DENIED") for i inrange(10): red.toggle() utime.sleep(0.1) red.off()

6 .將代碼命名為reader.py并保存到樹莓派Pico。點擊“運行”>>“運行當(dāng)前腳本”(或按下綠色播放按鈕)。按照指示將RFID卡片/標(biāo)簽出示給讀卡器。如果卡片正確,則綠色LED燈將閃爍,并且Python shell將打印“ACCESS GRANTED”。嘗試使用另一張RFID卡片/標(biāo)簽,這應(yīng)該會使紅色LED燈點亮,并且Python shell將打印“ACCESS DENIED”。

完整代碼列表

frommfrc522importMFRC522importutimefrommachineimportPinreader = MFRC522(spi_id=0,sck=2,miso=4,mosi=3,cs=1,rst=0)red = Pin(14, Pin.OUT)green = Pin(15, Pin.OUT)print("Present the card to the reader\n")PreviousCard = [0]whileTrue: reader.init() (stat, tag_type) = reader.request(reader.REQIDL) ifstat == reader.OK: (stat, uid) = reader.SelectTagSN() ifuid == PreviousCard: continue ifstat == reader.OK: print("The card details are as follows") card = reader.tohexstring(uid) print(card) ifcard =="[0x04, 0xBC, 0xA0, 0x9A, 0xB3, 0x43, 0x80]": print("ACCESS GRANTED") foriinrange(10): green.toggle() utime.sleep(0.1) green.off() else: print("ACCESS DENIED") foriinrange(10): red.toggle() utime.sleep(0.1) red.off() PreviousCard = uid else: PreviousCard=[0] utime.sleep_ms(50)

原文地址:

https://www.tomshardware.com/raspberry-pi/raspberry-pi-pico/how-to-use-an-rfid-reader-with-a-raspberry-pi-pico

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RFID
    +關(guān)注

    關(guān)注

    390

    文章

    6333

    瀏覽量

    240256
  • 讀卡器
    +關(guān)注

    關(guān)注

    2

    文章

    422

    瀏覽量

    39966
  • 樹莓派
    +關(guān)注

    關(guān)注

    120

    文章

    1906

    瀏覽量

    106697
收藏 人收藏

    評論

    相關(guān)推薦

    基于樹莓設(shè)計的RFID門禁系統(tǒng)

    本項目使用樹莓設(shè)計門禁或設(shè)備的訪問控制系統(tǒng),系統(tǒng)根據(jù)用戶列表檢查RFID標(biāo)簽,允許擁有授權(quán)RFID標(biāo)簽的指定成員進(jìn)入室內(nèi)。系統(tǒng)包括一個US
    的頭像 發(fā)表于 04-01 14:50 ?7136次閱讀
    基于<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>設(shè)計的<b class='flag-5'>RFID</b><b class='flag-5'>門禁</b>系統(tǒng)

    教你用樹莓截屏和截圖

    本帖最后由 348081236 于 2016-1-13 15:25 編輯 看貼的朋友們吱一聲,讓我知道我沒白打字。謝謝大家了。這個教程教你如何截取和查看樹莓截圖。Scrot
    發(fā)表于 01-13 15:22

    樹莓怎么制作門禁系統(tǒng)?

    現(xiàn)在實驗室門禁都是刷卡進(jìn)入,經(jīng)常忘記帶卡而進(jìn)不去,所以就用樹莓自己做了一個臉認(rèn)證的門禁
    發(fā)表于 09-11 11:52

    樹莓pico入門學(xué)習(xí)筆記(一)相關(guān)資料推薦

    樹莓pico入門學(xué)習(xí)筆記選擇自己熟悉的編程語言樹莓pico提供C/C++和micropyth
    發(fā)表于 07-01 09:28

    樹莓pico如何入門?

    樹莓pico如何入門?
    發(fā)表于 10-13 08:11

    樹莓Pico的相關(guān)資料分享

    關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 11-03 08:44

    樹莓Pico的相關(guān)資料推薦

    1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓體積更小,售價僅4
    發(fā)表于 02-07 07:37

    教你用熱像儀檢測鋰電池

    教你用熱像儀檢測鋰電池
    發(fā)表于 02-07 13:26 ?13次下載

    樹莓也出MCU了?樹莓Pico來了!

    關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 10-28 10:36 ?11次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>也出MCU了?<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>來了!

    樹莓Pico:僅4美元的MCU

    1月22日,樹莓基金會最新發(fā)布一款低成本、高性能的微控制器開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓體積更小,售價僅4
    發(fā)表于 12-04 13:06 ?13次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:僅4美元的MCU

    樹莓pico入門學(xué)習(xí)筆記(一)

    樹莓pico入門學(xué)習(xí)筆記選擇自己熟悉的編程語言樹莓pico提供C/C++和micropyth
    發(fā)表于 12-17 18:42 ?21次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入門學(xué)習(xí)筆記(一)

    距離檢測報警使用樹莓Pico

    電子發(fā)燒友網(wǎng)站提供《距離檢測報警使用樹莓Pico.zip》資料免費下載
    發(fā)表于 11-09 11:49 ?0次下載
    距離檢測報警使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    基于樹莓pico的可編程游戲手柄設(shè)計

    方案介紹組件12x12x7.3mm 瞬時觸覺按鈕按鈕樹莓Pico通用 D1286464 OLED 顯示屏操縱桿模塊 PS210 歐姆電阻?組裝將樹莓
    發(fā)表于 12-26 15:10 ?0次下載

    如何在樹莓Pico上使用紅外線接收模塊?

    樹莓 Pico 上使用紅外線接收模塊(HX1838 型),我們采用開源的 pico_ir 庫。
    的頭像 發(fā)表于 11-30 09:08 ?2669次閱讀
    如何在<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>上使用紅外線接收模塊?

    樹莓 Pico 2040 的“速度狂飆”:時鐘速度幾乎翻倍!

    樹莓Pico2040的“超能力”升級如果你手頭有一個樹莓Pico2040,但總覺得它的性能還
    的頭像 發(fā)表于 03-25 09:25 ?173次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> <b class='flag-5'>Pico</b> 2040 的“速度狂飆”:時鐘速度幾乎翻倍!