Рубрики
Проекты на ESP8266

Система безопасности на ESP8266 с голосовыми сообщениями и оповещениями по Email

В данной статье мы рассмотрим создание интеллектуальной системы безопасности, которая при обнаружении нарушителя будет отправлять Email на заданный адрес и формировать голосовое сообщение. В качестве голосового сообщения вы можете использовать любую вашу аудио запись. Система безопасности в любое время может быть активирована/деактивирована дистанционно через сеть Интернет.

Система безопасности будет построена на основе модуля ESP8266, PIR датчика и голосового модуля ISD1820. Также на нашем сайте вы можете посмотреть все проекты систем безопасности, которые мы рассматривали ранее.

Для лучшего понимания данного проекта (если вы начинающий в этих вопросах) вам целесообразно изучить основы работы с модулем ESP8266 и его программирование с помощью Arduino IDE.

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

  1. Модуль ESP8266 (купить на AliExpress).
  2. PIR датчик (купить на AliExpress).
  3. Голосовой модуль ISD1820 (ISD1820 Voice Module) (купить на AliExpress).
  4. Регуляторы напряжения LM317 (купить на AliExpress), LM7805 (купить на AliExpress).
  5. Транзистор BC547 – 2 шт. (купить на AliExpress).
  6. Резистор 1 кОм, 200 Ом и 330 Ом (купить на AliExpress).
  7. Конденсаторы 10 мкФ (купить на AliExpress) и 0,1 мкФ (купить на AliExpress).
  8. Адаптер на 12V или батарейка на 9V.

Модуль ESP8266

Это весьма известный в настоящее время WiFi модуль с широким набором функциональных возможностей. Данный модуль находит применение в различных проектах интернета вещей (Internet of Things, IoT). Внешний вид и распиновка данного модуля представлены на следующих рисунках.

PIR датчик

PIR датчик (Passive Infrared sensor) – это пассивный инфракрасный датчик, отличающийся невысокой стоимостью и способный обнаруживать присутствие человека или животных. Основными компонентами данного датчика являются пироэлектрический кристалл, который может обнаруживать тепловые сигнатуры живого организма (человек/животное), и линзы Френеля (Fresnel lenses), расширяющие диапазон действия датчика. Также в составе PIR датчика есть элементы, позволяющие производить его регулировку.

Два потенциометра в составе датчика (оранжевого цвета) используются для управления чувствительностью и временем срабатывания датчика. Выходным контактом датчика является контакт Dout, расположенный между контактами Vcc и Gnd. Модуль работает от 3.3V, но может быть запитан и от 5V. В левом верхнем углу датчика расположен переключатель (джампер), с помощью которого можно переключаться между двумя режимами работы датчика — “H” и “I”.

В режиме “H” на выходном контакте Dout формируется напряжение высокого уровня (high, 3.3V) когда датчик обнаруживает присутствие человека (животного). Через некоторое время после этого (это время регулируется с помощью потенциометра) на контакте Dout уровень выходного напряжения падает до low. В данном режиме на контакте Dout будет уровень high независимо от того, присутствует ли еще человек в зоне действия датчика или он покинул эту зону. В данном проекте мы будем использовать режим “H” датчика.

В режиме “I” на выходном контакте Dout датчика появится уровень high (3.3V) когда человек будет обнаружен и контакт Dout будет оставаться в состоянии high до тех пор, пока человек будет находиться в зоне действия датчика. Когда человек покинет эту зону, то через некоторое время (устанавливается потенциометром) на контакте Dout сформируется уровень low.

На нашем сайте вы можете посмотреть все проекты с использованием PIR датчика.

Примечание: положение потенциометров и контактов PIR датчика может различаться в зависимости от производителя датчика.

Голосовой модуль ISD1820

Данный модуль способен записывать аудио сигнал в течение 10 секунд и затем воспроизводить его когда будет необходимо. Модуль содержит в своем составе микрофон и динамик (8 Ом, 0,5 Вт). Его внешний вид и распиновка показаны на следующем рисунке.

Модуль работает от напряжения +5V и содержит в своем составе 3 кнопки: Rec, PlayE и PlayL. Вы можете записать свой голос нажав кнопку Rec и затем воспроизвести его нажав кнопку PlayE. При нажатии кнопки PlayL модуль будет воспроизводить ваш голос так долго, сколько вы держите нажатой кнопку. Для подключения модуля к микроконтроллерам используются контакты на его левой стороне. Эти контакты «толерантны» к уровням напряжения 3V-5V и поэтому могут непосредственно подключаться к Arduino/ESP8266. В нашем проекте мы будем управлять контактом PLAYE модуля ISD1820 используя контакт GPIO 0 нашего модуля ESP8266. Таким образом мы будем воспроизводить записанный голос при обнаружении нарушителя.

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

Схема системы безопасности на ESP8266 с голосовыми сообщениями и оповещениями по Email представлена на следующем рисунке.

Схема содержит два регулятора напряжения. Один регулятор на 3.3V на основе микросхемы LM317, а второй – на 5V на основе микросхемы 7805. Напряжение 3.3V на выходе микросхемы LM317 формируется с помощью резисторов 220 и 330 Ом. Оба регулятора запитываются от адаптера с напряжением 12V. Но энергопотребление схемы нашего проекта очень мало, поэтому ее можно запитать и от батарейки 9V.

PIR датчик и голосовой модуль включаются при помощи подачи на контакт GPIO 2 модуля ESP8266 уровня high. Этот контакт через токоограничивающий резистор 1 кОм управляет работой транзистора BC547 и завершает цепь питания для обоих модулей. Контакт GPIO_0 модуля ESP8266 используется как входной контакт. Он подключен к контакту Dout PIR датчика через транзистор BC547. Когда на контакте Dout PIR датчика будет уровень high мы будем с помощью программы для модуля ESP8266 отправлять E-mail по заданному адресу.

