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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

這篇文章來源于DevicePlus.com英語網站的翻譯稿。

目的

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

概述

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

設備

表1:設備

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

目錄

1. 設計電路

2. 編寫代碼

a.啟用 SPI

b.安裝軟件包

c.添加到 Read.py

3. 運行代碼

a.獲取 UID

b.運行最終腳本

4. 制作狗門的注意事項

5.其他設備選項

6.附錄:Read.py

程序

1. 設計電路

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

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

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

pYYBAGPzJMWAXZvpAAKacGZKKLY632.png

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

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

表2:RC522接線表

RC522 Pin Raspberry Pi 引腳 導線顏色
3.3V 引腳 1
RST 引腳 22
GND 引腳 6
MISO 引腳 21
MOSI 引腳 19
SCK 引腳 23
SDA 引腳 24

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

2. 編寫代碼

a. 啟用 SPI

第一步是在Raspberry Pi上啟用SPI。為此,請打開命令行窗口并輸入sudo raspi-config。系統會彈出Configuration Menu。選擇菜單5“Interfacing Options”。現在選擇“P4 SPI”。當系統問你是否要啟用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庫負責與RC522模塊通信。我通過鍵入命令git clone https://github.com/lthiery/SPI-Py.git來克隆這個庫。然后安裝該庫。首先,通過鍵入cd SPI-Py進入SPI-Py目錄。然后鍵入sudo python setup.py install安裝庫。

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

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

3. 運行代碼

a. 獲取 UID

首次運行腳本時,您需要獲取卡的UID。RFID卡的UID是與此卡相關聯的唯一編號,類似于序列號。

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

pYYBAGPzJMiAbXlhAAGzA0sjS1Q495.png

圖3:腳本運行,顯示UID b. 運行最終腳本

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

pYYBAGPzJMqALBXVAAIOGVuz1Wc750.jpg

圖4:等待讀卡

poYBAGPzJMuAAw9NAAJh20m59I4320.jpg

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

如果要將該設計實現為一個狗門,那么你需要考慮其他一些設計技巧:

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

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

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

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

5. 其他設備選項

a.門鎖

b.安全鎖

c.支付設備

d.運輸跟蹤/物流

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"



審核編輯:湯梓紅

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

    關注

    240

    文章

    22991

    瀏覽量

    654715
  • RFID
    +關注

    關注

    387

    文章

    6047

    瀏覽量

    237045
  • 讀卡器
    +關注

    關注

    2

    文章

    408

    瀏覽量

    39289
  • Raspberry Pi
    +關注

    關注

    1

    文章

    553

    瀏覽量

    22136
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

    分布測量參數整合在一起測量

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

    通過以太網線與VEE一起使用Raspberry Pi不起作用

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

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

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

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

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

    用于Raspberry Pi的DIN導軌安裝

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

    淺談數字孿生如何將物理和數字連接在一起且應用

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

    如何將PCF8591 ADC模塊Raspberry Pi連接

     在本教程中,我們學習如何將 PCF8591 ADC/DAC 模塊Raspberry Pi 連接。
    的頭像 發(fā)表于 08-26 15:58 ?4045次閱讀
    <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模塊的考勤系統

    電子發(fā)燒友網站提供《使用Raspberry Pi 4和RFID模塊的考勤系統.zip》資料免費下載
    發(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>的考勤系統

    如何將RFID RC522與Raspberry Pi連接

    電子發(fā)燒友網站提供《如何將RFID RC522與Raspberry Pi連接.zip》資料免費下載
    發(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ā)燒友網站提供《Arduino庫與Raspberry Pi Pico C/C++ SDK一起使用.zip》資料免費下載
    發(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ā)燒友網站提供《如何將16x2 LCD與Raspberry pi4連接.zip》資料免費下載
    發(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ā)燒友網站提供《如何將兩個16*2 LCD與arduino連接在一起.zip》資料免費下載
    發(fā)表于 06-30 09:39 ?0次下載
    <b class='flag-5'>如何將</b>兩個16*2 LCD與arduino連接<b class='flag-5'>在一起</b>