Samsung Artik Cloud: Руководство для быстрого старта

Тематика платформ Интернета вещей сейчас находится на волне «хайпа», что подтверждается кривой основных технологических трендов Гартнера: с 2016 года «Платформы Интернета вещей» на графике заменили собой «Интернет вещей».

njypj8cutuf2nmjnx2e-buqdrmk.jpeg


Сегодня мы расскажем о том, что предлагает Samsung, и, прежде всего, о Samsung Artik Cloud.

Содержание:

  • Особенности Samsung Artik Cloud как платформы Интернета вещей.
  • Осваиваем работу с Artik Cloud на практике:
    • Создание нового типа устройства,
    • Симуляция данных,
    • Получение данных из облака при помощи REST API.


Особенности Samsung Artik Cloud как платформы Интернета вещей


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

Какими компонентами должна обладать такая платформа в идеале? По мнению автора статьи »5 Things To Know About The IoT Platform Ecosystem» от IoT Analytics, платформа должна состоять из 8 функциональных компонентов:

Табл. 1.
ljqbm6xgr1hor5pjx_s5xoyehce.png

На данный момент далеко не все платформы «Интернета вещей» обладают перечисленными компонентами. Как правило, делается фокус на некоторые из них: так, в Amazon AWS не совсем обычная база данных, в которой создаётся постоянная виртуальная «Тень» устройства, в IBM Bluemix есть возможность использования сервиса аналитики Watson, а в PTC ThingWorx можно легко создать графический интерфейс приложения.

В 2016 году компанией Samsung было выпущено семейство Artik, в которое на данный момент входят:

  • Программная платформа — Artik Cloud –именно ей посвящён данный материал,

    io0fbfurofsrcoe1yzxulx8ae5a.png

  • Аппаратная платформа — микрокомпьютеры Artik.

    xtzj9z86rxi5io4xf6ol0ox0jue.jpeg


Интересный момент: Samsung выпускает под единым именем как программную платформу, так и аппаратное решение, причём на разных уровнях: от самых маленьких и вычислительно слабых Artik 0, до мощных и производительных Artik 7.

Другой интересный момент: совсем недавно, в 2017 году, компания Samsung анонсировала объединение нескольких технологий под общим названием SmartThings Cloud: Samsung Connect (специализированные роутеры «Умного дома»), SmartThings (решения домашней автоматизации) и семейства Artik. При этом весь существующий функционал будет сохранён.

Официальный сайт продукта находится по ссылке.

Если рассматривать Samsung Artik Cloud с точки зрения перечня функциональных компонентов (см. Табл. 1), получится следующее:

Табл. 2
lhqrkwc2yonc5emzlxwud1lfaog.png

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

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


Демократичная ценовая политика


Тут всё просто. Бесплатно можно передавать до 100 000 сообщений в месяц. В отличие от других аналогичных сервисов, не нужно привязывать банковскую карточку до начала использования. Её от вас вообще не потребуют. Платить придётся, только если вы решите использовать Artik Cloud в реальной задаче, где критично количество сообщений в сутки и в месяц, — в этом случае стоимость 1 миллиона сообщений будет составлять 15$.

Именно поэтому Artik Cloud отлично подходит для обучения студентов: если пользоваться им только на занятиях, шансы исчерпать квоту очень малы.

Несколько разных API


На данный момент с Artik Cloud можно взаимодействовать сразу четырьмя способами:

  • REST API
  • WebSockets
  • MQTT
  • CoAP


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

Ограничения


Бета-стадия


Artik Cloud еще молодой продукт (он появился в 2016 году). Некоторые функции пока находятся в стадии Beta. Например, в симуляторе устройств нельзя работать более чем с одним устройством.

Неполная документация


Документация развивается. Например, сейчас REST API очень хорошо задокументирован, а документация MQTT API требует доработки.

Осваиваем работу с Artik Cloud на практике


А сейчас предлагаем вам создать виртуальное устройство — GPS-трекер, который будет генерировать случайные данные. Затем мы получим доступ к этим данным с компьютера.

Создание аккаунта


Зайдём на сайт https://my.artik.cloud/
jh-qacqbb3aj6btjyqqzocrw-zo.png

Есть несколько вариантов регистрации. Самый простой — использовать уже существующий Google-аккаунт. Спама присылать не будут! Проверено на личном опыте.

zfkh_alkgjhpkr7xw9p5tdqj0rm.png

Создание нового типа устройства


Вы попадете на пользовательскую страницу https://artik.cloud/.

Здесь можно добавлять устройства в свою систему, смотреть логи, задавать правила взаимодействия. Сейчас на ней почти ничего не получится сделать, поскольку нужных нам устройств и сенсоров среди предлагаемых вариантов нет. Сразу переходите на страницу разработчика: https://developer.artik.cloud/

atq6qloypvl-meqogpl2u-e5kak.png

Создайте новый тип устройства.

bljd_vbvwpg6dbslhh0a7cqbyua.png

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

nq11qdmdyqj6lrfasjph8-fcerw.png

Вам будет предложено создать «Манифест», в котором определяются поля устройства.

dzc0tc6-faoh9hhpogsxnq8yljm.png

Вы увидите окно создания манифеста, открытое на первой вкладке: Device Fields. Поскольку мы делаем пример для GPS-трекера, создайте два поля для широты и долготы. Я назвала их lat (latitude) и long (longitude).

