一家に1台あると便利?お手軽Felicaカードリーダーシステム

Raspberry Pi+PaSoRi

電車に乗るときにSuicaやPasmo、買い物をする時にEdyやnanakoなど、今では電子マネーによる支払いが当たり前になってきています。先日発売されたiPhone 6シリーズでは、待望のNFC機能が搭載され、いよいよおサイフケータイなるか!?と話題でしたが、当面は「Apple Pay」というサービスにのみ対応するようです。
http://bizmakoto.jp/makoto/articles/1409/17/news070.html

普段の生活で電子マネーの残高や履歴を確認する時は、自動券売機や専用の端末を利用するのが最も一般的だと思います。しかし、「あっ、残高照会しわすれた」とか「わざわざ確認しに行くのが面倒…」という場合、例えばFelicaカードリーダー等をWindowsやMacに繋いでデータを読みこませれば簡単に確認することができます。

しかし、利用頻度が高い(使う人が多い)と残高を確認するためだけにパソコンを起動させるのも結構たいへんかも知れません。なるべく電気代を使わずにいつでも照会ができる仕組みはないかと考えてみました。

というわけで、今回は名刺サイズの小型ボードRaspberry PiにFelicaカードリーダーを繋げて、いつでも気軽に使える共有カードリーダーシステムを作ってみました。職場に1台あると交通費の精算にも使えるかもしれません。

取り組みイメージ

取り組みイメージ

Raspberry Pi にFelicaカードリーダーを接続して、常にカードの情報を読み取れる状態にしておきます。さらにRaspberry Piをネットワークに繋げて、読み取ったカードの情報をWebブラウザから確認できるようにしてみました。

記事の作成にあたって参考にしたサイト

この記事を書くにあたっては、以下のサイトを参考にさせていただきました。

nfcpyでお手軽NFC開発[1/2] [2/2]
http://techblog.qoncept.jp/?p=165

Raspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取る
http://plaza.rakuten.co.jp/kugutsushi/diary/201402230000/

Raspberry piで、PaSoRi USB Felica Reader(RC-S380)を使用する
http://qiita.com/takanemu/items/1e6ef1207e5261040f05

Getting started — nfcpy 0.9.1 documentation
http://nfcpy.readthedocs.org/en/latest/topics/get-started.html

このシステムのいいところ

Raspberry Piの電源は常にONの状態になっているので、いつでもカードの情報を確認することができます。もちろん消費電力はノートPCに比べると格段に少ないです!

そして、Raspberry PiにWebサーバを立てることで、Webブラウザから読み取り結果を参照できるので確認端末を選びません。もちろんスマホやタブレットからでもOKです。
例えばこんな感じです。

ブラウザから

ターミナルから

使用したツール

  1. Raspberry Pi TypeB
  2. Sony PaSoRi RC-S380
  3. LANケーブル×1

Raspberry Piは今週から販売を開始するカスタム仕様のものを使ってみました。どのあたりがカスタム仕様なのかといいますと、コンデンサやヒートシンクを追加し、ストレージにはMicroSDを採用しています。通常のSDカードではボードからかなり出っ張った形になっていますが、MicroSDソケットを使えば、ボードの幅にすっぽり収めることができます。

カスタム仕様Raspberry Pi

MicroSDソケット

MicroSDソケット2

MicroSDソケット

普通のSDカードだと以下のようにかなり出っ張った形になります。

SDカード

Sony PaSoRi RC-S380は秋葉原駅前の家電量販店にたくさん在庫がありました。PaSoRiを使えば、e-Taxで確定申告を便利に済ませることができるそうです。
http://www.sony.co.jp/Products/felica/consumer/guide/etax.html

LANケーブルは余っているもので十分だと思います。(Raspberry PiのLANが100M対応のため)

構築手順

まずは、Raspberry PiでNFCデータを読み取るために、pythonのライブラリをインストールします。

# apt-get install python-usb bzr
# bzr branch lp:nfcpy

スクリプトは「nfcpyでお手軽NFC開発[1/2] [2/2]」「Getting started — nfcpy 0.9.1 documentation」を参考にさせていただきました。

sudoなしで動作させるための記述
# vi /etc/udev/rules.d/nfcdev.rules

SUBSYSTEM==”usb”, ACTION==”add”, ATTRS{idVendor}==”054c”, \
ATTRS{idProduct}==”06c3″, GROUP=”plugdev” # Sony RC-S380/P

次に、Webブラウザからアクセスできるように、Raspberry PiにWebサーバであるapache2をインストールします。

# apt-get install apache2

インストールできたら、ドキュメントルート(/var/www以下)に読み取り結果を書き込むファイルを作成します。

# 読み取りスクリプトのパス > /var/www/書き込むファイル

うまくいくとブラウザから結果を見ることができます。(本当はCGIスクリプトでボタンをクリックすると、シェルスクリプトが実行されて結果を表示するところまで作りこみたかったのですが、今回は時間がなかったため、カード読込みはターミナルからの操作で行っています。)

スクリーンショット

かなり細かく情報を取得できるので、なかなか便利そうです!

弊社でRaspberry Piの販売を開始します!

このブログで紹介しましたカスタムモデルを含む3種類のRaspberry Pi(最小モデル・標準モデル・拡張モデル)の販売を開始します。OSインストール済みのストレージメディア付きなので届いてすぐにお使い頂けます。

価格は全て税込、送料込です。各モデルの構成は以下のURLをご参照下さい。
最小モデル:6,400円
標準モデル:15,000円
拡張モデル:20,000円

詳しくは下記のページをご覧下さい!
https://www.amulet.co.jp/products/custompc/raspberry_pi.html

また、このブログで構築したFelicaカードリーダーシステムを10/3(金)まで店頭で展示します。この機会に是非ご来店下さい。