概述
RFID或射頻識別是一種通過電磁波進行通信的方式(射頻波,具體而言)。 RFID標簽和RFID卡通常用于身份驗證和訪問控制。
您可能已經看到人們在辦公室入口處刷身份證。身份證實際上是具有雇員個人信息的RFID卡。在他/她刷卡的那一刻,他的檢查時間將被計算機捕獲。
我已經使用RFID閱讀器和RFID卡實施了多個項目,如 RFID安全訪問控制系統使用8051 ,基于RFID的考勤系統和 Arduino RFID閱讀器。
在所有這些項目中,我提到一個簡單的RFID通信系統由三部分組成:RFID卡或標簽(包含嵌入在芯片上的用戶或產品信息), RFID閱讀器(觸發RFID卡并從卡中提取信息的設備)和主機系統(如計算機或微控制器,然后處理數據)。
在這個項目中,我將使用流行的EM-18 RFID閱讀器模塊和一些RFID卡。另一種流行的RFID閱讀器稱為RFID RC522。 EM-18和RC522 RFID模塊之間的主要區別是:
EM-18基于125 KHz射頻通信,而RC522基于13.56 MHz頻率
進入接口選項后,EM-18使用串行通信,而RC522使用SPI通信(盡管芯片也支持I2C和UART)。
因此,選擇RFID閱讀器模塊非常重要,因為它定義了如何使用Raspberry Pi或Arduino與模塊進行通信。
我不會詳細介紹RFID閱讀器和RFID通信的工作細節,因為有許多類似于這里的教程: RFID技術及其應用。我將跳轉到Raspberry Pi RFID閱讀器界面。
設置用于串行通信的Raspberry Pi
我在Raspberry Pi RFID閱讀器模塊接口中提到的重要事項是EM-18 RFID閱讀器模塊使用UART通信即串行通信。如果你還記得,我還沒有完成任何涉及Raspberry Pi串口通信的項目。
在繼續使用Raspberry Pi和RFID閱讀器模塊的接口之前,有為了在Raspberry Pi中啟用串行通信,您需要在Raspberry Pi中執行一些操作。
在Raspberry Pi中,串行端口可以使用或配置為兩個方式:訪問控制臺和串行接口。默認情況下,Raspberry Pi的串行端口配置為訪問Linux控制臺,即作為控制臺I/O引腳。
但是,我們希望將其更改為充當串行通信端口,以便我們可以連接外部外圍設備,如本項目中的RFID閱讀器,通過串行通信進行通信。
為了做到這一點,首先登錄您的Raspberry Pi使用SSH(Putty)。輸入以下命令進入Raspberry Pi配置工具。
sudo raspi-config
在“接口選項”中,選擇“串行”選項。
現在,它詢問您是否要通過串行通信訪問登錄shell。選擇“否”選項。 然后,它要求您啟用串行端口硬件。選擇“是”選項。
完成該過程并重新啟動Raspberry Pi。在Raspberry Pi啟動后,一旦使用Putty登錄agin并檢查串行端口是否已啟用,請輸入以下命令。
dmesg | grep tty
在底部,您可以看到,“ttyS0”已配置如串行?,F在,您可以繼續使用Raspberry Pi連接RFID閱讀器模塊,通過串口進行通信。
Raspberry Pi RFID閱讀器接口電路圖
下圖顯示了Raspberry Pi和EM-18 RFID閱讀器之間的連接。
所需組件
Raspberry Pi 3 Model B
EM-18 RFID閱讀器模塊
RS232 - 到 - USB適配器(因為我的RFID閱讀器只有RS232輸出)
少量RFID卡或RFID標簽
RFID閱讀器電源(我的RFID閱讀器有5V穩壓器)
用于Raspberry Pi和RS232-USB適配器的5V電源
連接電線
680Ω電阻(1/4瓦)
1.5KΩ電阻(1/4瓦)
在Raspberry Pi上GPIO14和GPIO14即物理引腳8和10分別是UART TX和RX引腳。由于我們已經啟用了Raspberry Pi的串行端口,您可以將這些引腳連接到外圍設備。
現在是時候注意Raspberry Pi的工作原理了3.3V邏輯。因此,Raspberry Pin的RX引腳只能用3.3V邏輯給出。為了做到這一點,我們需要使用一個由兩個電阻組成的簡單分壓器網絡將RFID讀取器的TX線電平轉換為3.3V。
我使用了680Ω和1.5KΩ電阻。分壓器的輸出連接到Raspberry Pi的UART RXD引腳,即GPIO15。在Raspberry Pi和RFID讀取器模塊之間建立共同的接地連接。
代碼
編寫一個簡單的Python腳本來讀取RFID卡中的值,將其與預定義的值進行比較(我已事先收集了所有RFID卡的數據)并顯示特定信息。
注意:在“port =‘/dev/ttyS0’”行中,將ttyS0替換為分配給您的串行設備的名稱。
工作
Raspberry Pi RFID閱讀器模塊接口的工作非常簡單。在Raspberry Pi上啟用串行端口后,我們必須分配與UART通信相關的其余參數,即波特率,奇偶校驗,停止位和數據大小。所有這些值都在Python代碼中設置。
在此之后,您將收到“放置卡片”的消息。當您將RFID卡放在RFID閱讀器上時,RFID閱讀器模塊將從卡讀取數據并通過串行通信將數據發送到Raspberry Pi。
這Raspberry Pi進一步分析數據,并在屏幕上顯示相應的消息。
應用程序
接口帶有Raspberry Pi的RFID閱讀器非常有用,因為您可以實現廣泛的應用,例如:
訪問控制
驗證
電子機票
電子支付
電子收費
考勤
-
python
+關注
關注
56文章
4797瀏覽量
84751 -
樹莓派
+關注
關注
116文章
1708瀏覽量
105685
發布評論請先 登錄
相關推薦
評論