cxj-1usoz8w0wqtrdnknauj9l-m.png

Вы можете задать:

  • Имена полей (в нашем случае — lat и long),
  • Единицы измерения (здесь уже есть стандартные единицы для этого).


Нажмите кнопку Next. Задавать «действия» (Device Actions) в этом примере не нужно, поэтому сразу после этого переходите к активации манифеста.

Создание устройства


Теперь вы можете создать устройство нового типа, вернувшись на https://my.artik.cloud. Нажмите кнопку + Add Another Device…

8oszobkt3onj5a0m3ovk9ufeqxq.png

Симуляция устройства


Опробуем интересную функцию — симуляцию данных. Она полезна для тестирования.

У прямоугольника, который обозначает устройство, нажмите »…», и далее — Simulate Device Data.

2bl5xhqgu1pdgksrsk_jmag9gyq.png

Появится окно, в котором можно задать параметры симуляции для каждого поля. Например, интервал выдачи значений, границы, распределение (в нашем случае выбрано случайное).

en1ek9m-johhvryhtdddsp4yvsu.png

После этого можно нажимать на кнопку Start Simulation.

xcyks8gjwxt3-sxaafu5ndi24uc.png

Данные начали появляться. Можно посмотреть их на графике. Для этого откройте вкладку Charts в верхнем меню.

nzif5afi2gjxw1dyotuftkqxbpy.png

Вы увидите в реальном времени значения долготы и широты в заданном вами диапазоне:

vhpyxeac-p64dgmr8wepftpdtjs.gif

Этот график достаточно удобен в работе. Его можно масштабировать, откручивать назад историю, менять тип диаграммы. Как видно на скриншоте, можно сделать ещё столбчатую и точечную диаграммы:

q8o9i_vic8iu6dzsxezdnbvc4tq.png

Если хотите посмотреть метаданные, удобно воспользоваться вкладкой Data Logs. Здесь вы увидите дату генерации, дату получения и внутреннее представление данных — это всем знакомый формат JSON.

yws8eagyx0edzennu1myujlowzq.png

Получение данных из облака


Попробуем вытащить из «Облака» наши симулированные данные. Будем использовать REST API — это логично, ведь код для получения данных мы напишем на языке JavaScript.

Нажмите на имя устройства в меню.

nssrq2n7q4arhevyg7n2in0ea7g.png

В открывшемся окне вы увидите различные ключи устройства, из которых важны два: Device ID и Device Token. При доступе извне эти ключи работают как логин и пароль. Совсем скоро они вам понадобятся.

gb_bj-pbv5_yjuciipd1efdkzsi.png

Как узнать, какой запрос отправить? Для этого есть очень удобный инструмент разработчика — API-консоль. Она позволяет смотреть и изучать примеры различных API-запросов. Посмотрим на запрос GET (Get Last Normalized Messages):

kywnjvsnyzbvt8ilxo1scuz-muu.png

Чтобы выполнить такой запрос, необходимо конкретизировать, к какому устройству мы обращаемся (sdids — здесь нужно подставить идентификатор устройства, полученный на предыдущем шаге), интересующие нас поля (fieldPresense), и сколько значений мы хотим получить (count).

Заполните поля и нажмите кнопку Try it! Вы получите информацию, достаточную для составления запроса:

xwapzb0aouscvvdxhdqa0mgyouo.png

  • Call — это адрес, по которому будет отправляться запрос,
  • Request Headers — заголовки, которые необходимо отправить вместе с запросом,
  • 200 — код ответа.

Код на JavaScript


Вот пример кода на JavaScript, который получит сообщение из облака и выведет его на экран.

varxmlhttp=newXMLHttpRequest();
varcall = "https://api.artik.cloud/v1.1/messages/last?count=1&fieldPresence=lat&sdids=084d34b198d84f1688b3b7b3fe420fcf";
xmlhttp.open('GET',call,true);
xmlhttp.setRequestHeader("Content-Type","application/json");
xmlhttp.setRequestHeader("Authorization","Bearer fc851ddb484842788daa19569b326951");
xmlhttp.onreadystatechange=function(){
        if(xmlhttp.status==200){
                alert(xmlhttp.responseText);
        }
};


Конечно, строку varcall и параметр авторизации Bearer нужно заменить на свои собственные, полученные на прошлом шаге.

Результат работы этого кода в браузере Mozilla:

jtpst27xh_aklni0z_iyncmrwbm.png

Это JSON-строка, в которой среди прочего есть и искомые координаты lat и long. Осталось только разобрать строку при помощи JSON-парсера, и данные — у вас!

На основе этого примера можно легко нанести метки на географическую карту, используя API Яндекс-карт.

35lquhjpt0cfjffhfurg9n8j6q8.gif

Заключение


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

За скобками остались:

  • Отправка данных в облако через REST API,
  • Взаимодействие с облаком через другие интерфейсы, такие как MQTT,
  • Действия (Device Actions),
  • Правила (Rules Engine).


Тем, кому интересно продолжить, эти вопросы вполне можно изучить самостоятельно, пользуясь официальной документацией.

-x2iekyhyq1mvjlafz83pr_ludq.jpegАвтор: Волкова Татьяна

Сотрудник Исследовательского центра Samsung

Менеджер и автор учебной программы проекта IoT Академия Samsung

© Geektimes