- ส่วนประกอบที่จำเป็น
- ล็อคโซลินอยด์
- แผนภูมิวงจรรวม
- ติดตั้งบอร์ด ESP32 บน Arduino IDE
- คำอธิบายรหัส
- การทดสอบไฟล์
ความปลอดภัยเป็นสิ่งที่ทุกคนกังวลมากที่สุดในปัจจุบันไม่ว่าจะเป็นความปลอดภัยของข้อมูลหรือความปลอดภัยในบ้านของพวกเขาเอง ด้วยความก้าวหน้าของเทคโนโลยีและการใช้ IoT ที่เพิ่มขึ้นทำให้ทุกวันนี้การล็อคประตูแบบดิจิทัลกลายเป็นเรื่องปกติมาก Digital lock ไม่จำเป็นต้องใช้คีย์ทางกายภาพใด ๆ แต่ใช้ RFID ลายนิ้วมือ Face ID พินรหัสผ่าน ฯลฯ เพื่อควบคุมการล็อกประตู ที่ผ่านมาเราได้พัฒนาแอพพลิเคชั่นล็อคประตูดิจิทัลมากมายโดยใช้เทคโนโลยีต่างๆเหล่านี้ ในการกวดวิชานี้เราสร้างID ใบหน้าควบคุมระบบล็อคประตูดิจิตอลใช้ ESP32-CAM
โมดูล AI-Thinker ESP32-CAM เป็นบอร์ดพัฒนาราคาประหยัดพร้อมกล้อง OV2640 ขนาดเล็กมากและช่องเสียบการ์ด micro SD มีชิป ESP32 S พร้อมการเชื่อมต่อ Wi-Fi และบลูทู ธ ในตัวพร้อมด้วยซีพียู LX6 32 บิตประสิทธิภาพสูง 2 ตัวสถาปัตยกรรมท่อ 7 ขั้นตอน ก่อนหน้านี้เราได้อธิบายรายละเอียด ESP32-CAM และใช้เพื่อสร้างออดวิดีโอประตู Wi-Fi คราวนี้เราจะใช้ ESP32-CAM เพื่อสร้างระบบล็อคประตูตามการจดจำใบหน้าโดยใช้โมดูลรีเลย์และโซลินอยด์ล็อค
ส่วนประกอบที่จำเป็น
- ESP32 CAM
- บอร์ดส. อ. ท
- โมดูลรีเลย์
- ล็อคโซลินอยด์
- สายจัมเปอร์
ล็อคโซลินอยด์
โซลินอยด์ล็อคทำงานบนกลไกการล็อคแบบกลไกอิเล็กทรอนิกส์ ล็อคประเภทนี้มีกระสุนที่มีการตัดแบบเอียงและตัวยึดที่ดี เมื่อใช้กระแสไฟ DC จะสร้างสนามแม่เหล็กที่เลื่อนกระสุนเข้าไปด้านในและทำให้ประตูอยู่ในตำแหน่งปลดล็อค กระสุนจะคงตำแหน่งไว้จนกว่าพลังจะถูกลบออก เมื่อตัดการเชื่อมต่อไฟฟ้ากระสุนจะเคลื่อนออกไปข้างนอกและล็อคประตู มันไม่ใช้อำนาจใด ๆ ในสถานะล็อค ในการขับเคลื่อนโซลินอยด์ล็อคคุณจะต้องมีแหล่งพลังงานที่สามารถให้ 12V @ 500mA
ก่อนหน้านี้เราใช้โซลินอยด์ล็อคเพื่อสร้างล็อคประตู RFID ที่ใช้ Arduino
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับระบบล็อคประตูจดจำใบหน้า ESP32-CAM แสดงไว้ด้านล่าง:
วงจรด้านบนรวมกับบอร์ด FTDI โมดูลรีเลย์และ Solenoid Lock บอร์ด FTDI ใช้เพื่อแฟลชโค้ดลงใน ESP32-CAM เนื่องจากไม่มีขั้วต่อ USB ในขณะที่ใช้โมดูลรีเลย์เพื่อเปิดหรือปิด Solenoid lock หมุด VCC และ GND ของบอร์ด FTDI และโมดูลรีเลย์เชื่อมต่อกับขา Vcc และ GND ของ ESP32-CAM TX และ RX ของบอร์ด FTDI เชื่อมต่อกับ RX และ TX ของ ESP32 และขา IN ของโมดูลรีเลย์เชื่อมต่อกับ IO4 ของ ESP32-CAM
ESP32-CAM |
บอร์ดส. อ. ท |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
โมดูลรีเลย์ |
5V |
VCC |
GND |
GND |
IO4 |
ใน |
หมายเหตุ:ก่อนอัปโหลดโค้ดให้เชื่อมต่อ IO0 กับกราวด์ IO0 กำหนดว่า ESP32 อยู่ในโหมดกระพริบหรือไม่ เมื่อเชื่อมต่อ GPIO 0 กับ GND แล้ว ESP32 จะอยู่ในโหมดกระพริบ
หลังจากเชื่อมต่อฮาร์ดแวร์ตามแผนภาพวงจรแล้วควรมีลักษณะดังนี้:
ติดตั้งบอร์ด ESP32 บน Arduino IDE
Arduino IDE ใช้ในการเขียนโปรแกรม ESP32-CAM ก่อนอื่นให้ติดตั้งส่วนเสริม ESP32 บน Arduino IDE
ในการติดตั้งบอร์ด ESP32 ใน Arduino IDE ของคุณให้ไปที่ ไฟล์> การตั้งค่า
ตอนนี้คัดลอกลิงค์ด้านล่างและวางลงในช่อง“ URL ของ Board Manager เพิ่มเติม” ดังแสดงในรูปด้านล่าง จากนั้นคลิกปุ่ม“ ตกลง”:
https://dl.espressif.com/dl/package_esp32_index.json
ไปที่ Tools> Board> Boards Manager
ใน Board Manager ค้นหา ESP32 และติดตั้ง“ ESP32 by Espressif Systems”
คำอธิบายรหัส
เราได้อธิบายการจดจำใบหน้าด้วย ESP32 ในบทความก่อนหน้านี้ ที่นี่เราจะแก้ไขรหัสเดียวกันเพื่อควบคุมล็อคประตูโซลินอยด์ รหัสที่สมบูรณ์แบ่งออกเป็นสี่ส่วน รหัสหนึ่งคือรหัสหลักสำหรับโมดูลกล้องและรีเลย์ที่ ESP32 ล็อกหรือปลดล็อกประตูตามการจดจำใบหน้าและอีกสามรหัสใช้สำหรับหน้าเว็บดัชนีกล้องและหมุดของกล้อง รหัสที่สมบูรณ์จะได้รับที่ส่วนท้ายของหน้านี้ เรากำลังอธิบายส่วนสำคัญบางส่วนของโค้ด
เริ่มต้นโปรแกรมโดยรวมไฟล์ไลบรารีทั้งหมด
#include "esp_camera.h" #include
ในบรรทัดถัดไปให้ยกเลิกการใส่เครื่องหมายโมดูลกล้องที่คุณใช้กับ ESP32 ในรหัสมีการกำหนดรุ่นกล้องที่แตกต่างกันห้ารุ่น ในกรณีนี้เรากำลังใช้โมเดล AI-THINKER
// # กำหนด CAMERA_MODEL_WROVER_KIT // # กำหนด CAMERA_MODEL_ESP_EYE // # กำหนด CAMERA_MODEL_M5STACK_PSRAM // # กำหนด CAMERA_MODEL_M5STACK_WIDE # กำหนด CAMERA_MODEL_AI_THINKER
หลังจากนั้นใส่ข้อมูลรับรองเครือข่ายของคุณในตัวแปรต่อไปนี้:
const char * ssid = "ชื่อ Wi-Fi"; const ถ่าน * รหัสผ่าน = "รหัสผ่าน Wi-Fi";
จากนั้นกำหนดพินที่เชื่อมต่อโมดูลรีเลย์ เราจะใช้ฟังก์ชัน millis () เพื่อล็อคประตูหลังจากปลดล็อกในช่วงเวลาที่กำหนดซึ่งนี่คือ 5 วินาที
# กำหนดรีเลย์ 4 ยาว prevMillis = 0; ช่วง int = 5000;
ในฟังก์ชันการ ตั้งค่า () เริ่มต้น Serial Monitor ที่อัตราการส่งข้อมูล 115200 เพื่อวัตถุประสงค์ในการดีบัก จากนั้นในบรรทัดถัดไปกำหนดโหมดพินสำหรับโมดูลรีเลย์และตั้งรีเลย์ที่ตำแหน่งต่ำในตอนแรก
การตั้งค่าเป็นโมฆะ () {Serial.begin (115200); PinMode (รีเลย์, เอาต์พุต); digitalWrite (รีเลย์, LOW);
ภายในฟังก์ชัน loop () ตรวจสอบว่าใบหน้าตรงกับใบหน้าที่ลงทะเบียนหรือไม่ ถ้าใช่ให้ปลดล็อกประตูเป็นเวลา 5 วินาทีและหลังจากนั้น 5 วินาทีให้ล็อกประตูอีกครั้ง
โมฆะ loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (รีเลย์สูง); prevMillis = มิลลิวินาที (); } if (activeRelay == true && millis () - prevMillis> ช่วงเวลา) {activeRelay = false; matchFace = เท็จ; digitalWrite (รีเลย์, LOW); }
การทดสอบไฟล์
ในที่สุดเพื่ออัปโหลดรหัสเชื่อมต่อบอร์ด FDTI กับแล็ปท็อปของคุณและเลือก 'ESP32 Wrover Module' เป็นบอร์ดของคุณ เปลี่ยนการตั้งค่าอื่น ๆ ตามที่แสดงในภาพด้านล่าง:
อย่าลืมเชื่อมต่อพิน IO0 กับ GND ก่อนอัปโหลดรหัสและกดปุ่มรีเซ็ต ESP32 จากนั้นคลิกที่ปุ่มอัปโหลด
หมายเหตุ:หากคุณได้รับข้อผิดพลาดขณะอัปโหลดโค้ดให้ตรวจสอบว่า IO0 เชื่อมต่อกับ GND และคุณได้เลือกการตั้งค่าที่ถูกต้องในเมนูเครื่องมือ
หลังจากอัปโหลดโค้ดแล้วให้นำพิน IO0 และ GND ออก จากนั้นเปิดมอนิเตอร์แบบอนุกรมและเปลี่ยนอัตราการส่งข้อมูลเป็น 115200 หลังจากนั้นให้กดปุ่มรีเซ็ต ESP32 ระบบจะพิมพ์ที่อยู่ IP ของ ESP และหมายเลขพอร์ต บนจอภาพอนุกรม
ตอนนี้ไปที่เบราว์เซอร์และป้อนที่อยู่ IP ESP ที่คัดลอกจากจอภาพอนุกรมเพื่อเข้าถึงการสตรีมกล้อง จะนำคุณไปยังหน้าสตรีมมิง ในการเริ่มการสตรีมวิดีโอให้คลิกที่ปุ่ม "เริ่มสตรีม" ที่ด้านล่างของหน้า
ในการจดจำใบหน้าด้วย ESP32-CAM ก่อนอื่นเราต้องลงทะเบียนใบหน้า สำหรับสิ่งนั้นให้เปิดคุณสมบัติการจดจำใบหน้าและการตรวจจับจากการตั้งค่าจากนั้นคลิกที่ปุ่มลงทะเบียนใบหน้า ต้องใช้ความพยายามหลายครั้งในการบันทึกใบหน้า หลังจากบันทึกใบหน้าแล้วจะตรวจจับใบหน้าเป็นวัตถุ 0โดยที่ศูนย์คือหมายเลขใบหน้า
หลังจากลงทะเบียนใบหน้าแล้วหากจดจำใบหน้าได้ในฟีดวิดีโอ ESP32 จะทำให้โมดูลรีเลย์อยู่สูงเพื่อปลดล็อกประตู
นี่คือวิธีที่สามารถใช้ ESP32-CAM เพื่อสร้างระบบรักษาความปลอดภัยตามการจดจำใบหน้า สามารถดาวน์โหลด Complete Code ได้จากลิงค์นี้และสามารถดูวิดีโอสาธิตด้านล่างได้