Дверной замок с распознаванием лиц на основе модуля ESP32-CAM


Безопасность в настоящее время является одной из ключевых проблем человечества. С развитием технологий достаточно важную роль в обеспечении безопасности помещений различного назначения стали играть цифровые замки. Существующие цифровые замки могут работать на различных физических принципах: радиочастотная идентификация (RFID), распознавание лиц, отпечатки пальцев и т.д. В данной статье мы рассмотрим создание умного дверного замка с распознаванием лиц на основе модуля ESP32-CAM.

Внешний вид дверного замка с распознаванием лиц на основе модуля ESP32-CAM

AI-Thinker ESP32-CAM представляет собой дешевый модуль с очень маленькой камерой OV2640 и слотом для карт micro SD. Он содержит чип ESP32 S с поддержкой технологий Wi-Fi и Bluetooth, двухъядерным 32-битным микропроцессором LX6 с 7-уровневой конвейерной архитектурой. Более подробно данный модуль мы уже рассматривали на нашем сайте в статьях про распознавание лиц на основе модуля ESP32-CAM и умный дверной звонок с камерой на основе модуля ESP32-CAM.

Необходимые компоненты

  1. Модуль ESP32 CAM (купить на AliExpress).
  2. Плата FTDI для программирования модуля (купить на AliExpress).
  3. Модуль реле.
  4. Замок с электромагнитным управлением.
  5. Соединительные провода.

Замок с электромагнитным управлением (Solenoid Lock)

Принцип работы замка с электромагнитным управлением основан на электромеханическом механизме запирания. Он имеет личинку со скошенным концом и монтажным кронштейном. При подаче питания на замок постоянный ток создает магнитное поле, которое задвигает личинку внутрь замка и, таким образом, дверь открывается. Когда подача питания прекращается личинка высвобождается и возвращается в исходное состояние, тем самым закрывая дверь. В закрытом состоянии замок не потребляет электроэнергии. Чтобы замок с электромагнитным управлением сработал, необходим источник питания обеспечивающий 12V @ 500mA.

Внешний вид замка с электромагнитным управлением

Ранее подобный замок с электромагнитным управлением мы рассматривали в статье про замок с электромагнитным управлением на основе Arduino и радиочастотной идентификации.

Схема проекта

Схема дверного замка с распознаванием лиц на основе модуля ESP32-CAM представлена на следующем рисунке.

Схема дверного замка с распознаванием лиц на основе модуля ESP32-CAMПлата FTDI используется для загрузки кода программы в модуль ESP32-CAM поскольку у данного модуля нет собственного USB разъема для подключения к компьютеру. Модуль реле используется для отпирания и запирания замка с электромагнитным управлением. Контакты VCC и GND платы FTDI и модуля реле подключены к контактам Vcc и GND модуля ESP32-CAM. Контакты TX и RX платы FTDI подключены к контактам RX и TX модуля, а контакт IN модуля реле подключен к контакту IO4 модуля ESP32-CAM.

Полная схема соединений проекта представлена в следующей таблице.

ESP32-CAM Плата FTDI
5V VCC
GND GND
UOR TX
UOT RX
ESP32-CAM Модуль реле
5V VCC
GND GND
IO4 IN

Примечание: перед загрузкой программы в модуль ESP32-CAM замкните его контакт IO0 на землю. Контакт IO0 определяет, находится ли модуль в режиме загрузке программы или нет. Когда GPIO 0 подключен к земле, модуль ESP32 находится в режиме загрузки.

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции проекта

Установка платы ESP32 в Arduino IDE

В нашем проекте мы будем программировать модуль ESP32-CAM с помощью Arduino IDE. Для этого необходимо добавить поддержку данного модуля в Arduino IDE.

Вначале в Arduino IDE выберите пункт File> Preferences.

Выбор пункта меню File> Preferences в Arduino IDE

В открывшемся окне в поле “Additional Board Manager URLs” скопируйте ссылку https://dl.espressif.com/dl/package_esp32_index.json. После этого нажмите на кнопку “OK”.

Добавление поддержки платы ESP32 в Arduino IDE

Затем откройте пункт меню Tools > Board > Boards Manager.

Выбор пункта меню Tools > Board > Boards Manager в Arduino IDE

В открывшемся менеджере библиотек выполните поиск ESP32 и установите библиотеку “ESP32 by Espressif Systems“.

Установка библиотеки “ESP32 by Espressif Systems“ в Arduino IDE

Объяснение программы для модуля ESP32

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Ранее на нашем сайте мы уже рассматривали основы распознавания лиц с помощью модуля ESP32-CAM. В этом проекте мы модифицируем рассмотренный в той статье код программы.

Первым делом мы в программе подключим используемые библиотеки.

