- Inleiding tot ESP32-CAM
- Componenten vereist
- Schakelschema
- Installeer ESP32 Board op Arduino IDE
- ESP32 Camera Webserver-code
Er zijn veel menselijke identificatiesystemen die handtekeningen, vingerafdrukken, stem, handgeometrie, gezichtsherkenning, enz. Gebruiken om personen te identificeren, maar geen van hen kan de personen detecteren en herkennen in openbare ruimtes zoals luchthavens, winkels en treinstations, behalve de Gezichtsherkenningssysteem.
Gezichtsherkenningssystemen kunnen niet alleen worden gebruikt voor veiligheidsdoeleinden om personen op openbare plaatsen te herkennen, maar kunnen ook worden gebruikt voor aanwezigheidsdoeleinden in kantoren en scholen.
In dit project gaan we een gezichtsherkenningssysteem bouwen met behulp van ESP32-CAM dat ook zal werken als een ESP32-CAM-beveiligingssysteem door het gezicht van onbevoegde personen te herkennen. ESP32-CAM is een zeer kleine cameramodule met de ESP32-S-chip. Met behulp van de ESP32-CAM-module kunnen we een gezichtsherkenningssysteem bouwen zonder ingewikkelde programmering en eventuele extra componenten. Gezichtsherkenning kan ook worden gedaan met behulp van Raspberry Pi en Pi-camera met OpenCV.
Inleiding tot ESP32-CAM
De AI-Thinker ESP32-CAM-module wordt geleverd met een ESP32-S-chip, een zeer kleine OV2640-camera en een micro SD-kaartsleuf. Micro SD-kaartsleuf kan worden gebruikt om afbeeldingen van de camera op te slaan of om bestanden op te slaan. Deze ESP32-CAM-module is breed inzetbaar in verschillende IoT-toepassingen. Het kan worden gebruikt als gezichtsdetectiesysteem in kantoren, scholen en andere privéruimtes en kan ook worden gebruikt als draadloze monitoring, draadloze QR-identificatie en vele andere IoT-toepassingen.
De ESP32-CAM- module kan worden geprogrammeerd met ESP-IDF of met Arduino IDE. De ESP32-CAM-module heeft ook verschillende GPIO-pinnen om de externe hardware aan te sluiten. De ESP32-CAM heeft geen USB connector, dus om de module te programmeren heb je een FTDI board nodig.
Kenmerken:
- De kleinste 802.11b / g / n Wi-Fi BT SoC-module
- 32-bits CPU met laag vermogen, kan ook de applicatieprocessor bedienen
- Tot 160 MHz kloksnelheid, samenvattend rekenvermogen tot 600 DMIPS
- Ingebouwde 520 KB SRAM, externe 4MPSRAM
- Ondersteunt UART / SPI / I2C / PWM / ADC / DAC
- Ondersteuning OV2640 en OV7670 camera's, ingebouwde flitslamp
- Ondersteuning voor het uploaden van afbeeldingen via Wi-Fi
- Ondersteuning tf-kaart
- Ondersteunt meerdere slaapmodi
- Ingebouwde Lwip en FreeRTOS
- Ondersteunt STA / AP / STA + AP-bedieningsmodus
- Ondersteuning van Smart Config / AirKiss-technologie
- Ondersteuning voor seriële poort lokale en externe firmware-upgrades (FOTA)
Specificaties:
- SPI Flash: standaard 32 Mbit
- RAM: 520 KB SRAM + 4 M PSRAM
- Ondersteuning TF-kaart: Max. 4G
- Ondersteuningsinterface: UART, SPI, I2C, PWM
- Beelduitvoerformaat: JPEG, BMP, GRAYSCALE
- IO-poort: 9
- Voedingsbereik: 5V
Componenten vereist
- ESP32-CAM
- FTDI-programmeur
Schakelschema
Om een ESP32 CAM-beveiligingscamera te bouwen, hebben we alleen de ESP32-cameramodule en FTDI-programmeur nodig om deze te programmeren.
ESP32-CAM heeft geen USB-connector, dus je hebt een FTDI-programmeur nodig om de code naar ESP32-CAM te uploaden, zoals weergegeven in de bovenstaande afbeelding. Vcc en GND-pin van ESP32 is verbonden met de Vcc- en GND-pin van het FTDI-bord. Tx van en Rx van ESP32 is verbonden met Rx en Tx van het FTDI-bord.
Opmerking: voordat u de code uploadt, verbindt u de IO0 met 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.
ESP32-CAM |
FTDI-plaat |
3.3V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
Na het programmeren van de ESP32 heb ik het FTDI-bord verwijderd en de module aangesloten op een 3.3V-voeding met behulp van een 7805-spanningsregelaar. Dit is hoe de configuratie voor ESP32 cam-videostreaming eruit ziet:
Installeer ESP32 Board op Arduino IDE
Hier wordt ESP32-CAM geprogrammeerd met Arduino IDE. Daarvoor moeten we de ESP32-add-on op Arduino IDE installeren.
Om het ESP32-bord in uw Arduino IDE te installeren, gaat u 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".
ESP32 Camera Webserver-code
We hebben al een voorbeeldcode van ESP32 cam-videostreaming en gezichtsherkenning. Open het ESP32-voorbeeld met Bestand> Voorbeelden> ESP32> Camera en open het CameraWebServer-voorbeeld.
Voordat u de code uploadt, moet u uw Wi-Fi-naam en wachtwoord invoeren.
const char * ssid = "WiFi-naam"; const char * password = "Wachtwoord";
Definieer daarna de ESP-cameramodule. In de code hebben ze 5 cameramodules gedefinieerd, dus verwijder commentaar op de "CAMERA_MODEL_AI_THINKER" en geef commentaar op de rest van de modules.
Om 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 volgens deze afbeelding:
Voordat u de code uploadt, drukt u op de ESP32-resetknop en vervolgens op de uploadknop.
Opmerking: als u fouten krijgt tijdens het uploaden van de code, controleer dan of IO0 is verbonden met GND en of u de juiste instellingen in het menu Extra hebt geselecteerd.
Koppel na het uploaden van de code de IO0- en GND-pin los. Open vervolgens de seriële monitor en verander de baudrate in 115200. Druk daarna op de ESP32-resetknop om het ESP IP-adres en poortnummer op een seriële monitor af te drukken, zoals hieronder weergegeven.
Om toegang te krijgen tot de camerastreaming, navigeert u naar uw browser en voert u uw ESP IP-adres in. U gaat naar de streamingpagina. Om de ESP32 cam-videostreaming te starten, klikt u op de knop 'Stream starten' onder aan de pagina
U kunt de streamingkwaliteit wijzigen door de ' Resolutie ' op de streamingpagina te wijzigen. U kunt ook op de afbeeldingen klikken door op de knop ' Get Still' te klikken, maar deze code heeft niet de optie om de afbeeldingen op te slaan.
Nadat we de videostreaming nu hebben getest, zullen we de gezichtsherkenning en herkenningsfuncties van de ESP32-camera testen. Schakel daarvoor de gezichtsherkennings- en detectiefuncties in via de instellingen:
Voor gezichtsherkenning moet u eerst een gezicht registreren. U kunt zich aanmelden voor een nieuw gezicht door op de optie ' Gezicht inschrijven' te klikken. Er zijn verschillende pogingen nodig om het gezicht te redden. Nadat het gezicht is opgeslagen, wordt het gezicht herkend als onderwerp 0 en kan het nu worden gebruikt als beveiligingssysteem door het gezicht te herkennen.
Dit is dus hoe een ESP-cameramodule eenvoudig kan worden geconfigureerd voor videostreaming en gezichtsherkenning. Bekijk de kleine videobeelden hieronder die zijn gemaakt met de ESP32-camera.
De volledige code wordt hieronder gegeven en kan hier ook worden gedownload.