セキュリティは、データセキュリティであろうと、自宅のセキュリティであろうと、今日では誰にとっても最大の関心事です。技術の進歩とIoTの使用の増加に伴い、デジタルドアロックは最近非常に一般的になっています。デジタルロックは物理的なキーを必要としませんが、RFID、指紋、Face ID、PIN、パスワードなどを使用してドアロックを制御します。これまで、これらのさまざまな技術を使用して、多くのデジタルドアロックアプリケーションを開発してきました。このチュートリアルでは、ESP32-CAMを使用してFaceID制御のデジタルドアロックシステムを構築します。
AI-Thinker ESP32-CAMモジュールは、非常に小さいサイズのOV2640カメラとマイクロSDカードスロットを備えた低コストの開発ボードです。Wi-FiとBluetooth接続が組み込まれたESP32Sチップ、2つの高性能32ビットLX6 CPU、7ステージパイプラインアーキテクチャを備えています。以前にESP32-CAMについて詳しく説明し、それを使用してWi-Fiドアビデオドアベルを作成しました。今回は、ESP32-CAMを使用して、リレーモジュールとソレノイドロックを使用した顔認識ベースのドアロックシステムを構築します。
必要なコンポーネント
- ESP32 CAM
- FTDIボード
- リレーモジュール
- ソレノイドロック
- ジャンパー線
ソレノイドロック
ソレノイドロックは、電子機械式ロック機構で機能します。このタイプのロックには、傾斜カットのスラッグと適切な取り付けブラケットがあります。電力が供給されると、DCはスラグを内部に移動させ、ドアをロック解除位置に保つ磁場を生成します。スラッグは、電源が切れるまでその位置を保持します。電源が切断されると、スラッグが外側に移動してドアをロックします。ロック状態では電力を使用しません。ソレノイドロックを駆動するには、12V @ 500mAを供給できる電源が必要です。
以前は、ソレノイドロックを使用してArduinoベースのRFIDドアロックを構築していました。
回路図
ESP32-CAM顔認識ドアロックシステムの回路図を以下に示します。
上記の回路は、FTDIボード、リレーモジュール、およびソレノイドロックと組み合わされています。FTDIボードはUSBコネクタがないためコードをESP32-CAMにフラッシュするために使用され、リレーモジュールはソレノイドロックのオンとオフを切り替えるために使用されます。FTDIボードとリレーモジュールのVCCピンとGNDピンはESP32-CAMのVccピンとGNDピンに接続されています。FTDIボードのTXとRXはESP32のRXとTXに接続され、リレーモジュールのINピンはESP32-CAMのIO4に接続されます。
ESP32-CAM |
FTDIボード |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
処方箋 |
ESP32-CAM |
リレーモジュール |
5V |
VCC |
GND |
GND |
IO4 |
に |
注:コードをアップロードする前に、IO0をアースに接続してください。IO0は、ESP32がフラッシュモードであるかどうかを判別します。GPIO 0がGNDに接続されている場合、ESP32は点滅モードになります。
回路図に従ってハードウェアを接続すると、次のようになります。
ArduinoIDEにESP32ボードをインストールする
ここでは、ArduinoIDEを使用してESP32-CAMをプログラムしています。そのためには、まず、ArduinoIDEにESP32アドオンをインストールします。
Arduino IDEにESP32ボードをインストールするには、 [ファイル]> [設定]に 移動し ます。
次に、以下のリンクをコピーして、次の図に示すように、「追加のボードマネージャーURL」フィールドに貼り付けます。次に、「OK」ボタンをクリックします。
https://dl.espressif.com/dl/package_esp32_index.json
次に、[ツール]> [ボード]> [ボードマネージャー]に 移動し ます
Board Managerで、ESP32を検索し、「ESP32 byEspressifSystems」をインストールします。
コードの説明
前回の記事でESP32による顔認識について説明しました。ここでは、ソレノイドドアロックを制御するために同じコードを変更します。完全なコードは4つの部分に分かれています。1つは、ESP32が顔認識に従ってドアをロックまたはロック解除するカメラおよびリレーモジュールのメインコードであり、他の3つのコードは、Webページ、カメラインデックス、およびカメラピン用です。完全なコードはこのページの最後にあります。ここでは、コードのいくつかの重要な部分について説明します。
すべてのライブラリファイルを含めることからプログラムを開始します。
#include "esp_camera.h" #include
次の行で、ESP32で使用しているカメラモジュールのコメントを解除します。コードでは、5つの異なるカメラモデルが定義されています。この場合、AI-THINKERモデルを使用しています。
//#define CAMERA_MODEL_WROVER_KIT //#define CAMERA_MODEL_ESP_EYE //#define CAMERA_MODEL_M5STACK_PSRAM //#define CAMERA_MODEL_M5STACK_WIDE #define CAMERA_MODEL_AI_THINKER
その後、次の変数にネットワーク資格情報を挿入します。
const char * ssid = "Wi-Fi Name"; const char * password = "Wi-Fiパスワード";
次に、リレーモジュールが接続されているピンを定義します。我々が使用する ミリ() の時間の定義された間隔でロックを解除した後、ドアをロックする機能を、ここでは5秒です。
#defineリレー4長いprevMillis = 0; int間隔= 5000;
で 、セットアップ() 関数で、デバッグ目的のための115200のボーレートでシリアルモニタを初期化します。次に、次の行で、リレーモジュールのピンモードを定義し、最初はリレーをロー位置に設定します。
void setup(){Serial.begin(115200); pinMode(リレー、出力); digitalWrite(relay、LOW);
loop() 関数内で、顔が登録済みの顔と一致するかどうかを確認します。はいの場合は、ドアのロックを5秒間解除し、5秒後にドアを再度ロックします。
void loop(){if(matchFace == true && activeRelay == false){activeRelay = true; digitalWrite(リレー、HIGH); prevMillis = millis(); } if(activeRelay == true && millis()-prevMillis> interval){activeRelay = false; matchFace = false; digitalWrite(relay、LOW); }
テスト
最後にコードをアップロードするには、FDTIボードをラップトップに接続し、ボードとして「ESP32WroverModule」を選択します。また、次の図に示すように、他の設定を変更します。
コードをアップロードする前に、IO0ピンをGNDに接続することを忘れないでください。また、ESP32リセットボタンを押してから、アップロードボタンをクリックしてください。
注:コードのアップロード中にエラーが発生した場合は、IO0がGNDに接続されていることを確認し、[ツール]メニューで適切な設定を選択したことを確認してください。
コードをアップロードした後、IO0ピンとGNDピンを取り外します。次に、シリアルモニターを開き、ボーレートを115200に変更します。その後、ESP32リセットボタンを押すと、ESPIPアドレスとポート番号が出力されます。シリアルモニターで。
次に、ブラウザに移動し、シリアルモニターからコピーされたESPIPアドレスを入力してカメラストリーミングにアクセスします。ストリーミングページに移動します。ビデオストリーミングを開始するには、ページの下部にある[ストリームの開始]ボタンをクリックします。
ESP32-CAMで顔を認識するには、まず顔を登録する必要があります。そのためには、設定から顔認識および検出機能をオンにしてから、[顔の登録]ボタンをクリックします。顔を保存するには数回の試行が必要です。顔を保存した後、被写体0として顔を検出します。ゼロは顔番号です。
顔を登録した後、ビデオフィードで顔が認識されると、ESP32はリレーモジュールをハイにしてドアのロックを解除します。
これが、ESP32-CAMを使用して顔認識ベースのセキュリティシステムを構築する方法です。完全なコードはこのリンクからダウンロードでき、デモビデオとともに以下にも提供されています。