IBM Watson IOT

<< Click to Display Table of Contents >>

Navigation:  Примеры > IOT облака >

IBM Watson IOT

Previous pageReturn to chapter overviewNext page

IBM Cloud предоставляет множество различных сервисов.В данном примере нам потребуются только Watson IoT. В рассматриваемом примере TeslaSCADA2 Runtime считывает данные с Modbus-устройств и отсылает их в облако IBM Cloud через MQTT протокол в формате JSON используя MQTT издатель.

 

Для тестирования можно использовать бесплатный (Lite) план пользования сервисом Watson IoT, который включает в себя:

до 500 устройств,

до 500 связей,

месячные лимиты

oдо 200 Мб трафика,

oдо 200 Мб анализируемых данных

oдо 200 Мб локально анализируемых данных (Edge).

Подробнее:

Watson IoT (in English)

 

Настройка IBM Watson IoT

Для подключения к платформе IBM Watson IoT нужно получить аккаунт IBM Cloud (IBMid).

Создание инстанса IBM Watson IoT

1 Зайдите в свою учётную запись, перейдите на панель управления (Dashboard). Нажмите на кнопку «Create Resource».

clip0003

2 Выберите категорию Internet of Things и нажмите на Internet of Things Platform.

clip0004

3 В параметрах выберите регион, например, US South (для этого региона доступно больше всего функциональных возможностей).

clip0005

4 Выберите ценовой план (например, Lite) и нажмите на кнопку «Create»::

clip0006

5 На панели приборов в списке отобразится добавленный сервис, перейдите на него, в появившемся окне нажмите на кнопку «Launch».

clip0007

6 В новом окне откроется панель управления IoT Platform.

clip0008

 

Добавление устройств

1 Перейдите на вкладку Devices на панели управления IoT Platform.

clip0009

2 Добавьте устройство, для этого нажмите на кнопку «Add Device».

clip0010

3 В появившемся окне задайте Device Type и Device ID и нажмите «Next».

clip0011

4 Укажите информацию об устройстве, нажмите «Next».

clip0012

5 Добавьте группу (можно пропустить этот шаг), нажмите «Next».

clip0013

6 В окне Security создайте токен для аутентификации (если оставить поле пустым, то токен сгенерируется сам). Нажмите «Next».

clip0014

7 Просмотрите результат создания устройства и нажмите кнопку «Done».

clip0015

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

clip0016

Токен аутентификации (пароль) передаётся только один раз. Сохраните его.

 

Настройка MQTT издателя

1. Включим MQTT издатель. И настроим его:

mqttpublishersetup

Broker URL - адрес и порт облачного интерфейса IoT, кодируется следующим образом:

ssl://<your_orgID>.messaging.internetofthings.ibmcloud.com:8883

Username - логин, здесь должно быть задано фиксированное значение use-token-auth.

Password - созданный или сгенерированный Authentication Token

Client ID - идентификатор клиента, кодируется следующим образом:

d:<your_orgID>:<your_Type>:<your_Device>

Write topic format - формат для записи тегов в топик:

iot-2/evt/{tagname}/fmt/txt  

{tagname} - имя тегов в проекте.

Read topic format - формат для чтения тегов из топика:

iot-2/cmd/{tagname}/fmt/txt  

{tagname} - имя тегов в проекте.

QoS - тип MQTT сообщения.

 

 

2. Создать сервера Modbus. И настроим его:

setupmodbusserver

 

3. Создадим 2 тега и привяжем их к 2 первым регистрам. И настроим их:

tag1settingstag2settings

Далее запустим этот проект в TeslaSCADA2 Runtime. Он соединяется к облаку и публикует данные тегов в нем:

В симуляторе:

modbussimulator

В проекте:

cloudexample

В облаке:

ibmcloudpic

Настроим MQTT сервер

1. Для получения информации из облака создадим приложение в IOT Watson:

applicationwatson

2. Теперь мы можем создать MQTT сервер в новом проекте:

mqttserverforwatson

URI - адрес и порт облачного интерфейса IoT, кодируется следующим образом:

ssl://<your_orgID>.messaging.internetofthings.ibmcloud.com:8883

Username - логин кодируется следующим образом:

{api key} - вы можете видеть его на картинке. Он содержит a -{your_orgID}-{code}. На картинке другой {your_orgID}. Должен быть eeptot.

Password - созданный или сгенерированный Authentication Token

Client ID - идентификатор клиента кодируется следующим образом:

d:<your_orgID>:<name of the application>

 

3.Создадим 2 тега для чтения данных из облака:

tagmqttclientmqttpointersettings

Формат топика имеет следующим образом:

iot-2/type/{device_type}/id/{device_id}/evt/{event_id}/fmt/{format_string}

device_type - тип устройства

device_id - ID устройства

event_id - имя тега которые изспользуется в проекте с издателем.

format_string - формат топика.(txt в нашем случае).

 

Для записи в топик используется следующий формат: 

iot-2/type/{device_type}/id/{device_id}/cmd/{cmd_id}/fmt/{format_string}

 

4. По каким-то причинам при подключении к облаку IBM и подписке на темы значения не обновляются.

Мы создали возможность для обновления значений. Вы должны создать тег в MQTT, чтобы обновить издателя с именем refreshpublisher:

refreshpublisherpointersettingsrefreshpublisher

Топик должен выглядеть так: iot-2/type/TeslaSCADA/id/1/cmd/refreshpublisher/fmt/txt

cmd_id -  refreshpublisher

5. После запуска проекта с MQTT клиентом и обновлением данных мы получаем:

refreshclient