Интернет вещей с remotexy

esp8266 – Сообщество разработчиков

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

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

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

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

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

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

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

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

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

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

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

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

Интернет вещей с RemoteXY: элементы управления

Очередная статья по сервису RemoteXY. В статье рассмотрены элементы управления кнопка, выключатель, переключатель и слайдер. Работа с каждым элементом рассмотрена на практическом примере простых для повторения новичками устройств.

Элементы управления

У всех интерактивных элементов интерфейса есть атрибут «имя переменной», по этому имени идет обращение к элементу в программе микроконтроллера

Рассмотрим пример интерфейса, содержащего переключатель. Имя переключателя по умолчанию «switch_1», при выделении элемента на рабочем поле над ним появляется его имя переменной. При добавлении элементов того же типа имя переменной остается тем же, но меняется его порядковый номер (switch_2, switch_3). Можно изменить имя переменной на произвольное, но в соответствии с правилами именования переменных в С++, а именно:

  • имя переменной не должно начинаться с цифры;
  • имя переменной не должно включать следующие символы: , / : * ? ” |
  • имя переменной всегда должно начинаться с маленькой буквы и иметь «верблюжий» регистр (lightButton), но это скорее рекомендация соглашения об именовании.


Все имена переменных хранятся в структуре, которой присваивается имя RemoteXY. Структура – своего рода контейнер различных переменных, которому можно присвоить имя. Структура может содержать в себе переменные различного типа одновременно.

Обращение к элементу (полю) структуры организовано по образцу «имя_структуры.имя_переменной», таким образом, что бы прочитать состояние переключателя switch_1 из структуры RemoteXY, необходимо обратиться к этому переключателю RemoteXY.switch_1

Кнопка

Элемент «кнопка» имитирует работу кнопки без фиксации. Имеет параметры: цвет, имя переменной (по умолчанию button), надпись на кнопке, отрисовка кнопки (круглая или прямоугольная) и привязка к выводу.

Кнопка принимает значение 1 если нажата, 0 если не нажата. Проверка состояния осуществляется простым сравнением RemoteXY.button_1= =0.

Изменения надписи на кнопке особенно полезно при работе с бесплатной версией программы, так как количество элементов ограничено, то можно непосредственно на кнопке написать, за что она отвечает.

Объявление кнопки в структуре:

​Если при создании интерфейса привязать кнопку к выводу, то генератор кода в функции loop() создает строку

Проект «кодового» замка

Закрепим полученные знания на практике, создав проект «кодового» замка. Слово «кодовый» недаром написано в кавычках, ведь вся секретность замка основана на пароле модуля связи.

Создадим подключение со следующей конфигурацией:

Для этого проекта я решил использовать NodeMCU. Конфигурация соединения – точка доступа Wi-Fi, таким образом, достигается независимость устройства от других сетей. Обратите внимание на пароль, именно он обеспечивает «секретность» замка, другой защиты не предусмотрено.

Внешний вид интерфейса.

На рабочем поле расположена метка с текстом «открыть дверь» и кнопка с надписью «Ок», при нажатии на которую будет срабатывать электромагнитный замок. Обратите внимание на то, что кнопка изначально привязана к выводу D0, таким образом, необходимость в доработке кода отпадает.

Замок построен по следующей схеме.

Как известно выводы микроконтроллеров не могут дать достаточной силы тока для работы сильноточных устройств, поэтому я предлагаю использовать микросхему ULN2003, которая представляет собой сборку из 7 мостов Дарлингтона с защитными диодами. Схема питается от сборки батарей типа АА подключенных последовательно, NodeMCU работает непосредственно от них через встроенный стабилизатор.

Отдельного внимания заслуживает рассмотрение работы микросхемы ULN2003. Вывод 8 – общий, 9 – подключается к источнику тока, от которого будет работать электромагнитный замок (в нашем случае это батарейки АА, общим напряжением 6 вольт). Большим плюсом этой микросхемы является то, что сигнал проходит «напрямую», от входа на выводе 1 на выход на выводе 16, от 2 к 15 и так далее, что облегчает создание печатных плат. Так же микросхема содержит защитные диоды на каждом канале и подходит для подключения индукционной нагрузки, которой является и электромагнитный замок. Один канал микросхемы может выдержать ток до 0,5 ампера, вся микросхема ток до 2 ампер на всех каналах. Если необходимо подключить нагрузку более 0,5 ампер можно использовать несколько каналов микросхемы параллельно. При прохождении через микросхему логический сигнал инвертируется.

Схема для любителей программы Fritizing.

Та же схема в классическом представлении (создана так же в Fritizing, и мне не нравится как коряво получаются принципиальные схемы в нем).

Рассмотрим сгенерированный он-лайн редактором исходный код.

Исходный код в доработке не нуждается, его можно смело загружать в созданное устройство.

Выключатель

