Справочник программиста Библиотеки Гид по TFT-дисплеям

Контролируем устройства со смартфона голосом или кнопками

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

В этом уроке разберемся как управлять устройствами с помощью голоса, приложения на смартфоне и NodeMCU. По сути, вам нужно будет запустить приложение Android на смартфоне, то даст нам возможность управлять другими устройствами с его помощью. В этом приложении вы сможете включать или выключать устройства с помощью кнопок и/или голосовых команд.

Комплектующие

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

  • NodeMcu V3 ESP8266 китайская версия LoL1n v3.
  • Релейный модуль с 8 реле (или отдельными релейными модулями).
  • Смартфон на Android.

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

Описание

Если вы знакомы с Arduino (или NodeMCU) и реле, то вы можете пропустить этот шаг. Для тех, кто не в теме, мы постараемся объяснить вкратце как эти вещи работают.

Во-первых, NodeMCU можно считать микроконтроллером с поддержкой Wi-Fi благодаря чипу ESP8266. На следующем шаге мы покажем вам как мы можем использовать Arduino IDE для работы с NodeMCU.

Во-вторых, релейный модуль используется для отделения управляющего сигнала низкого напряжения постоянного тока от NodeMCU и вашей линии переменного тока. Для каждого реле есть 3 выходных контакта. Обычно COM-контакт подключается к NC (нормально замкнутому) контакту. Когда подается управляющий сигнал, катушка реле переворачивается, так что контакт COM подключается к контакту NO.

На релейном модуле опто-транзисторы используются для защиты NodeMCU от нежелательного перепада от линии переменного тока при переключении реле. Сигнал LOW входа на модуле реле активирует соответствующее реле. И наоборот, логика HIGH отключит реле.

Вы должны убрать перемычку между VCC и JDVCC на плате реле, чтобы отделить источник питания.

Подготовка программного обеспечения

NodeMCU в данном проекте из Китая, поэтому используется USB-чип CH341. Нужно установить драйвер для CH341. Драйвер вы сможете скачать ниже, распаковать и установить на свой компьютер.

Далее, для использования с Arduino IDE нам нужно добавить библиотеку плат. Откройте Arduino IDE:

  • Инструменты -> Плата -> Менеджер (Tools --> Board --> Board manager).
  • Найдите "esp8266 by ESP8266 Community" и установите.
  • Файлы -> Настройки (Files --> Preferences).
  • Заполните поле Additional Board Manager URL:
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
  • Инструменты -> Плата -> NodeMCU 1.0 (Tools --> Board --> NodeMCU 1.0).

В прикрепленном файле Arduino измените параметры соответствующим образом:

  • SSID к вашему Wi-Fi
  • пароль к вашему Wi-Fi

Вы также можете изменить контрольный пин на NodeMCU.

Скачать код проекта:

Приложение для смартфона

Мы используем MIT App Inventor (ссылка) для создания приложения для телефона на Android. Вы можете зарегистрироваться бесплатно с помощью учетной записи Gmail. Если вы просто хотите использовать приложение, скачайте zip-файл, разархивируйте и установите home3.apk на свой телефон.

Команда для каждого выходного контакта очень проста:

  • включить красный / выключить красный
  • включить зеленый / выключить зеленый
  • включить синий / выключить синий
  • включить желтый / выключить желтый
  • включить оранжевый / выключить оранжевый
  • включить коричневый / выключить коричневый

И если вы хотите изменить команды - войдите в MIT App Inventor и измените home3.aiaas, согласно картинкам ниже:

  • Проект -> Импорт проекта (.aia) (Project --> Import project).
  • Переключиться на "Блокировать и изменить команду" (lock and modify command).
  • После внесения изменений выберите: Build -> App (сохранить .apk).
  • Установите ваше приложение

Собираем проект

Как вы можете видеть на картинке, NodeMCU работает с напряжением 3.3В. Так что на борту есть регулятор напряжения. Вы можете включить его через USB-порт для подачи постоянного тока 5 В или подключить VIN-контакт NodeMCU к источнику питания с диапазоном максимум от 6 до 20 В.

На плате реле снимите перемычку между VCC - JDVCC. Поскольку реле 5В, вам необходимо подать на него напряжение 5В или ниже, но не ниже 3,3В. Если нет, реле не будет активировано.

В первом сценарии используется внешний источник питания 5 В. Для работы NodeMCU и всех реле одновременно должно быть не менее 1,5 А.

  • Подключите источник питания к JD-VCC и контакту GND на плате реле.
  • Подключите источник питания к VIN и GND NodeMCU
  • Подключите выходные контакты от NodeMCU к плате реле (D0 D1 D2 D5 D6 D7)
  • Подключите 3,3 В NodeMCU к VCC релейной платы (для меня это работает, но в некоторых случаях 3,3 В недостаточно для активации реле; вы можете использовать VIN NodeMCU для VCC платы реле, но разделение питания больше не доступно; это не будет проблемой, если вы используете только реле для управления лампочкой).

Во втором сценарии NodeMCU получает питание через USB-кабель от батареи. Внешний источник питания используется для релейной платы. Вместо 3,3 В вы можете подключить VIN NodeMCU к VCC релейной платы.

Итоговый результат

Откройте приложение, которое вы только что установили на смартфон - Home DL (название можно задавать самому). Вы можете изменить это имя с помощью MIT App Inventor.

    • Откройте программу в Arduino IDE.
    • Измените Wi-Fi ssid и пароль на ваши данные.
    • Загрузить её в NodeMCU.
    • Откройте Serial Monitor и дождитесь показа значения локального IP, запомните значение.
    • Пока приложение на вашем телефоне открыто, нажмите кнопку «Установить IP».
    • Запишите IP-адрес в текстовое поле и нажмите «Сохранить».
    • Перезапустите приложение.

Теперь вы можете нажать на любую кнопку для управления соответствующими устройствами или нажать на значок динамика и произнести свою команду.

25.12.2018 | Уроки | |
Ардуино+