Токи на выходных контактах Dout, GPIO_2 и GPIO2 очень малы, поэтому мы использовали транзисторы для управления ими. Также необходимо учитывать такую особенность модуля ESP8266, что его контакты общего назначения (GPIO) не должны быть нагружены во время подачи на него питания иначе модуль зациклится в бесконечном цикле сброса. Чтобы предотвратить это мы в схеме использовали два переключателя, контакты которых необходимо разъединять во время подачи на модуль питания.

Вы можете использовать перфорированную или макетную плату для сборки схемы проекта. Автор проекта (ссылка на оригинал приведена в конце статьи) использовал перфорированную плату с соединительными колодками для подключения модулей, таким образом, для подключения модулей он избежал использования пайки. Получившаяся у него конструкция проекта показана на следующем рисунке.

Создание API для передачи E-mail с помощью сервиса IFTTT

Когда аппаратная часть проекта будет готова можно будет приступать к созданию API (Application Program Interface, программный интерфейс приложения), с помощью которого можно будет передавать E-mail на заданный адрес электронной почты. Это можно сделать с помощью такого известного сервиса как IFTTT.com. Более подробно про работу с данным сервисом вы можете посмотреть в видео, представленном в конце статьи.

Для работы с сервисом IFTTT выполните следующую последовательность шагов.

1. Зарегистрируйте себе аккаунт на сайте IFTTT.com и войдите в него.

2. Перейдите в нем на вкладку “Maker Web hooks” и нажмите на connect (соединиться).

3. Выполните поиск “Gmail”, нажмите на connect и выполните предлагаемую сервисом последовательность шагов чтобы предоставить доступ.

4. Создайте Applet (апплет, прикладная программа) выбрав пункт меню My Applet-> New Applet.

5. Далее вы можете использовать функцию “This” для создания веб-хуков и функцию “that” для работы с сервисами Gmail.

6. Нажмите на “This”, выполните поиск и выберите Web maker hooks (веб-хуки). Сервис запросит имя события (event name), мы назвали наше событие “123”, вы можете использовать любое другое имя.

7. Нажмите на “That”, выполните поиск и выберите Gmail, после чего введите тему и содержание письма.

8. После того как все необходимые настройки будут сделаны вы должны будете увидеть примерно следующую картину.

9. Теперь снова выполните поиск и войдите в Web Maker Hooks и там нажмите на “Documentation”. Там под именем события (event name) введите имя события, которое мы использовали в нашем Applet (в нашем случае это “123”). Также скопируйте URL – он будет нужен нам при написании программы. URL должен выглядеть примерно следующим образом:

10. Вы можете нажать на кнопку “Test it” чтобы проверить что ваша ссылка работает корректно – в этом случае вы должны получить тестовое E-mail на указанный вами адрес.

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

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Программа для нашего проекта достаточно проста – нам необходимо чтобы наш модуль ESP8266 работал в качестве точки доступа (AP) и станции (STA). Затем создадим веб-страницу используя HTML код. С помощью этой веб-страницы мы сможем включать/выключать нашу систему безопасности.

В программе сначала мы зададим SSID (идентификатор сети) и Password (пароль). Введите SSID и пароль для своего роутера.

Если вы хотите определить IP адрес вашего ESP8266, вы можете запустить следующие строчки кода на выполнение и вы увидите этот IP адрес в окне монитора последовательной связи в Arduino IDE.

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

Следующие строчки кода определяют включена (Armed) или отключена (Disarmed) наша система безопасности. Автор проекта изменил часть HTML кода, отвечающего за ответ пользователю (feedback part). Также он изменяет состояние контакта GPIO 2 модуля ESP8266 на HIGH/LOW в зависимости от нажатия кнопки.

Чтобы программа для нашего проекта системы безопасности работала правильно необходимо изменить строку с URL. Вам необходимо скопировать строку адреса (после ”/trigger”), которую вы скопировали в сервисе IFTTT. Автор проекта привел пример этого URL со своим API ключом, но вам нужно использовать свой адрес, иначе программа у вас работать не будет.

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

Когда аппаратная часть проекта у вас будет готова, вы можете загрузить программу в модуль ESP8266 с помощью платы FTDI или используя плату Arduino в качестве FTDI программатора. Программу в модуль можно загружать с помощью среды Arduino IDE.

После загрузки программы в модуль откройте в Arduino IDE окно монитора последовательной связи (serial monitor) и в нем вы должны увидеть картинку, показанную на следующем рисунке. Если эта картинка не появляется, произведите сброс модуля ESP8266 и попробуйте снова.

Из информации в окне монитора последовательной связи запишите IP адрес, выданный вашему модулю ESP8266. Этот IP адрес вы затем можете использовать для открытия в браузере веб-страницы, с которой вы сможете включать/выключать (Arm/Disarm) систему безопасности.

После того как вы проверили эту часть нашего проекта, вы можете переместить модуль ESP8266 на конструкцию нашего проекта (у нас она на перфорированной плате), подать на нее питание и замкнуть переключатели как показано на видео в конце статьи.

После этого, используя IP адрес модуля ESP8266, вы можете заходить на формируемую им веб-страницу и включить нашу систему безопасности. После ее включения подождите 50-60 секунд пока PIR датчик произведет свою калибровку.

После этого ваш проект системы безопасности будет готов к работе и вы можете поместить его в любое место, где хотите отслеживать появление нарушителей. При появлении нарушителя в зоне действия PIR датчика будет произноситься голосовое сообщение и будет передаваться E-mail на указанный вами адрес с датой и временем, когда произошло нарушение. Пример этого E-mail показан на следующем рисунке.

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

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

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

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

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

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