PaSoRi에서 NFC 태그 및 FeliCa 읽기 및 내보내기
12133 단어 PythonNFCFeliCaRaspberryPiPaSori
입문
NFC 태그, FeliCa 읽기 중 깜빡임
ndef의 데이터는pretty()에서 읽는 예가 많기 때문에 등록된 텍스트만 꺼내는 것이 목표입니다.
Raspberry Pi의 설정과 nfcpy의 규격 확인이 중요합니다.
사용 장치
Raspberry Pi3
PaSoRi RC-S380
NFC 레이블
Raspberry Pi3
VNC Viewer를 통해 작성된 코드이기 때문에 와이파이(보통)와 이더리움 네트워크의 유선 연결(Raspberry Pi 설정), PaSoRi를 사용한다는 이유로 사용된다.
USB 허브가 있으면 Raspberry Pi Zero(W) 등도 가능합니다.여러 가지 물건이 있으면 가격이 많이 떨어지지 않을까요?
PaSoRi
RC-S380 이외에는 동작 확인이 없습니다.
NFC 레이블
카드 모양의 판에 NFC 라벨을 붙인 스티커판상NFC가 싸진 것 같다.
Raspberry pi 설정
USB로 연결된 전갈 확인
$ lsusb
nfcpy 설정
도저히 들어갈 수가 없어요. bzrbranchlp:nfcpy를 만들었어요. 원래의 소스를git로 clone했어요.
사용할 수 있는 결정 방법이 명확하지 않다.
참조할 웹 사이트의 URL을 기록합니다.
https://devadjust.exblog.jp/23018234/
https://github.com/nfcpy/nfcpy
http://pongsuke.hatenablog.com/entry/2017/05/17/164317
실시
nfcpy 사양
출력 사양
Raspberry Pi3
PaSoRi RC-S380
NFC 레이블
Raspberry Pi3
VNC Viewer를 통해 작성된 코드이기 때문에 와이파이(보통)와 이더리움 네트워크의 유선 연결(Raspberry Pi 설정), PaSoRi를 사용한다는 이유로 사용된다.
USB 허브가 있으면 Raspberry Pi Zero(W) 등도 가능합니다.여러 가지 물건이 있으면 가격이 많이 떨어지지 않을까요?
PaSoRi
RC-S380 이외에는 동작 확인이 없습니다.
NFC 레이블
카드 모양의 판에 NFC 라벨을 붙인 스티커판상NFC가 싸진 것 같다.
Raspberry pi 설정
USB로 연결된 전갈 확인
$ lsusb
nfcpy 설정
도저히 들어갈 수가 없어요. bzrbranchlp:nfcpy를 만들었어요. 원래의 소스를git로 clone했어요.
사용할 수 있는 결정 방법이 명확하지 않다.
참조할 웹 사이트의 URL을 기록합니다.
https://devadjust.exblog.jp/23018234/
https://github.com/nfcpy/nfcpy
http://pongsuke.hatenablog.com/entry/2017/05/17/164317
실시
nfcpy 사양
출력 사양
nfcpy 사양
출력 사양
코드
나는 이 보도를 참고했다.
https://qiita.com/undo0530/items/89540a03252e2d8f291b#idm%E3%82%92%E5%8F%96%E3%82%8A%E5%87%BA%E3%81%99
내가 다시 쓴python의 코드 구조는 매우 거칠어서 참고만 제공한다
try~catch~finally를 따로 진행할 수 있다면.
# coding: utf-8
import nfc
import binascii
import time
from threading import Thread, Timer
# 待ち受けの1サイクル秒
TIME_cycle = 10.0
# 待ち受けの反応インターバル秒
TIME_interval = 0.2
# タッチされてから次の待ち受けを開始するまで無効化する秒
TIME_wait = 3
# NFC接続リクエストのための準備
# 212F(FeliCa)で設定
target_req_felica = nfc.clf.RemoteTarget("212F")
# 106A(NFC type A)で設定
target_req_nfc = nfc.clf.RemoteTarget("106A")
def check_FeliCa():
print 'FeliCa waiting...'
# USBに接続されたNFCリーダに接続してインスタンス化
clf = nfc.ContactlessFrontend('usb')
# clf.sense( [リモートターゲット], [検索回数], [検索の間隔] )
target_res = clf.sense(target_req_felica, iterations=int(TIME_cycle//TIME_interval)+1 , interval=TIME_interval)
if not target_res is None:
tag = nfc.tag.activate(clf, target_res)
#IDmを取り出す
idm = binascii.hexlify(tag.idm)
print 'FeliCa detected. idm = ' + idm
#sleepなしでは次の読み込みが始まって終了する
print 'sleep ' + str(TIME_wait) + ' seconds'
time.sleep(TIME_wait)
clf.close()
def check_NFC():
print 'NFC and FeliCa waiting...'
# USBに接続されたNFCリーダに接続してインスタンス化
clf = nfc.ContactlessFrontend('usb')
mydict = {}
while True:
target_res = clf.sense(target_req_nfc,target_req_felica, iterations=int(TIME_cycle//TIME_interval)+1 , interval=TIME_interval)
if not target_res is None:
tag = nfc.tag.activate(clf, target_res)
print 'TAG type: ' + tag.type
# FeliCaカードをタッチしたら読み込みをやめる
if tag.type == "Type3Tag":
break
# Type1,Type2:NFCタグ、Type4:Android端末でのNFCなど
else:
# NFCタグに埋めたtextを読む
records = tag.ndef.records
for record in records:
print 'NFC detected. record.text = ' + record.text
# str()で変換するとユニコードオブジェクトにならない
key = str(record.text)
mydict[key] = key
print 'sleep ' + str(TIME_wait) + ' seconds'
time.sleep(TIME_wait)
for dic in mydict :
print(dic)
clf.close()
check_FeliCa()
check_NFC()
마지막
재료는 거의 아마존에 있고, 가전제품 양판점에서도 배치 서비스 등이 있기 때문에 작은 부품을 찾는 수고가 없다.
애초에 아이폰 앱으로 만들려고 했는데 펠리카가 잘 읽히지 않아서 라즈파를 사용했어요.
아이폰으로 코어NFC에서 펠리카를 읽을 수 있다면.
http://www.itmedia.co.jp/mobile/articles/1802/08/news030_2.html
Reference
이 문제에 관하여(PaSoRi에서 NFC 태그 및 FeliCa 읽기 및 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nofrmm/items/96eba75085ea2987e28e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(PaSoRi에서 NFC 태그 및 FeliCa 읽기 및 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nofrmm/items/96eba75085ea2987e28e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)