Säkerhet är högst oro för alla nuförtiden, oavsett om det är datasäkerhet eller säkerhet i sitt eget hem. Med teknikutvecklingen och den ökande användningen av IoT har digitala dörrlås blivit mycket vanliga idag. Digitalt lås kräver ingen fysisk nyckel men det använder RFID, fingeravtryck, Face ID, stift, lösenord etc. för att styra dörrlåset. Tidigare har vi utvecklat många digitala dörrlåsapplikationer med dessa olika tekniker. I denna handledning bygger vi ett Face ID-styrt digitalt dörrlåssystem med ESP32-CAM.
AI-Thinker ESP32-CAM-modulen är ett billigt utvecklingskort med en mycket liten OV2640-kamera och en micro SD-kortplats. Den har ett ESP32 S-chip med inbyggd Wi-Fi och Bluetooth-anslutning, med 2 högpresterande 32-bitars LX6-processorer, 7-stegs pipelinearkitektur. Vi har tidigare förklarat ESP32-CAM i detalj och använt den för att bygga en Wi-Fi-dörrvideodörrklocka. Den här gången använder vi ESP32-CAM för att bygga ett ansiktsigenkänningsbaserat dörrlåssystem med en relämodul och magnetlås.
Komponenter krävs
- ESP32 CAM
- FTDI styrelse
- Relämodul
- Magnetlås
- Bygeltrådar
Magnetlås
Ett magnetlås fungerar på den elektronisk-mekaniska låsmekanismen. Denna typ av lås har en snigel med ett lutande snitt och en bra monteringsfäste. När strömmen appliceras skapar DC ett magnetfält som flyttar snigeln inuti och håller dörren i olåst läge. Snigeln behåller sin position tills strömmen tas bort. När strömmen kopplas bort rör sig snigeln utanför och låser dörren. Den använder ingen ström i ett låst tillstånd. För att driva magnetlåset behöver du en strömkälla som kan ge 12V @ 500mA.
Vi använde tidigare ett magnetlås för att bygga ett Arduino-baserat RFID-dörrlås.
Kretsschema
Kretsschemat för ESP32-CAM Dörrlåssystem för ansiktsigenkänning ges nedan:
Kretsen ovan kombinerad med ett FTDI-kort, relämodul och magnetlås. FTDI-kortet används för att blinka koden i ESP32-CAM eftersom den inte har en USB-kontakt medan relämodulen används för att slå på eller av magnetlåset. VCC- och GND-stift på FTDI-kortet och relämodulen är anslutna till Vcc- och GND-stiftet på ESP32-CAM. TX och RX på FTDI-kortet är anslutna till RX och TX på ESP32 och IN-stiftet på relämodulen är anslutet till IO4 i ESP32-CAM.
ESP32-CAM |
FTDI styrelse |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Relämodul |
5V |
VCC |
GND |
GND |
IO4 |
I |
Obs! Innan du laddar upp koden, anslut IO0 till marken. IO0 avgör om ESP32 är i blinkande läge eller inte. När GPIO 0 är ansluten till GND är ESP32 i blinkande läge.
Efter att ha anslutit hårdvaran enligt kretsschemat bör det se ut som nedan:
Installera ESP32-kortet på Arduino IDE
Här används Arduino IDE för att programmera ESP32-CAM. För det, installera först ESP32-tillägget på Arduino IDE.
För att installera ESP32-kortet i din Arduino IDE, gå till Arkiv> Inställningar.
Kopiera nu länken nedan och klistra in den i fältet "Extra styrelsens webbadresser" som visas i bilden nedan. Klicka sedan på “OK” -knappen:
https://dl.espressif.com/dl/package_esp32_index.json
Gå nu till Verktyg> Board> Boards Manager
I Board Manager, sök efter ESP32 och installera “ESP32 by Espressif Systems”.
Kodförklaring
Vi förklarade ansiktsigenkänning med ESP32 i föregående artikel; här kommer vi att ändra samma kod för att styra ett magnetlås. Hela koden är uppdelad i fyra delar. En är huvudkoden för kameran och relämodulen där ESP32 låser eller låser upp dörren enligt ansiktsigenkänning, och de andra tre koderna är för webbsidor, kameraindex och kamerapinnar. Komplett kod ges i slutet av denna sida. Här förklarar vi några viktiga delar av koden.
Börja programmet med att inkludera alla biblioteksfiler.
#include "esp_camera.h" #include
I nästa rad avmarkerar du kameramodulen som du använder med ESP32. I koden definieras fem olika kameramodeller. I det här fallet använder vi AI-THINKER-modellen.
// # definiera CAMERA_MODEL_WROVER_KIT // # definiera CAMERA_MODEL_ESP_EYE // # definiera CAMERA_MODEL_M5STACK_PSRAM // # definiera CAMERA_MODEL_M5STACK_WIDE # definiera CAMERA_MODEL_AI_THINKER
Därefter infogar du dina nätverksuppgifter i följande variabler:
const char * ssid = "Wi-Fi-namn"; const char * password = "Wi-Fi-lösenord";
Definiera sedan stiftet där relämodulen är ansluten. Vi kommer att använda millis () -funktionen för att låsa dörren efter att ha låst upp den under ett definierat tidsintervall, här är det 5 sekunder.
#definiera relä 4 lång prevMillis = 0; int-intervall = 5000;
I inställningsfunktionen () initierar du den seriella bildskärmen med en baudhastighet på 115200 för felsökningsändamål. Därefter, i nästa rad, definiera stiftläget för relämodulen och ställ också in reläet i ett lågt läge från början.
ogiltig installation () {Serial.begin (115200); pinMode (relä, OUTPUT); digitalWrite (relä, LOW);
Inuti funktionen loop () , kontrollera om ansiktet matchar det inskrivna ansiktet. Om ja, lås sedan upp dörren i 5 sekunder och lås dörren igen efter 5 sekunder.
void loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (relä, HÖG); prevMillis = millis (); } om (activeRelay == true && millis () - prevMillis> intervall) {activeRelay = false; matchFace = false; digitalWrite (relä, LOW); }
Testar
Slutligen för att ladda upp koden, anslut FDTI-kortet till din bärbara dator och välj 'ESP32 Wrover Module' som ditt kort. Ändra också de andra inställningarna som visas på bilden nedan:
Glöm inte att ansluta IO0-stiftet till GND innan du laddar upp koden och tryck också på ESP32-återställningsknappen och klicka sedan på uppladdningsknappen.
Obs! Om du får fel när du laddar upp koden, kontrollera att IO0 är ansluten till GND och du har valt rätt inställningar i Verktyg-menyn.
Efter att ha laddat upp koden tar du bort IO0 och GND-stiftet. Öppna sedan den seriella bildskärmen och ändra baudhastigheten till 115200. Tryck därefter på ESP32-återställningsknappen för att skriva ut ESP-IP-adressen och portnr. på den seriella bildskärmen.
Navigera nu till webbläsaren och ange ESP IP-adressen som kopieras från den seriella bildskärmen för att få åtkomst till kamerastreaming. Det tar dig till strömmande sidan. För att starta videostreaming, klicka på knappen "Starta ström" längst ner på sidan.
För att känna igen ansikten med ESP32-CAM måste vi först registrera ansikten. För det, aktivera ansiktsigenkännings- och detekteringsfunktionerna från inställningarna och klicka sedan på knappen Registrera ansikte. Det tar flera försök att rädda ansiktet. Efter att ha sparat ansiktet upptäcker det ansiktet som motiv 0 där noll är ansiktsnumret.
Efter att ansikten har registrerats, om ett ansikte känns igen i videoflöden, kommer ESP32 att göra relämodulen hög för att låsa upp dörren.
Så detta är hur ESP32-CAM kan användas för att bygga ett ansiktsigenkänningsbaserat säkerhetssystem. Komplett kod kan laddas ner från den här länken och ges också nedan tillsammans med en demonstrationsvideo.