Главная » Arduino
Призовой фонд
на октябрь 2021 г.
1. Рюкзак Mean Well
Компэл
2. Инвертор авто Mean Well 150 Ватт
Компэл
3. Термос MeanWell
Компэл
4. 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
Солнечная панель 10Вт 12В поликристаллическая Тестер ESR, полупроводников, резисторов, индуктивностей
вверх