- Wymagane składniki
- Blokada elektromagnetyczna
- Schemat obwodu
- Zainstaluj płytkę ESP32 na Arduino IDE
- Objaśnienie kodu
- Testowanie
W dzisiejszych czasach bezpieczeństwo jest najważniejsze, niezależnie od tego, czy chodzi o bezpieczeństwo danych, czy bezpieczeństwo własnego domu. Wraz z postępem technologii i rosnącym wykorzystaniem Internetu rzeczy cyfrowe zamki do drzwi stały się obecnie bardzo powszechne. Zamek cyfrowy nie wymaga fizycznego klucza, ale wykorzystuje RFID, odcisk palca, Face ID, kod PIN, hasła itp. Do sterowania zamkiem drzwi. W przeszłości opracowaliśmy wiele aplikacji cyfrowych zamków do drzwi przy użyciu tych różnych technologii. W tym samouczku za pomocą ESP32-CAM zbudujemy cyfrowy system zamka drzwi sterowany Face ID.
Moduł AI-Thinker ESP32-CAM to niedroga płytka rozwojowa z bardzo małą kamerą OV2640 i gniazdem na kartę micro SD. Ma układ ESP32 S z wbudowaną łącznością Wi-Fi i Bluetooth, z 2 wysokowydajnymi 32-bitowymi procesorami LX6, 7-stopniową architekturą potokową. Wcześniej szczegółowo opisaliśmy ESP32-CAM i wykorzystaliśmy go do zbudowania wideodomofonu Wi-Fi do drzwi. Tym razem użyjemy ESP32-CAM do zbudowania systemu zamka drzwi opartego na rozpoznawaniu twarzy, wykorzystującego moduł przekaźnika i zamek elektromagnetyczny.
Wymagane składniki
- ESP32 CAM
- Płyta FTDI
- Moduł przekaźników
- Blokada elektromagnetyczna
- Przewody połączeniowe
Blokada elektromagnetyczna
Zamek elektromagnetyczny działa na elektroniczno-mechanicznym mechanizmie blokującym. Ten typ zamka ma ślimak o skośnym wycięciu i dobry uchwyt montażowy. Po włączeniu zasilania prąd stały wytwarza pole magnetyczne, które przesuwa kulkę do środka i utrzymuje drzwi w pozycji odblokowanej. Ślimak zachowa swoją pozycję do momentu odłączenia zasilania. Po odłączeniu zasilania ślimak przesuwa się na zewnątrz i blokuje drzwi. W stanie zablokowanym nie używa żadnej mocy. Do napędzania zamka elektromagnetycznego potrzebne byłoby źródło zasilania, które może dać 12 V przy 500 mA.
Wcześniej używaliśmy elektrozaworu do budowy zamka RFID opartego na Arduino.
Schemat obwodu
Schemat obwodu systemu blokady drzwi rozpoznawania twarzy ESP32-CAM przedstawiono poniżej:
Powyższy obwód w połączeniu z płytą FTDI, modułem przekaźników i blokadą elektromagnetyczną. Płytka FTDI służy do flashowania kodu do ESP32-CAM, ponieważ nie ma złącza USB, podczas gdy moduł przekaźnika jest używany do włączania lub wyłączania blokady elektromagnesu. Piny VCC i GND płyty FTDI i modułu przekaźnika są podłączone do pinów Vcc i GND ESP32-CAM. TX i RX płyty FTDI są podłączone do RX i TX w ESP32, a pin IN modułu przekaźnikowego jest podłączony do IO4 ESP32-CAM.
ESP32-CAM |
Płyta FTDI |
5V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
RX |
ESP32-CAM |
Moduł przekaźników |
5V |
VCC |
GND |
GND |
IO4 |
W |
Uwaga: przed wgraniem kodu podłącz IO0 do masy. IO0 określa, czy ESP32 jest w trybie migania, czy nie. Kiedy GPIO 0 jest podłączony do GND, ESP32 jest w trybie migania.
Po podłączeniu sprzętu zgodnie ze schematem obwodu powinno wyglądać mniej więcej jak poniżej:
Zainstaluj płytkę ESP32 na Arduino IDE
Tutaj Arduino IDE służy do programowania ESP32-CAM. W tym celu najpierw zainstaluj dodatek ESP32 na Arduino IDE.
Aby zainstalować kartę ESP32 w swoim Arduino IDE, przejdź do Plik> Preferencje.
Teraz skopiuj poniższy link i wklej go w polu „Dodatkowe adresy URL menedżera tablicy”, jak pokazano na poniższym rysunku. Następnie kliknij przycisk „OK”:
https://dl.espressif.com/dl/package_esp32_index.json
Teraz przejdź do Narzędzia> Tablica> Menedżer tablic
W programie Board Manager wyszukaj ESP32 i zainstaluj „ESP32 firmy Espressif Systems”.
Objaśnienie kodu
Wyjaśniliśmy rozpoznawanie twarzy za pomocą ESP32 w poprzednim artykule; tutaj zmodyfikujemy ten sam kod, aby sterować elektromagnetycznym zamkiem drzwi. Cały kod jest podzielony na cztery części. Jeden z nich to główny kod kamery i modułu przekaźnika, w którym ESP32 blokuje lub odblokowuje drzwi zgodnie z rozpoznawaniem twarzy, a pozostałe trzy kody dotyczą strony internetowej, indeksu kamery i pinów kamery. Pełny kod znajduje się na końcu tej strony. Tutaj wyjaśniamy kilka ważnych części kodu.
Uruchom program, dołączając wszystkie pliki biblioteki.
#include „esp_camera.h” #include
W następnym wierszu odkomentuj moduł kamery, którego używasz z ESP32. W kodzie zdefiniowano pięć różnych modeli kamer. W tym przypadku używamy modelu AI-THINKER.
// # zdefiniuj CAMERA_MODEL_WROVER_KIT // # zdefiniuj CAMERA_MODEL_ESP_EYE // # zdefiniuj CAMERA_MODEL_M5STACK_PSRAM // # zdefiniuj CAMERA_MODEL_M5STACK_WIDE # zdefiniuj CAMERA_MODEL_AI_THINKER
Następnie wprowadź swoje poświadczenia sieciowe w następujących zmiennych:
const char * ssid = "Nazwa Wi-Fi"; const char * password = "hasło Wi-Fi";
Następnie zdefiniuj pin, do którego podłączony jest moduł przekaźnika. Będziemy używać funkcji millis () do blokowania drzwi po ich odblokowaniu w określonym przedziale czasu, tutaj jest to 5 sekund.
#define relay 4 long prevMillis = 0; interwał int = 5000;
W funkcji setup () zainicjuj monitor szeregowy z szybkością transmisji 115200 w celu debugowania. Następnie w kolejnych wierszach określ tryb pinów dla modułu przekaźnika, a także początkowo ustaw przekaźnik w niskim położeniu.
void setup () {Serial.begin (115200); pinMode (przekaźnik, WYJŚCIE); digitalWrite (przekaźnik, LOW);
W funkcji loop () sprawdź, czy twarz pasuje do zarejestrowanej twarzy. Jeśli tak, odblokuj drzwi na 5 sekund, a po 5 sekundach ponownie je zarygluj.
void loop () {if (matchFace == true && activeRelay == false) {activeRelay = true; digitalWrite (przekaźnik, WYSOKI); prevMillis = millis (); } if (activeRelay == true && millis () - prevMillis> interwał) {activeRelay = false; matchFace = false; digitalWrite (przekaźnik, LOW); }
Testowanie
Na koniec, aby przesłać kod, podłącz płytę FDTI do laptopa i wybierz „ESP32 Wrover Module” jako swoją płytkę. Zmień także inne ustawienia, jak pokazano na poniższym obrazku:
Nie zapomnij podłączyć pin IO0 do GND przed wgraniem kodu, a także naciśnij przycisk resetowania ESP32, a następnie kliknij przycisk przesyłania.
Uwaga: Jeśli podczas przesyłania kodu pojawiają się błędy, sprawdź, czy IO0 jest podłączone do GND i czy wybrałeś odpowiednie ustawienia w menu Narzędzia.
Po wgraniu kodu usuń piny IO0 i GND. Następnie otwórz monitor szeregowy i zmień prędkość transmisji na 115200. Następnie naciśnij przycisk resetowania ESP32, wydrukuje adres IP ESP i numer portu. na monitorze szeregowym.
Teraz przejdź do przeglądarki i wprowadź adres IP ESP, który jest kopiowany z monitora szeregowego, aby uzyskać dostęp do transmisji strumieniowej z kamery. Zabierze Cię do strony przesyłania strumieniowego. Aby rozpocząć strumieniowe przesyłanie wideo, kliknij przycisk „Rozpocznij transmisję” u dołu strony.
Aby rozpoznać twarze za pomocą ESP32-CAM, najpierw musimy je zarejestrować. W tym celu włącz funkcje rozpoznawania i wykrywania twarzy w ustawieniach, a następnie kliknij przycisk Zarejestruj twarz. Uratowanie twarzy wymaga kilku prób. Po zapisaniu twarzy wykrywa ją jako obiekt 0, gdzie zero to numer twarzy.
Po zarejestrowaniu twarzy, jeśli twarz zostanie rozpoznana w strumieniu wideo, ESP32 ustawi wysoki poziom modułu przekaźnika, aby odblokować drzwi.
W ten sposób ESP32-CAM można wykorzystać do zbudowania systemu bezpieczeństwa opartego na rozpoznawaniu twarzy. Kompletny kod można pobrać za pomocą tego linku. Jest on również podany poniżej wraz z filmem demonstracyjnym.