Выключатель, название говорит само за себя. Имеет параметры цвет, имя переменной, надпись включения, надпись выключения и привязка к выводу.

Так же как и на элементе «кнопка», на выключателе можно изменить текст на самом элементе, что в очередной раз позволит сэкономить на элементах интерфейса в бесплатной версии программы. Другие параметры элемента были описаны ранее, повторяться не вижу смысла.

Поле структуры принимает значение 0 в положении «выключено» и 1 в положении «включено». Проверить состояние выключателя можно простым сравнением поля структуры с 0 и 1 (например, RemoteXY.switch_1= =0). Так же состояние выключателя можно изменить в самой программе, просто присвоив полю структуры значение 0 или 1. Но если изменение значения произойдет в то время, когда смартфон подключен к контроллеру, то видимое переключение выключателя не произойдет, на экране выключатель останется в том же положении (хотя значение поля структуры изменится). Чтобы положение выключателя изменилось, надо отключиться от контроллера, а затем подключиться вновь.

Зачатки умного дома

У вас бывало такое, что вечером забравшись в теплую кровать, вы вспоминали, что забыли выключить свет, допустим в ванной. Вставать и идти выключать? Не наш метод. Предлагаю проект (который в последующем станет основой умного дома), в котором будет реализовано дистанционное управление освещением. Управление освещением со смартфона, с одной стороны удобно для управления издали, но не доставать же смартфон каждый раз, когда надо включить или выключить свет. Поэтому управление освещением будет продублировано, и со смартфона и обычной кнопкой, вместо стандартного выключателя. Лампочка (энергосберегающая, накаливания, светодиодная, не важно) как правило, подключается к сети переменного тока напряжением 220 вольт, поэтому подключать их следует через реле. Вы можете использовать готовые блоки реле или самостоятельно подключить реле к контроллеру, как это сделать смотрите в книге Рюмик С.М. 1000 и одна микроконтроллерная схема.

Конфигурация подключения и внешний вид интерфейса представлен на скриншотах.

Дальнейшие пояснения в комментариях к исходному коду.

Внимательные читатели наверняка заметили, что в коде нет никакой защиты от дребезга контактов.

Переключатель

Переключатель может принимать одно из нескольких значений (от 2 до 10) и передает на микроконтроллер результат в виде числа от 0 до 9 (А=0, В=1 и так далее). Имеет параметры цвет, имя переменной (по умолчанию select), количество положений (от 2 до 10) и ориентация (горизонтальная или вертикальная). Значения переключателя всегда обозначаются буквами латинского алфавита, в отличие от кнопки и выключателя, редактировать текст на переключателе не возможно.

Проверять значение положения переключателя удобно при помощи функции switch

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

Генератор эффектов для гирлянды на 8 каналов

Предлагаю проект генератора эффектов для гирлянды на 8 каналов (количество каналов легко изменить в исходном коде). Конфигурация подключения и внешний вид интерфейса представлен на скриншотах.

Читайте также:  Зарядное устройство - это очень просто

Дальнейшие пояснения в комментариях к исходному коду.

В этом примере наглядно видно, к чему приводят функции типа delay в коде, где используется сервис RemoteXY. Команда, отданная со смартфона, доходит до контроллера только через 5-10 секунд.

Слайдер

Слайдер позволяет передать в контроллер значение своего положения, значение лежит в диапазоне от 0 до 100 (или от -100 до 100). Значение поля структуры прямо пропорционально зависит от положения слайдера. Имеет параметры цвет, имя переменной (по умолчанию slider_1), ориентация (вертикально или горизонтально), позиция центра и авто центрирование.

Позиция центра (сверху, посредине или снизу в вертикальном положении слайдера и справа, посредине или слева для горизонтального положения слайдера) показывает, в каком положении слайдера поле структуры будет принимать значение 0. Следует обратить внимание на позицию центра «посредине», в этом случае диапазон значений поля структуры принимает значения от -100 до 100. Во всех остальных случаях от 0 до 100. Авто центрирование возвращает положение слайдера в 0 как только будет убран палец со слайдера.

Изначально положение слайдера можно задать, присвоив в функции setup полю структуры необходимое значение, которое должно лежать в диапазоне от 0 до 100 (или в диапазоне от -100 до 100 для положения центра посредине). Но если включено авто центрирование, то значение будет сбрасываться все равно в 0, независимо от того какое значение было задано изначально.

Диммер для светодиода

Конфигурация подключения произвольна (в моем случае соединение по Bluetooth, контроллер arduino mega2560, модуль связи HC-05, подключение модуля связи по Serial1 на скорости 9600). Ориентация экрана – вертикальная, цвета произвольны. На рабочем поле слайдер, высота слайдера по высоте экрана, слайдер расположен посредине экрана. Параметры слайдера по умолчанию. Назначение проекта – плавное регулирование свечения светодиода, установленного на плате arduino. Дальнейшие примечания к коду в комментариях.

