如何將RFID模組與Raspberry Pi整合在一起

目的

本課程旨在展示何將RFID讀卡器和執行器與Raspberry Pi整合在一起。基於本文討論的基本原理,我們還會製造一個RFID狗門。

概述

在本課程中,我將介紹如何將RC522 RFID模組與Raspberry Pi機板整合在一起。我還將展示如何整合一個執行器(本例中是一個LED),來響應RFID模組的正確讀取資訊。該執行器可以是電磁鎖、揚聲器,甚至可以是記錄資料的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. 編寫代碼
    1. 啟用SPI
    2. 安裝套裝軟體
    3. 添加到Read.py
  3. 運行代碼
    1. 獲取 UID
    2. 運行最終腳本
  4. 製作狗門的注意事項
  5. 其他裝置選項
  6. 附錄:Read.py

程式

1.設計電路

我一直喜歡使用開源的原理圖繪製和PCB佈線軟體Fritzing來製作接線圖(圖1:執行器為LED的電路原理圖)。您可以透過以下連結(可選)下載Fritzing:http://fritzing.org/home/。

第一張原理圖是我正在製作的以LED作為執行器的電路。當RFID模組產生正確讀取訊號,LED會亮起。

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

圖1:執行器為LED的電路原理圖

圖2:執行器為電磁鎖的電路原理圖

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

 

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

2.編寫代碼

a.啟用SPI

第一步是在Raspberry Pi上啟用SPI。為此,請打開命令列視窗並輸入sudoraspi-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”的部分。這裡是你配置執行器的地方。如果要將該設計應用於狗門,那麼應將輸出引腳配置到電磁鎖。

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

3.運行代碼

a. 獲取UID

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

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

圖3:腳本運行,顯示UID

b.運行最終腳本

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

圖4:等待讀卡

圖5:驗證透過

4.製作狗門的注意事項

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

    1. 添加第二個電磁鎖,以保證兩側鎖門。
    2. 在門上添加一個霍爾效應(磁感測器)感測器和一塊磁鐵,以便讓Raspberry Pi在鎖門之前知道門已返回到斷路位置。
    3. 如果你真的很有想法,那麼可以圍繞門設計較大的環形天線,代替在門上安裝小型讀卡器。你需要電磁線,而且需要將其焊接到讀取模組上。這需要資深技巧,有關環形天線的資訊請在這裡閱讀。
    4. 如果你是資深程式師,那麼可以閱讀MFRC522 資料表,更改晶片組上的固件,更好地滿足自己的應用要求。

5.其他裝置選項

    1. 門鎖
    2. 安全鎖
    3. 支付裝置
    4. 運輸追跡/物流
    5. 零售/購物

6.附錄:Read.py