RFID-RC522でICカード読み取り
配線
SDAーー24
SCKーー23
MOSIーー19
MISOーー21
IRQーー18
GNDーーGND
RSTーー22
3.3Vーー3.3v
設定
SPIモードを有効
Pi-rc255ライブラリのインストール
sudo pip3 install pi-rc522
以下ソース
#!/usr/bin/env python3.5 #-- coding: utf-8 -- import RPi.GPIO as GPIO from pirc522 import RFID import time GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) rc522 = RFID() print('Tack card (end, Ctrl + c): ') # if __name__ == '__main__': try: while True : rc522.wait_for_tag() (error, tag_type) = rc522.request() if not error : (error, uid) = rc522.anticoll() if not error : print('RFID : {}'.format(uid)) time.sleep(1) except KeyboardInterrupt: pass
実行結果
Tack card (end, Ctrl + c): RFID : [19, 215, 73, 191, 50] RFID : [101, 31, 65, 119, 76]
RFID 19,215,73,191,50 だが最後の50はカードメーカコード
UID 19,215,73,191 10進数
13,7,49,BF 16進数
おまけ
RC225に付属していたカードが不良で読み出せない
LEDで読み込み可能なら青LED
待機中なら赤LED
赤led+ 3
青led+ 5
LEDgndーー 200オーム ーーGND
以下ソース
#!/usr/bin/env python3.5 #-- coding: utf-8 -- import RPi.GPIO as GPIO from pirc522 import RFID import time GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) rc522 = RFID() LED_AKA = 3 LED_AO = 5 GPIO.setup(LED_AKA, GPIO.OUT) GPIO.setup(LED_AO, GPIO.OUT) print('Tack card (end, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge if __name__ == '__main__': try: while True : GPIO.output(LED_AKA, GPIO.LOW) GPIO.output(LED_AO, GPIO.HIGH) rc522.wait_for_tag() (error, tag_type) = rc522.request() if not error : (error, uid) = rc522.anticoll() if not error : print('RFID : {}'.format(uid)) #print(uid) GPIO.output(LED_AO, GPIO.LOW) GPIO.output(LED_AKA, GPIO.HIGH) time.sleep(1) except KeyboardInterrupt: GPIO.output(LED_AKA, GPIO.LOW) GPIO.output(LED_AO, GPIO.LOW) pass