В следующей статье будут рассмотрены элементы джойстик, поле ввода и RGB круг.

Интернет вещей с RemoteXY

Интернет вещей с каждым годом становится всё более распространен, тем не менее промышленные устройства не всегда удовлетворяют потребностям пользователей. И естественно радиолюбители создают устройства IoT исходя из своих потребностей. Управление устройствами IoT возможно либо через сервер, либо напрямую посредством беспроводного или интернет соединения. Сервисов и программ, предназначенных для создания и управления устройствами IoT, предостаточно, есть из чего выбрать. В этой статье я расскажу о сервисе RemoteXY, предназначенном для удаленного управления устройствами ардуино и ESP8266.

Сервис RemoteXY состоит из онлайн редактора интерфейса (который генерирует «скелет» программы), программы для мобильных устройств (как для андройд, так и для айОс) и библиотеки для ArduinoIDE. Программа для мобильных устройств может управлять всеми устройствами, созданными с применением сервиса RemoteXY, и потому что внешний вид интерфейса хранится в микроконтроллере, это упрощает настройку приложения для работы с устройством. Программа для андройд устройств условно-бесплатная, вы можете использовать free версию программы без ограничений в том случае, когда в интерфейсе устройства используется до 5 элементов. Если элементов более 5, то время подключения ограничено 30 секундами (за это время можно успеть произвести настройку устройства и просто оценить и протестировать созданное устройство). Полная версия программы никаких ограничений не имеет.;

Мобильное устройство (смартфон или планшет) может связываться с ардуино (так же поддерживаются платы WeMos, NodeMCU, The AirBoard и ChipKIT, но упоминать я буду всё время ардуино) посредством блютуз (через модули HC-05, -06, -10), вай-фай (через модуль esp-01) или проводного интернета (через ethernet shield или через вай-фай модем). Если ардуино подключено к модему (через вай-фай или эзернет), то оно может быть доступно как в локальной сети, так и через сеть интернет (для этого потребуется настройка модема).

Рассмотрим «blink» для сервиса RemoteXY — поморгаем светодиодом. Для этого необходимо подключить модуль связи к ардуино (в этом примере я буду использовать ардуино мега2560 и блютус модуль HC-05, соединение через Serial1). Далее переходим в он-лайн редактор интерфейса, расположенный по адресу http://remotexy.com/ru/editor/ , внешний вид редактора представлен на скриншоте.

Редактор интерфейса состоит из 3 частей: панели элементов интерфейса слева, рабочего поля в центре и панели конфигурации и свойств элементов справа.

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

Далее необходимо настроить подключения модуля, в случае для блютуз модуля необходимо выбрать интерфейс (Hardware или Software Serial), порт или пины (для Software Serial) и скорость обмена. Так же можно настроить ориентацию и цвет фона экрана. Примененные мной свойства отображены на скриншоте.

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

Набор свойств индивидуален для каждого типа элементов. Для любого элемента можно задать его цвет и привязку к странице (в этом проекте страницы не рассматриваются), для всех элементов управления и индикации можно задать имя переменной. Для элементов «кнопка» и «выключатель» можно сделать привязку в выводам, в этом случае редактор интерфейса сам сгенерирует дополнительный код для управления выводами с кнопки или выключателя. Первая добавленная кнопка (или выключатель) привязывается к выводу 13 автоматически, остальные добавляемые кнопки и выключатели автоматически не привязываются. Жмем на «Получить исходный код», открывается страница с автоматически сгенерированным кодом. Копируем код в ArduinoIDE. Внимание: для дальнейшей работы необходимо установить библиотеку RemoteXY, которая расположена по адресу http://remotexy.com/download/RemoteXY.zip

Рассмотрим сгенерированный код, все пояснения в комментариях

This source code of graphical user interface
has been generated automatically by RemoteXY editor.
To compile this code using RemoteXY library 2.2.5 or later version
download by link http://remotexy.com/en/library/
To connect using RemoteXY mobile app by link http://remotexy.com/en/download/
— for ANDROID 3.7.1 or later version;
— for iOS 1.0.7 or later version;

This source code is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
*/

// определение режима соединения и подключение библиотеки RemoteXY. В данном случае используется Hardware Serial
#define REMOTEXY_MODE__HARDSERIAL

#include //подключаем библиотеку сервиса RemoteXY

// настройки соединения, порт и скорость соединения. Я использую порт Serial1, что бы исключить проблемы при загрузке программы в ардуино и не отключать блютуз модуль каждый раз при загрузке.
#define REMOTEXY_SERIAL Serial1
#define REMOTEXY_SERIAL_SPEED 9600

// конфигурация интерфейса. Начиная с этой строки ничего не менять.
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = //в этом массиве хранятся все настройки интерфейса, положение, размер, цвет и названия переменных всех элементов.
< 1,0,12,0,6,5,0,1,0,79
,8,12,12,2,88,0 >;

