- Componenten vereist
- Solenoïde slot
- Schakelschema
- Installeer ESP32 Board op Arduino IDE
- Code Uitleg
- Testen van het
Beveiliging is tegenwoordig voor iedereen een zorg, of het nu gaat om gegevensbeveiliging of beveiliging van hun eigen huis. Met de vooruitgang van de technologie en het toenemende gebruik van IoT zijn digitale deursloten tegenwoordig heel gewoon geworden. Digitaal slot vereist geen fysieke sleutel, maar het gebruikt RFID, vingerafdruk, Face ID, pin, wachtwoorden, enz. Om het deurslot te bedienen. In het verleden hebben we veel toepassingen voor digitale deursloten ontwikkeld met behulp van deze verschillende technologieën. In deze tutorial bouwen we een Face ID gestuurd digitaal deurslot-systeem met ESP32-CAM.
De AI-Thinker ESP32-CAM-module is een goedkoop ontwikkelbord met een zeer kleine OV2640-camera en een micro SD-kaartsleuf. Het heeft een ESP32 S-chip met ingebouwde Wi-Fi- en Bluetooth-connectiviteit, met 2 krachtige 32-bits LX6-CPU's, 7-traps pijplijnarchitectuur. We hebben ESP32-CAM eerder in detail uitgelegd en gebruikt om een Wi-Fi video-deurbel te bouwen. Deze keer zullen we de ESP32-CAM gebruiken om een op gezichtsherkenning gebaseerd deurslot systeem te bouwen met behulp van een relaismodule en een solenoïdeslot.
Componenten vereist
- ESP32 CAM
- FTDI-plaat
- Relaismodule
- Solenoïde slot
- Doorverbindingsdraden
Solenoïde slot
Een solenoïdeslot werkt op het elektronisch-mechanische vergrendelingsmechanisme. Dit type slot heeft een slug met een schuine snede en een goede montagebeugel. Wanneer de stroom wordt toegepast, creëert DC een magnetisch veld dat de slak naar binnen beweegt en de deur in de ontgrendelde positie houdt. De slak zal zijn positie behouden totdat de stroom is verwijderd. Als de stroom is uitgeschakeld, beweegt de slak naar buiten en sluit de deur. Het gebruikt geen stroom in een vergrendelde toestand. Om het solenoïdeslot aan te sturen, heb je een stroombron nodig die 12V @ 500mA kan leveren.
We hebben eerder een solenoïdeslot gebruikt om een op Arduino gebaseerd RFID-deurslot te bouwen.
Schakelschema
Het schakelschema voor het ESP32-CAM gezichtsherkenning deurslot systeem wordt hieronder gegeven:
Het bovenstaande circuit gecombineerd met een FTDI-kaart, relaismodule en solenoïde slot. Het FTDI-bord wordt gebruikt om de code in ESP32-CAM te flashen, aangezien het geen USB-connector heeft, terwijl de relaismodule wordt gebruikt om het solenoïde slot in of uit te schakelen. VCC- en GND-pinnen van de FTDI-kaart en relaismodule zijn verbonden met de Vcc- en GND-pin van ESP32-CAM. TX en RX van het FTDI-bord zijn verbonden met RX en TX van ESP32 en de IN-pin van de relaismodule is verbonden met IO4 van ESP32-CAM.
ESP32-CAM |
FTDI-plaat |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Relaismodule |
5V |
VCC |
GND |
GND |
IO4 |
IN |
Opmerking: voordat u de code uploadt, verbindt u de IO0 met de aarde. IO0 bepaalt of de ESP32 zich in de knipperende modus bevindt of niet. Wanneer GPIO 0 is verbonden met GND, is de ESP32 in knipperende modus.
Nadat de hardware volgens het schakelschema is aangesloten, zou het er ongeveer zo uit moeten zien:
Installeer ESP32 Board op Arduino IDE
Hier wordt Arduino IDE gebruikt om ESP32-CAM te programmeren. Installeer daarvoor eerst de ESP32-add-on op Arduino IDE.
Om het ESP32-bord in je Arduino IDE te installeren, ga je naar Bestand> Voorkeuren.
Kopieer nu de onderstaande link en plak deze in het veld "Extra Board Manager URL's", zoals weergegeven in de onderstaande afbeelding. Klik vervolgens op de knop "OK":
https://dl.espressif.com/dl/package_esp32_index.json
Ga nu naar Tools> Board> Boards Manager
Zoek in Board Manager naar ESP32 en installeer de "ESP32 by Espressif Systems".
Code Uitleg
We hebben gezichtsherkenning met ESP32 in het vorige artikel uitgelegd; hier zullen we dezelfde code wijzigen om een solenoïde deurslot te bedienen. De volledige code is verdeeld in vier delen. Een daarvan is de hoofdcode voor de camera en relaismodule waar de ESP32 de deur vergrendelt of ontgrendelt volgens gezichtsherkenning, en de andere drie codes zijn voor webpagina's, camera-index en camerapinnen. De volledige code staat aan het einde van deze pagina. Hier leggen we enkele belangrijke delen van de code uit.
Start het programma door alle bibliotheekbestanden op te nemen.
#include "esp_camera.h" #include
Verwijder in de volgende regel de opmerking over de cameramodule die u gebruikt met ESP32. In de code zijn vijf verschillende cameramodellen gedefinieerd. In dit geval gebruiken we het AI-THINKER-model.
// # definieer CAMERA_MODEL_WROVER_KIT // # definieer CAMERA_MODEL_ESP_EYE // # definieer CAMERA_MODEL_M5STACK_PSRAM // # definieer CAMERA_MODEL_M5STACK_WIDE # definieer CAMERA_MODEL_AI_THINKER
Voeg daarna uw netwerkreferenties in de volgende variabelen in:
const char * ssid = "Wi-Fi-naam"; const char * password = "Wi-Fi-wachtwoord";
Definieer vervolgens de pin waarop de relaismodule is aangesloten. We zullen de millis () -functie gebruiken om de deur te vergrendelen nadat deze in een bepaald tijdsinterval is ontgrendeld, hier is het 5 seconden.
#define relais 4 lang prevMillis = 0; int interval = 5000;
In de setup () functie initialiseert de seriële monitor met een baudsnelheid van 115200 voor foutopsporing. Definieer vervolgens in de volgende regels de pin-modus voor de relaismodule en stel het relais aanvankelijk ook in op een lage positie.
ongeldige setup () {Serial.begin (115200); pinMode (relais, UITGANG); digitalWrite (relais, LOW);
Binnen de lus () functie, controleer dan of het gezicht wedstrijden met de geregistreerde gezicht. Zo ja, ontgrendel dan de deur gedurende 5 seconden en doe de deur na 5 seconden weer op slot.
void loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (relais, HIGH); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> interval) {activeRelay = false; matchFace = false; digitalWrite (relais, LOW); }
Testen van het
Om ten slotte de code te uploaden, sluit u het FDTI-bord aan op uw laptop en selecteert u de 'ESP32 Wrover Module' als uw bord. Wijzig ook de andere instellingen zoals weergegeven in de onderstaande afbeelding:
Vergeet niet om de IO0-pin met GND te verbinden voordat u de code uploadt en druk ook op de ESP32-resetknop en klik vervolgens op de uploadknop.
Opmerking: als je fouten krijgt tijdens het uploaden van de code, controleer dan of IO0 is verbonden met GND en dat je de juiste instellingen hebt geselecteerd in het menu Extra.
Verwijder na het uploaden van de code de IO0- en GND-pin. Open vervolgens de seriële monitor en verander de baudrate in 115200. Druk daarna op de ESP32-resetknop, het zal het ESP IP-adres en poortnr. op de seriële monitor.
Navigeer nu naar de browser en voer het ESP IP-adres in dat is gekopieerd van de seriële monitor om toegang te krijgen tot de camerastreaming. U gaat naar de streamingpagina. Om de videostreaming te starten, klikt u op de knop 'Stream starten' onder aan de pagina.
Om de gezichten met ESP32-CAM te herkennen, moeten we eerst de gezichten registreren. Schakel daarvoor de gezichtsherkennings- en detectiefuncties in via de instellingen en klik vervolgens op de knop Gezicht registreren. Er zijn verschillende pogingen nodig om het gezicht te redden. Nadat het gezicht is opgeslagen, wordt het gezicht gedetecteerd als onderwerp 0, waarbij nul het gezichtsnummer is.
Nadat de gezichten zijn geregistreerd en een gezicht wordt herkend in de videofeed, zal ESP32 de relaismodule hoog maken om de deur te ontgrendelen.
Dit is dus hoe de ESP32-CAM kan worden gebruikt om een op gezichtsherkenning gebaseerd beveiligingssysteem te bouwen. De volledige code kan worden gedownload via deze link en wordt hieronder ook weergegeven, samen met een demonstratievideo.