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