// структура определяет все переменные вашего интерфейса управления
struct <

// input variable
uint8_t button_1; // =1 если кнопка нажата, иначе =0. Это та самая кнопка которую мы добавили на рабочее поле.

// other variable
uint8_t connect_flag; // =1 if wire connected, else =0. Этот «флаг» очень полезная переменная, её тоже можно использовать.

> RemoteXY;
#pragma pack(pop) //эта строка завершает настройку интерфейса. Ещё раз напомню, между #pragma pack(push, 1) и #pragma pack(pop) ничего не менять.

#define PIN_BUTTON_1 13 //поскольку мы привязали кнопку к выводу 13, то он-лайн редактор сам добавляет константу PIN_BUTTON_1 и в функции setup() настраивает её как выход.

void setup()
<
RemoteXY_Init (); //запускаем обмен данными между смартфоном и ардуино.
pinMode (PIN_BUTTON_1, OUTPUT);
// TODO you setup code
>

void loop()
<
RemoteXY_Handler (); //этот обработчик запускает обмен данными между ардуино и смартфоном в каждом цикле loop(), именно после его вызова данные от элементов управления передаются в ардуино, а данные элементов индикации — в смартфон.

digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH); //этот код так же сгенерирован потому, что стоит привязка к 13 выводу. Светодиод на плате загорится когда будет нажата кнопка.

// ну а дальше размещаем остальной код программы, по необходимости.
// используйте структуру RemoteXY для передачи данных
>

Теперь можно загрузить этот код в ардуино и перейти к программе RemoteXY на смартфоне.

Поскольку в данном проекте используется блютуз, то сперва надо провести сопряжение блютуз модуля со смартфоном. Пояснять этот пункт я не буду. Далее переходим в программу RemoteXY и нажимаем на «+» в правом верхнем углу,

далее выбираем Bluetooth для модулей HC-05, -06 и Bluetooth BLE для модуля HC-10,

выбираем необходимый модуль из списка.

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

Подведем итоги

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

Конечно для полного счастья необходимо рассмотреть преимущества и (что главнее) недостатки представленного сервиса.

Преимущества:

  • Самый главный плюс — реализация удаленного доступа к ардуино
  • Используется одна программа для всех управляемых устройств, что экономит память мобильного устройства
  • Настройки интерфейса хранятся непосредственно в контроллере, поэтому нет необходимости в настройке каждого мобильного устройства под конкретный контроллер
  • Позволяет, как продублировать элементы управления и индикации, так и перенести их частично или полностью на мобильное устройство
  • При переносе элементов управления и индикации на мобильное устройство освобождаются выводы контроллера
  • Позволяет строить довольно сложные интерфейсы управления, обладает широким набором элементов управления, индикации и оформления
  • Является условно-бесплатной системой, даже при построении сложных интерфейсов

Основной недостаток — бесплатная условность программы. Как я уже писал, в бесплатной версии программы можно использовать до 5 элементов интерфейса. Полная версия программы не имеет никаких ограничений, стоит 379 рублей для ОС Android и 7.99$ для iOS. Второй недостаток — при построении интерфейса необходимо подключение к интернету.

Обзор приложений для удаленного управления Arduino

В данном обзоре указаны 10 распространенных приложений в управлении Ардуино с компьютера или телефона, которые легки в изучении и использовании. Arduino – это платформа, разработанная ввиду технологий современного программирования. Плата с USB разъемами для блока питания. При подключении к ПК, заряжается. Во внутренней системе есть кнопка для форматирования данных.

Главные составляющие:

  • Бредбоард – соединяет платформу с устройством.
  • Светодиод – индикатор, сигнализирует об управлении.
  • Резистор — контролирует подачу электрического тока внутри платформы.
  • Фоторезистор – реагирует на тип освещения.
  • Транзистор – усиливает электрические сигналы и используется в сложных цепях.

Это было внутреннее описание. Далее переходим к обзору самого приложения. Компанией Google был создан новый интерфейс прикладного программирования под названием Arduino. Предназначается для связи Android устройства с USB. Открывает большие возможности в создании проектов и упрощает программирование и управление с экрана мобильного телефона. Помогает управлять синхронизацией данных.

Читайте также:  Сигнализатор замерзших труб на arduino

Обзор возможностей Arduino:

  • создание скетчей;
  • их редактирование, компилирование и загрузка в плате;
  • программирование и разработка кодов.

Работа производится со смартфона из любой части земного шара. В данном обзоре будут описаны программы, разработанные для удаленного пользования Ардуино, а именно Bluetooth и Wi-fi — контроллерами. Они просты в использовании и позволяют работать с любого гаджета. Проект Ардуино состоит из 3 этапов:

  • написание кода;
  • макетирование;
  • прошивка.

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

Arduino Bluetooth Controller

Эта программа работает в 3 основных положениях:

