#用意するもの
1.Arduino(今回はArduino Unoを使用)
2.USBケーブル type-B
3.ジャンパーケーブル
4.ブレッドボード
5.指紋認証センサ(FPM10A)
※5のFPM10Aは海外製で、Amazonなどの通販サイトでは同仕様の製品が複数あります。
買う際に到着日はよく確認して選定して下さい。
(私は1度税関で止められ、買い直しました。)
#指紋認証センサ
これが指紋認証センサです。
電源、GND、TX、RXの4つのケーブルで接続されます。
(TX,RXでシリアル通信により、データの送受信が行われます。)
赤枠の部分に指を置いて認証します。
#ケーブル
コネクタのケーブルを補強します。
赤枠部はブレッドボードに差し込む際には細すぎるので、ジャンパーをはんだ付けして補強します。
補強するケーブルは使う箇所だけで大丈夫です。
#指紋認証センサ(FPM10A)とArduinoの接続
FPM10Aのピン番号右から1番目です。
ケーブルは以下のようにします。
FPM10A | Arduino Uno |
---|---|
1.VCC(赤) | 5V |
2.GND(黒) | GND |
3.TX(黄) | D2 |
4.RX(白) | D3 |
*FPM10Aの5,6はNCです。ケーブルの色は購入するものによって、違います。 |
以下のアドレスよりダウンロード、インストールしてください。
https://www.arduino.cc/en/main/software
また、FPM10A用のライブラリをダウンロード,解凍し、ライブラリに保存してください。
https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library/archive/master.zip
#指紋の登録
Arduino IDEでファイル>スケッチ例>Adafruit Fingerprint Senosr Liberary>enroll
をクリックします。
#if
~#end if
の間でSoftwareSerial mySerial(2, 3);
だけを残し、あとはコメントアウトしてください。
//#if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__)
// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire)
// Set up the serial port to use softwareserial..
SoftwareSerial mySerial(2, 3);
//#else
// On Leonardo/M0/etc, others with hardware serial, use hardware serial!
// #0 is green wire, #1 is white
//#define mySerial Serial1
//#endif
ボードの設定は以下のようになります。
ツール>ボード>ボードマネージャー
よりArduino Uno
を選択
USBケーブルをArduinoに接続し、シリアルポート
を確認して、「書き込み」をクリックします。
書込みが完了すると、赤枠のメッセージが表示
シリアルモニタ(黄枠)をクリックします。
シリアルモニタが以下のように表示されれば、指紋登録の待ち受け状態です。
ボーレート(赤枠)が9600
になっているか確認してください。
1~127の数字を最上部の入力フォームに入力します。この数の範囲で指紋を登録できます。
数字を入力し、センサに指を当てると登録処理が開始します。
認識すると、赤枠のようにIDが表示されます。
もう一度、同じ指を当てて、赤枠のStored!
が表示されれば、登録完了です。
#指紋認証テスト
Arduino IDEでファイル>スケッチ例>Adafruit Fingerprint Senosr Liberary>fingerprint
をクリックします。
enroll
と同じように初期宣言を編集します。
//#if (defined(__AVR__) || defined(ESP8266)) && !defined(__AVR_ATmega2560__)
// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino (WHITE wire)
// Set up the serial port to use softwareserial..
SoftwareSerial mySerial(2, 3);
//#else
// On Leonardo/M0/etc, others with hardware serial, use hardware serial!
// #0 is green wire, #1 is white
//#define mySerial Serial1
//#endif
「書込み」をクリックし、シリアルモニタにNo finger detected
と表示されます。
また、センサのLEDが点滅します。
指を当てた時、成功した場合、IDの番号と整合率(confidence
)が表示されます。
失敗した場合、Communication error
が表示されます。
所感ですが、センサの精度はスマホに内蔵されてるものと比べると、比較的高いように思います。
(接触部の表面積が大きいから?)
#参考
Arduino MicroとFPM10Aで指紋認証し文字出力させました。
https://qiita.com/yasui_teco/items/476ddd34a51b1429eee9
#次回、ファームウェア解析をやっていきます。