NFCを使ってみる。
NFCのリーダライタを買ったので遊んでみた。
リーダライタ
リーダライタはSmartcard FocusでACS ACR122を買いました。
もっと安いものもありますが、ドキュメントが付いているので、ACR122にしてみました。ついでに、カード型とコイン型とシール型のNFC tagも買った。
インストール手順
OSはWindows XPです。
python本体をインストールして、さらに必要なパッケージをインストール。
- pycrypt 暗号のパッケージ
- pyserial シリアル通信のパッケージ
- pywin32 win32のパッケージ
- pyscard スマートカードのパッケージ
RFIDIOtは展開するだけで良い。RFIDIOtconfig.pyが設定ファイルです。設定はreadernum = 0に変更した。
使用例
RFIDIOtの使用例
情報取得
isotype.pyでNFC tagの情報を取得できる。
>isotype.py C:\Python26\lib\site-packages\Crypto\Hash\SHA.py:6: DeprecationWarning: the sha module is deprecated; use the hashlib module instead from sha import * isotype v0.1k (using RFIDIOt v0.1x) Reader: PCSC ACS ACR122 0 ID: 04789A811E2580 Tag is ISO 14443 A, part 3 ATR: 3B8F8001804F0CA0000003060300030000000068 3B Initial Header 8 No TA1, TB1, TC1 only TD1 is following F 15 bytes historical data follow 8 No TA2, TB2, TC2 only TD2 is following 0 T = 0 0 No TA3, TB3, TC3, TD3 following 1 T = 1 Detected STORAGECARD Historical: 804F0CA00000030603000300000000 80 Status indicator may be present (COMPACT-TLV object) 4F Application Identifier presence indicator 0C 12 bytes follow RID: A000000306 PC/SC Workgroup PIX: 03000300000000 SS: 03 ISO 14443 A, part 3 Name: 0003 Mifare Ultra light RFU: 00000000 Checksum TCK: 68 (OK)
読み込み
readtag.pyでNFC tagをリードできる。
>readtag.py C:\Python26\lib\site-packages\Crypto\Hash\SHA.py:6: DeprecationWarning: the sha module is deprecated; use the hashlib module instead from sha import * readtag v0.1d (using RFIDIOt v0.1x) Reader: PCSC ACS ACR122 0 ID: 04789A811E2580 Data: Block 00: 04789A6E811E25803A48000000000000 .x.n..%.:H...... Block 01: 811E25803A48000000000000FFFFFFFF ..%.:H.......... Block 02: 3A48000000000000FFFFFFFF00000000 :H.............. Block 03: 00000000FFFFFFFF0000000000000000 ................ Block 04: FFFFFFFF000000000000000000000000 ................ Block 05: 00000000000000000000000000000000 ................ Block 06: 00000000000000000000000000000000 ................ Block 07: 00000000000000000000000000000000 ................ Block 08: 00000000000000000000000000000000 ................ Block 09: 00000000000000000000000000000000 ................ Block 0a: 00000000000000000000000000000000 ................ Block 0b: 00000000000000000000000000000000 ................ Block 0c: 00000000000000000000000000000000 ................ Block 0d: 00000000000000000000000004789A6E .............x.n Block 0e: 000000000000000004789A6E811E2580 .........x.n..%. Block 0f: 0000000004789A6E811E25803A480000 .....x.n..%.:H.. Total blocks: 15
書き込み
うまく動かないので、あとで書く。