LoginSignup
0
0

More than 1 year has passed since last update.

nfcpy-idノードが動かないときの対処方法

Last updated at Posted at 2022-12-21

きっかけ

以前、enebularブログで「社員証タッチで参加者リストを自動作成」という記事がありました。
MIFAREの社員証カードのタグをソニー製のNFCカードリーダーであるRC-S280で読み取ってGoogleシートに連携するという内容です。

この記事の公開は、2020年でして、今になって試してみたところ、動作しないことが発覚しました:disappointed_relieved:

問題・・・

原因は、こちらのノードにあるらしいということまではわかっています。

が、私には、コーディングのスキルがありません。

でも、なんとかカードは読み取って欲しい・・・

そこで、ノードがうまく行かないときの対処方法を見つけましたので、ご報告します。

対処方法

カードリーダーを使えるようにする

ここまではnfcpy-idノードを使う場合と一緒です。nfcpyをインストールしてICカードリーダーを使えるように設定します。ここでは、PaSoRi RC-S380を例にしています。

$ pip3 install nfcpy
$ cat << EOF | sudo tee /etc/udev/rules.d/nfcdev.rules
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="06c3", GROUP="plugdev"
EOF
$ reboot

カードリーダーが動作するか試す

カードリーダーにNFCのカードをかざしてみてから、

sudo python3 /home/pi/nfcpy/examples/tagtool.py show

として、プログラムを実行してみましょう。

TagIDが表示されれば問題無いです。

例えば、私の場合はMIFAREの社員証だったので、以下の様に表示されました。

pi@raspberrypi:~ $ sudo python3 nfcpy/examples/tagtool.py show
[nfc.clf] searching for reader on path usb
[nfc.clf] using Sony RC-S330 RCS956v1.30 at usb:001:004
** waiting for a tag **
Type2Tag ID=XXXXXXXX

もしTagIDが表示されなければ、nfcpyのソフトウェアが正常に動作していないですので、そこから原因を探すことになります。

フローをつくる

execノード使ってこんなフローを組みます。

image.png

プロパティはこんな感じです。

excecノード

コマンド sudo python3 /home/pi/nfcpy/examples/tagtool.py show
出力 spawnモード
名前 nfc

image.png

changeノード

image.png

このフローを実行すると、カードリーダーでカードをかざすとpayloadにtagtool.pyの読み取り結果が格納されます。
debugタブに、例えば、Type2Tag ID=XXXXXXXXなどと表示されます。
changeノードで一旦読み取り結果がクリアされて、カードリーダーの読み取り待ちになります。

まとめ

ノードが動かないとき、ノードを修正するスキルがあればいいのですが、できないため、execノードでなんとかカードを読み取るという目的は達成できました。

今日使用したフローは、enebularのdiscoverで公開しています。

使用したフロー

このシンプルなフローでは、カードのタグを2回読み取ってしまったりするので、フローの後段で工夫が必要にはなると思います。今後、機会があれば、対応方法を紹介したいと思います。

参考

0
0
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
0
0