Raspberry PiでNFCタグを読み込む
背景
出退勤システムが作りたかったのでNFCタグリーダをもってきた。
いろいろインストール
必要なものはPython2系とそのpipくらい。
$ sudo apt install python python-pip
nfcpyをpipで入れる
$ sudo pip install -U nfcpy
サンプルのリポジトリをクローンしてみる
$ git clone https://github.com/nfcpy/nfcpy.git $ cd nfcpy
実行してみる
$ sudo python examples/tagtool.py show No handlers could be found for logger "nfc.llcp.sec" [nfc.clf] searching for reader on path usb [nfc.clf] using SONY RC-S380/P NFC Port-100 v1.11 at usb:001:005 ** waiting for a tag ** Type3Tag 'FeliCa Standard (RC-S???)' ID=**************** PMM=**************** SYS=0003
IDmだけ取れればいいので、サンプルを参考に何度も取れるように改良する。
# read_idm.py import binascii import nfc class MyCardReader(object): def on_connect(self, tag): print "touched" self.idm = binascii.hexlify(tag.idm) return True def read_id(self): clf = nfc.ContactlessFrontend('usb') try: clf.connect(rdwr={'on-connect': self.on_connect}) finally: clf.close() if __name__ == '__main__': cr = MyCardReader() while True: print "touch card:" cr.read_id() print "released" print cr.idm
実行する
$ sudo read_idm.py No handlers could be found for logger "nfc.llcp.sec" touch card: touched released 0114************ touch card: touched released 0114************ touch card:
まとめ
なんとかWebアプリかなんかと連携していい感じに表示できるようにしたいところ。