RemoteXY

ESP8266 и RemoteXY для управления с мобильного приложения

Сервис RemoteXY позволяет создавать графические интерфейсы для управления микроконтроллерными устройствами с мобильного приложения. Что бы создать интерфейс, необходимо его сконструировать в редакторе на сайте remotexy.com, затем автоматически будет сгенерирован исходный код программы для микроконтроллера, реализующей интерфейс. Исходный код формируется для Arduino IDE и представляет собой рабочую заготовку, которую можно легко доработать, добавив необходимый функционал под вашу задачу. Для подключения к контроллеру устанавливаем мобильное приложение RemoteXY на смартфон/планшет. Вся прелесть в том, что код графического интерфейса хранится в микроконтроллере. Подключаясь к контроллеру с мобильного приложения, в первую очередь прочитывается интерфейс, затем запускается обмен данными между контроллером и мобильным приложением. Вы можете контролировать множество разных устройств используя одно мобильное приложение.

Демонстрацию возможностей RemoteXY проведем на примере простого проекта, который автоматизирует наш виртуальный ”умный дом”. Мы будем считывать температуру с датчика DHT11 и по его показаниям управлять двумя реле. Первое реле будет включаться при превышении температуры относительно заданной, второе при понижении. В реальной жизни на первое реле можно посадить вентилятор для затягивания холодного воздуха в помещение, на другой обогреватель. Задавать температуру будем со смартфона. Так же на смартфон выведем реальную температуру и влажность с датчика. И добавим два выключателя для еще одной пары реле, которые можно задействовать как угодно.

Таким образом наше устройство будет самостоятельно регулировать температуру, автоматически управляя реле 1 и 2. Но мы можем подключиться к нему с мобильного приложения, задать установленное значение температуры для регулирования и отключиться. Так же при подключении имеем возможность увидеть текущие значения температуры и влажности, включить или выключить дополнительную нагрузку через реле 3 и 4.

Сервис RemoteXY поддерживает модуль ESP8266 для плат Arduino с подключением через последовательный порт. Именно эту конфигурацию возьмем за исходную. Модуль ESP8266 подключим к Arduino через Hardware последовательный порт на скорости 115200. Для работы с библиотекой RemoteXY модуль ESP8266 должен быть прошит прошивкой, реализующей AT команды версии не ниже v0.40.

Схема подключения на рисунке.

RemoteXY

Заходим в редактор интерфейсов RemoteXY, расположенный по ссылке http://remotexy.com/ru/editor/. Настраиваем конфигурацию проекта в соответствии принятой. Установим настройку ESP8266 в качестве точки доступа ”WiFi access point”. Но можете поэкспериментировать с ESP8266 в режиме станции, и подключиться к домашней точке доступа по IP адресу. Для режима станции выберите вариант соединения ”Ethernet TCP/IP”.

RemoteXY

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

RemoteXY

Нажимаем кнопку ”Получить исходный код”. Скачиваем код. Теперь уже можно протестировать работу интерфейса. Для этого компилируем и загружаем код в Arduino. Для компиляции понадобится установить библиотеку ”RemoteXY.h” и “DHT.h”. Обратите внимание, что при программировании модуль ESP8266 необходимо отключать от контактов RX и TX. Установите мобильное приложение RemoteXY по ссылке http://remotexy.com/ru/download/ и подключитесь к контроллеру. Вы должны увидеть на экране смартфона ваш интерфейс, но это пока еще только шаблон для нашего умного дома.

RemoteXY

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

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

Ссылки на используемые бибилиотеки:
RemoteXY.h — http://remotexy.com/ru/library/
DHT.h — https://github.com/adafruit/DHT-sensor-library

[su_spoiler title=»Исходный код» style=»fancy»]

[/su_spoiler]

Евгений Шемануев

Обсуждение и техподдержка от автора RemoteXY на нашем форуме