Nodemcu: контроль устройств голосом или со смартфона

Wi-Fi реле на NodeMCU. Управление Android приложением

В предыдущем проекте я уже рассказывал как можно управлять реле по Wi-Fi. Но использовать сторонне приложение для управления своими проектами не дальновидно. И нет перспективно. Поэтому я решил написать пару Android приложения для своих новых проектов на ES8266 это просто изыскания для проектирования.

Посмотрел среды разработки под Android и мне понравились:

1. Android Studio

2. MIT App Inventor

Так как я не писал Android приложения, разобраться с Android Studio потребует достаточно большое количество времени. И для вас повторить мои проекты будет гораздо сложнее. Поэтому я решил пойти по самому легкому пути и написал приложение на MIT App Inventor.

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

Первое. В приложении мы можем указать IP устройства. И нам не нужно постоянно его прописывать в коде NodeMCU.

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

Программа для NodeMCU берем из прошлого проекта без изменений. Сделаем дизайн приложения в MIT App Inventor.

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

Набросаем код блоками и у нас получиться вот что.

Мы обрабатываем нажатие кнопки Button1. Зеленой блок Set отправляет заброс в веб обработчик Web1. Блок Join собирает нашу ссылку из 3 частей. Первая и третья части это просто текстовые поля. Поле TextBox1 берет параметры из поля ввода. В него мы указываем IP адрес подключения.

Кнопка Button2 работает аналогично Button1. Только она отправляет сигнал на отключение реле.

Блок кода Web1 отправляет Get запрос который мы сформировали с помощью кнопки.

Внутри первого блока условия проверяем код ответа. Если мы получили код ответа 200 (нет ошибок), выполняем следующее условие. Иначе выводим ошибку.

Второе условие проверяет Содержимое ответа. Содержимое мы сформировали сами в программа NodeMCU.

On – реле включено

OFF – реле выключено.

В текстовое поле Label1 выводим состояние реле.

Конечно данной программе далеко до идеала. Но я планирую за пару уроков ее улучшить и поделиться полученным результатом с вами

Понравилась статья пишите в комментарии.Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.

Спасибо за внимание!

Понравилась статья? Поделитесь ею с друзьями:

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

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

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

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

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

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

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

Описание

