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

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

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

如何將RFID模塊與Raspberry Pi集成在一起

王萍 ? 來源:Winnie62 ? 作者:Winnie62 ? 2023-02-27 10:27 ? 次閱讀

這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。

目的

教程旨在展示何將RFID讀卡器和執(zhí)行器與Raspberry Pi集成在一起?;诒疚挠懻摰幕驹?,我們還會制造一個RFID狗門。

概述

在本教程中,我將介紹如何將RC522 RFID模塊與Raspberry Pi基板集成在一起。我還將展示如何集成一個執(zhí)行器(本例中是一個LED),來響應(yīng)RFID模塊的正確讀取信息。該執(zhí)行器可以是電磁鎖、揚(yáng)聲器,甚至可以是記錄數(shù)據(jù)的Web界面。我還會介紹如何利用此設(shè)計實現(xiàn)一個RFID狗門。

設(shè)備

表1:設(shè)備

物品 鏈接
Raspberry Pi 3 Raspberry Pi 鏈接
RC522 RFID 模塊 RFID 模塊鏈接
HDMI HDMI 線鏈接
LED Adafruit LED鏈接
鼠標(biāo) + 鍵盤 鍵盤/鼠標(biāo)的Amazon鏈接
顯示器/電視機(jī) 任何帶有HDMI接口的電視機(jī)或顯示器
跳線 跳線的Amazon鏈接
Micro USB 數(shù)據(jù)線 Micro USB數(shù)據(jù)線的Amazon鏈接
面包板 面包板的Amazon鏈接

目錄

1. 設(shè)計電路

2. 編寫代碼

a.啟用 SPI

b.安裝軟件包

c.添加到 Read.py

3. 運(yùn)行代碼

a.獲取 UID

b.運(yùn)行最終腳本

4. 制作狗門的注意事項

5.其他設(shè)備選項

6.附錄:Read.py

程序

1. 設(shè)計電路

我一直喜歡使用開源的原理圖繪制和PCB布線軟件Fritzing來制作接線圖(圖1:執(zhí)行器為LED的電路原理圖)。您可以通過以下鏈接(可選)下載Fritzing: https://fritzing.org/home/

第一張原理圖是我正在制作的以LED作為執(zhí)行器的電路。當(dāng)RFID模塊產(chǎn)生正確讀取信號,LED會亮起。

第二個電路中的執(zhí)行器是一個電磁鎖。這個電路用于實現(xiàn)門鎖和狗門設(shè)計。TIP120是一款達(dá)林頓功率晶體管陣列。它只允許Raspberry Pi控制電磁鎖,電磁鎖所需功率比Paspberry Pi的GPIO端口的輸出還要大。

pYYBAGPzJMWAXZvpAAKacGZKKLY632.png

圖1:執(zhí)行器為LED的電路原理圖 poYBAGPzJMaATyibAAKvuawHEro355.png

圖2:執(zhí)行器為電磁鎖的電路原理圖 RC522 RFID模塊使用SPI(串行外圍接口總線)連接到Raspberry Pi。SPI總線在嵌入式系統(tǒng)中應(yīng)用相當(dāng)普遍。讀卡器應(yīng)根據(jù)下表進(jìn)行接線。

表2:RC522接線表

RC522 Pin Raspberry Pi 引腳 導(dǎo)線顏色
3.3V 引腳 1
RST 引腳 22
GND 引腳 6
MISO 引腳 21
MOSI 引腳 19
SCK 引腳 23
SDA 引腳 24 藍(lán)

我將執(zhí)行器(一個LED)連接到了Raspberry Pi的引腳18。你也應(yīng)該連接這個引腳。

2. 編寫代碼

a. 啟用 SPI

第一步是在Raspberry Pi上啟用SPI。為此,請打開命令行窗口并輸入sudo raspi-config。系統(tǒng)會彈出Configuration Menu。選擇菜單5“Interfacing Options”?,F(xiàn)在選擇“P4 SPI”。當(dāng)系統(tǒng)問你是否要啟用SPI接口時,選擇“Yes”。配置菜單將顯示“The SPI interface is enabled.”。要完成SPI的啟用,請打開命令行終端并輸入命令sudo reboot。Raspberry Pi會重啟,從而完成SPI啟用。

