株式会社XSHELL デベロッパー 植田歩
概要
- SonyのPaSoRiを使ってSuicaやPasmoなどの電子マネーの固有番号(IDm)をターミナル上で確認する。
- RC-S320(白PaSoRi)は有名なnfcpyというライブラリが使えないようなのでlibpafeを使う。
- もっといろいろやるならRC-S380(黒PaSoRi)を購入したほうがいいかも。
環境
- Raspberry Pi 3
- OS 2017-08-16-raspbian-stretch-lite.img
- Mac OS X El Capitan
- RC-S320
- Python 2.7.13
PaSoRi製品一覧
https://www.sony.co.jp/Products/felica/consumer/products/list.html
参考サイト
手順
sudo apt-get install libusb-dev
git clone https://github.com/rfujita/libpafe.git
# sudoなしで使えるようにする
sudo sh -c 'echo SUBSYSTEM==\"usb\", ACTION==\"add\", ATTRS{idVendor}==\"054c\", ATTRS{idProduct}==\"06c3\", GROUP=\"plugdev\" >> /etc/udev/rules.d/nfcdev.rules'
sudo udevadm control --reload-rules
sudo reboot
テスト実行
pi@raspberrypi:~/git/libpafe $ ./tests/pasori_test
成功時
PaSoRi (RC-S320)
firmware version 1.40
Echo test... success
EPROM test... success
RAM test... success
CPU test... success
Polling test... success
IDm取得のpythonコード
こちらの記事のソースを使用させていただきました。
https://qiita.com/IMIMIM1080/items/23844281cf53156a196f
# read_idm.py
# -*- coding: utf-8 -*-
from __future__ import print_function
from ctypes import *
# libpafe.hの77行目で定義
FELICA_POLLING_ANY = 0xffff
if __name__ == '__main__':
libpafe = cdll.LoadLibrary("/usr/local/lib/libpafe.so")
libpafe.pasori_open.restype = c_void_p
pasori = libpafe.pasori_open()
libpafe.pasori_init(pasori)
libpafe.felica_polling.restype = c_void_p
felica = libpafe.felica_polling(pasori, FELICA_POLLING_ANY, 0, 0)
idm = c_ulonglong()
libpafe.felica_get_idm.restype = c_void_p
libpafe.felica_get_idm(felica, byref(idm))
# IDmは16進表記
print("IDm:", "%016X" % idm.value)
# READMEより、felica_polling()使用後はfree()を使う
# なお、freeは自動的にライブラリに入っているもよう
libpafe.free(felica)
libpafe.pasori_close(pasori)
実行
実行結果
# 成功
pi@raspberrypi:~/git/libpafe $ python read_idm.py
IDm: 1F3XXXXXX00XXX01
おまけ
RFIDタグをいろいろ扱ってるサイト
https://www.rfid-alliance.com/RFIDshop/top.html
RFIDについてわかりやすいサイト
http://www.taiseinet.com/rfid.html
電力供給方法
http://www.phoenix-denshi.co.jp/oyakudachi/gijutsu-04.shtml
株式会社XSHELL デベロッパー 植田歩
XSHELLはSBCを使いやすくするソリューションを提供しています。
isaax、IoTitぜひご使用になってご意見を頂きたく思います。
共に素晴らしいプロジェクトを実現させましょう!