セキュリティは私たちの日常生活における主要な関心事であり、デジタルロックはこれらのセキュリティシステムの重要な部分になっています。私たちの場所を保護するために利用できるセキュリティシステムには多くの種類があります。いくつかの例は、PIRベースのセキュリティシステム、RFIDベースのセキュリティシステム、デジタルロックシステム、バイオマトリックスシステム、電子コードロックです。この投稿では、指紋センサーモジュールをArduinoとインターフェースし、ドアロックを備えた指紋ベースの生体認証セキュリティシステムを構築します。指紋は、人を一意に認識でき、簡単にコピーできないため、システムをロックまたはロック解除するための最も安全なキーの1つと見なされています。
必要なコンポーネント:
- Arduino Uno
- 指紋モジュール
- プッシュボタン-4
- LED -2
- 1K抵抗-3
- 2.2K抵抗-1`
- 電源
- 接続線
- 段ボール箱
- サーボモーター-1
- 16x2 LCD -1
- ブレッドボード-1
Arduinoを備えた指紋センサーモジュール:
指紋センサーモジュールまたは指紋スキャナーは、指の印刷画像をキャプチャし、それを同等のテンプレートに変換して、Arduinoによって選択されたID(場所)のメモリに保存するモジュールです。ここでは、指紋の画像を取得し、それをテンプレートに変換し、場所を保存するなど、すべてのプロセスがArduinoによって指示されています。
このArduino指紋センサープロジェクトでは、指紋センサーモジュールを使用して、システムへの入力として指または親指の印象を取得しました。ここでは、4つのプッシュボタンを使用して、登録/戻る、削除/ OK、上および下に移動しています。すべてのキーには2つの機能があります。登録キーは、新しい指の印象をシステムに登録し、機能を戻すためにも使用されます。ユーザーが新しい指を登録したい場合、登録キーを押す必要があり、LCDはユーザーが指紋出力を保存したいIDまたは場所を尋ねます。この時点でユーザーが先に進みたくない場合は、もう一度登録キーを押して戻ることができます(今回は登録キーは戻るキーとして動作します)。手段登録キーには、登録機能と戻る機能の両方があります。DEL / OKキーまた、ユーザーが新しい指を登録するときと同じ二重機能があり、UP / MATCHとDOWN / MATCH(これも二重機能があります)という別の2つのキーを使用して、指IDまたは場所を選択する必要があります。ユーザーはDEL / OKを押す必要があります。キー(今回はこのキーはOKのように動作します)を選択して、選択したIDまたは場所に進みます。UP / DOWNキーは指紋照合機能もサポートしています。完全なデモンストレーションについては、最後のビデオを確認してください。
ここでは、セキュリティゲートとして機能するサーボモーター付きの段ボール箱も取り付けました。これは、システムが正しい指紋を読み取ったときにのみ開きます。黄色のLEDはゲートが閉じていることを示し、緑色のLEDはゲートが開いていることを示します。
作業説明:
この指紋センサードアロックの動作は簡単だ。このプロジェクトでは、保存された指を指紋モジュールに置くと開くゲートを使用しました。まず、ユーザーはプッシュボタン/キーを使用して指を登録する必要があります。これを行うには、ユーザーがENROLLキーを押す必要があります。その後、LCDは、指が保管される場所/ IDの入力を求めます。そのため、ユーザーは上/下キーを使用してID(場所)を入力する必要があります。場所/ IDを選択した後、ユーザーはOKキー(DELキー)を押す必要があります。 LCDは、指紋モジュールの上に指を置くように要求します。次に、ユーザーは指紋モジュールの上に指を置く必要があります。次に、LCDは指紋モジュールから指を離すように要求し、再び指を置くように要求します。ここで、ユーザーは指紋モジュールの上にもう一度指を置く必要があります。これで、指紋モジュールは画像を取得してテンプレートに変換し、選択したIDで指紋モジュールのメモリに保存します。これで、ユーザーは、システムに追加または登録したのと同じ指を置いてゲートを開き、MATCHキー(UP / Downキー)を押すことができます。同じ方法で、ユーザーはさらに指を追加できます。完全なデモンストレーションについては、以下のビデオを確認してください。
これで、ユーザーが保存されているIDのいずれかを削除または削除する場合は、DELキーを押す必要があります。DELキーを押した後、LCDは場所の選択を要求します。つまり、削除するIDを選択します。ここで、ユーザーはIDを選択し、OKキー(同じDELキー)を押す必要があります。これで、LCDは指が正常に削除されたことを通知します。これで、ユーザーは指紋モジュールの上に同じ指を置き、MATCHキー(UP / Downキー)を押すことで、削除されたかどうかを確認できます。
指を置くと有効になります緑色のLEDが5秒間点灯し、同時にゲートも開きます。5秒後、ゲートは自動的に閉じられます。ユーザーは、要件に応じてゲート/ドアの開閉をカスタマイズできます。サーボモーターはゲートの開閉を担当します。
回路の説明:
このArduino指紋セキュリティシステムの回路は非常にシンプルで、プロジェクトのプロセス全体を制御するArduino、プッシュボタン、ブザー、およびLCDが含まれています。 Arduinoは完全なプロセスを制御します。
プッシュボタンは、アースに対してArduinoのピンD14(ENROL)、D15(DEL)、D16(UP)、およびD17(DOWN)に直接接続されています。黄色のLEDは、アースに対してArduinoのデジタルピンD7に1k抵抗と緑色LEDを同じ方法でArduinoのD6に接続します。ArduinoのソフトウェアシリアルまたはデジタルピンD2およびD3に直接接続された指紋モジュールのRxおよびTx。Arduinoボードから取得した指紋モジュールに電力を供給するために5V電源が使用され、サーボモーターもArduinoのPWMピンD5に接続されています。16x2 LCDは4ビットモードで構成され、そのRS、EN、D4、D5、D6、およびD7は、ArduinoのデジタルピンD13、D12、D11、D10、D9、およびD8に直接接続されています。
注: ここで、D14、D15、D16、D17はそれぞれA0、A1、A2、A3です。
プログラムの説明:
プログラムでは、指紋モジュールをArduinoボードに接続するためにAdafruit指紋センサーライブラリを使用しました。以下の完全なコードを確認できます。簡単に理解できます。ここでは、Arduinoプログラムの主な機能について説明します。
以下のコードは、指紋を入力として受け取り、指の検証に従ってアクションを実行するために使用されます。指が検証される場合、ゲートは開いたままになります。
for(int i = 0; i <5; i ++){lcd.clear(); lcd.print( "指を置く"); delay(2000); int result = getFingerprintIDez(); if(result> = 0){digitalWrite(openLight、HIGH); digitalWrite(closeLight、LOW); lcd.clear(); lcd.print( "許可"); lcd.setCursor(0,1); lcd.print( "Gete Opened"); myServo.write(0); delay(5000); myServo.write(180); digitalWrite(closeLight、HIGH); digitalWrite(openLight、LOW); lcd.setCursor(0,1); lcd.print( "Gate Closed");
与えられた voidcheckKeys() 関数は、登録またはDELキーが押されたかどうか、および押された場合の処理をチェックするために使用されます。ENROLLキーが押された場合、 Enroll() 関数が呼び出され、DELキーが押された場合、 delete() 関数が呼び出されます。
void checkKeys(){if(digitalRead(enroll)== 0){lcd.clear(); lcd.print( "お待ちください"); delay(1000); while(digitalRead(enroll)== 0); Enroll(); } else if(digitalRead(del)== 0){lcd.clear(); lcd.print( "お待ちください"); delay(1000); delet(); }}
指定された関数は、削除するIDを入力し、レコードから指を削除する uint8_t deleteFingerprint(uint8_t id) 関数を呼び出すために使用されます。
void delet(){int count = 0; lcd.clear(); lcd.print( "指を削除"); lcd.setCursor(0,1); lcd.print( "場所:"); while(1){lcd.setCursor(9,1); lcd.print(count); if(digitalRead(up)== 0){count ++; if(count> 25)count = 0; delay(500); }……………..。
与えられた機能は、選択されたIDのレコードから指紋を削除するために使用されます。
uint8_t deleteFingerprint(uint8_t id){uint8_t p = -1; lcd.clear(); lcd.print( "お待ちください"); p = finger.deleteModel(id); if(p == FINGERPRINT_OK){Serial.println( "Deleted!"); lcd.clear(); lcd.print( "Figer Deleted"); lcd.setCursor(0,1); lcd.print( "Successfully"); delay(1000); } else {Serial.print( "Something Wrong"); lcd.clear(); lcd.print( "Something Wrong"); lcd.setCursor(0,1); lcd.print( "後で再試行"); delay(2000); pを返します。}}
指定された関数は、指紋画像を取得してテンプレートに変換し、選択したIDで指紋モジュールメモリに保存するために使用されます。
uint8_t getFingerprintEnroll(){int p = -1; lcd.clear(); lcd.print( "指ID:"); lcd.print(id); lcd.setCursor(0,1); lcd.print( "指を置く"); delay(2000); while(p!= FINGERPRINT_OK){p = finger.getImage();………………..。
これが、セキュリティシステム用の指紋リーダーモジュールでArduinoを使用する方法です。