Контроллер. Приложение демонстрируется в облике play идентификатора и управляется кнопками переключения. Работает одной клавишей, основная функция которой – дистанционное управление.

Диммер. На расстоянии регулирует настройки яркости и скорости.

Терминал. Осуществление отправления директива для дешифрирования.

Установка приложения Arduino Bluetooth Controller сводит несколько устройств по воздушному каналу. Сообщения передаются по датчикам, контроллерам и обратно. Управляя смартфоном при помощи блютуз модулей, также возможно организовать беспроводное соединение целого проекта. Программирование такого типа доступно всем желающим и не требует особых усилий.

ArduinoDroid — Arduino IDE

Используется программистами как средство редактирования кодов и создания программ. Особенность – написанный скетч превращается в СС+, компилируется и грузится в Arduino. Отлично подходит для работы новичков в этой области. Приложением можно пользоваться бесплатно и в открытом доступе.

Первым шагом в использовании будет заливка скетча на микроконтроллер. Далее нажав кнопку «Загрузить» необходимо дождаться окончания загрузки. Мигающий светодиод означает, что все было сделано правильно. Все готово к написанию и использованию прошивок.

ArduinoDroid – легкий в использовании софт. Проводит редактирование, компилирование и загрузку кодов в плату с мобильного устройства или планшета. Так же рекомендуется проводить редактирование шифра или заливать готовый, если программа забанена..

RemoteXY: Arduino Control

Данная программа управления Ардуино, позволяет создать персональную панель. Дистанционное управление происходит через:

  • Инет;
  • Вай-Фай;
  • Ик-порт;
  • Блютуз.

На странице http://remotexy.com можно найти и скачать много интересных инструкций. К примеру, как создавать оригинальные клавиши и переключатели. Функционал адаптирован под новичка и не создаст проблем в использовании.

Управление ардуино с компьютера, а именно RemoteXY, возможно через облако. Это превозносит его перед аналогичными русскими софтами Arduino.

Приложение Blynk

Этакий разработчик идей, имеющий открытый вход к запуску на платформе Ардуино. Главное требование в использовании – наличие интернета: Wi-Fi или мобильный трафик. Только в этом случае Blynk будет готов к выполнению. Начать использование можно спустя несколько минут, после окончания настроек. Программой поддерживается АО по выбору пользователя.

Основные функции приложения Blynk заключаются в управлении устройствами при помощи удаления и добавления протоколов HTTP, а также запросов GET и POST. Значения параметров можно обновлять и получать. Запросы обновляются в самом приложении.

Вариативность – важная точка программы. Имея связь с работающими платформами, можно соединиться с сервером любым удобным способом. Данный инстинктивный портал обладает простотой в использовании над проектом. Библиотека постоянно обновляется для всех приложений Arduino Blynk.

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

Bluino Loader – Arduino IDE

ПО для компиляции кода в файл и загрузки его на платформу Ардуино через смартфон и USB OTG. Громоздкие кнопки и запутанные провода значительно усложняют работу над проектами. Для упрощенного контроля удаленным администрированием предоставляется графический идентификатор Bluino Loader IDE. Разрабатывает проекты, доступные триггеру. Подключается к всемирной паутине с помощью: Wi-Fi, Ethernet или через накопитель ESP8266. Когда необходимые процедуры будут выполнены и произойдет начало работы, приложение даст сигнал.

Настройка софта для создания проектов займет не более 5 минут. Матобеспечение настраивается по выбору пользователя. Простой и удобной софт. Для проверки заливают скетч в микроконтроллер и убеждаются в том, что все работает как надо. Мигающий диод подаст сигнал о правильности выполняемых действий. Далее приступают к прошивкам.

Arduino Bluetooth Control

Сокращенное название — ABC. Управляет и контролирует основные возможности API. Используется в мониторинге контактов через Bluetooth. Работает в автономном режиме. Приобщение к работе производит строго из Ардуино.

Инструменты, используемые в процессе:

  • Metrics – передает показатели о сбоях и изменениях. Те, свою очередь, приходят на телефон в виде сообщения об остановке работы. Это подобие функции, где встряхнув гаджет можно отправить данные.
  • Клавиши с указателями – служат для отправки информации.
  • Терминал – варьирует информацией с временными показателями по назначению.
  • Accelerometer – управление жестами. Смартфон превращается в механизм для регулирования машины.
  • Голос – создает речевые команды. Доступно голосовое общение с роботом.
  • Кнопки – функционируют 6 штук в горизонтальном положении. Используются для доставки информации на Arduino.

Управление проектами в дистанционном и удаленном виде стало частой необходимостью. ABC подходит для этих целей на 100%. UART (Serial) предназначается для беспроводного соединения Ардуино и PC. Данное подключение не нуждается в библиотеках и схемах.

BT Voice Control for Arduino

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

