Raspberry Pi + PaSoRiでICカードの情報をよみこむ

Raspberry Pi + PaSoRiでICカードの情報をよみこむ

どうもこんにちは!塚本です。

今日は僕のだいすきなRaspberry Piについての記事になります。
お使いのICカードを用いて、お手軽な出退勤システムを作ることもできます。

ここでいうICカードは、FelicaやMifare規格のものを指します。
カードリーダには、SONYのPaSoRi RC-S380を使用します。

皆さんの使っているICOCAやSuica,
iDやWAONまたは学生証や社員証などにはどんなデータが入っているのか。
確認して、ニヤニヤしてみてはどうでしょうか。

Raspberry Piとは


イギリスのラズベリーパイ財団によって開発されているワンボードマイコンの一種です。
写真は、Raspberry Pi 3 Model Bになります。

ラズパイの魅了としては、以下の3点が挙げられます。

  • 小型・低コスト
  • I/Oポートが複数ある
  • Linuxが扱える

nfcpyの導入

ラズパイでICカードの情報を読み取るために、nfcpyをラズパイにインストールします。
と、その前にラズパイにpipが入っていないようでしたらpipもいれてあげましょう。

pipのインストール

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py

nfcpyのインストール

sudo pip install nfcpy

ここで、正しくラズパイにnfcpyがインストールできているか確認のために以下のような形で確かめてみてください。

python
>> import nfc

僕はここでハマり、色々な手を尽くしましたが改善しなかった過去があります(笑)
そうなったときはラズパイのOSをRaspbianからUbuntu MATEに変更するとすんなりうまく行きましたよ!

RaspbianはDebianベースですが、Ubuntu MATEは名の通りUbuntuベースなのでうまく行ったのかな…。

ICカードの読み取り

nfcpyが無事にラズパイに入ったところで、SONYのICカードリーダ、
PaSoRi RC-S380をラズパイにつなぎましょう。

その次に、nfcpyのサンプルプログラムであるtagtool.pyを実行してICカードをリーダにかざしてみて下さい。


↑のような画面がでればOKです。
ID=0110…の部分がICカードの固有ID(IDm)になっています。

この部分を利用することによって、社員証だけでなく、
お使いのICOCAやiDやnanacoを用いて出退勤システムを作ることもできます。

カードによる出退勤は応答が早くスムーズですが、出退勤専用のカードを持つのもなぁ…
という方にはRaspberry Pi + PaSoRiはピッタリだと思います。