ダメ元エンジニアのお勉強おメモ

ほとんど自分用のメモです。AWS をよく触ります。Web アプリとか作ります。Raspberry Pi も好きです。

【Raspberry Pi】指紋センサ ZFM-20

【 2020/06/27 追記】

Buster 版の記事を公開しました!
rasp.hateblo.jp

以下は、wheezy 版の記事です。

* * * * * * * * * *

Raspberry Piで指紋センサ「ZFM-20」を使うために2日間ググりまくったのでメモ。


1, ライブラリのインストール

↓海外の方がArduinoのライブラリをpythonで書き換えているのでそれを使用します。
Sicherheitskritisch | Fingerprint sensor for Raspberry Pi and Debian Linux (Update 8)

~$ echo "deb http://apt.pm-codeworks.de wheezy main" | sudo tee -a /etc/apt/sources.list
~$ wget -O - http://apt.pm-codeworks.de/pm-codeworks.de.gpg.key | sudo apt-key add -
~$ sudo apt-get update
~$ sudo apt-get install python-fingerprint
~$ sudo usermod -a -G dialout pi
~$ sudo reboot


2, 指紋センサをRaspberry Piに繋げる

上のリンク先では、USB-TTL変換モジュールを使って、指紋センサと接続していますが、同様のやり方では上手くいかなかったので、Raspberry Piと指紋センサを直接繋げることにしました。

  • 赤 5V ーーーーー GPIO 5V
  • 緑 TX ーーーーー GPIO15 (RX)
  • 白 RX ーーーーー GPIO14 (TX)
  • 黒 GND ーーーーー GPIO GND

f:id:rkr0314:20160518222648j:plain


3, Raspberry Pi UART 設定

Raspberry Pi側で、UARTによるシリアル通信を可能にするための設定を行います。
↓参考にしたのは下記のブログ
備忘録 Raspberry PiでUART、シリアル通信

~$ sudo vi /boot/cmdline.txt

# 下記の通りに変更
dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
~$ sudo vi /etc/inittab

#下記をコメントアウト
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

変更できたら再起動してください。


4, ライブラリのプログラム変更

・参考
pi 2 - Unable to integrate Fingerprint sensor in Raspberry Pi2 - Raspberry Pi Stack Exchange

~$ cd /usr/share/doc/python-fingerprint/examples/
~$ sudo vi example_index.py

'/dev/ttyUSB0'の部分を'/dev/ttyAMA0'に変更します。

# f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000)
f = PyFingerprint('/dev/ttyAMA0', 57600, 0xFFFFFFFF, 0x00000000) 


5, プログラムの実行

python2 ./example_index.py

下記のように出力されたら成功!

Currently stored templates: 0
Please enter the index page (0, 1, 2, 3) you want to see:


他のプログラムも同じように変更をすれば、実行可能になります。