b. 安裝軟件包
我們要用的庫是用Python 2編寫的,不是Python 3。因此,第一步是安裝Python 2.7。請輸入sudo apt-get install python2.7-dev完成該操作。SPI PY庫負(fù)責(zé)與RC522模塊通信。我通過鍵入命令git clone https://github.com/lthiery/SPI-Py.git來克隆這個庫。然后安裝該庫。首先,通過鍵入cd SPI-Py進(jìn)入SPI-Py目錄。然后鍵入sudo python setup.py install安裝庫。

c. 添加到 Read.py
Read.py腳本需要更改才能與RC522模塊對話。編輯此腳本時,請滾動到腳本底部,然后加入注釋“Authenticate”。本教程不涉及RFID的身份驗證。確保在腳本頭添加時間庫。接下來找到標(biāo)題為“#Configure LED Output Pin”的部分。這里是你配置執(zhí)行器的地方。如果要將該設(shè)計應(yīng)用于狗門,那么應(yīng)將輸出引腳配置到電磁鎖。

接下來找到標(biāo)題為“#Check to see if card UID read matches your card UID.”的部分。該If/Else語句檢查讀卡器從卡上讀取的UID與您之前保存在腳本中的UID是否匹配,如果UID匹配,則執(zhí)行器的輸出為高。

3. 運(yùn)行代碼

a. 獲取 UID

首次運(yùn)行腳本時,您需要獲取卡的UID。RFID卡的UID是與此卡相關(guān)聯(lián)的唯一編號,類似于序列號。

要運(yùn)行腳本,請將目錄更改為保存腳本的目錄。然后輸入python Read.py,運(yùn)行腳本。因為腳本讀卡器UID,所以當(dāng)你將卡放在讀取器上時,它會拒絕訪問。屏幕上會顯示這張卡的UID。記下這個UID。編輯腳本,然后將腳本的UID更改為此值并保存。

pYYBAGPzJMiAbXlhAAGzA0sjS1Q495.png

圖3:腳本運(yùn)行,顯示UID b. 運(yùn)行最終腳本

輸入python Read.py,再次運(yùn)行腳本?,F(xiàn)在,當(dāng)你將卡放在讀卡器上時,驗證通過且LED會亮5秒鐘。如果將你的設(shè)計應(yīng)用于狗門,那么在驗證通過后電磁鎖會打開。

pYYBAGPzJMqALBXVAAIOGVuz1Wc750.jpg

圖4:等待讀卡

poYBAGPzJMuAAw9NAAJh20m59I4320.jpg

圖5:驗證通過 4. 制作狗門的注意事項

如果要將該設(shè)計實現(xiàn)為一個狗門,那么你需要考慮其他一些設(shè)計技巧:

1. 添加第二個電磁鎖,以保證兩側(cè)鎖門。

2. 在門上添加一個霍爾效應(yīng)(磁傳感器)傳感器和一塊磁鐵,以便讓Raspberry Pi在鎖門之前知道門已返回到關(guān)閉位置。

3. 如果你真的很有想法,那么可以圍繞門設(shè)計較大的環(huán)形天線,代替在門上安裝小型讀卡器。你需要電磁線,而且需要將其焊接到讀取模塊上。這需要資深技巧,有關(guān)環(huán)形天線的信息請在這里閱讀。

4. 如果你是資深程序員,那么可以閱讀MFRC522 數(shù)據(jù)表,更改芯片組上的固件,更好地滿足自己的應(yīng)用要求。

5. 其他設(shè)備選項

a.門鎖

b.安全鎖

c.支付設(shè)備

d.運(yùn)輸跟蹤/物流

e.零售/購物

6. 附錄:Read.py

#!/usr/bin/env python
# -*- coding: utf8 -*-
 
import RPi.GPIO as GPIO
import MFRC522
import signal
import time
 
continue_reading = True
 
# Capture SIGINT for cleanup when the script is aborted
def end_read(signal,frame):
    global continue_reading
    print ("Ctrl+C captured, ending read.")
    continue_reading = False
    GPIO.cleanup()
 
