【Ubuntu】NFCリーダーを接続して動かすまで

Raspberry PiにUbuntuをぶち込んで、USB接続したNFCリーダーで動作させるまで。

環境

動作させる環境。

Raspbery Pi

  • Raspberry Pi 4 ModelB 2GB
  • Ubuntu 20.04.1 LTS (64bit)

NFCリーダー

  • SONY RC-S380

Raspberry Pi公式ページDLから、Raspberry Pi ImagerをダウンロードしてSDカードに書き込み、Raspberry Piを起動。

初期設定

色々やったので、要らない項目もあるかもしれないけど

$ sudo apt update
$ sudo apt upgrade
$ sudo apt -y install python3-pip
$ sudo pip3 install -U nfcpy

以下はお好みで。

$ timedatectl set-timezone Asia/Tokyo
$ sudo apt -y install ubuntu-desktop

NFCリーダーを動作させる

Raspberry PiにNFCリーダーを接続する。

以下のファイルを用意する。

$ cd ~
$ vi nfctest.py
~/nfctest.py
import nfc
clf = nfc.ContactlessFrontend("usb")
print(clf)

上記のコードを実行してみる。

$ python3 nfctest.py

するとIOErrorが出た。

OSError: [Errono 19] No such device

以下のコマンドで解決策が表示されるみたい。

$ python3 -m nfc

おそらくバーッと英語が表示されるけど、そのうち「sudo~」で始まるコマンドがいくつか書かれているので、それを実行していく。

$ sudo sh -c 'echo SUBSYSTEM==\"usb\", ACTION==\"add\", ATTRS{idVendor}==\"054c\", ATTRS{idProduct}==\"06c1\", GROUP=\"plugdev\" >> /etc/udev/rules.d/nfcdev.rules'
$ sudo udevadm control -R

エラーなくコマンドは通ったので、もう一度実行してみる。

$ python3 nfctest.py
OSError: [Errono 19] No such device

あれ?まだダメだ。

$ python3 -m nfc

もう一度、上記コマンドを打ってみると、別のコマンドが表示されていた。

$ sudo modprove -r port100
$ sudo sh -C 'echo blacklist port100 >> /etc/modprove.d/blacklist-nfc.conf'

再度、コードを実行してみる。

$ python3 nfctest.py
SONY RC-S380/S on usb:001:005

やっと通った!
これで開発が進められます。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください