Logo Logo ru
  • iRidi Pro
    Основные компоненты
    • Приложение i3 Pro
    • iRidi Pro Server
    • iRidi Studio
    • iRidium studio v. 1.3.8 (устаревшая версия)
    Java Script в iRidi
    • Руководство
    • Справочник
    • Примеры
    • JS драйвера
    другие
    • Личный Кабинет
    • iRidium Cloud
    • iRidium Transfer
    • Push-уведомления
    • Лучшая практика
    Лицензирование
    • Лицензирование и передача проекта
    • Оффлайн-лицензирование
    • Активация iRidi Pro Server
  • Продукты
    i3 lite
    • Приложение i3 lite
    • Регистрация и лицензирование
    • Сервер
    • Модули
    KNX Home Server
    • Приложение i3 KNX
    • KNX Home Server
    BUS77 HOME SERVER
    • Приложения Bus77 Home и Bus77 Lite
    • Bus77 Home Server
    Решения
    • BYOD - решение для гостиниц
    • Портал жителя - решение для МКД
    iRidi SCADA
    • iRidi SCADA
  • Bus77
    НАСТРОЙКА BUS77
    • Основы Bus77
    • Приложения Bus77 Home и Bus77 Lite
    • Работа с драйвером Bus77 в iRidi Studio
    • Настройка шины Bus77 в iRidi Studio
    ПРОТОКОЛ BUS77
    • Характеристики CAN (Bus77)
    • Описание протокола
    • Исходники на GitHub
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
  • Поддерживаемое оборудование
    Драйверы
    • Список драйверов
    • ProAV драйвера
    • AV & Custom Systems
    • JS драйвера
    • Сторонние драйвера и фриланс
    Протоколы и интерфейсы
    • Голосовое управление
    • 1-Wire
    • BACnet IP
    • Bus77
    • KNX
    • KNX IP BAOS
    • Weinzierl kBerry
    • Microsoft Exchange
    • Modbus
    • MQTT
    • NFC
    • ODBC
    • Onvif
    • SIP
    • SNMP
    • Wake On Lan
    • Z-Wave
    • ZigBee
    Производители
    • AMX
    • AVCiT
    • Beckhoff ADS
    • Biamp Tesira
    • Bluesound
    • Casambi
    • BSS Harman
    • Clipsal
    • ControlArt 7Port
    • Crestron
    • DigiBird
    • Domintell
    • Duotecno
    • EIDE
    • EPSNET
    • Global Cache
    • HDL Buspro
    • Helvar
    • IEAST
    • INELS BUS
    • INELS Wireless
    • Intesis
    • Kleger
    • Kramer VIA
    • Kramer 3000
    • Larnitech
    • Legrand Netatmo
    • LG TV
    • Lutron
    • Lutron Homeworks QS
    • MyHome
    • Nest
    • Novastar
    • Panasоnic PTZ
    • Philips Dynalite
    • PJLink
    • Satel
    • SamsungTV
    • Sonos
    • Somfy
    • SpinetiX
    • Televic Conference
    • TIS
    • Tion
    • URRI
    • Velbus
    • Velocio
    • Vinteo
    • WyreStorm
    • WiiM
    • Xicato
    • Yamaha
    • ZONT
    • Z-Wave.me
    Протестированное оборудование
    • Панель HDL S57
    • Панель HDL S10
    • SIP-домофон
    • Akuvox
    • Arlight
    • Divus
    • QBic TD-1050 PRO
    • QBic TD-1060 Slim
    • QBic TD-1070
    • Sigur
    • Uni-Ubi
    • Velocio
  • Оборудование iRidi

    Серверы
    • HS Сервер
    • ProAV Control Processor Basic
    • ProAV Control Processor Advanced
    • Спецификация контроллеров UMC
    • Настройка контроллера UMC C2
    • Настройка контроллера UMC C3
    • Настройка контроллера HDL IntelliCenter 2 (UMC C4)
    Модули расширения
    • I-PX-RS1
    • I-PX-RS4
    • I-PX-IR3
    KNX
    • KNX Home Server
    • KNX IP Interface
    Панели управления
    • iRidium Panel 7
    • Touch Panel P3
    • Touch Panel P6
    • Touch Panel P8
    • Touch Panel P10
    • Tabletop Touch Panel 10
    • AV Remote Control
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
    • Differences
Сайт iRidium mobile
Содержание
    Инструменты‌
    • Сведения о странице
    • Постоянная ссылка
    • Версия для печати
    • Спецстраницы
    • Связанные правки
    • Ссылки сюда
    Login / Create Account
    Материал из for iRidium developers
    Перейти к: навигация, поиск
    Эта страница является переводом страницы CloudMQTT. Перевод выполнен на 100%.

    Other languages:
    English • ‎русский

    Содержание

    • 1 Подключение устройств Modbus TCP к облачным сервисам MQTT
      • 1.1 Описание примера
      • 1.2 Настройка CloudMQTT
      • 1.3 Настройка iRidium server
        • 1.3.1 Настройка драйвера MQTT
        • 1.3.2 Настройка драйвера Modbus TCP
        • 1.3.3 Шлюз между драйверами MQTT и Modbus TCP
        • 1.3.4 Неуправляемый шлюз
      • 1.4 Настройка проекта i3 pro
      • 1.5 Тестирование проектов

    Подключение устройств Modbus TCP к облачным сервисам MQTT


    MQTT предоставляет преимущества как телеметрический протокол: он обеспечивает обмен данными между устройствами (клиентами) в условиях ненадёжной или непостоянной связи. Устройства могут отключаться от сети, но при повторном подключении MQTT-брокер гарантированно передаст сообщение.

    В последнее время набирают популярность различные облачные сервисы с MQTT-брокерами, например, Центр Интернета вещей Azure от Microsoft или AWS IoT от Amazon.

    Вы можете подключить к облачным сервисам MQTT устройства, не поддерживающие MQTT, например, Modbus-устройства, используя для этого iRidium server как шлюз.


    Описание примера


    Скачать пример проекта

    iRidium server используется для подключения устройств Modbus TCP к облачному сервису CloudMQTT. Также к сервису подключается панель, для которой разрабатывается отдельный проект с графическим интерфейсом. Таким образом появляется возможность удалённо управлять устройствами в сети Modbus TCP по телеметрическому протоколу MQTT.

    CloudMQTT scheme(1).png


    Настройка CloudMQTT

    CloudMQTT предлагает различные планы использования.

    Вы можете выбрать бесплатный план Cute Cat, который предоставляет виртуальный сервер (не выделенный), максимум 5 пользователей, 5 правил доступа и 5 соединений, трафик 10 кБит/с. Этот план не рекомендуется для коммерческого использования, но отлично подойдёт для тестирования и домашнего хобби.

    1 Зарегистрируйтесь на сайте CloudMQTT и войдите под учётной записью.

    2 Нажмите кнопку "Create New Instance".

    CloudMQTT01.png

    3 Задайте имя инстанса, план использования и географическое расположение сервера (Data Center). Нажмите кнопку "Create New Instance".

    CloudMQTT02.png

    4 Кликните на имя созданного инстанса, чтобы перейти к его настройкам.

    CloudMQTT03.png

    5 На вкладке DETAILS отобразятся все данные, необходимые для подключения к облачному сервису.

    CloudMQTT04.png


    Настройка iRidium server

    Настройка драйвера MQTT

    1 Создайте проект сервера.

    2 Добавьте драйвер MQTT в проект.

    MQTT01(1).png

    3 Настройте драйвер в соответствии со вкладкой DETAILS инстанса сервиса CloudMQTT:

    • Host - адрес инстанса сервиса (Server)
    • Port - порт инстанса:
      • 13816 (незащищённое соединение),
      • 23816 (защищённое соединение SSL),
      • 33816 (защищённое содинение WebSocket; не поддерживается iRidium pro)
    • Login - логин для доступа к инстансу (User)
    • Password - пароль для доступа к инстансу (Password)
    • Client ID - идентификатор MQTT-клиента, уникальное имя для каждого устройства MQTT
    • SSL - метод шифрования:
      • Disable
      • TLS 1.2 (рекомендуется)
      • SSL 2.3
      • SSL 3.0 (не поддерживается CloudMQTT)


    Подробнее: Настройка параметров подключения MQTT.


    4 Создайте необходимое количество каналов и тэгов. Настройте каждый канал и тэг.

    MQTT02.png

    CloudMQTT позволяет задавать параметру Topic произвольную строку. Рекомендуется задавать Topic в стандартной иерархической форме, напоминающей адресную строку файловой системы, например:

    /place/device_name/group_name/parameter_name


    Подробнее: Настройка параметров каналов и фидбеков MQTT.


    Настройка драйвера Modbus TCP

    1 Добавьте драйвер Modbus TCP.

    2 Настройте параметры подключения.

    3 Создайте необходимое количество команд и тэгов в драйвере.

    4 Настройте каждую команду и тэг в соответствии с задачей.


    Шлюз между драйверами MQTT и Modbus TCP

    1 Добавьте скрипт в проект:

    var driver1 = IR.GetDevice("MQTT");       // name of a driver 1
    var driver2 = IR.GetDevice("Modbus TCP"); // name of a driver 2
     
    var gatemap = {
    // Tag name                Channel name
      "Door_switch"         : "MQTT_Door_switch",
      "Ring_button"         : "MQTT_Ring_button",
      "Outdoor_temperature" : "MQTT_Outdoor_temperature",
      "Indoor_temperature"  : "MQTT_Indoor_temperature",
      "MQTT_Lock"           : "Lock",
      "MQTT_Siren"          : "Siren",
      "MQTT_Dimmer_R"       : "Dimmer_R",
      "MQTT_Dimmer_G"       : "Dimmer_G",
      "MQTT_Dimmer_B"       : "Dimmer_B",
      "MQTT_Dimmer_ON"      : "Dimmer_ON"
    }; 
     
    IR.AddListener(IR.EVENT_TAG_CHANGE, driver1, function(name, value) {
      if (gatemap[name]) {
        driver2.Set(gatemap[name], value);
      }	
    });
    IR.AddListener(IR.EVENT_TAG_CHANGE, driver2, function(name, value) {
      if (gatemap[name]) {
        driver1.Set(gatemap[name], value);
      }	
    });

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

    Карта шлюза (переменная gatemap) представляет с собой список соответствующих пар имён тэгов и каналов двух разных драйверов. Между парами этих тэгов и каналов и будет происходить обмен данными. Вы можете дополнять этот список.


    Неуправляемый шлюз

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

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

    1 Задайте одинаковые имена тэгам драйвера MQTT и каналам драйвера Modbus TCP, и соответственно - тэгам драйвера Modbus TCP и каналам драйвера MQTT.

    2 Удалите предыдущий скрипт. Вместо него добавьте скрипт:

    // Assign the same names to tags of first driver and to channels of second driver,
    // and accordingly - to tags of second drivers and to channels of first driver. 
    var driver1 = IR.GetDevice("MQTT");       // name of a driver 1
    var driver2 = IR.GetDevice("Modbus TCP"); // name of a driver 2
     
    IR.AddListener(IR.EVENT_TAG_CHANGE, driver1, function(name,value) {
      driver2.Set(name, value);
    });
    IR.AddListener(IR.EVENT_TAG_CHANGE, driver2, function(name,value) {
      driver1.Set(name, value);
    });

    3 В этом скрипте достаточно лишь указать имена драйверов.


    Настройка проекта i3 pro

    1 Создайте проект панели.

    2 Добавьте драйвер MQTT.

    3 Настройте подключение к сервису CloudMQTT аналогично тому, как это было сделано в проекте сервера, а именно: введите те же параметры подключения драйвера MQTT (Host, Port, Login, Password). Назначьте другой идентификатор клиента (Client ID), чтобы сервис CloudMQTT мог отличать подключающихся клиентов друг от друга.

    4 Создайте необходимое количество команд и тэгов. Те переменные, которые были командами в сервере, в панели должны сопоставлены тэгам, и наоборот, тэги в сервере должны соответствовать командам в панели.

    5 У команд и тэгов следует задать параметры Topic и Value Type так же, как у соответствующих каналов сервера.

    6 Создайте графический интерфейс. Свяжите графические элементы с командами и тэгами драйвера MQTT по событиям или связями.

    CloudMQTT GUI(2).png


    Тестирование проектов

    1 Запустите проект сервера и проект панели в любом порядке. Вы можете использовать для этого эмулятор i3 pro и iRidium server для Windows.

    2 Перейдите на вкладку CONNECTIONS инстанса CloudMQTT. На этой вкладке отображается состояние MQTT-соединений.

    CloudMQTT05.png

    3 Перейдите на вкладку WEBSOCKET UI, используемую разработчиками для тестирования. Здесь вы можете просматривать все получаемые MQTT-сообщения и отправлять их.

    CloudMQTT06.png

    4 Вы может использовать любой эмулятор сервера Modbus TCP, например, бесплатный Modbus PLC Simulator для тестирования проекта.

    В рассматриваемом примере все издатели и подписчики имеют полные права доступа на MQTT-топики, но Вы можете задать правила и ограничения на вкладке USERS & ACL инстанса CloudMQTT.

    Источник — «https://dev.iridi.com/index.php?title=CloudMQTT/ru&oldid=53203»
    О нас
    Компания
    Команда
    История
    Философия
    Награды
    Партнерство
    Наши партнеры
    Партнерские программы
    Подать заявку на партнерство
    Продукты
    iRidium pro
    iRidium lite
    iRidium gate
    iRidium server
    Загрузки
    iRidium pro
    iRidium lite
    Другие версии
    Маркетинговые материалы
    Поддержка
    Онлайн курсы/Видео
    Рекомендуемое оборудование
    Другие версии
    iRidium pro
    Документация
    FAQ
    Форум
    iRidium lite
    Документация
    Форум
    Проекты
    Типовые проекты
    Умные здания
    Умные дома
    Специальные решения
    Найти дилера
    Новости
    Youtube
    Twitter
    VK
    Logo
    contact@iridi.com
    +7 (499) 322-73-29

    Политика конфиденциальности