Приложение № 1 «Фрагмент инструкции по разработке интерфейса на базе платформы ThingWorx»

Приложение № 1

Фрагмент инструкции по разработке интерфейса «Умной теплицы» на базе платформы Thing Worx

Автор: Разумов Александр Сергеевич педагог дополнительного образования

“Умная теплица” с интерфейсом управления через интернет

Умная теплица включает в себя:

  • макет теплицы с датчиками
  • модуль помпы для поливки растений
  • модуль блока питания для работы теплицы

В данном руководстве мы описываем создание веб-интерфейса управления и отслеживания состояния “Умной теплицы” через Интернет.

 

Основные термины

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

Шаблон вещи (Thing Template)  - это шаблон, в котором могут создаваться свои свойства и сервисы и от этого шаблона могут “наследоваться” вещи, тем самым получая себе свойства и сервисы созданные в шаблоне.

Свойство вещи (Property) - это любой параметр, который необходимо учитывать у вещи или каким параметром должны обладать все вещи наследующие от шаблона, в котором этот параметр определен.

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

Мэшап (Mashup) - это приложение которое создает графический интерфейс доступный в окне браузера с помощью виджетов и сервисов вещей.

Виджет (Widget) - графический элемент выполняющий определенный функционал, встраивается в графический интерфейс (мэшап)

 

Начало работы

Для работы нам потребуется доступ к платформе ThingWorx. Для работы Ethernet Shield v1 адрес платформы должен начинаться с http://, так как он не поддерживает протокол https. После ввода логина и пароля нам становится доступен список всех объектов (вещи, шаблоны, мэшапы, ключи приложений и т.д. ) созданных в системе.

В дальнейшем все названия вещей, шаблонов, сервисов, свойств и мэшапов задаются латиницей. 

 

 

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

 

Основные пункты главного меню:

Things - вещи

Thing Templates - шаблоны для вещей

Mashups - мэшапы

Menus - меню, которые используются в мэшапах

Media - раздел отвечающий за редактирование, удаление и добавления нового медиа контента

Style Definitions - раздел где можно создавать самостоятельно стили для виджитов в мешапе

State  Definitions  -  раздел  управлением  вариантами  состояний  переключателей  в мэшапах и виджетах (radio button)

 

Вещи (Things)

Вещь - “теплица”

Начнем с создания новой вещи.

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

 

 

Чтобы создать вещь, выбираем в главном меню в пункт Things (Вещь) и нажимаем кнопку “+ New (Новая)”.

В появившемся окне заполняем следующие основные поля:

-   Name уникальное название нашей вещи, например: “SmartGreen”

-   Description даем понятное описание вещи

-   Thing Template здесь выбираем наш новый шаблон “StreamSmartGreen”

-   Tags указываем теги с помощью которых мы объединяем наши вещи, мешапы и шаблоны и упрощаем поиск всех сущностей.

-   Value  Stream  указывается  вещь  которая  будет  сохранять  в  базу  данных данные о свойствах.

 

После   заполнения,   нажимаем   кнопку   Save   (Сохранить),   чтобы   наша   Вещь добавилась в систему ThingWorx.

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

Основные пункты меню управления вещью:

Entity Information информация об объекте.

General  Information  (Основная  информация)  -  основная  информация  о  нашей вещи

Properties (Свойства) - раздел для просмотра всех свойств у вещи и добавления новых свойств.

Services (Сервисы) - у каждой вещи могут быть определены свои сервисы или наследоваться от шаблона вещи, а так же каждая вещь имеет общий набор сервисов. В этом разделе мы можем создавать, удалять и просматривать сервисы.

Events (События) - раздел с отображение событий которые могут генерировать наши вещи в процессе работы. Здесь можно создавать свои события (пока не рассматриваем).

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

Permissions (Права доступа) раздел для управления правами доступа.

Visibility (Видимость) - управление доступом к отображению вещи.

Design Time (Настройки доступа для работы с вещью) - управляем списками пользователей, которые имеют доступ к редактированию, удалению и просмотра нашей вещи.

Run Time (Настройка выполнения вещи) - управление списком пользователей, которые имеют права доступа к свойствам, сервисам и событиям вещи.

Change  History  (История  изменений)  -  в  этом  разделе  отображается  полная история работы с вещью (кто и когда редактировал и что )

 

Свойства теплицы.

После создания вещи, требуется создать свойства, описывающие нашу теплицу. Заходим в раздел Properties (Свойства), справа отобразится список уже доступных свойств.

Чтобы добавить новое свойство нажимаем +Add My Property (Добавить Свойство). После этого появится окно, в котором указываем необходимые параметры нашего свойства.

У каждого создаваемого свойства есть список параметров, которые можно заполнить. Обязательные поля для заполнения выделяются красной рамкой.

Рассмотрим основные свойства параметров:

-   Name - задает название нашего параметра

-   Description - рекомендую заполнять это свойство для описания параметра

-   Base Type - указываем тип данных к которым относится параметр

-   Has Default Value - можем отметить галочку что параметр, если он не задан, будет иметь значение по умолчанию.

-   default value - указывается значение параметра по умолчанию, если выставлена предыдущая галочка.

-   min value* - у некоторых типов данных, например целое число, мы можем указать минимальное значение. которое может принимать свойство

-   max value* - максимальное значение для параметра

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

* свойства отмеченные звездочкой могут быть доступны у некоторых типов данных свойства.

 

После заполнения полей формы нажимаем кнопку “Done” (сохраняется свойство) или “Done and Add” (сохраняется и создается новая аналогичная форма).

 

Для нашей теплицы мы будем использовать следующие свойства:

1.  Температуру внутри теплицы. Тип number (число с точной), название свойства temp, для сохранения данных о температуре в базе выставляем галочку “logged”;

2.  Влажность внутри теплицы. Тип number, название свойства humidity;

3.  Освещенность снаружи. Тип number, название свойства light;

4.  Флаг состояния нашего освещения (включен он или выключен). Тип boolean, название is_light;

5.  Флаг открыта крыша или нет. Тип boolean, название свойства is_open;

6.  Флаг работы теплицы в автоматическом режиме. Тип данных boolean, название свойства is_auto;

7.  Количество растений в теплице. Тип integer, название plant_count. Здесь будет храниться количество выращиваемых растений в теплице.

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

Вещь - “Выращиваемое растение”

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

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

Thing Templates”. В открывшейся странице выбираем кнопку “+ New (Новый)

  

В появившемся окне заполняем следующие основные поля:

-   Name уникальное название шаблона PlantTemplate.

-   Description даем понятное описание шаблона

-   Base Thing Template здесь выбираем шаблон “GenericThing”

-   Tags указываем теги с помощью которых мы объединяем наши вещи, мешапы и шаблоны и упрощаем поиск всех сущностей.

 

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

Свойства растения

Свойства:

1.  Температура почвы у растения. Тип данных number, название свойства temp, выставляем галочку logged;

2.  Влажность почвы у растения. Тип данных number, название свойства humidity, выставляем галочку logged;

3.  Название выращиваемого растения. Тип данных string, название свойства name_plant;

После создания шаблона выращиваемых растений создадим вещи которые будут наследоваться от шаблона PlantTemplate. Количество вещей будет зависеть от количество растений в нашей теплице. Для начала работы нам достаточно создать два растения (количество растений под конкретную задачу можно увеличить). Название для первого растения Plant1 (название в свойствах “Лук”) и второго Plant2 (название в свойствах “Укроп”). Остальные параметры мы оставляем пустые они будут заполняться по мере поступления данных с датчиков теплицы.

В результате у нас должно получиться:

-   Вещь теплица SmartGreen

-   Шаблон растения PlantTemplate

-   Вещь лук Plant1

-   Вещь укроп Plant2