Интернет вещей с remotexy: конфигурация подключения.

Интернет вещей с 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. Часть 1.

Введение.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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, расположенный по ссылке 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

LCD осциллограф на Arduino

Несколько лет назад я опубликовал код и схемное решение осциллографа на базе PIC18F2550 KS0108 . Однако в настоящее время я решил воссоздать данный проект, используя плату Arduino Fio.

Я использовал плату Arduino Fio, которую можно приобрести от SparkFun (доступно на Amazon.com) и небольшой SPI графический LCD-дисплей, который я приобрел за несколько долларов на сайте dx.com (код товара SKU 153821). Поскольку у меня нет паяльника, я импровизировал с кабелями типа “мама-мама”, которые также можно приобрести на сайте dx.com (код товара SKU 151650).

На сайте Dx.com данный LCD-дисплей является 5 В модулем, но на сайте производителя утверждается обратное (mini12864) (перевод с китайского с помощью Google Translate):

Размеры (Д × Ш × В): 47мм × 38мм × 6мм (без учета выводов)
Видимая часть LCD-дисплея (Д × Ш): 33.7мм × 33.5мм
Активная зона отображения LCD-дисплея (Д × Ш): 30.7мм × 23мм
Подсветка: Белая
Рабочее напряжение: 3.3В

5.5В(встроенная схема усиления, без нагрузки)
ИС управления: UC1701
Формат дисплея: 128 × 64 ряда
Дисплей: Синий на белом фоне

Таким образом, я заказал один графический дисплей, подождал несколько недель, пока его доставят (поскольку с сайта dx.com пересылка товара идет очень долго), получил его, установил в схему и создал простой скрипт “Hello World” для подтверждения, что дисплей и плата правильно функционируют вместе. Код программы находится в файле hello_word.ino

И схема действительно работает!

Благодаря тому, что мой предыдущий проект был написан на C, переход на Arduino занял несколько минут. Я использовал преимущества открытого кода библиотеки графического дисплея (u8glib) для управления основной работой и добавил меню последовательного порта для манипулирования различными параметрами дисплея. Главное отличие между проектом на PIC и данным проектом заключается в следующем: поскольку плата Arduino Fio — это 3.3 В устройство, оно может управлять входами в диапазоне напряжения 0-3.3 В, ограничивая область использования в качестве “осциллографа” без соответствующей защиты входов/ изменения величины напряжения. Код является полностью портативным. Это означает, что вы можете запрограммировать любой другой Arduino и очень быстро запустить устройство.

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

Программирование ESP8266 в среде Arduino IDE

Хотите быстро создать интерфейс управления ESP8266 на телефоне Android.

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

Бывают ли у вас проблемы с зависанием модуля в уже отлаженной системе, которые решаются только ручным нажатием на кнопку reset? Если вы нашли какой то программный способ решения проблемы, поделитесь пожалуйста)

Пока не встречал. У меня SMART ROOM месяцами работает без сбоев, хотя для этой задачи это не критично.

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

в качестве среды создания приложений рассматривали ли вы прогу app inventor? оно бесплатное, множество примеров есть в интернете, а также и примеры с esp8266 https://habrahabr.ru/company/masterkit/blog/258469/

Конечно можно написать приложение в app inventor! Как то, мне не требуется писать приложения на android. Поэтому я его не использую. То что мне действительно нужно в нем написать не возможно.

А что не возможно написать?

Нужно приложение которое будет перехватывать текст после обращения ОК Googl и отправлять GET запрос внутри которого будет весь перехваченный текст.

Привет, возможно вы имели ввиду управление голосом в приложении андроид? посмотрите это видео до конца
https://www.youtube.com/watch?v=IOiMe2aCCLk

Есть такое приложение, только работает с Алисой и Blynk, причём наше Домовёнок Кузя (Alexstar), все еспешки включает Алиса.

В ремонте можно отправить GET запрос? Если да, то можно будет управлять устройствами с помощью голоса через Алису, Домовёнок Кузя как раз это и делает.

Подскажите пожалуйста, как можно со страницы не только отправлять сигналы, но и принимать их обратно? что то типо контрольной суммы, чтоб знать что светодиод включен, либо считывать данные с датчика температуры. Можете привести простой пример, как это прописать в коде страницы и в коде esp?

Не совсем понимаю с какой страницы?

С web страницы SMARTROOM.
К примеру так это выглядит для отправки значений
Web страница:

Люстра
Arduino:
// Включаем реле с web страницы /pult.htm
void handle_Reley() <
int state = HTTP.arg(“state”).toInt();
Reley(state);
Serial.println(state);
handleFileRead(“/pult.htm”);
>
// Включаем реле
void Reley(int state) <
switch (state) <
case 6:
digitalWrite(rele1, LOW);
break;
А как будет выглядеть это для прима значений на web страницу?

Не прикрепилось почему то содержимое web страницы, там был код с раздела pult.htm

Постучитесь ко мне в скайп.

Hi, Иван вам Сергей ответил? возможно вы имели ввиду при управлении с веб-страницы отправлять коды управления портами и также чтобы в веб странице был заложен код считывать и отображать состояние GPIO и выводить данные на веб? В ардуинке для w5100&28j60 я разобрался, а вот с esp8266 интересуюсь.

Как управлять портами с веб страницы было показано в скетче AJAX — ТЕХНОЛОГИЯ ОБРАЩЕНИЯ К СЕРВЕРУ БЕЗ ПЕРЕЗАГРУЗКИ СТРАНИЦЫ.

Просмотрел, спасибо! Но Иван (я так понял) имел ввиду: при первом обращении к странице на ней НЕТ информации о состоянии портов. Только по нажатию кнопки мы потом считываем состояние(и так каждой), а если GPIO уже вкл или выкл? и если это не в прямой видимости, а за несколько км? нужно для контроля использовать сразу считывание состояния порта и затем в каждом цикле проверять и светить на веб:
s += (val2)?”1″:”0″; – например порт GPIO2

а знаете почему этим AJAX_ксом мало кто занимается….да потому что у этого аякса нету программы написания в виде “графического программирования”..ну типа того(FL_Prog)…..если писать её вручную от руки то на четвёртой строчке забываешь что писал на первой….короче мозги должны быть как у математика……или гения ….к сожалению у большинства людей память “мозговая” очень забывчивая ….если конечно её не тренировать постоянно, а у людей нету времени и желания заниматься — трением(прением)…одного и того-же ….на себе проверенно , целый год занимался этим АЯКСОМ….сейчас спустя год помню то что не помню ни- чего толкового …..а уж куда-то вставлять эту прогу….да ну её в ЖО…..У!

Читайте также  Жки на базе контроллера ht1611

Нашел решение которое меня устраивает, с помощью библиотеки arest можно просматривать состояние выходов
/
https://github.com/marcoschwartz/aREST
/
/digital/8 reads value from pin number 8 in JSON format (note that for compatibility reasons, /digital/8/r produces the same result)

Может быть у кого то имеется пример того, как передавать данные с одного модуля esp8266 на другой или кто то знает где есть такой пример?

смотрите передача данных на esp по UDP протоколу. но у меня он что то заглючил, нестабильно работал, не пойму почему. Был бы лагодарен админу за пускай простой но более менее протестированный пример стабильного обмена данными по UDP между двумя ESP, один из них AP другой Client

Здравствуйте у вас есть скетч для ESP8266 реле модуль одноканалний которий продается с алиекспрессе ?

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

// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__ESP8266WIFI_LIB
#include
#include

// настройки соединения
#define REMOTEXY_WIFI_SSID “HomeNetwork2.4”
#define REMOTEXY_WIFI_PASSWORD “cmst9300at680”
#define REMOTEXY_SERVER_PORT 6377

// конфигурация интерфейса
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
< 255,2,0,0,0,23,0,8,13,0,
1,0,34,26,12,12,2,31,88,0,
1,0,49,26,12,12,2,31,88,0 >;

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

// input variable
uint8_t button_1; // =1 если кнопка нажата, иначе =0
uint8_t button_2; // =1 если кнопка нажата, иначе =0

// other variable
uint8_t connect_flag; // =1 if wire connected, else =0

> RemoteXY;
#pragma pack(pop)
#define PIN_BUTTON_1 D4
#define PIN_BUTTON_2 D5

void setup()
<
RemoteXY_Init ();

pinMode (PIN_BUTTON_1, OUTPUT);
pinMode (PIN_BUTTON_2, OUTPUT);

// TODO you setup code

void loop()
<
RemoteXY_Handler ();

digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);
digitalWrite(PIN_BUTTON_2, (RemoteXY.button_2==0)?LOW:HIGH);

// TODO you loop code
// используйте структуру RemoteXY для передачи данных

Arduino: 1.8.10 (Windows 8.1), Плата:”Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:

470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200″

project:25:11: error: expected ‘;’ at end of member declaration

uint8_t pin button_1; // =1 если кнопка нажата, иначе =0

project:25:15: error: ‘button_1’ does not name a type

uint8_t pin button_1; // =1 если кнопка нажата, иначе =0

project:26:11: error: expected ‘;’ at end of member declaration

uint8_t pin button_2; // =1 если кнопка нажата, иначе =0

project:26:11: error: redeclaration of ‘uint8_t ::pin’

C:UsersAntonDownloadsproject-2019-12-15-17-20-06projectproject.ino:25:11: note: previous declaration ‘uint8_t ::pin’

uint8_t pin button_1; // =1 если кнопка нажата, иначе =0

project:26:15: error: ‘button_2’ does not name a type

uint8_t pin button_2; // =1 если кнопка нажата, иначе =0

C:UsersAntonDownloadsproject-2019-12-15-17-20-06projectproject.ino: In function ‘void setup()’:

project:33:22: error: ‘D4’ was not declared in this scope

#define PIN_BUTTON_1 D4

C:UsersAntonDownloadsproject-2019-12-15-17-20-06projectproject.ino:41:12: note: in expansion of macro ‘PIN_BUTTON_1’

pinMode (PIN_BUTTON_1, OUTPUT);

project:34:22: error: ‘D5’ was not declared in this scope

#define PIN_BUTTON_2 D5

C:UsersAntonDownloadsproject-2019-12-15-17-20-06projectproject.ino:42:12: note: in expansion of macro ‘PIN_BUTTON_2’

pinMode (PIN_BUTTON_2, OUTPUT);

C:UsersAntonDownloadsproject-2019-12-15-17-20-06projectproject.ino: In function ‘void loop()’:

project:33:22: error: ‘D4’ was not declared in this scope

#define PIN_BUTTON_1 D4

C:UsersAntonDownloadsproject-2019-12-15-17-20-06projectproject.ino:52:16: note: in expansion of macro ‘PIN_BUTTON_1’

project:52:40: error: ‘struct’ has no member named ‘button_1’

project:34:22: error: ‘D5’ was not declared in this scope

#define PIN_BUTTON_2 D5

C:UsersAntonDownloadsproject-2019-12-15-17-20-06projectproject.ino:53:16: note: in expansion of macro ‘PIN_BUTTON_2’

project:53:40: error: ‘struct’ has no member named ‘button_2’

Несколько библиотек найдено для “RemoteXY.h”
Используется: C:UsersAntonDocumentsArduinolibrariesRemoteXY
Несколько библиотек найдено для “ESP8266WiFi.h”
Используется: C:UsersAntonAppDataLocalArduino15packagesesp8266hardwareesp82662.6.2librariesESP8266WiFi
exit status 1
expected ‘;’ at end of member declaration

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
“Показать подробный вывод во время компиляции”

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Подходы к подключению устройств Интернета вещей к сети

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

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

Кроме того, существует невероятное разнообразие устройств Интернета вещей и вариантов их применения. Например:

  • Полицейская машина сегодня стала настоящим мобильным офисом, использующим большое количество информационных технологий. В ней установлено несколько ИТ-систем (ПК, система локального позиционирования, камеры, датчики), которым требуется двунаправленная высокоскоростная безопасная и надежная связь.
  • На предприятиях применяется широкий спектр датчиков и видеокамер для мониторинга производственных процессов и обеспечения безопасной и безостановочной работы. Эти датчики часто монтируются в труднодоступных местах и требуют надежной и безопасной связи.
  • Сегодня в общественных местах установлено множество камер видеонаблюдения, которые помогают обеспечивать безопасность. Этим камерам требуется высокоскоростная и надежная связь для трансляции видео (в основном в одном направлении) в централизованные системы.
  • Многие больницы используют подключенное к сети медицинское оборудование для отслеживания местоположения и быстрого поиска ближайшего устройства. В этом случае используются надежные низкоскоростные соединения для широкого спектра устройств.

Разнообразие требований к подключению устройств Интернета вещей к сети

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

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

Требования к сети для Интернета вещей

В зависимости от конкретных устройств и вариантов применения для сети Интернета вещей нужно будет обеспечить:

  • возможность подключения большого количества неоднородных элементов Интернета вещей;
  • высокую надежность;
  • передачу данных в режиме реального времени с минимальными задержками;
  • возможность защитить все потоки трафика;
  • возможность программирования для настройки приложений;
  • мониторинг и управление трафиком на уровне устройств;
  • недорогую связь для большого количества устройств и (или) датчиков.

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

Влияние SDN и NFV на структуру сетей Интернета вещей

Благодаря новым программно-определяемым сетям, таким как SDN, NFV и SD-WAN, сетевые архитекторы получили новые инструменты для разработки гибких сетей. NFV и SDN предоставляют технологии для настройки сетей под требования Интернета вещей. NFV предлагает множество виртуальных сетевых функций (VNF), включая маршрутизацию, обеспечение безопасности, шлюзы и управление трафиком, которые могут быть объединены с целью развертывания настраиваемых сетевых служб для Интернета вещей. SDN обеспечивает централизованное регулирование потоков данных и управление ими в масштабных распределенных сетях Интернета вещей.

Вызовы, связанные с большими данными

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

Вопросы проектирования сетей Интернета вещей

Существует ряд факторов, которые ИТ-менеджеры должны принимать во внимание в ходе планирования сетей Интернета вещей. Вопросы первого уровня: Устройства или датчики какого типа будут подключаться? Сколько будет устройств? Какой объем трафика ожидается? Ответив на эти вопросы, можно будет спланировать варианты подключения, а также примерно рассчитать бюджет сети, включая капитальные затраты и операционные расходы.

Также необходимо ответить на следующие ключевые вопросы:

  • Устройства/датчики будут стационарными или мобильными?
  • Каковы требования к безопасности на уровне устройств?
  • Нужно ли анализировать данные Интернета вещей в режиме реального времени?
  • Должны ли сеть и ИТ-система контролировать активность устройства или они в основном играют пассивную роль?
  • Есть ли у конкретного устройства/датчика доступ к источнику питания переменного тока?

Технологии связи для Интернета вещей

У ИТ-менеджеров есть широкий спектр возможностей для организации связи с устройствами и датчиками Интернета вещей. Каждый вариант имеет свои преимущества и недостатки в зависимости от варианта применения.

Четыре сетевые технологии, которые сегодня получили широкое коммерческое применение и могут стать основной для сетей Интернета вещей:

  • Модуль беспроводной связи Bluetooth встраивается во многие устройства, включая смартфоны, но эта технология имеет ограниченный диапазон и не гарантирует надежность.
  • Wi-Fi универсален, он применяется для ПК, смартфонов и планшетов, однако для поддержания непрерывной связи он расходует много энергии.
  • Технология 4G LTE широко распространена и обеспечивает высокую скорость, но может быть дорогостоящей при больших объемах данных и потребляет много энергии.
  • Ethernet обеспечивает высокоскоростные подключения к локальной сети в большинстве филиалов и кампусов, но для подключения к устройствам Интернета вещей требуется физический кабель.

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

  • Интернет вещей на основе сотовых сетей (это несколько стандартов, включая LTE-M, NB LTE-M и NB-IOT).
  • Маломощные территориально распределенные сети, такие как SigFox и LoRa, которые созданы специально для устройств с низким энергопотреблением (с питанием только от автономных источников).
  • ZigBee — стандарт беспроводной связи, предназначенный для сетей типа «машина-машина», обеспечивающий низкую стоимость и минимальное энергопотребление.

Влияние Интернета вещей на сети филиалов и кампусов

Важным фактором для многих ИТ-организаций является влияние новых сетей Интернета вещей на существующие сети филиалов и кампусов, а также распределенные сети (WAN). Устройства Интернета вещей могут создавать новые модели трафика, генерировать большие потоки данных и предъявлять уникальные требования к задержкам.

Сеть филиала

Сеть отдела — это обычно умеренное количество устройств, подключенных через Ethernet и Wi-Fi. В большинстве филиалов нет обученного ИТ-персонала, поэтому сетями нужно управлять удаленно. ИТ-организации переходят на такие технологии, как SD-WAN и SD-Branch, чтобы воспользоваться экономически эффективными возможностями для удовлетворения растущих требований к пропускной способности WAN и упростить создание и администрирование удаленной сети. Подключение устройств Интернета вещей в филиалах может повлечь за собой появление новых сетевых технологий, подлежащих администрированию, и привести к возникновению проблем, связанных с необходимостью удаленного устранения неполадок и управлением устройствами; кроме того, часто при этом приходится увеличивать пропускную способность WAN. Для некоторых вариантов применения технологий Интернета вещей могут потребоваться значительная локальная вычислительная мощность и большие хранилища данных.

Сеть кампуса

Сеть кампуса может состоять из большого количества устройств (ПК, планшетов, смартфонов, принтеров и т. д.), подключаемых через Wi-Fi и Ethernet с высокопроизводительной магистралью для установления соединений с центром обработки данных в организации. Там, где развернута сеть кампуса, как правило, присутствует обученный ИТ-персонал для решения сетевых проблем, связанных с увеличением задержек, перерывами в обслуживании и т. д. При развертывании Интернета вещей на базе сети кампуса могут создаваться новые сети для подключения удаленных датчиков, при этом значительно увеличивается количество подключенных устройств и часто возникают проблемы, связанные с управлением устройствами, аутентификацией и перегрузкой существующей сети Wi-Fi.

Интеллектуальные ИТ на основе подключенных устройств и датчиков Интернета вещей помогают организациям лучше обслуживать клиентов, быстрее доставлять товары и сокращать расходы путем повышения эффективности операций. Локальная или распределенная сеть в любом случае является критическим элементом с точки зрения развертывания безопасных, надежных и высокоскоростных систем Интернета вещей. Уникальные требования, предъявляемые системами Интернета вещей отдельных типов, приводят к необходимости реализации новых вариантов сетевых подключений и влияют на существующие сети филиалов и кампусов. Многим ИТ-организациям было сложно внедрить платформы Интернета вещей, которые отвечают требованиям к высокой надежности, гарантируют низкие задержки и высокую безопасность, обеспечивают централизованное управление.

Чтобы создать сетевую архитектуру, которая подходит для подключения устройств Интернета вещей, ИТ-организация должны проанализировать большое количество вариантов. Руководители ИТ-подразделений должны тщательно оценить текущие требования к сетям Интернета вещей с точки зрения пропускной способности (в обоих направлениях), надежности, безопасности и затрат. Требования к сетям Интернета вещей и технологиям подключения устройств будут продолжать развиваться. Сетевые архитектуры должны быть гибкими и адаптируемыми, чтобы удовлетворять изменяющиеся бизнес-требований.