<< Click to Display Table of Contents >> IBM Watson IOT |
![]() ![]() ![]() |
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 Cloud (IBMid).
2 Выберите категорию Internet of Things и нажмите на Internet of Things Platform.
3 В параметрах выберите регион, например, US South (для этого региона доступно больше всего функциональных возможностей).
4 Выберите ценовой план (например, Lite) и нажмите на кнопку «Create»::
5 На панели приборов в списке отобразится добавленный сервис, перейдите на него, в появившемся окне нажмите на кнопку «Launch».
6 В новом окне откроется панель управления IoT Platform.
2 Добавьте устройство, для этого нажмите на кнопку «Add Device».
3 В появившемся окне задайте Device Type и Device ID и нажмите «Next».
4 Укажите информацию об устройстве, нажмите «Next».
5 Добавьте группу (можно пропустить этот шаг), нажмите «Next».
6 В окне Security создайте токен для аутентификации (если оставить поле пустым, то токен сгенерируется сам). Нажмите «Next».
7 Просмотрите результат создания устройства и нажмите кнопку «Done».
8 В появившемся окне появится сообщение о том, что было зарегистрировано устройство, и будут предоставлены реквизиты для подключения устройства к платформе. Если ранее поле токена было оставлено пустым, то будет предоставлен автоматически сгенерированный токен.
Токен аутентификации (пароль) передаётся только один раз. Сохраните его.
•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 сообщения.
•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 тега для чтения данных из облака:
Формат топика имеет следующим образом:
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:
Топик должен выглядеть так: iot-2/type/TeslaSCADA/id/1/cmd/refreshpublisher/fmt/txt
cmd_id - refreshpublisher
5. После запуска проекта с MQTT клиентом и обновлением данных мы получаем: