解決Raspberry Pi3無法使用RC522讀取RFID的問題
最近開始研究起了Raspberry Pi其相關的周邊硬體,在玩到讀取RFID的時候出現了一些問題,照著網路上的範例接RC5232模組,卻怎麼樣也讀不到資料,經過一翻苦戰(google)後,總算是找到了問題與解決方法,在這邊紀錄一下。
首先根據這篇官方論壇的討論可以得知,原來問題是出在Raspbian Jessie這個官方作業系統上面,如果使用的image是2016-03-18的版本就沒有問題,但目前最新的2016-05-27的版本就讀不到,原因是因為2016-05-27版本對其中第24號pin腳的設定不正確,但34號PIN腳卻是使用RC522必要的pin腳。
知道問題後,就比較容易解決了,其中一種方式是直接找到2016-03-18的版本重裝,或是等下一個版本的image檔?不過這樣都不太符合經濟效益,所以選擇了另外一種方式,直接更新目前2016-05-27版本的核心內容,具體步驟如下
apt-get先進行更新
sudo apt-get update sudo apt-get upgrade
更新kernel
sudo rpi-update
使用raspi-config確認已經啟用SPI協定功能
sudo raspi-config
在/boot/config.txt最後加入以下內容
dtoverlay=spi0-hw-cs
重開raspberry pi
sudo reboot now
確認24pin腳設定正確
gpio readall
24pin的內應該是**"24 | 1 | ALT0 | CE0 | 10 | 8 | "**
如果不是ALT0,而是IN或OUT代表沒有正確設定好
以上步驟完成,就可以正確使用RC522讀取RFID的資料啦!
PIN腳對應如下
Name Pin # SDA 24 SCK 23 MOSI 19 MISO 21 IRQ None GND Any RST 22 3.3V 1 透過已下指令安裝相關需要的工具跟範例程式
cd ~ sudo apt-get install -y python-dev git clone https://github.com/lthiery/SPI-Py.git cd SPI-Py sudo python setup.py install cd .. git clone https://github.com/mxgxw/MFRC522-python.git cd MFRC522-python
開啟Read.py
python Read.py
接下來只要把RFID靠近RC522,應該就可以看到螢幕上有顯示這張卡的卡號囉。
如果您覺得我的文章有幫助,歡迎免費成為 LikeCoin 會員,幫我的文章拍手 5 次表示支持!