BT Voice Control – это голосовое управление Ардуино. Владеет функцией распознавания команд: forward, back, left, right. Чувствительные датчики переадресовывают расстояние в объект Arduino. Далее при помощи модуля Bluetooth HC-05 направляет его в приложение. Программа сэкономит время, тратящееся на набор команд вручную.

Virtuino

Программа для Андроид, предназначенная для мониторинга сенсора. Управляет электро устройствами через Bluetooth, Wi-Fi или Интернет.

При помощи Виртуино создаются:

Приложение способно совмещать несколько проектов в один. Управляет отличными платформами единовременно через Bluetooth и Wi-fi. Бесплатно в использовании. Относится к подкатегории System Maintenance. Есть возможность проектировать внутреннее оформление с разной визуализацией.

К ним относятся:

  • светодиоды;
  • переключатели;
  • диаграммы;
  • счетчики;
  • аналоговые приборы.

Обучаться Virtuino можно по учебным пособиям и видео урокам с библиотечной поддержкой. Пока приложение работает в режиме английского языка.

Bluetooth Controller 8 Lamp

Платформа Arduino была создана в 2003 году. Всеобщего внимания она достигла, благодаря низкой цене, а также многомилионному сообществу, направленного на углубленное изучение программирования. Микропроцессоры и микроконтроллеры поставляются с платами. Самыми популярными считаются Arduino. Итальянские модели имеет много функций по расширению и исследованию встроенных Pro систем.

Bluetooth Controller 8 Lamp создан для регулировки функций Ардуино 8 канальным контроллером. Работает при помощи модулей Bluetooth HC-05, HC-06 и HC-07. 8 кнопочный интерфейс соответствует каждой лампочке.

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

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

Интерфейс этого приложения показывает все операции ввода и вывода на Ардуино. Переключение GPIO и показания АЦП управляют гаджетом в реальном времени.

Добавить WI-Fi к устройствам возможно с помощью IoT контроллера. Он имеет 8-битный микроконтроллер и IMU (Inertial Measurement Unit). Соединение защищено однокристальным крипто-ускорителем ECC 608.

Уникальный интерфейс IoT Wifi Controller отображает контакты в реальном времени с подробной информацией, благодаря уровню GPIO. Показатели ADC также можно подключать к плате с помощью телефона (Айфона) или маршрутизатора.

Не реализованные функции:

  • расширенная подсветка анаграмм;
  • автозаполнение;
  • руководства для объединения других приложений.

Базы Uno R3 и FTDI в данное время поддерживают рабочее состояние платы Arduino. В процессе находится разработка Mega, Due и Nano. Используемые в обучении платы Arduino — USB кабель OTG не влетит в копеечку. Стоимость до 2 долларов.

Программа «умный дом» работает при помощи платформы Arduino. В данном случае используется данный андроид и сама платформа. Для работы совместили домашние и веб серверы. Результат превзошел ожидания. Теперь при помощи мобильного устройства можно управлять системой целого дома: включать и выключать свет, электрические приборы, закрывать двери, окна и другое.

В статье рассмотрены 10 обзорных приложений — для платы «Ардуино». В процессе работы и изучения не возникнет проблем с программированием Windows и в других. Затруднения решаются подключением к пинам. Те в свою очередь аппаратно запрограммированы UART. Далее используются традиционные библиотеки.

Регулирование платформы Ардуино и ее «помощников», увеличивают программирование и соприкосновение с другими устройствами. Регулировка показателей, изменение настроек, создание роботов и машин – это теперь делается, при помощи удаленного контроля и управлению. Эта самая популярная плата, используемая в программировании. Необходимые запчасти и аксессуары для работы и учебы, продаются по доступной цене в соответствующем магазине компьютерной техники.

RemoteXY. Часть 1.

Введение.

RemoteXY – сервис для организации удаленного беспроводного и проводного управления самодельными устройствами на базе arduino, esp8266, esp32 и chipKIT. Сервис состоит из онлайн-редактора мобильного интерфейса, приложения для устройств Android и iOS, сервера для удаленного управления устройствами, а также библиотеки для ArduinoIDE.

Приложений для android устройств два – бесплатное и платное. Бесплатное приложение имеет ограничение в 5 элементов интерфейса. Если же элементов интерфейса больше, то приложение позволяет протестировать работу устройства в течении ограниченного времени (всего 30 секунд за сеанс).

Работа с сервисом RemoteXY организована следующим образом:

  • в онлайн-редакторе необходимо выбрать программируемое устройство и способ его подключения, затем настроить способ подключения;
  • при помощи онлайн-редактора необходимо создать интерфейс программируемого устройства, для этого предусмотрены элементы управления и индикации, такие как кнопки, переключатели, поля ввода и вывода текста, графики;
  • получить сгенерированный онлайн-редактором исходный код, перенести его в ArduinoIDE (также поддерживаются FLProg и MPIDE), дополнить необходимым кодом и загрузить в программируемое устройство;
  • при помощи приложения подключиться к устройству…. готово!

