IBM Watson IOT

<< Click to Display Table of Contents >>

Навигация  Примеры > 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 первым регистрам. И настроим их:

 

tag1settings

tag2settings

 

4. Далее запустим этот проект в 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 тега для чтения данных из облака:

 

tagmqttclient

mqttpointersettings

 

Топик имеет следующий формат:

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:

 

refreshpublisher

pointersettingsrefreshpublisher

 

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

cmd_id -  refreshpublisher

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

 

refreshclient