- Предварительные условия:
- Рабочая концепция:
- Программа Arduino IDE для ESP8266:
- Принципиальная схема и оборудование:
- Перенаправление порта вашего IP-адреса ESP8266:
- Установка приложения Moni для Android:
- Создание апплетов с использованием сервиса IFTTT:
- Тестирование проекта:
Добро пожаловать в еще один захватывающий проект, в котором мы создадим систему домашней автоматизации с голосовым управлением с использованием модуля Wi-Fi ESP8266, где вы сможете управлять своей бытовой техникой переменного тока с помощью голоса через приложение Android из любой точки мира. Да, ваша мечта о том, чтобы ваши нагрузки (свет / вентиляторы) включались или выключались, просто используя голосовую команду, сбудется в конце этого проекта. Этот проект является вариацией нашего предыдущего проекта Smart Junction Box для домашней автоматизации, в котором мы управляли домашней техникой с помощью веб-сервера по сети.
Этот проект домашней автоматизации с голосовым управлением на основе IOT очень прост в создании и не требует больших затрат, поскольку не требует покупки каких-либо дорогостоящих голосовых модулей. На создание всего проекта у меня ушло около 500 индийских рупий (8 долларов США). Кроме того, это независимый от микроконтроллера проект, а это означает, что вам не нужны какие-либо MCU / MP, такие как Arduino или Raspberry pi. Весь проект работает на модуле ESP8266. Узнайте больше о ESP8266 здесь. Итак, давайте поговорим….
Ранее мы рассмотрели множество типов домашней автоматизации с использованием различных технологий, таких как:
- Домашняя автоматизация на основе DTMF
- Домашняя автоматизация на базе GSM с использованием Arduino
- Домашняя автоматизация под управлением ПК с использованием Arduino
- Домашняя автоматизация с управлением по Bluetooth с использованием 8051
- Домашняя автоматизация с дистанционным ИК-управлением с использованием Arduino
- проект домашней автоматизации с использованием MATLAB и Arduino
- Радиочастотные светодиоды с дистанционным управлением с использованием Raspberry Pi
- Автоматизация дома под управлением смартфона с использованием Arduino
Предварительные условия:
Этот проект является продолжением нашего предыдущего проекта Smart Junction Box для домашней автоматизации с использованием ESP8266, поэтому большая часть аппаратной части уже рассмотрена в этом руководстве. Пожалуйста, прочтите это, прежде чем приступить к этому, поскольку я пропущу информацию, представленную в этом руководстве. Чтобы кратко описать наш предыдущий проект, мы изменили распределительную коробку (плату расширения) в этом руководстве, которая могла бы управлять платой Perf, состоящей из двух реле и модуля ESP8266. Два реле (нагрузки переменного тока) можно переключать с помощью веб-страницы, созданной ESP8266 (действуя как веб-сервер). В этом руководстве я просто собираюсь добавить к нему некоторые функции, чтобы мы также могли управлять нагрузками переменного тока с помощью голосовой команды через смартфон.Мы не будем рассматривать какие-либо аппаратные части в этом руководстве, оборудование и код останутся такими же, как и в предыдущем руководстве.
Также знание того, как использовать www.IFTTT.com, даст вам преимущество в этом проекте. Если вы не знакомы с IFTTT, не беспокойтесь, я объясню, как его использовать в этом конкретном руководстве, чтобы вы могли заставить его работать.
Рабочая концепция:
Я предполагаю, что вы прочитали предыдущий учебник, в этом случае теперь вы должны знать, как построить эту распределительную коробку и как удаленно переключать нагрузки из веб-браузера. Чтобы это стало возможным, мы сделали наш IP-адрес, выделенный ESP8266, общедоступным. Это можно сделать с помощью «техники переадресации портов». Затем установите мобильное приложение под названием «Moni» на свое мобильное устройство Android / IPhone. Это приложение распознает нашу речь и передаст информацию апплетам IFTT, которые, в свою очередь, будут контролировать нагрузки с помощью веб-хуков Maker.
Это может показаться немного утомительным, но все эти вещи были четко объяснены в этом руководстве, и поверьте мне, с помощью нескольких щелчков мышью можно сделать все вышеперечисленное. Это руководство поможет вам наилучшим образом с помощью изображений и видео. В конце этого урока вы сможете включать и выключать бытовую технику с помощью голоса из любой точки мира. Ознакомьтесь с полным кодом и демонстрационным видео в конце руководства.
Также проверьте голосовое управление подсветкой с помощью Raspberry Pi и голосовой набор текста на ЖК-дисплее 16x2.
Программа Arduino IDE для ESP8266:
Как и в предыдущем проекте, мы собираемся запрограммировать наш модуль ESP8266 с помощью Arduino IDE. В программу внесены небольшие изменения. Эта модификация сделана так, что ваш ESP8266 подключается к постоянному IP-адресу каждый раз, когда устанавливает соединение с маршрутизатором. Программа точно такая же, как и предыдущий код, за исключением этих четырех строк.
// Получаем постоянный IP каждый раз IPAddress ip (192, 168, 0, 104); // Это должен быть IP-адрес шлюза IP-адреса моего модуля ESP (192, 168, 0, 1); // устанавливаем шлюз в соответствии с вашей сетью, большинство шлюзов по умолчанию будет таким же Serial.print (F ("Установка статического IP-адреса на:")); Serial.println (ip); IP-адрес подсети (255, 255, 255, 0); // установить маску подсети, соответствующую вашей сети WiFi.config (ip, gateway, subnet);
Здесь вместо IPAddress ip (192, 168, 0, 104); введите желаемый IP-адрес. В этом случае мой ESP будет постоянно подключен к 192.168.0.104, и я могу просто получить к нему доступ, используя этот IP-адрес в моем браузере. Полный код приведен в конце этого руководства.
Принципиальная схема и оборудование:
Схема и оборудование для этой бытовой техники с голосовым управлением на основе Интернета вещей такие же, как и в нашем предыдущем проекте Smart Junction, и я объяснил схему там, так что любезно просмотрите ее. Здесь вы можете увидеть полную схему для справки:
Перенаправление порта вашего IP-адреса ESP8266:
Первый шаг - включить переадресацию портов в вашем маршрутизаторе (модеме), чтобы вы могли получить доступ к своему ESP из любой точки мира, просто введя свой общедоступный IP-адрес. Каждый раз, когда наш ESP8266 подключается к нашему домашнему / офисному маршрутизатору, ему дается уникальный IP-адрес, и этот IP-адрес используется для доступа к ESP8266 через веб-браузер. Этот IP-адрес ограничен в вашей домашней / офисной сети, то есть вы не можете получить к нему глобальный доступ; к нему могут получить доступ только устройства, подключенные к вашему роутеру. Перенаправление портов - это метод, с помощью которого мы можем загрузить эту веб-страницу по всему миру. После переадресации портов вы можете использовать свой общедоступный IP-адрес для доступа к этой веб-странице из любой точки мира. Звучит круто! Посмотрим, как мы можем это сделать. Для этого вы заранее знаете следующее.
1. Название производителя и IP-адрес вашего маршрутизатора. Это легко найти, посмотрев на роутер. IP-адрес также будет указан на наклейке. Если не Google, чтобы узнать IP вашего маршрутизатора.
2. Имя пользователя и пароль страницы входа в маршрутизатор. Большинство маршрутизаторов будут иметь имя пользователя «admin» и пароль «admin».
3. IP-адрес, назначенный вашему модулю ESP8266. Это адрес, который вы используете для доступа к веб-странице модуля ESP.
4. IP-адрес вашего интернет-провайдера (общедоступный IP-адрес). Это можно найти, просто погуглив «какой у меня IP».
Как только у вас будет все под рукой, вы можете выполнить следующие шаги для перенаправления портов, если вы не можете найти что-то, используйте раздел комментариев ниже. Я помогу тебе.
Шаг 1: Войдите на страницу служебной программы веб-управления маршрутизаторами, используя IP-адрес маршрутизатора, обычно это 192.168.1.1. Мой экран будет выглядеть так, как показано ниже
Шаг 2: Введите имя пользователя «admin» по умолчанию и пароль «admin» по умолчанию и нажмите «Войти». Вы попадете на страницу утилиты, которая будет выглядеть примерно так, как показано ниже.
Большая часть информации, которую вы видите здесь, является очень конфиденциальной, поэтому не передавайте ее никому неизвестному, иначе вы рискуете своей безопасностью в Интернете.
Шаг 3: Как показано выше, на вашей странице будут все параметры, перечисленные слева внизу. Наша цель - найти что-то под названием «Виртуальные серверы». Мой указан в разделе "Пересылка". У большинства маршрутизаторов они указаны как 6, 7 или 8- й вариант (чаще всего ниже настройки DHCP). Найдите его и нажмите на него
Шаг 4: Теперь вам нужно ввести IP-адрес, назначенный модулю ESP, и номер порта для пересылки нашего IP-адреса. В моем случае мне нужно нажать « Добавить» и ввести эти данные. Для вас это может немного отличаться. IP-адрес - это тот, который вы используете для доступа к веб-странице вашего модуля ESP. Номер порта можно выбрать по вашему выбору, но для простоты позвольте нам использовать «80». IP-адрес, выделенный моему модулю ESP8266, - 192.168.0.104, поэтому моя пересылка будет выглядеть примерно так:
Шаг 5: Теперь нам нужно знать наш общедоступный IP-адрес. Вы можете найти этот мой Goggling по запросу «Какой у меня IP». Ваш IP-адрес интернет-провайдера должен быть строго конфиденциальным. Для целей этого руководства предположим, что мой IP-адрес 987: 654: 321: 123. Я буду использовать его в качестве IP-адреса поставщика услуг Интернета до конца своего руководства.
Примечание. Возможно, ваш интернет-провайдер предоставил вам статический / динамический IP-адрес, если это динамический IP-адрес, ваш IP-адрес будет изменяться при каждом перезапуске модема / маршрутизатора. В этом случае вам нужно использовать что-то вроде DynDNS. Но это выходит за рамки данного руководства. Даже если это динамический IP-адрес, он будет работать, пока вы не сбросите настройки маршрутизатора.
То есть наша переадресация портов прошла успешно, мы можем проверить это, введя ISP IP: имя порта (987: 654: 321: 123: 80) в наш браузер и проверив, загружается ли веб-страница ESP. Если все пойдет так, как ожидалось, теперь вы сможете переключать нагрузки из любой точки мира, используя IP-адрес вашего интернет-провайдера.
Установка приложения Moni для Android:
Moni - это приложение, доступное для Android, Windows, iTunes и даже Skype. Вы можете скачать это приложение на свой мобильный телефон. Moni.ai имеет гораздо больше возможностей, помимо простого ответа на ваши голосовые команды, он очень удобен для разработчиков, и вы можете быстро определять разговоры визуально и подключаться к службам. Moni.ai использует приложение под названием Node-Red, с помощью которого вы можете легко создать голосовой канал и построить свою собственную систему Chabot (AI) для вашего бизнеса / проектов и автоматизировать ее с помощью вашего естественного языка. Лучше всего то, что Moni абсолютно бесплатен для некоммерческого использования.
Я использую телефон Android и поэтому загружаю Moni напрямую из магазина Google Play. После установки создайте бесплатную учетную запись и войдите в нее, ваше приложение должно выглядеть примерно так:
Вы можете использовать его, как и любой другой виртуальный помощник, например, запрашивать погоду, время и т. Д. Но что еще более важно, он может отвечать на ваши апплеты, созданные вашей службой Ifttt. Давайте теперь посмотрим, как создавать апплеты для вашего приложения.
Создание апплетов с использованием сервиса IFTTT:
Мы в одном шаге от завершения этого проекта. Последний шаг - создать апплеты на сайте IFTTT. Здесь мы проинструктируем наш Moni для различных голосовых команд для управления различной бытовой техникой дома.
Я использую эту распределительную коробку с голосовым управлением для переключения нагрузок в аквариуме (свет / фильтр), как показано на видео ниже. Поэтому я настраиваю апплет для этого требования, вы можете настроить его для своих целей. Следуйте инструкциям ниже:
Шаг 1. Посетите www.IFTTT.com и войдите в свою учетную запись. Если новый, то Зарегистрируйтесь.
Шаг 2: Теперь нажмите «Поиск» и введите Make Webhooks. Выберите его и нажмите «Подключиться». Следуйте инструкциям, чтобы подключиться к нему.
Шаг 3: Теперь снова нажмите «Поиск» и введите Moni. Выберите Moni и нажмите «Подключиться». Войдите в свою учетную запись IFTTT, чтобы включить соединение.
Шаг 4: Мы подключились к сервисам «Maker Webhooks» и «Moni». Теперь позвольте вам создать апплет с этими службами. Щелкните «Мои апплеты», а затем «Новый апплет». Вы должны увидеть что-то вроде этого:
На этом экране вы должны нажать «это» и выбрать «Moni». Затем нажмите «Попросить Мони выполнить действие», вы попадете на экран ниже.
Шаг 5: Заполните детали, как я заполнил изображение выше. Моя задача состоит в том, чтобы включить освещение для аквариума (нагрузка 1), когда я говорю «Включите освещение для аквариума». Затем нажмите «Создать триггер».
Шаг 6: Вы вернетесь к экрану «ЕСЛИ ЭТО, ЧЕМ ТО». Теперь нажмите «это», введите «Maker Webhooks» и выберите его. Затем нажмите «Сделать веб-запрос». Вы попадете на экран ниже
Это важный шаг, на котором вы, скорее всего, ошибетесь. На этой странице просто введите URL-адрес, который вы хотите загрузить. В моем случае я хочу включить нагрузку, подключенную к switch1, поэтому используется строка http: // 987: 654: 321: 123 / switch1On, вам нужно заменить мой IP своим общедоступным IP-адресом. Это будет работать, только если вы использовали мой код в предыдущем руководстве. Полный список URL-адресов для переключения нагрузок приведен ниже.
URL |
Ключевое слово из программы |
Действие |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
GPIO_0 становится высоким, таким образом включается нагрузка 1 |
http: // 987: 654: 321: 123 / switch1Off |
Switch1Off |
GPIO_0 становится низким, таким образом, отключается нагрузка 1. |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 становится высоким, таким образом включается нагрузка 2. |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 переходит в низкий уровень, что приводит к отключению нагрузки 1. |
После того, как вы ввели желаемый URL, нажмите «Создать действие». Затем нажмите Готово. Точно так же вы можете создать 4 апплета для включения / выключения обеих нагрузок в нашей распределительной коробке.
Итак, ваш апплет готов к работе, и он должен появиться в разделе «Мои апплеты», как показано ниже.
Пора проверить наш код…….
Тестирование проекта:
Наконец-то мы готовы с нашим проектом. Давайте проверим это. Включите его и откройте приложение Moni на своем мобильном телефоне. Щелкните значок микрофона и произнесите команду. В моем случае это «Включить свет в аквариуме», и он должен ответить «ОК» и включить свет. Проверьте полный код и демонстрационное видео ниже.
Надеюсь, вам понравился проект, и он заработал. Если вы где-то застряли, используйте раздел комментариев ниже, и я обязательно вам помогу. Встретимся с еще одним интересным проектом, а пока следите за обновлениями.
Также проверьте наши другие проекты на базе Интернета вещей здесь.