LoginSignup
6
5

More than 5 years have passed since last update.

交通系電子マネーカードを 白PaSori RC-S320 + Raspberry Pi でNFCして固有番号を取得する。

Posted at
株式会社XSHELL デベロッパー 植田歩

IMAG2962.jpg

概要

  • 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を使いやすくするソリューションを提供しています。
isaaxIoTitぜひご使用になってご意見を頂きたく思います。
共に素晴らしいプロジェクトを実現させましょう!


6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5