- Kinakailangan ang Mga Bahagi
- Solenoid Lock
- Diagram ng Circuit
- I-install ang ESP32 Board sa Arduino IDE
- Paliwanag sa Code
- Pagsubok sa
Ang seguridad ay higit na nag-aalala para sa sinumang sa kasalukuyan, maging ang seguridad ng data o seguridad ng kanilang sariling tahanan. Sa pagsulong ng teknolohiya at pagdaragdag ng paggamit ng IoT, ang mga digital lock ng pinto ay naging pangkaraniwan sa mga panahong ito. Ang digital lock ay hindi nangangailangan ng anumang pisikal na key ngunit gumagamit ito ng RFID, fingerprint, Face ID, pin, password, atbp upang makontrol ang lock ng pinto. Noong nakaraan, nakabuo kami ng maraming mga application ng digital lock lock gamit ang iba't ibang mga teknolohiyang ito. Sa tutorial na ito bumuo kami ng isang kontrolado ng Face ID ng Digital Door lock system gamit ang ESP32-CAM.
Ang module ng AI-Thinker ESP32-CAM ay isang board na may mababang gastos na may napakaliit na laki ng OV2640 camera at isang puwang ng micro SD card. Mayroon itong isang chip na ESP32 S na may built-in na Wi-Fi at pagkakakonekta ng Bluetooth, na may 2 mataas na pagganap na 32-bit na LX6 CPU, 7-yugto na arkitekturang pipeline. Nauna naming naipaliwanag nang detalyado ang ESP32-CAM at ginamit ito upang bumuo ng isang Wi-Fi door Video doorbell. Sa oras na ito gagamitin namin ang ESP32-CAM upang bumuo ng isang Face Recognition batay sa Door Lock System gamit ang isang Relay module at Solenoid Lock.
Kinakailangan ang Mga Bahagi
- ESP32 CAM
- Lupon ng FTDI
- Relay Module
- Solenoid Lock
- Jumper Wires
Solenoid Lock
Ang isang solenoid lock ay gumagana sa elektronikong mekanikal na pagla-lock. Ang ganitong uri ng lock ay may isang slug na may isang slanted cut at isang mahusay na mounting bracket. Kapag inilapat ang kuryente, lumilikha ang DC ng isang magnetic field na gumagalaw ng slug sa loob at pinapanatili ang pinto sa naka-unlock na posisyon. Ang slug ay mananatili sa posisyon nito hanggang sa matanggal ang lakas. Kapag na-disconnect ang kuryente, ang slug ay gumagalaw sa labas at ikinandado ang pinto. Hindi ito gumagamit ng anumang kapangyarihan sa isang naka-lock na estado. Upang himukin ang solenoid lock, kakailanganin mo ng isang mapagkukunan ng kuryente na maaaring magbigay sa 12V @ 500mA.
Ginamit namin dati ang isang solenoid lock upang makabuo ng isang Arduino batay sa RFID lock ng pinto.
Diagram ng Circuit
Ang Circuit Diagram para sa ESP32-CAM Face Recognition Door Lock System ay ibinibigay sa ibaba:
Ang circuit sa itaas ay sinamahan ng isang FTDI board, Relay Module, at Solenoid Lock. Ang FTDI board ay ginagamit upang i-flash ang code sa ESP32-CAM dahil wala itong USB konektor habang ginagamit ang module ng relay upang ilipat o i-off ang Solenoid lock. Ang mga VCC at GND na pin ng FTDI board at Relay module ay konektado sa Vcc at GND pin ng ESP32-CAM. Ang TX at RX ng FTDI board ay konektado sa RX at TX ng ESP32 at ang IN pin ng module ng relay ay konektado sa IO4 ng ESP32-CAM.
ESP32-CAM |
Lupon ng FTDI |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Relay Module |
5V |
VCC |
GND |
GND |
IO4 |
SA |
Tandaan: Bago i-upload ang code, ikonekta ang IO0 sa lupa. Tinutukoy ng IO0 kung ang ESP32 ay nasa flashing mode o hindi. Kapag ang GPIO 0 ay konektado sa GND, ang ESP32 ay nasa flashing mode.
Matapos ikonekta ang hardware ayon sa circuit diagram, dapat itong magmukhang katulad sa ibaba:
I-install ang ESP32 Board sa Arduino IDE
Dito ginagamit ang Arduino IDE upang iprograma ang ESP32-CAM. Para doon, una, i-install ang add-on ng ESP32 sa Arduino IDE.
Upang mai-install ang board ng ESP32 sa iyong Arduino IDE, pumunta sa File> Mga Kagustuhan.
Kopyahin ngayon ang link sa ibaba at i-paste ito sa patlang na "Mga Karagdagang Mga URL ng Board Manager" tulad ng ipinakita sa larawan sa ibaba. Pagkatapos, i-click ang pindutang "OK":
https://dl.espressif.com/dl/package_esp32_index.json
Pumunta ngayon sa Tools> Board> Boards Manager
Sa Board Manager, hanapin ang ESP32 at i-install ang "ESP32 ng Espressif Systems".
Paliwanag sa Code
Ipinaliwanag namin ang Pagkilala sa Mukha kasama ang ESP32 sa nakaraang artikulo; dito ay babago namin ang parehong code upang makontrol ang isang solenoid lock ng pinto. Ang kumpletong code ay nahahati sa apat na bahagi. Ang isa ay ang pangunahing code para sa camera at module ng relay kung saan ang ESP32 ay nakakandado o ina-unlock ang pinto ayon sa pagkilala sa mukha, at ang iba pang tatlong mga code ay para sa web page, camera index, at mga pin ng camera. Ang kumpletong code ay ibinibigay sa dulo ng pahinang ito. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code.
Simulan ang programa sa pamamagitan ng pagsasama ng lahat ng mga file sa library.
# isama ang "esp_camera.h" # isama
Sa susunod na linya, huwag paganahin ang module ng camera na ginagamit mo sa ESP32. Sa code, tinukoy ang limang magkakaibang mga modelo ng camera. Sa kasong ito, gumagamit kami ng Modelong AI-THINKER.
// # tukuyin ang CAMERA_MODEL_WROVER_KIT // # tukuyin ang CAMERA_MODEL_ESP_EYE // # tukuyin ang CAMERA_MODEL_M5STACK_PSRAM // # tukuyin ang CAMERA_MODEL_M5STACK_WIDE # tukuyin ang CAMERA_MODEL_AI_THINKER
Pagkatapos nito, ipasok ang iyong mga kredensyal sa network sa mga sumusunod na variable:
const char * ssid = "Pangalan ng Wi-Fi"; const char * password = "Wi-Fi password";
Pagkatapos tukuyin ang pin kung saan nakakonekta ang module ng relay. Susundan natin ang gamit millis () function na upang i-lock ang pinto matapos pag-unlock ito sa isang tinukoy na agwat ng oras, eto 5 segundo.
#define relay 4 na haba prevMillis = 0; int agwat = 5000;
Sa pagpapaandar na setup () , simulan ang Serial Monitor sa isang baud rate na 115200 para sa mga layunin sa pag-debug. Pagkatapos sa mga susunod na linya, tukuyin ang mode ng pin para sa module ng relay at itakda din ang relay sa isang mababang posisyon nang una.
void setup () {Serial.begin (115200); pinMode (relay, OUTPUT); digitalWrite (relay, LOW);
Sa loob ng pag- andar ng loop () , suriin kung tumutugma ang mukha sa naka-enrol na mukha. Kung oo, pagkatapos ay i-unlock ang pinto sa loob ng 5 segundo at pagkatapos ng 5 segundo i-lock muli ang pinto.
void loop () {kung (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (relay, MATAAS); prevMillis = millis (); } kung (activeRelay == true && millis () - prevMillis> interval) {activeRelay = false; matchFace = false; digitalWrite (relay, LOW); }
Pagsubok sa
Panghuli upang mai-upload ang code, ikonekta ang board ng FDTI sa iyong laptop, at piliin ang 'ESP32 Wrover Module' bilang iyong board. Gayundin, baguhin ang iba pang mga setting tulad ng ipinakita sa larawan sa ibaba:
Huwag kalimutang ikonekta ang IO0 pin sa GND bago i-upload ang code at pindutin din ang pindutan ng pag-reset ng ESP32 at pagkatapos ay mag-click sa upload button.
Tandaan: Kung nakakuha ka ng mga error habang ina-upload ang code, suriin kung ang IO0 ay konektado sa GND, at pinili mo ang mga tamang setting sa menu ng Mga Tool.
Matapos i-upload ang code, alisin ang IO0 at GND pin. Pagkatapos buksan ang serial monitor at baguhin ang rate ng baud sa 115200. Pagkatapos nito, pindutin ang pindutan ng pag-reset ng ESP32, mai-print nito ang address ng ESP IP at port no. sa serial monitor.
Ngayon mag-navigate sa browser at ipasok ang ESP IP address na kinopya mula sa Serial monitor upang ma-access ang streaming ng camera. Dadalhin ka nito sa streaming page. Upang simulan ang streaming ng video, mag-click sa pindutang 'Start Stream' sa ilalim ng pahina.
Upang makilala ang mga mukha sa ESP32-CAM, una, kailangan naming ipatala ang mga mukha. Para doon, i-on ang mga tampok na pagkilala sa Mukha at pagtuklas mula sa mga setting at pagkatapos ay mag-click sa pindutan ng Mag-enrol ng Mukha. Tumatagal ng ilang mga pagtatangka upang i-save ang mukha. Matapos i-save ang mukha, nakita nito ang mukha bilang paksa 0 kung saan zero ang numero ng mukha.
Matapos ipalista ang mga mukha, kung ang isang mukha ay nakilala sa feed ng video, gagawin ng ESP32 na mataas ang module ng relay upang ma-unlock ang pinto.
Kaya't ito ay kung paano magagamit ang ESP32-CAM upang makabuo ng isang sistema ng seguridad batay sa pagkilala sa mukha. Maaaring i-download ang Kumpletong Code mula sa link na ito at ibibigay din sa ibaba kasama ang isang demonstration video.