RemoteXY - сервис для организации удаленного беспроводного и проводного управления самодельными устройствами на базе arduino, esp8266, esp32 и chipKIT. Сервис состоит из онлайн-редактора мобильного интерфейса, приложения для устройств Android и iOS, сервера для удаленного управления устройствами, а также библиотеки для ArduinoIDE.
Приложений для android устройств два - бесплатное и платное. Бесплатное приложение имеет ограничение в 5 элементов интерфейса. Если же элементов интерфейса больше, то приложение позволяет протестировать работу устройства в течении ограниченного времени (всего 30 секунд за сеанс).
Работа с сервисом RemoteXY организована следующим образом:
Отмечу, что интерфейс хранится непосредственно в программируемом устройстве в виде массива чисел, и загружается в приложение для смартфона при каждом подключении. Таким образом, отпадает необходимость настройки интерфейса на каждом подключаемом к устройству смартфоне, необходимо лишь настроить связь между смартфоном и запрограммированном устройстве.
В данном цикле статей я предлагаю поближе познакомиться с сервисом RemoteXY и начну я пожалуй с основ.
Редактор интерфейса разделен на 3 части. В центре основное окно, в котором отображается внешний вид созданного интерфейса. Слева раскрывающиеся списки с элементами интерфейса, сгруппированные по категориям. Справа расположены вкладки конфигурации подключения устройства, настройки экрана и контекстно-зависимая вкладка настройки выбранного элемента интерфейса.
Работа с онлайн-редактором строится по принципу drag-and-drop, также как и в проводнике компьютера. Просто перетаскивайте необходимый элемент с левой области в центральную, на макет смартфона. При клике на элемент на макете смартфона он выделяется синей рамкой и теперь его можно перемещать по макету, а также масштабировать, хватая и перемещая маркеры по углам рамки. Обратите внимание, над рамкой выбранного элемента отображается имя переменной, по которому в дальнейшем будет осуществляться доступ к выбранному элементу.
Начать знакомство с RemoteXY я рекомендую с изучения способов связи приложения и устройств, которыми необходимо управлять. Но перед эти создадим простейший интерфейс следующим образом:
Выглядеть это должно так:
Для получения сгенерированного кода необходимо нажать большую зеленую кнопку “Получить исходный код”.
Не забудьте установить актуальную версию библиотеки в ArduinoIDE, скопируйте в ArduinoIDE полученный код, по необходимости (а она возникает в 99.9% случаев) дополните полученный код своим.
Теперь можно приступать к изучению способов соединения приложения и контролируемых устройств.
Для доступа к вариантам совместимых соединений необходимо раскрыть вкладку “конфигурация” в правой части онлайн редактора и нажать мышкой на любой из появившихся значков.
Список всех возможных соединений приведен на следующем скриншоте.
Соединение при помощи кабеля требует наличие функции OTG в смартфоне. К сожалению не все смартфоны могут похвастаться наличием такой функции. Соединение такого типа доступно для всех плат прототипирования, которые имеют на плате распаянный переходник USB-UART. При отсутствии распаянного переходника USB-UART (как в случае с arduino pro mini) можно подключить внешний.
Я продемонстрирую соединение через кабель на примере Arduino Mega2560. Я использую следующую конфигурацию подключения:
Далее необходимо выбрать программный или аппаратный протокол, я выберу конечно же аппаратный.
Выбираю Serial port к которому подключен переходник USB-UART, который размещен на плате Mega2560.
Ну и напоследок устанавливаю скорость соединения 9600 бод.
Напомню, что в интерфейсе сейчас находится один элемент управления - переключатель, который зажигает расположенный на плате светодиод.
После загрузки скомпилированного кода в “мегу” я подключаю её к своему смартфону. Процесс подключения показан на следующих скриншотах.
Очень специфичный способ связи смартфона и управляемого устройства. Для постоянного соединения годится только в некоторых случаях, но очень подходит для не частого подключения, например для настройки управляемого устройства.
Примечание: замечено, что этот способ соединения не работает с Leonardo.
Следующий тип связи - BlueTooth. Возможна работа с модулями HC-05, HM-10 и встроенным в ESP32 bluetooth on chip.
Для примера я буду использовать связку из Mega2560 и HC-05, подключусь к Hardware serial 3 на скорости 9600 бод (стандартная скорость для HC-05).
Перед подключением устройства рекомендую связать смартфон и bluetooth-модуль стандартными средствами смартфона. Дальнейшее подключение приложения к устройству не составляет труда.
Отмечу, что для модуля HM-10 и ESP32 bluetooth on chip необходимо выбирать Bluetooth BLE.
Данный способ связи годится для использования на небольших расстояниях, ограниченных дальностью связи модуля bluetooth. Отлично подойдет для устройств умного дома без доступа к сети интернет, отдельных “умных” устройств, управляемых со смартфона игрушек. Особенностью данного способа связи является то, что смартфон может поддерживать связь с несколькими устройствами одновременно, что не достижимо при помощи следующего способа связи - точки доступа.
Подключение “Wi-Fi access point” доступно для устройств, построенных на esp8266, ESP32 и любых arduino и chipKIT совместно с esp-01. Для примера я буду использовать NodeMCU v3, точку доступа оставлю открытой, но конечно же можно использовать пароль для исключения несанкционированного доступа к вашему устройству.
NodeMCU создает открытую точку доступа с именем RemoteXY, необходимо подключиться к ней стандартными средствами смартфона, а затем через программу.
Особенности данного способа подключения:
Следующий способ подключения Ethernet TCP/IP исключает некоторые недостатки предыдущего способа, но при этом добавляет свои. Так для подключения способом Ethernet TCP/IP необходимо главное устройство, через которое будет осуществляться связь. Это может мыть ADSL или Ethernet модем с функцией точки доступа Wi-Fi, смартфон или ноутбук, на котором активирована точка доступа. При этом связь смартфона и контролируемого устройства будет доступна внутри всей локальной сети.
Конфигурация подключения продемонстрирована на следующем скриншоте. Я использую всё ту же NodeMCU, но на этот раз подключаю её к точке доступа, созданной моим ноутбуком. Обратите внимание, точка доступа защищена паролем, его необходимо указать в конфигурации соединения.
После того как контролируемое устройство прошито и подключено к точке доступа, необходимо узнать его IP-адрес. В моем случае это можно посмотреть в конфигурации точки доступа на ноутбуке.
Теперь необходимо подключить смартфон к той же точке доступа, перейти в приложение и ввести в нем полученный IP контролируемого устройства.
Преимущества и недостатки данного способа связи:
Все рассмотренные выше способы связи требуют, чтобы смартфон и контролируемое устройство находились относительно недалеко, в пределах связи беспроводных модулей или локальной сети. Но предусмотрен способ связи, позволяющий управлять вашими устройствами хоть с тропического острова - облачный сервер.
Для управления устройством через облачный сервер необходимо, чтобы контролируемое устройство было подключено к глобальной сети интернет. Кроме того необходимо зарегистрироваться на сайте и получить токен, по которому сервер идентифицирует устройство и организует связь с ним.
Для этого необходимо в вверху страницы справа перейти по ссылке “мои токены” и создать новый токен. Здесь же можно проконтролировать, подключено ли контролируемое устройство к серверу в данный момент.
Далее можно переходить к дальнейшей конфигурации соединения.
Обратите внимание, токен выбирается из выпадающего списка, нет необходимости копипастить его или вводить вручную.
А вот в приложении придется копипастить или вводить токен вручную.
Преимущества и недостатки:
Предусмотрены способы связи на все случаи. Конечно, идеального способа связи не существует, каждый имеет свои преимущества и недостатки. Тем не менее, из предложенных способов связи всегда можно подобрать удовлетворяющий потребностям способ, с учетом компромиссов. Далее к RemoteXY Часть 2.
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой!
© Все права защищены 2015 - 2025г https://compacttool.ru