Среди следующих строк кода раскомментируйте ту, которая соответствует используемой вами модели модуля. В нашем случае мы используем модель AI-THINKER.

После этого укажем параметры доступа к сети Wi-Fi – ее имя и пароль.

Далее укажем контакт, к которому подключен модуль реле. Мы будем использовать функцию millis() для того чтобы автоматически закрывать дверь после того, как она была открыта некоторый интервал времени (5 секунд).

В функции setup() мы инициализируем последовательную связь со скоростью 115200 бод для целей отладки. Также в этой функции мы зададим режим работы контакта, к которому подключен модуль реле, на вывод данных, и подадим на этот контакт уровень low.

Внутри функции loop() мы будем проверять соответствует ли проверяемое лицо ранее сохраненному лицу. Если да, то разблокируем (открываем) дверь на 5 секунд и затем снова ее закрываем.

Тестирование работы проекта

Соберите схему проекта, подключите плату FDTI к компьютеру/ноутбуку, в качестве платы в Arduino IDE выберите ‘ESP32 Wrover Module’. Измените ряд других настроек как показано на следующем рисунке.

Изменение настроек в Arduino IDE для загрузки программы в модуль ESP32-CAM

Не забудьте подключить контакт IO0 к земле (GND) перед загрузкой программы в модуль, также нажмите на модуле ESP32 кнопку сброса (reset button), после этого нажимайте на кнопку загрузки программы в Arduino IDE.

Примечание: если у вас возникли ошибки при загрузке программы в модуль, проверьте подключен ли контакт IO0 к земле и правильные ли выбраны настройки в пункте меню Tools в Arduino IDE.

После загрузки кода программы в модуль отключите IO0 от земли (GND). Откройте окно монитора последовательной связи и измените в нем скорость на 115200. После этого нажмите кнопку сброса на модуле ESP32, в результате чего в окно монитора последовательной связи будет выведен IP адрес модуля ESP32 и номер порта, к которому он подключен.

Отображение в окне монитора последовательной связи IP адреса модуля ESP32

Затем в адресной строке браузера введите определенный IP адрес модуля ESP32 – после этого вы получите доступ к настройкам камеры модуля. Вас перебросит на страницу видео трансляции камеры. Если вы хотите начать трансляцию (streaming), нажмите на кнопку ‘Start Stream’ внизу страницы.

Настройки камеры модуля ESP32-CAM

Чтобы распознавать лица с помощью модуля ESP32-CAM сначала в его память мы должны записать лица людей, которым разрешен доступ в помещение. Для этого выберите в настройках пункт "Face recognition and detection" и затем нажмите на кнопку "Enroll Face". Произойдет несколько попыток сохранения лица. После того как сохранение лица произойдет, этому лицу присвоится имя subject 0, где 0 будет обозначать номер лица.

Включение настроек для обнаружения и распознавания лиц в модуле ESP32-CAM

После захвата и сохранения необходимых лиц, если лицо будет распознаваться в видео потоке, то модуль ESP32-CAM будет подавать на реле уровень high и электромагнитный замок будет открывать дверь.

Тестирование работы проекта

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

(1 голосов, оценка: 5,00 из 5)
Загрузка...
3 523 просмотров

Комментарии

Дверной замок с распознаванием лиц на основе модуля ESP32-CAM — 10 комментариев

  1. Здравствуй хороший человек!
    Вопрос, как поменять номер порта http 80 на свой?
    В esp_http_server.h есть server_port при замене на другой
    страница грузится, но не идёт видео трафик.

    • Добрый день. Насколько я знаю, если вы используете роутер, то нужно настроить перенаправление трафика на ваш порт еще и на нем

      • Да, если заходить с сети интернет 80 и 81 нужно перенаправить на локальный хост, а вот с другими портами страница грузиться, а видео трафик не идёт.

        • Честно говоря, тогда точно не знаю. Можно в исходных кодах библиотеки попробовать посмотреть может там где то жестко порт 81 прописывается. И если это так, то тогда просто в программе с помощью такой же команды как в библиотеке изменить номер порта

  2. при компиляции скетча выдало ошибку.
    camera_pins.h: No such file or directory
    в чем может быть проблемма ?

    • Может быть, вы не в то место установили библиотеку для работы с модулем ESP32. Попробуйте через поиск на компьютере поискать где у вас находится файл camera_pins.h

  3. Не работает. Не возможно зарегистрировать лицо, кнопка регистрации не дает результата...вообще не понятно, куда сохраняются снимки - на флешку или во внутреннюю память

    • Точно не знаю поскольку лично этот проект не собирал, но оно определенно будет зависеть от того качества, в котором вы будете сохранять фотографии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *