Концепция предусматривает возможность подключения производимого или вновь разрабатываемого устройства к облачной платформе с целью просмотра состояния и управления им через WEB браузер и приложений для различных устройств и операционных систем (Android, iOS, Windows, Linux и пр.).
С целью реализации концепции применяются ряд программных и аппаратных средств, в состав которых входят:
- подключаемое (управляемое) устройство (ПУ);
- согласующее устройство (СУ);
- сервер и серверное программное обеспечение (ПО);
- клиентское оборудование с соответствующим ПО.
Подключаемое устройство
В большинстве случаев программно-аппаратное изделие, существующее или вновь разрабатываемое, которое необходимо подключить к Облаку (Cloud) для удаленного просмотра состояния и управления им. Таким образом изделие работает в рамках IoT концепции.
Реализация ПУ
ПУ должно быть аппаратно и программно согласовано с СУ, что зачастую приводит к некоторым изменениям аппаратной и программной части существующих изделий и необходимости реализации соответствующей аппаратной и прграммной части разрабатываемых изделий.
ПУ и СУ должны работать с использованием одного протокола на всех его уровнях. В качестве физического уровня могут использоваться стандартные интерфейсы, такие как, например UART, RS-485, 1-Wire, I2C и прочие, либо разработанные самостоятельно. Логические уровни СУ и ПУ должны поддерживаются обеими устройствами. Логический уровень протокола обеих устройств должен обеспечивать их корректную взаимосвязь. Прикладной уровень протокола разрабатывается с учетом количества передаваемых от ПУ к СУ и на сервер параметров и их объема, а также получаемых от сервера данных и их объема передаваемых от СУ к ПУ. За частую эта часть протокола нуждается в тщательном анализе и разработка в связи с ограниченными ресурсами ПУ и СУ.
Примеры ПУ в реализованных проектах
Tenko:
CleanCar:
Используемый протокол, варианты доработки / изменения аппаратной и программной части ПУ требуют дополнительного согласования для каждой конкретно взятой системы.
Согласующее устройство
СУ представляет собой программно-аппаратный комплекс, который обеспечивает связь между ПУ и Облаком, в основном через Интернет. Условно СУ обеспечивает две двунаправленные связи:
- ПУ — СУ;
- СУ — Облако.
В качестве исключения могут быть реализованы одни или обе связи односторонними, такое решение применимо для систем с крайне ограниченными ресурсами или там, где необходимо лишь отслеживать состояние ПУ и гарантированность передачи данных существенной роли не играет. Однако такое решение больше подходит в качестве исключения.
Связь ПУ — СУ реализуется в основном по одному и тому же протоколу. В качестве исключения возможна реализация с использования различных протоколов для каждого направления или в случае необходимости для подключения нескольких ПУ к одному СУ по разным каналам. Такое решение усложняет систему и его применение рекомендовано в достаточно обоснованных случаях.
Связь СУ — Сервер (Облако) — реализуется в основном через Интернет с использованием проводных или беспроводных интерфейсов, таких как LAN, Wi-Fi, мобильный интернет (GSM GPRS) и прочие. Для Wi-Fi был применен широко распространенный модуль ESP8266, Для LAN — модуль на основе ENC28J60.
Принцип действия
Все соединения в основном инициируются СУ. СУ проверяет наличие Интернет соединения (соединения с Wi-Fi точкой доступа). Посылает запрос на ПУ. ПУ передает данные СУ. СУ проводит обработку данных от ПУ или оставляет как есть, добавляет при необходимости дополнительные данные, упаковывает их, создает соединение и отправляет на Сервер. В ответ Сервер может отправить данные об успешном получении пакета или пакет данных с результатами вводимых пользователем данных (внесенных им изменениями, настройками). Полученные от Сервера данные СУ распаковывает, при необходимости производит обработку и отправляет ПУ. После чего СУ отправляет на Сервер пакет об успешном получении данных, возможно после получения ответа от ПУ.
Предложенный принцип действия наиболее прост и понятен с точки зрения конечного пользователя. Для соединения СУ — Сервер у пользователя отсутствует необходимость в наличии статического внешнего IP адреса, необходимость присвоения адреса СУ и «проброса портов»к нему (действительно для Wi-Fi и LAN). Для соединения ПУ — СУ отсутствуют пустые циклы передачи данных при отсутствии соединения с Сервером. В качестве исключения — возможна реализация связи ПУ — СУ, которую инициирует ПУ. Так же возможна реализация СУ в режиме Сервера с WEB интерфейсом пользователя. Такой подход усложняет систему с точки зрения конечного пользователя.
В некоторых случаях может потребоваться настройка СУ, в случае Wi-Fi решение — подключение СУ к Wi-Fi точке доступа. Для этого в СУ может быть реализован WEB интерфейс СУ. Пример реализации — применение в аппаратной части СУ кнопки, при нажатии на которую СУ становится точкой доступа с определенным именем (при необходимости паролем). Проводит сканирование доступных Wi-Fi точек доступа, на основании чего формирует страницу с списком доступных точек доступа, полем для ввода пароля и кнопкой «Подключить». Открывает по определенному IP адресу определенный порт (чаще всего 80). После подключения к этой точке доступа и ввода в браузере адреса загружается страница, в которой пользователь выбирает точку доступа, к которой нужно подключится, вводит ее пароль и нажимает «Подключить». Для контроля состояния могут использоваться различные устройства индикации, такие как один или несколько светодиод(ов), в том числе нескольких цветов, цифровые, символьные, графические и прочие индикаторы на СУ (если их присутствие необходимо) или использовать средства индикации ПУ, передавая состояние подключения на ПУ.
Возможна реализация дополнительного WEB интерфейса СУ для управления ПУ локально (на случай отсутствия интернет).
Примеры реализации СУ:
- Интернета вещей (IoT) решение для котлов Tenko Premium;
- Интернета вещей (IoT) решение для мойки самообслуживания.
Варианты реализации СУ могут отличаться в зависимости от необходимой реализации системы и требуют согласования.
Сервер. Серверное ПО
В качестве сервера может использоваться, имеющее выход в интернет и имеющий программное обеспечение, позволяющее реализовывать функции сервера. Могут использоваться как физические ПК (Серверы, ПК, ноутбуки, Raspberry PI и пр.), так и арендованный Облачный сервер, например DigitalOcean.
Прикладное серверное ПО разрабатывается с учетом особенностей системы. Сервер обеспечивает получение данных от СУ, их обработку и хранение, формирование ответа и отправку его СУ, обеспечивает взаимодействие с пользователем (получения информации об устройстве пользователем и ввод пользовательских настроек).
Обеспечение взаимодействия с пользователем обеспечивается с помощью WEB интерфейса пользователя для работы через WEB браузер, с помощью серверных API для реализации прикладных приложений для различных устройств и операционных систем (ОС), таких как Ainroid, iOS, Windows, Linux и прочие.
Возможна реализация системы динамического создания учетных записей пользователя. При передачей от ПУ первого пакета с уникальным параметром (например серийный номер ПУ) автоматически происходит создание учетной записи пользователя, вход в которую осуществляется с применением этого параметра, с возможностью изменения пользователем параметров входа в свою учетную запись в личном кабинете.
Примеры реализации:
- CleanCar — содержит WEB интерфейс, подробнее система в статье содержит демонстрационную учетную запись;
- Tenko — содержит WEB интерфейс, подробнее система в статье содержит демонстрационную учетную запись, имеет поддержку API, на базе которых реализованы приложения для Android и iOS.
Реализация сервера и серверного ПО требуют согласования для каждого проекта отдельно. Существует возможность реализации защиты сервера различными средствами.
Клиентское оборудование и ПО к нему
В качестве клиентского оборудования могут использоваться устройства имеющие выход в Интернет (Планшеты, ПК, ноутбуки, смартфоны и пр.). При различных реализациях Облака отличается и порядок доступа. При использовании WEB интерфейса пользователя применяется WEB браузер на соответствующем устройстве. Вход осуществляется либо по IP адресу, либо через домен или субдомен. При наличии поддержки API серверного приложения возможна реализация клиентских приложений для соответствующих ОС устройств.
Пример реализации
Tenko — реализованы приложения для Android и iOS.
Реализация клиентского ПО требует согласования под каждый проект в отдельности.