Если вы знакомы с 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 >

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

    Andro >

    Связка смартфона Andoid и Arduino предоставляет огромные возможности для создания современных проектов, упрощая удаленное программирование, управление и синхронизацию данных. Мобильные приложения на смартфоне дают взаимодействовать с реальным физическим миром из любой точки земли с помощью привычных всем гаджетов. Представляем вам обзор Android приложений для работы с Arduino. Для простоты мы выбрали несколько видов приложений, предназначенных для работы с ардуино: приложения, позволяющие создавать скетчи, справочники и Bluetooth/Wi-fi-контроллеры.

    ArduinoDroid

    ArduinoDroid – это бесплатное приложение, которое позволяет редактировать, компилировать и загружать эскизы к вашей плате Arduino прямо с телефона или планшета Android. Отличительной чертой этой программы является то, что в нее можно загружать уже готовый запрограммированный код или создавать новый. В случае с неполадками или сбоями программы, открытый код можно всегда отредактировать.

    В настоящее время поддерживаются только платы Arduino Uno R3 и платы на базе FTDI (Duemilanove, Diecimila), но планируется поддержка Mega, Due и Nano. Другие функции, которые необходимо реализовать, включают расширенную настраиваемую подсветку синтаксиса, интеллектуальные подсказки кода (автозаполнение) и интеграцию сторонних приложений (руководства, запросы на компиляцию эскизов).

    Стоит отметить то, что с помощью этого приложения начинают все осваивать ардуино, к тому же клон-плата Arduino и USB кабель OTG обойдутся всего в пару долларов.

    Рейтинг на Google Play: 4.1 из 5

    Количество скачиваний: более 500.000

    Bluino Loader – Arduino IDE

    Bluino Loader – это программное обеспечение для ардино (Arduino IDE), которое позволяет быстро и легко компилировать ваш код для создания файла и загружать его на плату ардуино через USB OTG.

    Рейтинг на Google Play: 4.1 из 5

    Количество скачиваний: более 50.000

    Arduino Bluetooth Control

    Приложение ABC – это простое приложение, которое предназначено для того, чтобы контролировать контакты Arduino, и иметь доступ основным функциям управления. Arduino Bluetooth Control используется для управления и/или мониторинга контактов Arduino через Bluetooth. Приложение является автономным, и вся инициализация выполняется из Arduino. Важно понимать, что приложение предназначено именно для контактов ардуино, а не для управления.

    Работа приложения осуществляется при помощи нескольких инструментов:

    1. Metrics – этот инструмент осуществляет передачу данных с устройства ардуино, которые передают сигнал на телефон о сбоях или об изменениях значений. После того как кнопка сигнализации срабатывает, на телефон поступает уведомление о приостановки работы. Также есть функция встряхивания, при помощи которой отправлять данные путем встряхивания телефона.
    2. Кнопки со стрелками – здесь работа осуществляется кнопками, которые полностью регулируют отправку данных на плату.
    3. Терминал – стандартный терминал, получающий и отправляющий данные на плату с отметками времени.
    4. Кнопки – в горизонтальной ориентации доступно 6 полностью функционированных кнопок для отправки данных на системную плату ардуино.
    5. Accelometer – используются команды при помощи жестов. Ваш смартфон может стать рулем для управления вашим роботом.
    6. Голосовое управление – если вы когда-либо хотели пообщаться с роботами, то этот инструмент для вас. При помощи голосовой связи можно создавать собственные команды и использовать их для управления ардуино.

    Рейтинг на Google Play: 4.2 из 5

    Количество скачиваний: более 50.000

    Arduino Bluetooth Controller

    Arduino Bluetooth Controller – это простое и интуитивно понятное приложение для управления arduino через bluetooth с android. Работа приложения осуществляется в 4-х различных режимах:

    1. Режим контроллера: здесь приложение осуществляет демонстрацию интерфейса в виде игрового контроллера. Управление робота осуществляется при помощи экранных кнопок, что упрощает работу с ардуино.
    2. Режим переключения: переключение осуществляется при помощи одной кнопки, которая предназначена для удаленного доступа к переключателю.
    3. Режим диммера: в этом режиме доступна функция отправления значения в Arduino, которая позволяет удаленно регулировать яркость или скорость.
    4. Режим терминала: возможность отправлять индивидуальные команды для декодирования команд в самом ардуино.

    Рейтинг на Google Play: 4.5 из 5

    Количество скачиваний: более 100.000

    Bluetooth Controller 8 Lamp

    Приложение создано при помощи модулей Bluetooth HC-05, HC-06 и HC-07. Контроль 8 каналов позволяет быстро и удобно отрегулировать работу ардуино. В интерфейсе предоставлено 8 кнопок, которые соответствуют каждой лампе.

    Рейтинг на Google Play: 4.3 из 5

    Количество скачиваний: более 50.000

    BT Voice Control for Arduino

    С помощью этого приложения можно отправлять и получать данные с таких устройств, как ультразвуковой датчик, подключенный к Arduino через Bluetooth. Для подключения устройства Arduino к мобильному телефону через Bluetooth был использован модуль HC-05. После подключения ультразвуковой датчик будет передавать расстояние до ближайшего объекта, и это будет отображаться на мобильном телефоне в этом приложении.

    Arduino был запрограммирован на список распознаваемых команд, таких как «Вперед», «Назад», «Влево», «Вправо» и «Стоп». Важно знать, что ультразвуковой датчик отправляет расстояние до ближайшего объекта в Arduino, а затем отправляет его в приложение с помощью модуля Bluetooth HC-05.

    Рейтинг на Google Play: 4.4 из 5

    Количество скачиваний: более 10.000

    RemoteXY: Arduino Control

    Осуществление управления это ардуино адроид приложения проходит через Bluetooth, Wi-Fi или интернет. Приложение позволяет пользователю сделать свой индивидуальный графический интерфейс, посетив его сайт http://remotexy.com. Удобное создание кнопок, переключателей и полная регулировка ардуино не даст отойти ни на шаг. Также доступно подключение через облачный сервер, что дает преимущество перед другими приложениями.

    Рейтинг на Google Play: 4.1 из 5

    Количество скачиваний: более 50.000

    Virtuino

    Virtuino – это бесплатное приложение из подкатегории System Maintenance, входящей в категорию System Utilities. Оно разрешает совмещать проекты в единое целое, что позволяет управлять более одной платы одновременно через Bluetooth или Wi-fi.

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

    Рейтинг на Google Play: 4.9 из 5

    Количество скачиваний: более 50.000

    Blynk

    Это уникальное приложение c прекрасным дизайном разрешает разрабатывать проекты, которые напрямую имеют доступ к триггеру событий на плате ардуино. Однако, важно знать, что для работы в приложении необходимо интернет-подключение, иначе работа попросту невозможна. Независимо от того, подключен ли ваш Arduino или к Интернету через Wi-Fi, Ethernet или этот новый чип ESP8266, Blynk выведет вас в интернет и будет готов к работе.

    Настройка занимает около 5 минут, после чего вы можете приступить к реализации своих проектов. Также программа поддерживает аппаратное обеспечение по вашему выбору.

    Рейтинг на Google Play: 4.6 из 5

    Количество скачиваний: более 500.000

    IoT Wi-Fi контроллер

    Этот Wi-Fi контроллер содержит интерфейс, который показывает конфигурацию каждого ввода-вывода Arduino. Возможность переключать значения GPIO в реальном времени, а также показ значений АЦП позволят легко управлять вашим гаджетом.

    Рейтинг на Google Play: 4.6 из 5

    Количество скачиваний: более 5.000

    Справочник по Arduino 2

    Это одно из важных приложений для обучения в ардуино. Новым пользователям потребуется всего пару недель для освоения материала с этим приложением. Приложение доступно в оффлайн режиме, что позволяет изучать материал в любом месте без подключения к интернету. Включены такие категории как: операторы, данные, функции и некоторые библиотеки Arduino.

    Управление нагрузкой на NodeMCU с помощью мобильного приложения

    В данной статье показан пример использования платы NodeMCU. А именно управление нагрузкой с помощью релейного модуля из 4 реле и приложения на мобильный телефон андроид.

    Подключаем все контакты по схеме

    После подключения всех компонентов необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.

    Ссылка на скетч: https://yadi.sk/d/XU-WI08r3M32gF
    Сначала в этом скетче нужно изменить

    Затем в строчке меняем ip адрес на свой:

    Где первое это ip адрес устройства, 2 это шлюз, 3 это маска подсети, 4 это адрес dhcp сервера

    После заливки скетча, переходя по адресу http://192.168.1.131/1/0 и http://192.168.1.131/1/1 мы будем включать и выключать реле, и следовательно меняя 1 на 2,3,4 мы будем управлять другими реле, например http://192.168.1.131/3/1

    Теперь давайте перейдем к созданию приложения:

    перейдя по ссылке: http://ai2.appinventor.mit.edu и залогинившись, мы поподаем в программу создания приложений для андроид.

    Мое приложение выглядит так:

    Тяжело здесь описать, что нужно добавлять, постараюсь перечислить что нужно накидать на экран.

    Для управления 4мя реле нам нужно:

    Из вкладки слева User interface накидать на экран 8 Button, для надписей над кнопками нам нужно 4 Label

    Из вкладки слева Connectivity Добавить блок Web

    Для установки двух кнопок в одной плоскости нам понадобится блок HorizontalArrangement в вкладке слева Layout

    Для точечной настройки каждого добавленного блока, нужно выбрать тот блок который мы хотим отредактировать справа в вкладке Components

    И в вкладке справа Properies раскроются все настройки которые применимы к этому объекту.

    Общее окно выглядит вот так:

    После косметических настроек перейдем в правом верхнем углу во вкладку Blocks

    Здесь будем программировать с помощью блок-схем.

    Для начала в вкладке слева Blocks выберем первую кнопку с которой будем работать и выберем блок: when Button1 . Click

    Далее в тойже вкладке Blocks нажмем на Web и почти в самом низу выберем блок set Web1. Url to

    и добавим его к when Button1 . Click

    Далее перейдем в туже вкладку Blocks далее Text и выберем самый первый блок который выглядит вот так ” ” присоединим его к et Web1. Url to и напишем в нем адрес для включения реле “http://192.168.1.131/1/0

    Далее в тойже вкладке Blocks нажмем на Web выберем пурпурного цвета блок call Web1. Get и присоединим его к when Button1 . Click

    На этом настройка кнопки закончена, такие же действия нужно проделать со всеми кнопками и должно получиться вот так:

    Само приложение можно скачать по ссылке:https://yadi.sk/d/BY4kEIYQ3M36LL

    Исходники можно посмотреть по этой ссылке: https://yadi.sk/d/ehabE3C_3M36Yo по этой ссылке скачается файл с расширением .aia и его можно добавить в MIT app invertor и посмотреть полностью из чего состоит программа.

    Ну а кому лень читать и интересно смотреть видео:

    Источники:

    http://arduinoplus.ru/kontroliruem-ustroistva-nodemcu-so-smartfona/

    http://arduinomaster.ru/projects/android-arduino-prilozheniya/

    http://psenyukov.ru/%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%BE%D0%B9-%D0%BD%D0%B0-nodemcu-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-%D0%BC%D0%BE/

    http://arduinomaster.ru/datchiki-arduino/datchiki-temperatury-i-vlazhnosti-dht11-dht22/

Ссылка на основную публикацию