Главная » Arduino
Призовой фонд
на октябрь 2020 г.
1. 1500 руб
Сайт Паяльник
2. Тестер компонентов MG328
Сайт Паяльник
3. 150 руб.
От пользователей

Похожие статьи:



MOSFET транзисторы в смд корпусе, p-канальные, 100 шт.

Интернет вещей с 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

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

/* 
   -- New project -- 
    
   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 include library          // 
////////////////////////////////////////////// 

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

#include <RemoteXY.h>  //подключаем библиотеку сервиса 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) ничего не менять.  

///////////////////////////////////////////// 
//           END RemoteXY include          // 
///////////////////////////////////////////// 

#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. Второй недостаток - при построении интерфейса необходимо подключение к интернету. 

P.S. Если тема вызовет интерес, то цикл статей будет продолжен. 

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 Участие в конкурсе 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (9) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Kolived #
В первом предложении немного с русским языком не такой.
С помощью этого сервиса можно получить доступ к микрофону и звуку Андроид девайса ? Скажем запулить звук с микрофона по Wifi, или наоборот принять звук по Wifi и проиграть его динамиком андроид устройства ?
Ответить
0

[Автор]
mefi73 #
Доступа к микрофону и динамику андройд устройства нет. Интерфейс содержит элементы: кнопка, выключатель, переключатель, слайдер, джостик, ввод цвета rgb и текстовое поле ввода для передачи информации со смартфона в ардуино, и элементы индикатор, шкала и текстовая строка для передачи информации с ардуино в смартфон.
В сообществе пользователей программы обсуждали функции подачи сигнала звуком (аналогично функции tone) и виброзвонком, но автор программы пока отказался от реализации этих функций, так как сама программа не дает возможности реализовать это.
Ответить
0
Александр #
Вроде всё как в инструкции, ардуинка получает ip (подключаю через w5100 shield), андроидная софтина цепляется к ардуинке, но 13 светодиод не мыргает при нажатии на кнопку (горит постоянно). Помогите чайнику, наверняка ведь в инструкции не оговорена какая нибудь мелочь которая настолько очевидна для для бывалого ардуинщика, что он даже не подумал о ней упомянуть
Ответить
0

[Автор]
mefi73 #
Каким образом подключаете? По локальной сети?
Ответить
0
Bolati #
На простом примере получилось до поиска устройства? Устройство не найдено при коде 1234 или 0000.
Ответить
0

[Автор]
mefi73 #
У меня всё работает
Ответить
0
Петр #
Получится ли прикрутить к Ардуино датчик давления BMP180, а изменения смотреть на смарте в стрелочном варианте или в графике? Барометр анероид.
Ответить
0

[Автор]
mefi73 #
Получится. Это дело тривиальное.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Raspberry Pi 2
Raspberry Pi 2
USB-реле (2 канала) Модуль измерения тока на ACS712 (30А)
вверх