# Hook the SIGINT
signal.signal(signal.SIGINT, end_read)
 
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
 
# Welcome message
print ("Welcome to the MFRC522 data read example")
print ("Press Ctrl-C to stop.")
 
# This loop keeps checking for chips. If one is near it will get the UID and authenticate
while continue_reading:
    
    # Scan for cards    
    (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
 
    # If a card is found
    if status == MIFAREReader.MI_OK:
        print ("Card detected")
    
    # Get the UID of the card
    (status,uid) = MIFAREReader.MFRC522_Anticoll()
 
    # If we have the UID, continue
    if status == MIFAREReader.MI_OK:
 
        # Print UID
        print ("Card read UID: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3])+','+str(uid[4]))  
        # This is the default key for authentication
        key = [0xFF,0xFF,0xFF,0xFF,0xFF,0xFF]
        
        # Select the scanned tag
        MIFAREReader.MFRC522_SelectTag(uid)
        
        #ENTER Your Card UID here
        my_uid = [61,84,4,114,31]
        
        #Configure LED Output Pin
        LED = 18
        GPIO.setup(LED, GPIO.OUT)
        GPIO.output(LED, GPIO.LOW)
        
        #Check to see if card UID read matches your card UID
        if uid == my_uid:                #Open the Doggy Door if matching UIDs
            print("Access Granted")
            GPIO.output(LED, GPIO.HIGH)  #Turn on LED
            time.sleep(5)                #Wait 5 Seconds
            GPIO.output(LED, GPIO.LOW)   #Turn off LED
            
        else:                            #Don't open if UIDs don't match
            print("Access Denied, YOU SHALL NOT PASS!")
        
##        # Authenticate
##        status = MIFAREReader.MFRC522_Auth(MIFAREReader.PICC_AUTHENT1A, 8, key, uid)
##
##        # Check if authenticated
##        if status == MIFAREReader.MI_OK:
##            MIFAREReader.MFRC522_Read(8)
##            MIFAREReader.MFRC522_StopCrypto1()
##        else:
##            print "Authentication error"



審核編輯:湯梓紅

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

    關(guān)注

    242

    文章

    23347

    瀏覽量

    662611
  • RFID
    +關(guān)注

    關(guān)注

    388

    文章

    6189

    瀏覽量

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

    關(guān)注

    2

    文章

    419

    瀏覽量

    39434
  • Raspberry Pi
    +關(guān)注

    關(guān)注

    2

    文章

    559

    瀏覽量

    22332
收藏 人收藏

    評論

    相關(guān)推薦

    OLED顯示器如何與Raspberry Pi一起使用?

    我們大多數(shù)人都熟悉16×2點陣LCD顯示器,在大多數(shù)項目中用于向用戶顯示些信息。但是這些LCD顯示器有很多局限性。在本教程中,我們將了解OLED顯示器以及如何將它們與Raspberry Pi
    的頭像 發(fā)表于 11-17 16:52 ?5008次閱讀
    OLED顯示器如何與<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b><b class='flag-5'>一起</b>使用?

    如何將CYKIT-028 TFT模塊Raspberry Pi和ESP32微控制器結(jié)合使用?

    我目前正在探索如何將 CYKIT-028 TFT 模塊Raspberry Pi 和 ESP32 微控制器結(jié)合使用。 不過,在選擇集成開發(fā)
    發(fā)表于 05-21 07:36

    請問如何將兩個獨立multisim的文件連接兩個在一起仿真..

    請問如何將兩個獨立multisim的文件連接兩個在一起,進(jìn)行仿真?百度了好久,都沒有答案,求大神幫助??!{:1:}
    發(fā)表于 08-13 19:26

    分布測量參數(shù)整合在一起測量

    如何將幾個分布測試的參數(shù)通過種方式將其整合在一起,將其全部測量出來?請求大神解答?
    發(fā)表于 09-10 21:50

    通過以太網(wǎng)線與VEE一起使用Raspberry Pi不起作用

    大家好,我想通過以太網(wǎng)線與VEE一起使用Raspberry Pi。我的問題是VEE沒有檢測到我的設(shè)備,我嘗試使用覆盆子的IP地址進(jìn)行手動配置,但它不起作用。 Raspberry
    發(fā)表于 10-10 17:15

    如何將高圖形性能和低功耗更好地結(jié)合在一起?

    本文介紹了Silicon Motion開發(fā)的新架構(gòu)如何將高圖形性能、低延遲、高效數(shù)據(jù)壓縮和低功耗更好地結(jié)合在一起
    發(fā)表于 06-01 06:52

    如何將DMA和環(huán)形的FIFO隊列結(jié)合在一起來使用呢

    如何將DMA和環(huán)形的FIFO隊列結(jié)合在一起來使用呢?有哪些實驗步驟呢?
    發(fā)表于 12-09 08:05

    用于Raspberry Pi的DIN導(dǎo)軌安裝

    設(shè)計允許 DINPi 板反向或倒置使用而不會出現(xiàn)問題。鏡像引腳(見下文)允許使用直角接頭和插座多個板連接在一起,也可用于倒置安裝 Raspberry Pi,同時保持正確的 GPIO
    發(fā)表于 08-26 07:55

    淺談數(shù)字孿生如何將物理和數(shù)字連接在一起且應(yīng)用

    隨著能力和成熟程度的提高,數(shù)字孿生的應(yīng)用正在成倍增長。但是,要發(fā)揮其最大潛力,可能需要將整個生態(tài)的系統(tǒng)和數(shù)據(jù)集成在一起。
    的頭像 發(fā)表于 04-25 11:28 ?5507次閱讀
    淺談數(shù)字孿生<b class='flag-5'>如何將</b>物理和數(shù)字連接<b class='flag-5'>在一起</b>且應(yīng)用

    如何將PCF8591 ADC模塊Raspberry Pi連接

     在本教程中,我們學(xué)習(xí)如何將 PCF8591 ADC/DAC 模塊Raspberry Pi 連接。
    的頭像 發(fā)表于 08-26 15:58 ?4299次閱讀
    <b class='flag-5'>如何將</b>PCF8591 ADC<b class='flag-5'>模塊</b>與<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>連接

    使用Raspberry Pi 4和RFID模塊的考勤系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry Pi 4和RFID模塊的考勤系統(tǒng).zip》資料免費(fèi)下載
    發(fā)表于 12-01 14:29 ?0次下載
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 4和<b class='flag-5'>RFID</b><b class='flag-5'>模塊</b>的考勤系統(tǒng)

    如何將RFID RC522與Raspberry Pi連接

    電子發(fā)燒友網(wǎng)站提供《如何將RFID RC522與Raspberry Pi連接.zip》資料免費(fèi)下載
    發(fā)表于 12-14 09:48 ?0次下載
    <b class='flag-5'>如何將</b><b class='flag-5'>RFID</b> RC522與<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>連接

    Arduino庫與Raspberry Pi Pico C/C++ SDK一起使用

    電子發(fā)燒友網(wǎng)站提供《Arduino庫與Raspberry Pi Pico C/C++ SDK一起使用.zip》資料免費(fèi)下載
    發(fā)表于 06-15 14:43 ?1次下載
    <b class='flag-5'>將</b>Arduino庫與<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Pico C/C++ SDK<b class='flag-5'>一起</b>使用

    如何將16x2 LCD與Raspberry pi4連接

    電子發(fā)燒友網(wǎng)站提供《如何將16x2 LCD與Raspberry pi4連接.zip》資料免費(fèi)下載
    發(fā)表于 06-19 11:45 ?0次下載
    <b class='flag-5'>如何將</b>16x2 LCD與<b class='flag-5'>Raspberry</b> <b class='flag-5'>pi</b>4連接

    如何將兩個16*2 LCD與arduino連接在一起

    電子發(fā)燒友網(wǎng)站提供《如何將兩個16*2 LCD與arduino連接在一起.zip》資料免費(fèi)下載
    發(fā)表于 06-30 09:39 ?0次下載
    <b class='flag-5'>如何將</b>兩個16*2 LCD與arduino連接<b class='flag-5'>在一起</b>