Отмечу, что интерфейс хранится непосредственно в программируемом устройстве в виде массива чисел, и загружается в приложение для смартфона при каждом подключении. Таким образом, отпадает необходимость настройки интерфейса на каждом подключаемом к устройству смартфоне, необходимо лишь настроить связь между смартфоном и запрограммированном устройстве.

В данном цикле статей я предлагаю поближе познакомиться с сервисом RemoteXY и начну я пожалуй с основ.

Онлайн-редактор интерфейса.

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

Работа с онлайн-редактором строится по принципу drag-and-drop, также как и в проводнике компьютера. Просто перетаскивайте необходимый элемент с левой области в центральную, на макет смартфона. При клике на элемент на макете смартфона он выделяется синей рамкой и теперь его можно перемещать по макету, а также масштабировать, хватая и перемещая маркеры по углам рамки. Обратите внимание, над рамкой выбранного элемента отображается имя переменной, по которому в дальнейшем будет осуществляться доступ к выбранному элементу.

Читайте также:  Дискоконусная антенна для 7 мгц

Начать знакомство с RemoteXY я рекомендую с изучения способов связи приложения и устройств, которыми необходимо управлять. Но перед эти создадим простейший интерфейс следующим образом:

  • перетащите на макет смартфона элемент “выключатель”;
  • убедитесь что в настройках выключателя в выпадающем списке “привязать к выводу” выбран вывод с надписью “LED”;
  • готово.

Выглядеть это должно так:

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

Не забудьте установить актуальную версию библиотеки в ArduinoIDE, скопируйте в ArduinoIDE полученный код, по необходимости (а она возникает в 99.9% случаев) дополните полученный код своим.

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

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

Список всех возможных соединений приведен на следующем скриншоте.

Соединение при помощи кабеля требует наличие функции OTG в смартфоне. К сожалению не все смартфоны могут похвастаться наличием такой функции. Соединение такого типа доступно для всех плат прототипирования, которые имеют на плате распаянный переходник USB-UART. При отсутствии распаянного переходника USB-UART (как в случае с arduino pro mini) можно подключить внешний.

Я продемонстрирую соединение через кабель на примере Arduino Mega2560. Я использую следующую конфигурацию подключения:

  • соединение: USB OTG
  • устройство: Arduino Mega2560
  • модуль: USB-UART
  • среда разработки: ArduinoIDE.

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

Выбираю 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, необходимо подключиться к ней стандартными средствами смартфона, а затем через программу.

Особенности данного способа подключения:

  • отлично подходит для устройств на базе esp8266 и esp32 (хотя для esp32 доступен и bluetooth);
  • работает на ограниченном расстоянии, которое зависит от wi-fi антенны на контролируемом устройстве;
  • не требует дополнительных устройств для организации связи между смартфоном и контролируемым устройством;
  • можно подключить только одно контролируемое устройство одновременно;
  • при подключении смартфона к контролируемому устройству становится недоступным использование интернета на смартфоне.

Следующий способ подключения Ethernet TCP/IP исключает некоторые недостатки предыдущего способа, но при этом добавляет свои. Так для подключения способом Ethernet TCP/IP необходимо главное устройство, через которое будет осуществляться связь. Это может мыть ADSL или Ethernet модем с функцией точки доступа Wi-Fi, смартфон или ноутбук, на котором активирована точка доступа. При этом связь смартфона и контролируемого устройства будет доступна внутри всей локальной сети.

Конфигурация подключения продемонстрирована на следующем скриншоте. Я использую всё ту же NodeMCU, но на этот раз подключаю её к точке доступа, созданной моим ноутбуком. Обратите внимание, точка доступа защищена паролем, его необходимо указать в конфигурации соединения.

После того как контролируемое устройство прошито и подключено к точке доступа, необходимо узнать его IP-адрес. В моем случае это можно посмотреть в конфигурации точки доступа на ноутбуке.

Теперь необходимо подключить смартфон к той же точке доступа, перейти в приложение и ввести в нем полученный IP контролируемого устройства.

Преимущества и недостатки данного способа связи:

  • необходимо узловое устройство связи, например модем с точкой доступа Wi-Fi;
  • смартфон и контролируемое устройство должны быть подключены к одной локальной сети;
  • необходимо знать IP-адрес контролируемого устройства, с этим помогут сканеры IP-адресов локальных сетей;
  • IP-адрес контролируемого устройства может меняться при каждом подключении (в случае с точкой доступа на ноутбуке), поэтому необходимо сканировать сеть каждый раз при подключении, либо задавать IP-адрес принудительно (как в моем TP-LINK);
  • если локальная сеть подключена к глобальной сети, то у смартфона остается возможность пользоваться сетью интернет.

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

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

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

Далее можно переходить к дальнейшей конфигурации соединения.

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

А вот в приложении придется копипастить или вводить токен вручную.

Преимущества и недостатки:

  • доступ к контролируемому устройству из любой точки мира где доступен интернет – это несомненный плюс;
  • обоим устройствам, и смартфону и контролируемому устройству, необходим доступ к глобальной сети интернет. Не могу назвать это минусом, но это накладывает свои ограничения.

В заключении.

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

Интернет вещей с remotexy

  • Гибкость. Линейная и произвольная расстановки элементов (для управления домашними приборами подойдет линейная, а для управления робототехникой – произвольная), каждый элемент настраивается отдельно
  • Постоянное развитие приложения на основе мнения пользователей
  • Простота использования
  • Обратная связь. В случае ошибок или каких-либо пожеланий, я готов создать вам индивидуальную версию приложения, которая соответствует всем вашим требованиям

2.4.3 (временно отсутствует)
2.4.2ArduinoControl-release.apk ( 6,3 МБ )

2.4.1ArduinoControl-release.apk ( 6,3 МБ )

2.3.2-2ArduinoControl-release (2).apk ( 5,71 МБ )

2.3.2-1ArduinoControl-release.apk ( 5,71 МБ )

1.1AIOControl.apk ( 3,6 МБ )

Сообщение отредактировал keni0k – 04.01.17, 22:50

Заманчевый конструктор. Надо hc-0x купить )) usb подключение это как hid или через юсб-ком ?

Сообщение отредактировал Mambu4a – 13.05.16, 10:35

keni0k, в топе темы ещё бы неплохо прямую ссылу на GP сделать, чтобы народ не заморачивался поиском.

Пожелания в развитии версии 1.3.3:
– в некоторых случаях удобно отправлять не строку ASCII символов, а прямо массив байт – если такое сделать, то это будет уникальная фишка программы, т.к. я такого нигде ни у кого не ввидел, когда искал по необходимости;
– при добавлении джостика (Android 5.1) непонятно как назначить каждому его положению команды – тяну его в нужно направление, появляется поле, забиваю команду и она везде – это косяк такой, или просто элемент пока нефункционален?

Сообщение отредактировал NtX1700 – 30.06.16, 09:51

NtX1700, Насчет джойстика:
каждому его положению назначать команды бессмысленно же? Как он работает: допустим, кодовое слово joy, тогда при подключенном устройстве телефон будет отправлять: “joy 5”, или, например, “joy -10” (число или два числа (если джойстик с двойной ориентацией) от -10 до 10). Советую посмотреть видеообзор:) За развитием проекта лучше следить вк, там я гораздо чаще обновляю и публикую информацию.

Сообщение отредактировал keni0k – 04.07.16, 06:53

keni0k,
Насчет джостика понял, спасибо)
А вот как насчет отправки не строки символов, а указанных байт? Будет такое в планах? Я тогда готов буду задонатить немного =)

Сообщение отредактировал NtX1700 – 05.07.16, 10:37

NtX1700, специально для вас могу сделать, а так, для общего пользования не вижу смысла вбивать байты по отдельности (как минимум из-за того, что каждый символ это и есть байт, только в ASCII кодировке, то есть вы и так отправляете массив байт).

Сообщение отредактировал keni0k – 05.07.16, 12:42

У меня есть девайс, управляемый по RS232. С помощью нехитрой схемы я приспособил блютуз HC-06 для этого дела – идеальный конвертор Bluetooth-UART) Но у девайса свой протокол – стартовые байты, заголовок и т.д. Т.е. тут два варианта – либо сидеть и байты переводить в символы ASCII, а потом эту крякозяблину набирать в программе. И то не факт, что получится, т.к. некоторые кодируемые символы же отсутствуют на клавиатуре – как их ставить? В винде можно зажать Alt и на малой цифровой клавиатуре код вбить – а как на андроиде я не знаю, не разбирался. Либо забивать напрямую байтами, что проще, минимизирует ошибки и нагляднее.

Можно сделать, чтобы кнопки отправляли определённый массив байт. А лампочки срабатывали так же на определенный массив байт?

Сообщение отредактировал NtX1700 – 05.07.16, 23:00

keni0k,

Вылетает ошибка при получении шаблона Ардуино и при сохранении настроек.
Где почитать, как привязать приложение к скетчу? Можно ли на один график выводить несколько параметров, например влажность и температуру, а также прокиучивать график?

skalinas, про шаблон скетча знаю, намудрил немного в реализации, в новой версии будет исправлено. Сохранение настроек ждет своего часа (оно готово, но я планирую глобальное обновление через 2-4 недели). Насчет графика – опять же, будет возможность до 3-х параметров рисовать. Так же будет работать связь через интернет. Могу бета версии сюда выкладывать до момента публикации релиза в Google Play, в нем уже будет управление по интернету и еще пара нововведений платной опцией. Что значит график прикручивать?

Сообщение отредактировал keni0k – 01.12.16, 20:12

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector