PN532 NFC RFID module + RaspberryPi で FeliCa と Mifare を判別する
(Felica/Mifare/NFC チャレンジシリーズ) その他の記事はこちら 「FeliCa/Mifare/NFC でいろいろ実験」
https://qiita.com/nanbuwks/items/1f416d6e45a87250ee0a
「PN532 NFC RFID module + Arduino で FeliCa と Mifare を判別する」
https://qiita.com/nanbuwks/items/a264201dcc0b4e12e72d
では Arduino でやっていましたが、これを RaspberryPi でやってみます。
接続とインストール
この記事の通りに行っています。
「Raspberry Pi で nfcpy + PN532 NFC RFID module」
https://qiita.com/nanbuwks/items/e14d8fdd6f863d5b68fe
サンプルプログラムで判別する
単にサンプルプログラムの tagtool.py を実行するだけで、以下のように判別できます。
FeliCa の場合
$ python3 tagtool.py --device tty:AMA0
[nfc.clf] searching for reader on path tty:AMA0
[nfc.clf] using PN532v1.6 at /dev/ttyAMA0
** waiting for a tag **
Type3Tag 'FeliCa Standard (RC-S960)' ID=0114B4276B115A23 PMM=0F0D23042F7783FF SYS=8B61
Mifare の場合
$ python3 tagtool.py --device tty:AMA0
[nfc.clf] searching for reader on path tty:AMA0
[nfc.clf] using PN532v1.6 at /dev/ttyAMA0
** waiting for a tag **
Type2Tag ID=C5B20FAD
コードを書く
判別のためのコードを作ってみます。
# coding:utf-8
import pprint
import nfc
print('please touch')
clf = nfc.ContactlessFrontend('tty:AMA0')
try:
tag = clf.connect(rdwr={'on-connect': lambda tag: False})
finally:
clf.close()
if ('FeliCa' in str(tag)):
print("This card is FeliCa")
elif ('Type2Tag' in str(tag)):
print("This card is Mifare")
# print(str(tag))
# pprint.pprint(vars(tag))
# pprint.pprint(vars(tag._clf))
# pprint.pprint(vars(tag._target))
手持ちの nanaco カードを読ませた場合
$ python3 checkcard.py
please touch
This card is FeliCa
$ python3 checkcard.py
please touch
This card is FeliCa
動作内容
サンプルコードの
# print(str(tag))
を有効にした場合、以下のように返ってきます。
FeliCaの場合
$ python3 checkcard.py
please touch
This card is FeliCa
Type3Tag 'FeliCa Standard (RC-S960)' ID=0114B4276B115A23 PMM=0F0D23042F7783FF SYS=8B61
Mifare の場合
$ python3 checkcard.py
please touch
This card is Mifare
Type2Tag ID=C5B20FAD
Author And Source
この問題について(PN532 NFC RFID module + RaspberryPi で FeliCa と Mifare を判別する), 我々は、より多くの情報をここで見つけました https://qiita.com/nanbuwks/items/f2eea14845cac5e249c4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .