Меню
Блог Гридина Семёна

Автоматизация и логические контроллеры

Рубрики блога

Связь ESP — KaScada через MQTT

Связь ESP — KaScada через MQTT

В этой статье мы попробуем связать приложение HMI KaScada с контроллером ESP 8266 c помощью протокола MQTT.

Что такое MQTT?

MQTT или Message Queue Telemetry Transport — это легкий, компактный и открытый протокол обмена данными созданный для передачи данных на удалённых локациях, где требуется небольшой размер кода и есть ограничения по пропускной способности канала. Вышеперечисленные достоинства позволяют применять его в системах M2M (Машинно-Машинное взаимодействие) и IIoT (Промышленный Интернет вещей).

Для того, чтобы нам пользоваться данным протоколом, нам нужен сервер в сети интернет. Для работы с протоколом MQTT нам нужен специальный сервис — Брокер.

В интернете существует большое разнообразие различных брокеров. Но мы работали пока лишь с двумя — это CloudMQTT и Beebotte.

В этой статье мы рассмотрим сервис Beebotte. Вот его официальный сайт.

Регистрация на брокере и установка настроек

Регистрируемся и заходим в свой личный кабинет. По сути нам нужны всего четыре параметра: 

  • IP сервера или хост
  • Порт
  • Логин
  • Пароль

Эту всю информацию можно найти на сервисе.

Итак, настройки:

Server: mqtt.beebotte.com
Port: 1883
Логин для авторизации берем здесь:

Пароль нам в данном случае не требуется.

Антиквариат Скупка спб. Стенд для красок смотрите на http://amd-expo.ru. кровельные материалы симферополь, акция.

В настоящее время Beebotte поддерживает только MQTT QoS level 0 и QoS level 1. Это уровень сообщений. 0 — это послал и забыл, 1 — это посылка сообщения с получением подтверждения.

Пишем программу для ESP8266

В нашей статье будет использоваться контроллер Node MCU v3.

Для написания ПО требуется программа FLprog версии 6.3.1.

После этого необходимо скачать пользовательские блоки для работы с протоколом MQTT. Библиотеки будут храниться в архиве с проектом.

Создаём новый проект, выбираем контроллер.добавляем пользовательские блоки:

Настраиваем контроллер в режиме клиента:

Вводим настройки вашего роутера — логин и пароль Wi-Fi.

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

MQTT ESP Main — вписываем настройки нашего сервера (IP, порт, и регистрационный ключ(это для beebotte)), вводим имя клиента.

MQTT ESP Pub — издатель, это когда нужно отправить данные из контроллера в KaScada. В нашем примере это реализовано с помощью кнопки. Отправляем 1 или 0. Send — это команда отправки сообщения, topic — это набор символов-идентификатора по которому будем отправлять сообщения, QoS — уровень сообщения, Retain — это сохранение в энергонезависимую память.

MQTT ESP Sub — подписчик, это то, что мы принимаем из KaScada в контроллер. в данном случае лампочка. Принимаем 0 или 1.

Важно!!! Топики должны соответствовать, то что вы указали в контроллере, так же должно быть и в приложении.

Пишем ПО для HMI KaScada

В приложении нужно добавить два функциональных блока MQTT_S — это подписчик, MQTT_P — это издатель.

С помощью переключателя мы даём 1 в сообщение, с помощью кнопки даём разрешение блоку работать.

Публикуем сообщения с помощью блока издателя MQTT_P.

Настройки блока MQTT_P:

В поле Login вводим свой секретный ключ.

MQTT_S — подписчик этот блок принимает сообщения с контроллера и включает лампочку.

Настройки все те же самые, только вводим нужный топик test0.

Основной источник https://hmi-kascada.ru/

С уважением, Гридин Семен

Вам так же может быть интересно